资源预览内容
第1页 / 共105页
第2页 / 共105页
第3页 / 共105页
第4页 / 共105页
第5页 / 共105页
第6页 / 共105页
第7页 / 共105页
第8页 / 共105页
第9页 / 共105页
第10页 / 共105页
亲,该文档总共105页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第5章章 关系数据关系数据库的的 规范化设计规范化设计桅哇名陕读饯牡婿窍跃壮寺奋缔禁点犬爽鞠咋麓骸庐祈礼振报驼颗琉悬俺第5章关系数据库的规范化设计第5章关系数据库的规范化设计本章概要本章概要前面已经讲述了前面已经讲述了关系数据库关系数据库、关系模型关系模型的基本概念以及关系数据的基本概念以及关系数据库的库的标准语言标准语言。如何使用关系模型设计关系数据库,也就是面对一个现实问题,如何使用关系模型设计关系数据库,也就是面对一个现实问题,如何选择一个比较好的关系模式的集合,每个关系又应该由哪些如何选择一个比较好的关系模式的集合,每个关系又应该由哪些属性组成。这属于数据库设计的问题,确切地讲是数据库属性组成。这属于数据库设计的问题,确切地讲是数据库逻辑设逻辑设计计的问题,有关数据库设计的全过程将在后续章节详细讨论的问题,有关数据库设计的全过程将在后续章节详细讨论本章讲述本章讲述关系数据库规范化理论关系数据库规范化理论,这是数据库逻辑设计的理论依,这是数据库逻辑设计的理论依据。据。n要求了解规范化理论的研究动机及其在数据库设计中的作用要求了解规范化理论的研究动机及其在数据库设计中的作用n掌握函数依赖的有关概念,掌握函数依赖的有关概念,n第一范式、第二范式、第三范式的定义,第一范式、第二范式、第三范式的定义,n重点掌握并能够灵活运用关系模式规范化的方法和关系模式重点掌握并能够灵活运用关系模式规范化的方法和关系模式分解的方法,这也是本章的难点。分解的方法,这也是本章的难点。 藐卤驭祭迄肯屯昭怀羚佬僚赘笑抑却檀勺信宣参锹赶旬伙哪靳座溅忿汗隆第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.1 5.1 规范化问题的提出规范化问题的提出5.1.1 5.1.1 规范化理论的主要内容规范化理论的主要内容n关关系系数数据据库库的的规规范范化化理理论论最最早早是是由由关关系系数数据据库库的创始人的创始人E.F.CoddE.F.Codd提出的提出的n在在该该理理论论出出现现以以前前,层层次次和和网网状状数数据据库库的的设设计计只只是是遵遵循循其其模模型型本本身身固固有有的的原原则则,而而无无具具体体的的理理论论依依据据可可言言,因因而而带带有有盲盲目目性性,可可能能在在以以后后的运行和使用中发生许多预想不到的问题。的运行和使用中发生许多预想不到的问题。n在在关关系系数数据据库库系系统统中中,关关系系模模型型包包括括一一组组关关系系模模式式,各各个个关关系系不不是是完完全全孤孤立立的的,数数据据库库的的设设计较层次和网状模型更为重要计较层次和网状模型更为重要奋滥裴弄岂译锗鹰怖瓜被试垃妄波刮法酗统诲硷徊国茹闷贤脱饿烛制赵蔽第5章关系数据库的规范化设计第5章关系数据库的规范化设计如何设计一个适合的关系数据库系统,关键如何设计一个适合的关系数据库系统,关键是关系数据库是关系数据库模式模式的设计,一个好的关系数的设计,一个好的关系数据库模式应该包括多少据库模式应该包括多少关系模式关系模式,而每一个,而每一个关系模式又应该包括哪些关系模式又应该包括哪些属性属性,又如何将这,又如何将这些相互关联的关系模式组建一个适合的些相互关联的关系模式组建一个适合的关系关系模型模型,这些工作决定了到整个系统运行的效,这些工作决定了到整个系统运行的效率,也是系统成败的关键所在,所以必须在率,也是系统成败的关键所在,所以必须在关系数据库的关系数据库的规范化理论规范化理论的指导下逐步完成的指导下逐步完成 让邱姚俭残冻姿继膜眠奸歪怎荫贵祥响乞捐焉初蓝近晕菩吁蹦佛撒贮匪刹第5章关系数据库的规范化设计第5章关系数据库的规范化设计n关系数据库的规范化理论主要包括三个方面的内容关系数据库的规范化理论主要包括三个方面的内容:函数函数依依赖赖范式范式(Normal FormNormal Form)模式设计模式设计n其其中中,函函数数依依赖赖起起着着核核心心的的作作用用,是是模模式式分分解解和和模式设计的基础,范式是模式分解的标准。模式设计的基础,范式是模式分解的标准。5.1.2 5.1.2 关系模式的存储异常问题关系模式的存储异常问题n数据库的逻辑设计为什么要遵循一定的规范化理论?数据库的逻辑设计为什么要遵循一定的规范化理论?n什么是好的关系模式?什么是好的关系模式?n某些不好的关系模式可能导致哪些问题?某些不好的关系模式可能导致哪些问题?n下面通过例子进行分析下面通过例子进行分析: :唐莱运虫阀乔狙进啄间拄糖蠕顾序观憾涅其篇蜡听祥墨脾诅跌疙塔瞥皋绽第5章关系数据库的规范化设计第5章关系数据库的规范化设计例如例如要求设计要求设计教学管理数据库教学管理数据库,其关系模式,其关系模式SCDSCD如下:如下: SCD(SNO, SN, AGE, DEPT, MN, CNO, SCORE)SCD(SNO, SN, AGE, DEPT, MN, CNO, SCORE)n其其中中,SNOSNO表表示示学学生生学学号号,SNSN表表示示学学生生姓姓名名,AGEAGE表表示示学学生生年年龄龄,DEPTDEPT表表示示学学生生所所在在的的系系别别,MNMN表表示示系系主任姓名,主任姓名,CNOCNO表示课程号,表示课程号,SCORESCORE表示成绩。表示成绩。 根据实际情况,这些数据有如下语义规定:根据实际情况,这些数据有如下语义规定:一个系有若干个学生,但一个学生只属于一个系;一个系有若干个学生,但一个学生只属于一个系;一一个个系系只只有有一一名名系系主主任任,但但一一个个系系主主任任可可以以同同时时兼几个系的系主任;兼几个系的系主任;一一个个学学生生可可以以选选修修多多门门功功课课,每每门门课课程程可可有有若若干干学生选修学生选修每个学生学习课程有一个成绩每个学生学习课程有一个成绩宣惮酌竟汛柬锋瑞腑与铀吕扳褐得予姑额赡幢慑柱绕渗句专萎侣庙醇挫刺第5章关系数据库的规范化设计第5章关系数据库的规范化设计图图5.1 5.1 关系关系SCDSCDSNOSNOSNSNAGEAGEDEPTDEPTMNMNCNOCNOSCORESCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193皆穷齐革般诞糜疼怖飞快专造巾豁拆刃颧徐局卯钵准饮赐鸽柔骋菩蚤虑拼第5章关系数据库的规范化设计第5章关系数据库的规范化设计根根据据上上述述的的语语义义规规定定,并并分分析析以以上上关关系系中中的的数数据据,我我们们可可以以看看出出:(SNO,CNO)属属性性的的组组合合能能唯唯一一标标识识一一个个元元组组,所所以以(SNO,CNO)是是该该关关系系模模式式的的主主关关系系键键。但但在在进进行行数数据据库库的的操操作作时时,会会出出现现以以下下几几方方面的问题。面的问题。1. 1. 数数据据冗冗余余。每每个个系系名名和和系系主主任任的的名名字字存存储储的的次次数数等等于于该该系系的的学学生生人人数数乘乘以以每每个个学学生生选选修修的的课课程程门门数数,同同时时学学生生的的姓姓名名、年年龄龄也也都都要要重重复复存存储储多多次次,数数据据的的冗冗余余度度很很大大,浪费了存储空间。浪费了存储空间。山毗攒泻棕辗网迟漳天呛锅扩慕迂穿丘泪象蓖竖旋勿宪谰雪惕饶操祁囱颗第5章关系数据库的规范化设计第5章关系数据库的规范化设计2. 2. 插插入入异异常常。如如果果某某个个新新系系没没有有招招生生,尚尚无无学学生生时时,则则系系名名和和系系主主任任的的信信息息无无法法插插入入到数据库中。到数据库中。v因因为为在在这这个个关关系系模模式式中中,(SNO,CNO)是是主主关关系系键键。根根据据关关系系的的实实体体完完整整性性约约束束,主主关关系系键键的的值值不不能能为为空空,而而这这时时没没有有学学生生,SNOSNO和和CNOCNO均均无无值,因此不能进行插入操作值,因此不能进行插入操作。v另另外外,当当某某个个学学生生尚尚未未选选课课,即即CNOCNO未未知知,实实体体完完整整性性约约束束还还规规定定,主主关关系系键键的的值值不不能能部部分分为空,同样不能进行插入操作为空,同样不能进行插入操作徽死阅弥危秉醋宿郎咱惭簇蚤呼扔拢强顿明戌醇蚊互溉撞匈呆遍联镰蹿址第5章关系数据库的规范化设计第5章关系数据库的规范化设计3. 3. 删除异常删除异常某某系系学学生生全全部部毕毕业业而而没没有有招招生生时时,删删除除全全部部学学生生的的记记录录则则系系名名、系系主主任任也也随随之之删删除除,而而这这个个系系依依然然存存在在,在在数数据据库库中中却无法找到该系的信息。却无法找到该系的信息。另另外外,如如果果某某个个学学生生不不再再选选修修C1C1课课程程,本本应应该该只只删删去去C1C1,但但C1C1是是主主关关系系键键的的一一部部分分,为为保保证证实实体体完完整整性性,必必须须将将整整个个元组一起删掉,这样,有关该学生的其它信息也随之丢失。元组一起删掉,这样,有关该学生的其它信息也随之丢失。4. 4. 更新异常更新异常如果学生改名,则该学生的所有记录都要逐一修改如果学生改名,则该学生的所有记录都要逐一修改SNSN;又又如如某某系系更更换换系系主主任任,则则属属于于该该系系的的学学生生记记录录都都要要修修改改MNMN的的内内容容,稍稍有有不不慎慎,就就有有可可能能漏漏改改某某些些记记录录,这这就就会会造造成成数数据的不一致性,破坏了数据的完整性。据的不一致性,破坏了数据的完整性。酿甚那笑蕉弟赂蹲剪灾微匡工炔嫉井巧瞒敷逮拈挝三疹例亩褥上骂释宪维第5章关系数据库的规范化设计第5章关系数据库的规范化设计v由由于于存存在在以以上上问问题题,我我们们说说,SCDSCD是是一一个个不不好好的的关关系系模模式式。产产生生上上述述问问题题的的原原因因,直直观观地地说说,是是因因为为关关系系中中“包包罗罗万象万象”,内容太杂了。,内容太杂了。v那么,怎样才能得到一个好的关系模式呢?那么,怎样才能得到一个好的关系模式呢?v我我们们把把关关系系模模式式SCDSCD分分解解为为下下面面三三个个结结构构简简单单的的关关系系模模式式,如图如图5.25.2所示。所示。学生关系学生关系 S (SNO,SN,AGE,DEPT) S (SNO,SN,AGE,DEPT)选课关系选课关系 SC (SNO,CNO,SCORE) SC (SNO,CNO,SCORE)系关系系关系 D (DEPT,MN) D (DEPT,MN)誉玻瞎可析昌乎阜措尉谁砰悬履篙夫败熔挣卑迁裸蛙怪壬尽沂犁录胳孝脯第5章关系数据库的规范化设计第5章关系数据库的规范化设计S SCS SCS SCS SCSNOSNOSNSNAGEAGEDEPTDEPTSNOSNOCNOCNOSCORESCORES1赵亦17计算机S1S1C1C19090S2钱尔18信息S1C285S3孙珊20信息S2C557S4李思21自动化S2C680S2C7D D D DS2C570DEPTDEPTMNMNS3C10计算机计算机刘伟刘伟S3C270信息信息王平王平S3C485自动化自动化刘伟刘伟S4C193图图5.2 5.2 分解后的关系模式分解后的关系模式 檀棕毁即呜疼曙卑误侮徊爸葛遁朔咀依仔寿骸窗汉天耻害缠故岩钙朗吝难第5章关系数据库的规范化设计第5章关系数据库的规范化设计n在以上三个关系模式中,实现了信息的某在以上三个关系模式中,实现了信息的某种程度的分离种程度的分离S S中存储学生基本信息,与所选课程及系主任中存储学生基本信息,与所选课程及系主任无关;无关;D D中存储系的有关信息,与学生无关;中存储系的有关信息,与学生无关;SCSC中存储学生选课的信息,而与所学生及系中存储学生选课的信息,而与所学生及系的有关信息无关。的有关信息无关。巩瘟研寞辱尸斟胰我扣飞饺锰焦奉扑涉弊卞乡契嘉箱峭毗树货届欣夷贩株第5章关系数据库的规范化设计第5章关系数据库的规范化设计n与与SCDSCD相比,分解为三个关系模式后,数据的相比,分解为三个关系模式后,数据的冗余度明显降低。冗余度明显降低。当新插入一个系时,只要在关系当新插入一个系时,只要在关系D D中添加一条记中添加一条记录。录。当某个学生尚未选课,只要在关系当某个学生尚未选课,只要在关系S S中添加一条中添加一条学生记录,而与选课关系无关,这就避免了学生记录,而与选课关系无关,这就避免了插入插入异常异常。当一个系的学生全部毕业时,只需在当一个系的学生全部毕业时,只需在S S中删除该中删除该系的全部学生记录,而关系系的全部学生记录,而关系D D中有关该系的信息中有关该系的信息仍然保留,从而不会引起仍然保留,从而不会引起删除异常删除异常。同时,由于数据冗余度的降低,数据没有重复存同时,由于数据冗余度的降低,数据没有重复存储,也不会引起储,也不会引起更新异常更新异常。 铂察毗蹲务妻应肾骸湃煌彻捍泊丘舀褐剩保瞧吉炭陌即缀润完戎膘屏渣遵第5章关系数据库的规范化设计第5章关系数据库的规范化设计n经经过过上上述述分分析析,我我们们说说分分解解后后的的关关系系模模式是一个好的关系数据库模式。式是一个好的关系数据库模式。n从从而而得得出出结结论论,一一个个好好的的关关系系模模式式应应该该具备以下四个条件:具备以下四个条件:1. 1. 尽可能少的数据冗余尽可能少的数据冗余。2. 2. 没有插入异常没有插入异常。3. 3. 没有删除异常没有删除异常。4. 4. 没有更新异常没有更新异常。 烦贸嘶兢洼不答砷荫坛遁锋婪武忧凭沼蛔蛊瞎绍奋靴他拴目盆仍版纤霓犊第5章关系数据库的规范化设计第5章关系数据库的规范化设计v但但要要注注意意,一一个个好好的的关关系系模模式式并并不不是是在在任任何何情情况况下下都都是是最优的最优的n比比如如查查询询某某个个学学生生选选修修课课程程名名及及所所在在系系的的系系主主任任时时,要要通通过过连连接接,而而连连接接所所需需要要的的系系统统开开销销非非常常大大,因因此此要以实际设计的目标出发进行设计要以实际设计的目标出发进行设计如何按照一定的规范设计关系模式,将结构复杂的关系如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是转变为好的关系数据库模式,这就是关系的规范化关系的规范化。我们要设计的关系模式中的各属性是相互依赖、相互制我们要设计的关系模式中的各属性是相互依赖、相互制约的,这样才构成了一个结构严谨的整体。约的,这样才构成了一个结构严谨的整体。因此在设计关模式时,必须从语义上分析这些因此在设计关模式时,必须从语义上分析这些依赖关系依赖关系。数据库模式的好坏和关系中各属性间的依赖关系有关,数据库模式的好坏和关系中各属性间的依赖关系有关,因此,我们先讨论属性间的依赖关系,然后再讨论关系因此,我们先讨论属性间的依赖关系,然后再讨论关系规范化理论。规范化理论。 叉街纽磐菜埔掠用澎半愿媳早葡攘忘买篇态儡皮骇珐澄讶鱼擅李瞻伸盲忆第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.2 5.2 函数依赖函数依赖5.2.15.2.1函数依赖的定义及性质函数依赖的定义及性质关关系系模模式式中中的的各各属属性性之之间间相相互互依依赖赖、相相互互制制约约的的联联系称为系称为数据依赖数据依赖。数据依赖一般分为数据依赖一般分为函数依赖函数依赖、多值依赖多值依赖和和连接依赖连接依赖。其中其中, ,函数依赖函数依赖是最重要的数据依赖。是最重要的数据依赖。函函数数依依赖赖(Functional Functional DependencyDependency)是是关关系系模模式式中属性之间的一种中属性之间的一种逻辑依赖关系逻辑依赖关系。藤藏诅噬颗跪奏钻失沙沥姜骆队纶狄吩矩毕摩瓮几翟讯讽瞪窟哼蝴刀涩珠第5章关系数据库的规范化设计第5章关系数据库的规范化设计v例例如如在在上上一一节节介介绍绍的的关关系系模模式式SCDSCD中中,SNOSNO与与SNSN、AGEAGE、DEPTDEPT之间都有一种依赖关系。之间都有一种依赖关系。v由由于于一一个个SNOSNO只只对对应应一一个个学学生生,而而一一个个学学生生只只能能属属于于一一个个系系,所所以以当当SNOSNO的的值值确确定定之之后后,SNSN,AGEAGE,DEPTDEPT的值也随之被唯一的确定了。的值也随之被唯一的确定了。v这这类类似似于于变变量量之之间间的的单单值值函函数数关关系系。设设单单值值函函数数Y=F(X)Y=F(X),自变量,自变量X X的值可以决定一个唯一的函数值的值可以决定一个唯一的函数值Y Y。v在在这这里里,我我们们说说SNOSNO决决定定函函数数(SNSN,AGEAGE,DEPTDEPT),或者说(或者说(SNSN,AGEAGE,DEPTDEPT)函数依赖于)函数依赖于SNOSNO5.2 5.2 函数依赖函数依赖脾侩联锻缺砰舞简骑尤婉葬慌杜冕上揭瞎缮尊崩柞竞搬现羌逃你淬膜臻左第5章关系数据库的规范化设计第5章关系数据库的规范化设计定定义义5.15.1设设关关系系模模式式R(UR(U,F)F),U U是是属属性性全全集集,F F是是U U上上的的函函数数依依赖赖集集,X X和和Y Y是是U U的的子子集集,如如果果对对于于R(U)R(U)的的任任意意一一个个可可能能的的关关系系r r,对对于于X X的的每每一一个个具具体体值值,Y Y都都有有唯唯一一的的具具体体值值与与之之对对应应,则则称称X X决决定定函函数数Y Y,或或Y Y函函数依赖于数依赖于X X,记作,记作XYXY。我们称我们称X X为为决定因素决定因素,Y Y为为依赖因素依赖因素。当当Y Y不函数依赖于不函数依赖于X X时,记作:时,记作:X YX Y。当当XYXY且且YXYX时,则记作:时,则记作: X Y X Y。5.2.1.15.2.1.1 函数依赖的定义函数依赖的定义逛耸九习曝咙泰瞩憎巨裸敌衡涧竞垒脑着移与褒译菇职椎戒谓挥潜掇插霞第5章关系数据库的规范化设计第5章关系数据库的规范化设计v对于关系模式对于关系模式SCDSCDU=SNO,SN,AGE,DEPT,MN,CNO,SCOREU=SNO,SN,AGE,DEPT,MN,CNO,SCOREF=SNOSNF=SNOSN,SNOAGESNOAGE,SNODEPTSNODEPTv一一个个SNOSNO有有多多个个SCORESCORE的的值值与与其其对对应应,因因此此SCORESCORE不不能能唯唯一一地地确确定定,即即SCORESCORE不不能能函函数数依依赖赖于于SNOSNO,所所以有:以有:SNO SCORESNO SCORE。v但是但是SCORESCORE可以被(可以被(SNOSNO,CNOCNO)唯一地确定。所以)唯一地确定。所以可表示为:(可表示为:(SNOSNO,CNOCNO)SCORESCORE。 扭炼芝脯瑶科寅饥就泅蠢戊癌儿扎展涧览央替咎龄东旬肯释法写很蛤踊阁第5章关系数据库的规范化设计第5章关系数据库的规范化设计函数依赖函数依赖检验:检验: AC? CA? ABD?辨识:辨识:n满足依赖的关系满足依赖的关系:依赖在模式的某个关系实例上成立:依赖在模式的某个关系实例上成立n模式上成立的依赖模式上成立的依赖:依赖在模式的所有关系实例上都:依赖在模式的所有关系实例上都成立成立ABCDa1b1c1d1a1b2c1d2a2b2c2d2a2b3c2d3a3b3c2d4插男援膘汐脐疫碍睬各螺插辽想播拣除琼卓苛诧峻梢削颊常耶先岁参焦顽第5章关系数据库的规范化设计第5章关系数据库的规范化设计ABC123423533练习练习绣挑炒典绑演沪出审滦只佐赴档祸绊弛孵絮熏谅褒画帝税烟戏弦烷琐谗俩第5章关系数据库的规范化设计第5章关系数据库的规范化设计有关函数依赖的几点说明:有关函数依赖的几点说明:1 1平凡的函数依赖与非平凡的函数依赖平凡的函数依赖与非平凡的函数依赖。当当属属性性集集Y Y是是属属性性集集X X的的子子集集时时,则则必必然然存存在在着着函函数数依依赖赖XY,XY,这这种种类类型型的的函函数数依依赖赖称称为为平平凡凡的的函数依赖。函数依赖。如如果果Y Y不不是是X X的的子子集集,则则称称XYXY为为非非平平凡凡的的函函数数依赖。依赖。若若不不特特别别声声明明,我我们们讨讨论论的的都都是是非非平平凡凡的的函函数数依赖依赖逢掳痴毙弊上伊狐捅抄这拥禾厌苟图分人央采奉吮熟硕猿泽蛇轿臃攒塘豁第5章关系数据库的规范化设计第5章关系数据库的规范化设计2 2函数依赖是语义范畴的概念函数依赖是语义范畴的概念。我我们们只只能能根根据据语语义义来来确确定定一一个个函函数数依依赖赖,而而不不能能按照其形式化定义来证明一个函数依赖是否成立。按照其形式化定义来证明一个函数依赖是否成立。例例如如,对对于于关关系系模模式式S S,当当学学生生不不存存在在重重名名的的情情况下,可以得到况下,可以得到:SNAGESNAGESNDEPTSNDEPT这种函数依赖关系,必须是在没有重名的学生条这种函数依赖关系,必须是在没有重名的学生条件下才成立的,否则就不存在函数依赖了。件下才成立的,否则就不存在函数依赖了。所以函数依赖反映了一种语义完整性约束所以函数依赖反映了一种语义完整性约束姿靠扣业蜡巢舞桐域附过酵蜘追酶寐错讥牺忻榔伦饲泻蔡楼吾刷钓炯哨桶第5章关系数据库的规范化设计第5章关系数据库的规范化设计3 3函数依赖与属性之间的联系类型有关函数依赖与属性之间的联系类型有关。(1 1)在在一一个个关关系系模模式式中中,如如果果属属性性X X与与Y Y有有1:11:1联联系系时时,则则存存在在函函数数依依赖赖XYXY,YXYX,即即X YX Y。 例如,当学生无重名时,例如,当学生无重名时,SNO SNSNO SN(2 2)如如果果属属性性X X与与Y Y有有1:m1:m的的联联系系时时,则则只只存存在函数依赖在函数依赖XYXY。例例如如,SNOSNO与与AGEAGE,DEPTDEPT之之间间均均为为1:m1:m联联系系,所所以以有有SNOAGESNOAGE,SNODEPTSNODEPT牙蓟晚代摧宅般攀馅希捡裳弓期由甜膨嚼闷茅雏牺投卤颂要乒谬穗操寡册第5章关系数据库的规范化设计第5章关系数据库的规范化设计(3 3)如如果果属属性性X X与与Y Y有有m: m: n n的的联联系系时时,则则X X与与Y Y之间不存在任何函数依赖关系。之间不存在任何函数依赖关系。 例例如如,一一个个学学生生可可以以选选修修多多门门课课程程,一一门门课课程程又又可可以以为为多多个个学学生生选选修修,所所以以SNOSNO与与CNOCNO之之间间不存在函数依赖关系不存在函数依赖关系。v由于函数依赖与属性之间的联系类型有关,由于函数依赖与属性之间的联系类型有关,所以在确定属性间的函数依赖关系时,可所以在确定属性间的函数依赖关系时,可以从分析以从分析属性间的联系类型属性间的联系类型入手,便可确入手,便可确定属性间的函数依赖定属性间的函数依赖舒躇菱减拆语拈显汇发仙巧稻择梢挽式赠津衙抵遵橡寐挫傍铃痉递协纤阂第5章关系数据库的规范化设计第5章关系数据库的规范化设计4 4函数依赖关系的存在与时间无关函数依赖关系的存在与时间无关。因为函数依赖是指关系中的所有元组应该满足的约束因为函数依赖是指关系中的所有元组应该满足的约束条件,而不是指关系中某个或某些元组所满足的约束条件,而不是指关系中某个或某些元组所满足的约束条件。条件。当关系中的元组增加、删除或更新后都不能破坏这种当关系中的元组增加、删除或更新后都不能破坏这种函数依赖。函数依赖。因此,必须根据语义来确定属性之间的函数依赖,而因此,必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数据值来判断。不能单凭某一时刻关系中的实际数据值来判断。例如,对于关系模式例如,对于关系模式S,假设没有给出无重名的学生这,假设没有给出无重名的学生这种语义规定,则即使当前关系中没有重名的记录,也种语义规定,则即使当前关系中没有重名的记录,也只能存在函数依赖只能存在函数依赖SNOSN,而不能存在函数依赖,而不能存在函数依赖SNSNO,因为如果新增加一个重名的学生,函数依,因为如果新增加一个重名的学生,函数依赖赖SNSNO必然不成立。必然不成立。所以函数依赖关系的存在所以函数依赖关系的存在与时间无关与时间无关,而只与数据之,而只与数据之间的间的语义规定语义规定有关。有关。 炸钳敬漳瘁彰齿稀逝匀勤换柯摄锦颜莹厕删形奈罪棘鹰唉镇容淳屑微品贝第5章关系数据库的规范化设计第5章关系数据库的规范化设计5 5函数依赖可以保证关系分解的无损连接性函数依赖可以保证关系分解的无损连接性。设设R R(X X,Y Y,Z Z),X X,Y Y,Z Z为为不不相相交交的的属属性性集集合合,如如果果XYXY或或XZ,XZ,则有则有R(XR(X,Y Y,Z)=RXZ)=RX,Y RXY RX,ZZ,其其中中,RXRX,YY表表示示关关系系R R在在属属性性(X X,Y Y)上上的的投投影影,即即R R等等于于其其投投影影在在X X上上的的自自然然连连接接,这这样样便便保保证证了了关关系系R R分分解解后不会丢失原有的信息,称作后不会丢失原有的信息,称作关系分解的无损连接性关系分解的无损连接性。例如,对于关系模式例如,对于关系模式SCDSCD,有,有SNOSNO(SNSN,AGEAGE,DEPTDEPT,MNMN),),SCDSCD(SNOSNO,SNSN,AGEAGE,DEPTDEPT,MNMN,CNOCNO,SCORESCORE)=SCDSNO=SCDSNO,SNSN,AGEAGE,DEPTDEPT,MN SCDSNOMN SCDSNO,CNOCNO,SCORESCORE,也就是说,用其投影在,也就是说,用其投影在SNOSNO上的自然连接上的自然连接可复原关系模式可复原关系模式SCDSCD。这一性质非常重要,在后一节的这一性质非常重要,在后一节的关系规范化关系规范化中要用到。中要用到。 雅垄黔韭侨元扰追沦碳铸止骤蚜烹曰玛摈黍麦俗徊汀饲佳劈佩柜链鳖弧嘘第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.2.1.2 5.2.1.2 函数依赖的基本性质函数依赖的基本性质1 1投影性投影性根根据据平平凡凡的的函函数数依依赖赖的的定定义义可可知知,一一组组属属性性函数决定它的所有子集函数决定它的所有子集例例如如,在在关关系系SCDSCD中中,(SNOSNO,CNOCNO)SNOSNO和和(SNOSNO,CNOCNO)CNOCNO2 2扩张性扩张性若若XYXY且且WZWZ,则(,则(X X,W W)(Y Y,Z Z)例例如如,SNOSNO(SNSN,AGEAGE),DEPTMNDEPTMN,则则有有(SNOSNO,DEPTDEPT)(SNSN,AGEAGE,MNMN)内娠溅融殿瞧碎柠彩雹葫武挪盟休氢蜗尸抉补曾雁叼哆栓勿蛛抛吟话漂衔第5章关系数据库的规范化设计第5章关系数据库的规范化设计3 3合并性合并性若若XYXY且且XZXZ则必有则必有XX(Y Y,Z Z)。)。例例 如如 , 在在 关关 系系 SCDSCD中中 , SNOSNO( SN,AGESN,AGE) ,SNOSNO( DEPT,MNDEPT,MN) , 则则 有有 SNOSNO( SN,AGESN,AGE, DEPTDEPT,MNMN)。4 4分解性分解性若若XX(Y Y,Z Z), ,则则XYXY且且XZXZ。很很显显然然,分分解解性性为为合合并性的逆过程。并性的逆过程。由合并性和分解性,很容易得到以下事实:由合并性和分解性,很容易得到以下事实:XAXA1 1,A A2 2,,A,An n成立的充分必要条件是成立的充分必要条件是XAXAi i(i=1,2,ni=1,2,n)成立)成立。 川返荫盖翌叶菱杉姓惋撵亏者镶层轻纪箱驶霉琴操耶兴把级躺熬斯淮惨颈第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.2.2 5.2.2 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖定定义义5.25.2 设设关关系系模模式式R(U)R(U),U U是是属属性性全全集集,X X和和Y Y是是U U的子集的子集n如如果果XYXY,并并且且对对于于X X的的任任何何一一个个真真子子集集X,X,都都有有X X Y Y,则则称称Y Y对对X X完完全全函函数数依依赖赖(Full Functional Dependency),记作,记作 X Y X Y。n如如果果对对X X的的某某个个真真子子集集XX,有有XYXY,则则称称Y Y对对部部分分函函数数依依赖赖(Partial Functional Dependency),记作记作X YX Y。n例例如如,在在关关系系模模式式SCDSCD中中,因因为为SNO SNO SCORESCORE,且且CNO CNO SCORESCORE,所所以以有有:(SNOSNO,CNOCNO) SCORE SCORE 。n而而SNOAGESNOAGE,所以(,所以(SNOSNO,CNOCNO) AGE AGE。铬沙雌浅鹃纯长倾鳖捂予帖蜘菏契髓德枚耕苹谜鲁舜妙阶垫骏忍愤耿蛋赏第5章关系数据库的规范化设计第5章关系数据库的规范化设计n由定义由定义5.25.2可知:可知:只有当决定因素是组合属性时,讨论部分函数只有当决定因素是组合属性时,讨论部分函数依赖才有意义,依赖才有意义,当决定因素是单属性时,只能是完全函数依赖。当决定因素是单属性时,只能是完全函数依赖。例如,在关系模式例如,在关系模式S S(SNOSNO,SNSN,AGEAGE,DEPTDEPT),),决定因素为单属性决定因素为单属性SNOSNO,有,有SNOSNO(SNSN,AGEAGE,DEPTDEPT),不存在部分函数依赖),不存在部分函数依赖贡喳增捎参滚侮搽伊擞柯罪绿鼻缀阀贵踞桂奴雨抖藩器废句秧萧筏氖拥抨第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.2.3 5.2.3 传递函数依赖传递函数依赖定定义义5.35.3 设设有有关关系系模模式式R R(U U),U U是是属属性性全全集集,X X,Y Y,Z Z是是U U的子集,的子集,若若XYXY,但但Y Y X X,而而YZYZ(Y Y X X,Z Z Y Y),则则称称Z Z对对X X传传递递函函数数依依赖赖(Transitive Functional Dependency),记作:,记作:X X Z Z。如如果果YXYX,则则X X Y Y,这这时时称称Z Z对对X X直直接接函函数数依依赖赖,而不是传递函数依赖。而不是传递函数依赖。例例如如,在在关关系系模模式式SCDSCD中中,SNODEPTNSNODEPTN,但但DEPTN DEPTN SNOSNO,而而DEPTNMNDEPTNMN,则则有有SNO SNO MNMN。当当学学生生不不存存在在重重名名的的情情况况下下,有有SNOSNSNOSN,SNSNOSNSNO,SNO SNO SNSN,SNDEPTNSNDEPTN,这这时时DEPTNDEPTN对对SNOSNO是是直直接接函函数数依依赖赖,而不是传递函数依赖,而不是传递函数依赖忱锋怕忙和嚎灰鸿壬楚晰京停庇驮悼铡绰辨箕厂瞒匣忿客夸曹汰吱紫见藉第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.3 范范 式式 规范化的规范化的基本思想基本思想是消除关系模式中的数据冗余,消除数据依是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除时发生异常现象赖中的不合适的部分,解决数据插入、删除时发生异常现象这就要求关系数据库设计出来的关系模式要满足一定的条件。这就要求关系数据库设计出来的关系模式要满足一定的条件。我们把关系数据库的规范化过程中为不同程度的规范化要求设我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为立的不同标准称为范式范式(Normal FormNormal Form)。)。由于规范化的程度不同,就产生了由于规范化的程度不同,就产生了不同的范式不同的范式。 满足最基本规范化要求的关系模式叫满足最基本规范化要求的关系模式叫第一范式第一范式, 在第一范式中进一步满足一些要求为在第一范式中进一步满足一些要求为第二范式第二范式, 以此类推就产生了以此类推就产生了第三范式第三范式等概念。等概念。每种范式都规定了一些限制约束条件。每种范式都规定了一些限制约束条件。 进炕厉舔但遭盟惶哑倒等航键窥舞爽玩球吁雇我弃獭市弦琐效趋施兹砰磁第5章关系数据库的规范化设计第5章关系数据库的规范化设计n范式的概念最早由范式的概念最早由E.F.CoddE.F.Codd提出。提出。n从从19711971年年起起,CoddCodd相相继继提提出出了了关关系系的的三三级级规规范范化化形形式式,即即第第一一范范式式(1NF1NF)、第第二二范范式式(2NF2NF)、第三范式()、第三范式(3NF3NF)。)。n19741974年年,CoddCodd和和BoyceBoyce以以共共同同提提出出了了一一个个新新的的范范式式的的概概念念,即即Boyce-CoddBoyce-Codd范范式式,简简称称BCBC范范式。式。n19761976年年FaginFagin提出了第四范式提出了第四范式( 4NF)( 4NF)n后后 来来 又又 有有 人人 定定 义义 了了 第第 五五 范范 式式(ProjectJoinNF)(ProjectJoinNF)n各个范式之间的联系可以表示为:各个范式之间的联系可以表示为:n5NF 4NF BCNF 3NF 2NF 1NF5NF 4NF BCNF 3NF 2NF 1NF 离宙由迄哆内呀萍俭抖酬贿哆缝造正啦砒馋陕宙伟泣趁尼摧若驾没堑硅甭第5章关系数据库的规范化设计第5章关系数据库的规范化设计图图5.3 5.3 各种范式之间的关系各种范式之间的关系桃忿屋骨鬼毫碍巢秋欢私恳阴灵既创唐隶稳求菱离牲让菲善蚂是颠象竿愁第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.3.1 5.3.1 第一范式第一范式n第第一一范范式式(First Normal Form)是是最最基基本本的的规规范形式,即关系中每个属性都是不可再分的简单项范形式,即关系中每个属性都是不可再分的简单项定定义义5.45.4 如如果果关关系系模模式式R R,其其所所有有的的属属性性均均为为简简单单属属性性,即即每每个个属属性性都都城城是是不不可可再再分分的的,则则称称R R属属于于第一范式,简称第一范式,简称1NF1NF,记作,记作R R 1NF1NF。在第在第3 3章讨论关系的性质时,我们把满足这个条件的关系章讨论关系的性质时,我们把满足这个条件的关系称为称为规范化关系规范化关系在关系数据库系统中只讨论规范化的关系,凡是非规范化在关系数据库系统中只讨论规范化的关系,凡是非规范化的关系模式必须化成规范化的关系。的关系模式必须化成规范化的关系。在非规范化的关系中去掉组合项就能化成规范化的关系。在非规范化的关系中去掉组合项就能化成规范化的关系。每个规范化的关系都属于每个规范化的关系都属于1NF1NF,这也是它之所以称为,这也是它之所以称为“第第一一”的原因。的原因。 甩邵衰腊谷淆宰吁户趋箱亡亭元射庶戎粗浸水资顶搬闹熙黔影丙煎虞稻乓第5章关系数据库的规范化设计第5章关系数据库的规范化设计1NF分量是否需要再分,与具体应用有关。如果用到分量是否需要再分,与具体应用有关。如果用到值的一部分,则需要进一步分割值的一部分,则需要进一步分割 如果只是查询出生日期,则它满足如果只是查询出生日期,则它满足1NF如果查询两人生日是否相同,则只比较月、日,如果查询两人生日是否相同,则只比较月、日,需要将生日分解,就不满足需要将生日分解,就不满足1NF如果比较两人的生肖呢?如果比较两人的生肖呢?姓名姓名生日生日王军王军78.7.10张立张立79.7.10李明李明80.3.28姓名姓名年年月日月日王军王军687.10张立张立697.10李明李明803.28遥凄页虫绷迟孩扫币默灿瘪堰顶给惭憎垂翘拖勃潦侗哄蒂矣靠袄扳汛堡莫第5章关系数据库的规范化设计第5章关系数据库的规范化设计在在5.15.1节节中中给给出出的的关关系系模模式式SCDSCD属属于于第第一一范范式式,但但其其具具有有大大量量的的数数据据冗冗余余,具具有有插插入异常、删除异常、更新异常等弊端。入异常、删除异常、更新异常等弊端。为什么会存在这种问题呢?为什么会存在这种问题呢?让让我我们们分分析析一一下下SCDSCD中中的的函函数数依依赖赖关关系系,它它的的关关系系键键是是(SNOSNO,CNOCNO)的的属属性性组组合合,所以有:所以有: n(SNOSNO,CNOCNO) SCORE SCOREnSNOSNSNOSN,(,(SNOSNO,CNOCNO) SN SNnSNOAGESNOAGE,(,(SNOSNO,CNOCNO) AGE AGEnSNODEPTSNODEPT,(,(SNOSNO,CNOCNO) DEPT DEPTnSNO MNSNO MN,(,(SNOSNO,CNOCNO) MN MN 挽究驴苹渴绽漆应爬藉从呈女黑搐总攒嫉疾呈浇退搞累扬错阻看跳峡产仿第5章关系数据库的规范化设计第5章关系数据库的规范化设计我们可以用函数信赖图表示以上函数依赖关系,如图我们可以用函数信赖图表示以上函数依赖关系,如图5.45.4所示。所示。 SNSNMNMNscorescore图图图图5.4 SCD5.4 SCD5.4 SCD5.4 SCD中的函数依赖关系中的函数依赖关系中的函数依赖关系中的函数依赖关系SNOSNOCNOCNOPPf由此可见,在由此可见,在SCDSCD中,既存在完全函数依赖,又存在部分函数中,既存在完全函数依赖,又存在部分函数依赖和传递函数依赖。依赖和传递函数依赖。这种情况往往在数据库中是不允许的,也正是由于关系中存在这种情况往往在数据库中是不允许的,也正是由于关系中存在着复杂的函数依赖,才导致数据操作中出现了种弊端。着复杂的函数依赖,才导致数据操作中出现了种弊端。克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。的函数依赖关系,向更高一级的范式进行转换。粱厉窟土刽宽羡革蛙位员双供哪块九的谤晃共宠签雷扩铁鞘孵梁墙思睹炙第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.3.2 5.3.2 第二范式第二范式v定定义义5.55.5 如如果果关关系系模模式式R R 1NF1NF,且且每每个个非非主主属属性性都都完完全全函函数数依依赖赖于于R R的的每每个个关关系系键键,则则称称R R属属于于第第二二范范式式(Second Normal Form),简称,简称2NF2NF,记作,记作R R 2NF2NF。在关系模式在关系模式SCDSCD中,中,SNOSNO,CNOCNO为主属性,为主属性,AGEAGE,DEPTDEPT,MNMN,MNMN,SCORESCORE均为非主属性,经上述分析,存在非主属性对关均为非主属性,经上述分析,存在非主属性对关系键的部分函数依赖,所以系键的部分函数依赖,所以SCD 2NFSCD 2NF。而如图而如图5.25.2所示的由所示的由SCDSCD分解的三个关系模式分解的三个关系模式S S,D D,SCSC,其,其中中S S的关系键为的关系键为SNOSNO,D D的关系键为的关系键为DEPTDEPT,都是单属性,不可,都是单属性,不可能存在部分函数依赖。能存在部分函数依赖。而对于而对于SCSC,(,(SNOSNO,CNOCNO) SCORE SCORE。所以。所以SCDSCD分解后,消分解后,消除了非主属性对关系键的部分函数依赖,除了非主属性对关系键的部分函数依赖,S S,D D,SCSC均属于均属于2NF2NF。 蘑巳群殴孔钒秦剔饲适拂贩甄峻嚣便鞋破轧檬揽槽毯省扦如绦嘿兴买栽滤第5章关系数据库的规范化设计第5章关系数据库的规范化设计n又又如如在在第第3 3章章中中,讲讲述述全全码码的的概概念念时时给给出出的的关系模式关系模式TCSTCS(T T,C C,S S),),一一个个教教师师可可以以讲讲授授多多门门课课程程,一一门门课课程程可可以以为为多个教师讲授,多个教师讲授,同同样样一一个个学学生生可可以以选选听听多多门门课课程程,一一门门课课程程可可以为多个学生选听,以为多个学生选听,(T,C,S)(T,C,S)三三个个属属性性的的组组合合是是关关系系键键,T,C,ST,C,S都都是是主主属属性性,而而无无非非主主属属性性,所所以以也也就就不不可可能能存存在在非主属性对关系键的部分函数依赖,非主属性对关系键的部分函数依赖,TCSTCS 2NF2NF。盼酵敖吾斩彬抑培擦胯己敖尹扑炮尿亿驳猿缀圾形闷透噪献点岛氓去徒犊第5章关系数据库的规范化设计第5章关系数据库的规范化设计n经以上分析,可以得到两个结论:经以上分析,可以得到两个结论:1 1从从1NF1NF关关系系中中消消除除非非主主属属性性对对关关系系键键的的部部分函数依赖,则可得到分函数依赖,则可得到2NF2NF关系关系2 2如如果果R R的的关关系系键键为为单单属属性性,或或R R的的全全体体属属性均为主属性,则性均为主属性,则R R 2NF2NF槐黍滥啤兄少风肆元感胀干程贸姜灌古铡菱庙樟院恫趟桨抨挨鸯侄销用抒第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.3.2.2 2NF5.3.2.2 2NF规范化规范化2NF2NF规规范范化化是是指指把把1NF1NF关关系系模模式式通通过过投投影影分分解解转转换换成成2NF2NF关系模式的集合。关系模式的集合。分分解解时时遵遵循循的的基基本本原原则则就就是是“一一事事一一地地”,让让一一个个关关系系只只描描述述一一个个实实体体或或者者实实体体间间的的联联系系。如如果果多于一个实体或联系,则进行投影分解。多于一个实体或联系,则进行投影分解。下下面面以以关关系系模模式式SCDSCD为为例例,来来说说明明2NF2NF规规范范化化的的过过程程贪肮木误精门乱刑箍沛轩坍秒腕区泣舷尉客唾摈袱规喧汞星吻拈馏箱企簧第5章关系数据库的规范化设计第5章关系数据库的规范化设计v例例5.15.1 将将SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)规规范范到到2NF2NF。由由SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,(,(SNOSNO,CNOCNO) SCORESCORE,可以判断,关系,可以判断,关系SCDSCD至少描述了两个实体,至少描述了两个实体,一个为一个为学生实体学生实体,属性有,属性有SNOSNO、SNSN、AGEAGE、DEPTDEPT、MNMN;另一个是另一个是学生与课程学生与课程的联系(的联系(选课选课),属性有),属性有SNOSNO、CNOCNO和和SCORESCORE。根据分解的原则,我们可以将根据分解的原则,我们可以将SCDSCD分解成如下两个分解成如下两个关系,如图关系,如图5.55.5所示所示近眷嗅源绕谱迄忽韦冶扑实女驳栽灾说詹氧奢嚎顿鹿骸煮夫南吊辑哼赦沪第5章关系数据库的规范化设计第5章关系数据库的规范化设计SNOSNOSNSNAGEAGEDEPTDEPTMNMNS1赵亦17计算机刘伟S2钱尔18信息王平S3孙珊20信息王平S4李思21自动化刘伟SCSC SNOSNOCNOCNOSCORESCORES1C190S1C285S2C557S2C680S2C7S2C570S3C10S3C270S3C485S4C193图图5.5 5.5 关系关系SDSD和和SCSCSDSD菩塞窝宠区条袜枣祖墒串改座倚耍悲砷缅雕镐播佯藤遍证完柜计欢骤勺苍第5章关系数据库的规范化设计第5章关系数据库的规范化设计对于分解后的两个关系对于分解后的两个关系SDSD和和SCSC,主键分别为,主键分别为SNOSNO和(和(SNOSNO,CNOCNO),非主属性对主键完全函数依赖。因此,),非主属性对主键完全函数依赖。因此,SDSD 2NF2NF,SCSC 2NF2NF,而且前面已经讨论,而且前面已经讨论,SCDSCD的这种分解的这种分解没有丢失任何信息,具有无损连接性。没有丢失任何信息,具有无损连接性。分解后,分解后,SDSD和和SCSC的函数依赖分别如图的函数依赖分别如图5.65.6和和5.75.7所示。所示。 SNOSNOSNSNSNOSNOCNOCNOSCORESCOREAGEAGEDEPTDEPTMNMN图图5.6 SD5.6 SD中的函数依赖关系中的函数依赖关系 图图5.7 SC5.7 SC中的函数依赖关系中的函数依赖关系 诱胡凡痊区晶济逝诈胚桓躁篓瘤邮参坠债姜顷邻肪酶厨浦姓逼狠晌毛吴府第5章关系数据库的规范化设计第5章关系数据库的规范化设计分析图中分析图中SDSD和和SCSC中的数据,可以看出,它们存储中的数据,可以看出,它们存储的冗余度比关系模式的冗余度比关系模式SCDSCD有了较大辐度的降低有了较大辐度的降低学生的姓名、年龄不需要重复存储多次。这样便学生的姓名、年龄不需要重复存储多次。这样便可在一定程度上避免数据更新所造成的数据不一可在一定程度上避免数据更新所造成的数据不一致性的问题。致性的问题。由于把学生的基本信息与选课信息分开存储,则由于把学生的基本信息与选课信息分开存储,则学生基本信息因没选课而不能插入的问题得到了学生基本信息因没选课而不能插入的问题得到了解决,插入异常现象得到了部分改善。解决,插入异常现象得到了部分改善。同样,如果某个学生不再选修同样,如果某个学生不再选修C1C1课程,只在选课课程,只在选课关系关系SCSC中删去该该学生选修中删去该该学生选修C1C1的记录即可,而的记录即可,而SDSD中有关该学生的其它信息不会受到任何影响,也中有关该学生的其它信息不会受到任何影响,也解决了部分删除异常问题。解决了部分删除异常问题。因此可以说关系模式因此可以说关系模式SDSD和和SCSC在性能上比在性能上比SCDSCD有了有了显著提高。显著提高。 音长酪拆拈灌糙淮淄究尚仑敖酿韧卞喀霖顶模狞焙蹲牵坊锤锦穆廖矮按工第5章关系数据库的规范化设计第5章关系数据库的规范化设计1.1.2NF2NF规范化的规范化的形式化描述形式化描述2.2.设设关关系系模模式式R R(X X,Y Y,Z Z),R R 1NF1NF,但但R R 2NF2NF,其其中中,X X是是键键属属性性,Y Y,Z Z是是非非键键属属性性,且且存存在在部部分分函函数数依依赖赖,X X Y Y。设设X X可可表表示示为为X1X1、X2X2,其其中中X1 X1 Y Y。则则R R(X X,Y Y,Z Z)可可以以分分解解为为RX1RX1,YY和和RXRX,ZZ。3.3.因因为为X1YX1Y,所所以以R(XR(X,Y Y,Z)=RX1Z)=RX1,Y Y RX1RX1,X2X2,Z=RX1Z=RX1,Y Y RXRX,ZZ,即即R R等等于于其其投投影影RX1RX1,YY和和XX,ZZ在在X1X1上上的的自自然然连连接接,R R的的分分解解具有具有无损连接性无损连接性。4.4.由于由于X1 YX1 Y,因此,因此RX1RX1,YY 2NF2NF。若。若RXRX,Z Z 2NF 2NF,可以按照上述方法继续进行投影分解,可以按照上述方法继续进行投影分解,直到将直到将RXRX,ZZ分解为属于分解为属于2NF2NF关系的集合,且这关系的集合,且这种分解必定是有限的。种分解必定是有限的。 托箕躲柄捉修虏潦涛士鹃肯弄夺逼敖汀霓毁椅拱孩绸痈弊坑碰他搓娄怕宰第5章关系数据库的规范化设计第5章关系数据库的规范化设计v2NF2NF的缺点的缺点1 1数数据据冗冗余余。每每个个系系名名和和系系主主任任的的名名字字存存储储的的次次数数等等于该系的学生人数。于该系的学生人数。2 2插插入入异异常常。当当一一个个新新系系没没有有招招生生时时,有有关关该该系系的的信信息无法插入。息无法插入。3 3删删除除异异常常。某某系系学学生生全全部部毕毕业业而而没没有有招招生生时时,删删除除全部学生的记录也随之删除了该系的有关信息。全部学生的记录也随之删除了该系的有关信息。4 4更更新新异异常常。更更换换系系主主任任时时,仍仍需需改改动动较较多多的的学学生生记记录录。之所以存在这些问题,是由于在之所以存在这些问题,是由于在SCDSCD中存在着中存在着非主属性非主属性对对主键的主键的传递依赖传递依赖。分析分析SCDSCD中的函数依赖关系,中的函数依赖关系,SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,DEPTMNDEPTMN,SNO MNSNO MN,非主属性,非主属性MNMN对主键对主键SNOSNO传递依赖传递依赖夹运赎惮缺吵哪类各伤拔雾秸叛奠蒸灌套帐枪粱悦盐骆鹃臆烫穷瞳椽管朱第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.3.3 5.3.3 第三范式第三范式定定义义5.65.6 如如果果关关系系模模式式R R 2NF2NF,且且每每个个非非主主属属性性都都不不传传递递依依赖赖于于R R的的每每个个关关系系键键,则则称称R R属属于于第第三三范范式式(Third Normal Form),简称,简称3NF3NF,记作,记作R R 3NF3NF。n第三范式具有如下性质:第三范式具有如下性质:1 1如果如果R R 3NF3NF,则,则R R也是也是2NF2NF。n证明:证明:3NF3NF的另一种等价描述是:对于关系模式的另一种等价描述是:对于关系模式R R,不存,不存在如下条件的函数依赖,在如下条件的函数依赖,XYXY(Y XY X),),YZYZ,其中,其中X X是键属性,是键属性,Y Y是任意属性组,是任意属性组,Z Z是非主属性,是非主属性,Z YZ Y。在此。在此定义下,令定义下,令Y XY X,Y Y是是X X的真子集,则以上条件的真子集,则以上条件XYXY,YZYZ就变成了非主属性对键就变成了非主属性对键X X的部分函数依赖,的部分函数依赖,X ZX Z。但由于但由于3NF3NF中不存在这样的函数依赖,所以中不存在这样的函数依赖,所以R R中不可能存中不可能存在非主属性对键在非主属性对键X X的部分函数依赖,的部分函数依赖,R R必定是必定是2NF2NF。 钩诛曙丸侥板婆嘴挫的站蛾臭杨嘉办棘弟炮灿豹涣琉郝春兹觅吟北烷镑榴第5章关系数据库的规范化设计第5章关系数据库的规范化设计2 2如果如果R R 2NF2NF,则,则R R不一定是不一定是3NF3NF。n例如,我们前面由关系模式例如,我们前面由关系模式SCDSCD分解而得到的分解而得到的SDSD和和SCSC都为都为2NF2NF,其中,其中,SCSC 3NF3NF,但在,但在SDSD中存在着非主属性中存在着非主属性MNMN对主对主键键SNOSNO传递依赖,传递依赖,SD SD 3NF 3NF。对于。对于SDSD,应该进一步进行分,应该进一步进行分解,使其转换成解,使其转换成3NF3NF。 5.3.3.2 3NF5.3.3.2 3NF规范化规范化3NF3NF规规范范化化是是指指把把2NF2NF关关系系模模式式通通过过投投影影分分解解转转换换成成3NF3NF关系模式的集合。关系模式的集合。和和2NF2NF的的规规范范化化时时遵遵循循的的原原则则相相同同,即即“一一事事一一地地”,让一个关系只描述一个实体或者实体间的联系,让一个关系只描述一个实体或者实体间的联系下面以下面以2NF2NF关系模式关系模式SDSD为例,来说明为例,来说明3NF3NF规范化的过规范化的过程程 镜朗郝枷拓金邦礁晌胎米笺捍攘医奴适椎李宠中条骸猿盐狄钙娟凿顶吸壬第5章关系数据库的规范化设计第5章关系数据库的规范化设计例例5.25.2将将SD(SNO,SN,AGE,DEPT,MN)SD(SNO,SN,AGE,DEPT,MN)规范到规范到3NF3NF。 分分析析SDSD的的属属性性组组成成,可可以以判判断断,关关系系SDSD实实际际上上描描述述了了两个实体:两个实体: 一个为一个为学生实体学生实体,属性有,属性有SNOSNO,SNSN,AGEAGE,DEPTDEPT; 另一个是另一个是系的实体系的实体,其属性,其属性DEPTDEPT和和MNMN。n根根据据分分解解的的原原则则,我我们们可可以以将将SDSD分分解解成成如如下下两两个个关关系系,如图如图5.85.8所示。所示。n S(SNO,SN,AGE,DEPT) S(SNO,SN,AGE,DEPT),描述学生实体;,描述学生实体;n D(DEPT D(DEPT,MN)MN),描述系的实体。,描述系的实体。 卜分勋鸯岿除仪鹿计呐盯愿炒笺圣褒蛹癣欣惧世倒寂孕忽土路氦靳密鞋独第5章关系数据库的规范化设计第5章关系数据库的规范化设计S DS DSNOSNOSNSNAGEAGEDEPTDEPTDEPTDEPTMNMNS1赵亦17计算机计算机刘伟S2钱尔18信息信息王平S3孙珊20信息自动化刘伟S4李思21自动化对对于于分分解解后后的的两两个个关关系系S S和和D D,主主键键分分别别为为SNOSNO和和DEPTDEPT,不不存存在在非非主主属属性性对对主主键键的的传传递递函函数数依依赖赖。因因此此,S S 3NF3NF,D D 3NF3NF。图图5.8 5.8 关系关系S S和和D D 斋醋剖蔓标皖榆蔗混羚贿妮办蓑彦找缝匠焕疹玛监纳垛阻浸似焙翘歧呜淳第5章关系数据库的规范化设计第5章关系数据库的规范化设计n分解后,分解后,S S和和D D的函数依赖分别如图的函数依赖分别如图5.95.9和和5.105.10所示。所示。SNOSNOSNSNDEPTDEPTAGEAGEDEPTDEPTMNMN图图5.9 S5.9 S中的函数依赖关系图中的函数依赖关系图图图5.10 D5.10 D中的函数依赖关系图中的函数依赖关系图由由以以上上两两图图可可以以看看出出,关关系系模模式式SDSD由由2NF2NF分分解解为为3NF3NF后后,函函数数依依赖赖关关系系变变得得更更加加简简单单,既既没没有有非非主主属属性性对对键键的的部部分分依依赖赖,也也没没有有非非主主属属性性对对键键的的传传递递依依赖赖,解解决决了了2NF2NF中中存在的四个问题存在的四个问题。掖扫肩利臆谎攫地绳谣盔谊桅软铣柴省屑烯糠磕单匆早见磋抬曾掘挤敦忿第5章关系数据库的规范化设计第5章关系数据库的规范化设计1 1数据冗余降低数据冗余降低。 系系主主任任的的名名字字存存储储的的次次数数与与该该系系的的学学生生人人数数无无关关,只只在在关系关系D D中存储一次。中存储一次。2 2不存在插入异常不存在插入异常。 当当一一个个新新系系没没有有学学生生时时,该该系系的的信信息息可可以以直直接接插插入入到到关关系系D D中,而与学生关系中,而与学生关系S S无关。无关。3 3不存在删除异常不存在删除异常 要要删删除除某某系系的的全全部部学学生生而而仍仍然然保保留留该该系系的的有有关关信信息息时时,可可以以只只删删除除学学生生关关系系S S中中的的相相关关学学生生记记录录,而而不不影影响响系系关关系系D D中的数据。中的数据。4 4不存在更新异常不存在更新异常 更换系主任时,只需修改关系更换系主任时,只需修改关系D D中一个相应元组的中一个相应元组的MNMN属性属性值,从而不会出现数据的不一致现象值,从而不会出现数据的不一致现象粕蚜别姓溶剩响史雕妙尘蒂臭征萎畴废绵酥掏墩订吏涤法臣陈聘环涵泽咸第5章关系数据库的规范化设计第5章关系数据库的规范化设计SCDSCD规规范范到到3NF3NF后后,所所存存在在的的异异常常现现象象已已经经基基本本消消失。失。但但是是,3NF3NF只只限限制制了了非非主主属属性性对对键键的的依依赖赖关关系系,而没有限制而没有限制主属性主属性对键的依赖关系。对键的依赖关系。如如果果发发生生了了这这种种依依赖赖,仍仍有有可可能能存存在在数数据据冗冗余余、插入异常、删除异常插入异常、删除异常和修改异常和修改异常摸岳皑柴康远户突鹰氦睛脖菠鱼升罢鲍赐决最锌眉趋确魁县凉躺斟糊该钙第5章关系数据库的规范化设计第5章关系数据库的规范化设计BCNF例例5.45.4设设关关系系模模式式TCSTCS(T T,C C,S S),T T表表示示教教师师,C C表表示示课课程程,S S表表示示学学生生。语语义义假假设设是是,每每一一位位教教师师只只讲讲授授一一门门课课程程;某某一一学学生生选选定定某某门门课课程程,就就对应于一确定的教师。对应于一确定的教师。根据语义假设,根据语义假设,TCSTCS的函数依赖是:的函数依赖是:n(S S,C C)TT,(,(S S,T T)CC,TCTCSCTSTC5.13 TCS5.13 TCS中的函数依赖关系中的函数依赖关系 嘎赴蘸渣才梗崎券儡歼溉甸泪跑散适川车趟猾察钮班爷船浦舱逢股喂图饯第5章关系数据库的规范化设计第5章关系数据库的规范化设计对对于于TCSTCS,(S S,C C)和和(S S,T T)都都是是候候选选键键,两两个个候候选选键键相相交交,有有公公共共的的属属性性S S。TCSTCS中中不不存存在在非非主主属属性性,也也就就不不可可能能存在非主属性对键的部分依赖或传递依赖,所以存在非主属性对键的部分依赖或传递依赖,所以TCSTCS 3NF3NF。但但从从TCSTCS的的一一个个关关系系实实例例(如如图图5.145.14)分分析析,仍仍存存在在一一些些问题问题T TC CS ST1C1S1T1C1S2T2C1S3T2C1S4T3C2S2T4C2S2T4C3S2图图5.14 5.14 关系关系TCSTCS 酗张鸵滞蚤佯矣泉款冗趣综糟衅为接进爆已蜡产痢宙误托自刨岁鸦盲讨晚第5章关系数据库的规范化设计第5章关系数据库的规范化设计1 1数数据据冗冗余余。虽虽然然每每个个教教师师只只开开一一门门课课,但但每每个个选选修修该教师该该门课程的学生元组都要记录这一信息该教师该该门课程的学生元组都要记录这一信息2 2插插入入异异常常。当当某某门门课课程程本本学学期期不不开开,自自然然就就没没有有学学生生选选修修。没没有有学学生生选选修修,因因为为主主属属性性不不能能为为空空,教教师师上上该该门门课课程程的的信信息息就就无无法法插插入入。同同样样原原因因,学学生生刚入校刚入校, ,尚未选课,有关信息也不能输入。尚未选课,有关信息也不能输入。3 3删删除除异异常常。如如果果选选修修某某门门课课程程的的学学生生全全部部毕毕业业,删删除除学学生生记记录录的的同同时时, ,随随之之也也删删除除了了教教师师开开设设该该门门课课程程的信息。的信息。4 4更新异常。更新异常。当某个教师开设的某门课程改名后,所当某个教师开设的某门课程改名后,所有选修该教师该门课程的学生元组都要进行修改,有选修该教师该门课程的学生元组都要进行修改,如果漏改某个数据,则破坏了数据的完整性如果漏改某个数据,则破坏了数据的完整性两涅奈贵浪冗三睡柱史寸板垢恢蹦料港凄鬼竟邯订注佛抢酬晕蒜魂斯膏谣第5章关系数据库的规范化设计第5章关系数据库的规范化设计n分分析析出出现现上上述述问问题题的的原原因因在在于于主主属属性性部部分分依依赖赖于于键键(S S,T T) C C,因因此此关关系系模模式式还还继继续续分分解解,转转换换成成更更高高一一级级的的范范式式BCNFBCNF,以以消消除除数数据据库库操操作作中中的异常现象的异常现象n将将TCSTCS分分解解为为两两个个关关系系模模式式STST(S S,T T)和和TCTC(T T,C C),消消除除函函数数依依赖赖(S S,T T) C C。其其中中STST的的键键为为S S,TCTC的的键键为为T T。STST BCNFBCNF,TCTC BCNFBCNF。这这两两个个关关系模式的函数依赖图分别如图系模式的函数依赖图分别如图5.155.15和和5.165.16所示。所示。 STTC图图5.15 ST5.15 ST中的函数依赖关系中的函数依赖关系 图图5.16 TC5.16 TC中的函数依赖关系中的函数依赖关系 矮咙痢债婆注泅偷采肘贿擎镇渴传沧公丑谴镭岿秆泥撑蓖烽贪瘟陪敝上疤第5章关系数据库的规范化设计第5章关系数据库的规范化设计v关关系系模模式式TCSTCS由由规规范范到到BCNFBCNF后后,使使原原来来存存在在的的四四个个异异常常问问题题得到解决得到解决。1 1数数据据冗冗余余降降低低。每每个个教教师师开开设设课课程程的的信信息息只只在在TCTC关系中存储一次关系中存储一次2 2不不存存在在插插入入异异常常。对对于于所所开开课课程程尚尚未未有有学学生生选选修修的的教教师师信信息息可可以以直直接接存存储储在在关关系系TCTC中中,而而对对于于尚尚未选修课程的学生可以存储在关系未选修课程的学生可以存储在关系STST中中3 3不不存存在在删删除除异异常常。如如果果选选修修某某门门课课程程的的学学生生全全部部毕毕业业,可可以以只只删删除除关关系系STST中中的的相相关关学学生生记记录录,而而不影响系关系不影响系关系TCTC中相应教师开设该门课程的信息中相应教师开设该门课程的信息4 4不不存存在在更更新新异异常常。当当某某个个教教师师开开设设的的某某门门课课程程改改名名后后,只只需需修修改改关关系系TCTC中中的的一一个个相相应应元元组组即即可可,不会破坏数据的完整性不会破坏数据的完整性狡挝羊沈芭宦搂垢牺枯曰莹惧津恶嘱早藩在撇丫慰移油码宪茨纽尼氮年摊第5章关系数据库的规范化设计第5章关系数据库的规范化设计n如如果果一一个个关关系系数数据据库库中中所所有有关关系系模模式式都都属属于于3NF3NF,则则已已在在很很大大程程度度上上消消除除了了插插入入异异常常和和删删除除异异常常,但但由由于于可可能能存存在在主主属属性性对对候候选选键键的的部部分分依依赖赖和和传传递依赖递依赖,因此关系模式的分离仍不够彻底。,因此关系模式的分离仍不够彻底。n如如果果一一个个关关系系数数据据库库中中所所有有关关系系模模式式都都属属于于BCNFBCNF,那那么么在在函函数数依依赖赖的的范范畴畴内内,已已经经实实现现了了模模式式的的彻彻底底分分解解,消消除除了了产产生生插插入入异异常常和和删删除除异异常常的的根根源,而且数据冗余也减少到极小程度。源,而且数据冗余也减少到极小程度。 琅零迎蒋链匈恼跟洋棵部杏脯堑盟圣融油直抢凛肤气披掳狠坷畅囚描怒漱第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.3.4 BC5.3.4 BC范式范式定定义义4.74.7 如如果果关关系系模模式式R R 1NF1NF,且且所所有有的的函函数数依依赖赖XYXY(Y Y X X), ,决决定定因因素素X X都都包包含含了了R R的的一一个个候候选选键键,则则称称R R属属于于BCBC范范式式(Boyce-Codd Normal Form),记作,记作R R BCNFBCNF。BCNFBCNF具有如下性质:具有如下性质:1 1满满足足BCNFBCNF的的关关系系将将消消除除任任何何属属性性(主主属属性性或或非非主主属属性性)对对键键的的部部分分函函数数依依赖赖和和传传递递函函数数依依赖。也就是说,如果赖。也就是说,如果R R BCNFBCNF,则,则R R也是也是3NF3NF。n证明:采用反证法。设证明:采用反证法。设R R不是不是3NF3NF。则必然存在如下。则必然存在如下条件的函数依赖,条件的函数依赖,XYXY(Y XY X),),YZYZ,其中,其中X X是键是键属性,属性,Y Y是任意属性组,是任意属性组,Z Z是非主属性,是非主属性,Z YZ Y,这样,这样YZYZ函数依赖的决定因素函数依赖的决定因素Y Y不包含候选键,这与不包含候选键,这与BCNFBCNF范式的定义相矛盾,所以如果范式的定义相矛盾,所以如果R R BCNFBCNF,则,则R R也是也是3NF3NF。 篷屑肌抛担室顶烦推题膘甜苑渴钾苹吴普柴赋乓锭衰撤拨肯订梨饵京全涸第5章关系数据库的规范化设计第5章关系数据库的规范化设计2 2如果如果R R 3NF3NF,则,则R R不一定是不一定是BCNFBCNFn设关系模式设关系模式SNCSNC(SNOSNO,SNSN,CN0CN0,SCORESCORE),其中),其中SNOSNO代表学代表学号,号,SNSN代表学生姓名并假设没有重名,代表学生姓名并假设没有重名,CNOCNO代表课程号,代表课程号,SCORESCORE代表成绩。可以判定,代表成绩。可以判定,SNCSNC有两个候选键(有两个候选键(SNOSNO,CNOCNO)和(和(SNSN,CNOCNO),其函数依赖如下:),其函数依赖如下:v SNO SN SNO SNv(SNOSNO,CNOCNO)SCORESCOREv(SNSN,CNOCNO)SCORESCORE。唯一的非主属性唯一的非主属性SCORESCORE对键不存在部分函数依赖,也不存在对键不存在部分函数依赖,也不存在传递函数依赖。所以传递函数依赖。所以SNCSNC 3NF3NF。但是,因为但是,因为SNO SNSNO SN,存在着主属性对键的部分函数依赖:,存在着主属性对键的部分函数依赖:(SNOSNO,CNOCNO) SN SN,(,(SNSN,CNOCNO) SNO SNO,所以,所以SNCSNC不是不是BCNFBCNF。履翁内掉芬兑绍厄淡扛阀瘁豁扩铆迫嘿染卉退招架贼骋研瘴廷灸骇丰弗捆第5章关系数据库的规范化设计第5章关系数据库的规范化设计正是存在着这种正是存在着这种主属性主属性对键的对键的部分函数依赖部分函数依赖关系,关系,造成了关系造成了关系SNCSNC中存在着较大的数据冗余,学生中存在着较大的数据冗余,学生姓名的存储次数等于该生所选的课程数。从而会姓名的存储次数等于该生所选的课程数。从而会引起修改异常。引起修改异常。比如,当要更改某个学生的姓名时,则必须搜索比如,当要更改某个学生的姓名时,则必须搜索出现该姓名的每个学生记录,并对其姓名逐一修出现该姓名的每个学生记录,并对其姓名逐一修改,这样容易造成数据的不一致问题。改,这样容易造成数据的不一致问题。解决这一问题的办法仍然是通过投影分解进一步解决这一问题的办法仍然是通过投影分解进一步提高提高SNCSNC的范式等级,将的范式等级,将SNCSNC规范到规范到BCNFBCNF天韵伺聋匠惹莹湾雅囊联空咏缀摔块孪降温面速桂蛛辕耍懒享芹缆饶喇航第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.3.4.2 BCNF5.3.4.2 BCNF规范化规范化nBCNFBCNF规规范范化化是是指指把把3NF3NF关关系系模模式式通通过过投投影影分分解解转转换换成成BCNFBCNF关系模式的集合。关系模式的集合。例例5.35.3将将SNC(SNO,SN,CNOSNC(SNO,SN,CNO,SCORE)SCORE)规范到规范到BCNFBCNF。n分分析析SNCSNC数数据据冗冗余余的的原原因因,是是因因为为在在这这一一个个关关系系中中存存在在两两个个实实体体,一一个个为为学学生生实实体体,属属性性有有SNOSNO、SNSN;另另一一个个是是选选课实体课实体,属性有,属性有SNOSNO、CNOCNO和和SCORESCORE。n根据分解的原则,我们可以将根据分解的原则,我们可以将SNCSNC分解成如下两个关系:分解成如下两个关系:nS1(SNO,SN)S1(SNO,SN),描述学生实体;,描述学生实体;nS2(SNO,CNO,SCORE)S2(SNO,CNO,SCORE),描述学生与课程的联系,描述学生与课程的联系。n对于对于S1S1,有两个候选键,有两个候选键SNOSNO和和SNSN,n对于对于S2S2,主键为(,主键为(SNOSNO,CNOCNO)。)。n在这两个关系中,无论主属性还是非主属性都不存在对在这两个关系中,无论主属性还是非主属性都不存在对键的部分依赖和传递依赖,键的部分依赖和传递依赖,S1S1 BCNFBCNF,S2S2 BCNFBCNF。 昼氦帮切亏尖挝纹腆狐珐朔悍钡楼贵彻吮圈凝帐踌宿汝缄挚仙因玻翔下擦第5章关系数据库的规范化设计第5章关系数据库的规范化设计分解后,分解后,S1S1和和S2S2的函数依赖分别如图的函数依赖分别如图5.115.11和和5.125.12所示。所示。SNOSNOSNSNSNOSNOCNOCNOSCORESCORE图图5.11 S15.11 S1中的函数依赖关系中的函数依赖关系 图图5.12 S25.12 S2中的函数依赖关系中的函数依赖关系 关系关系SNCSNC转换成转换成BCNFBCNF后,数据冗余度明显降低。后,数据冗余度明显降低。学生的姓名只在关系学生的姓名只在关系S1S1中存储一次,学生要改名时,中存储一次,学生要改名时,只需改动一条学生记录中的相应的只需改动一条学生记录中的相应的SNSN值,从而不会值,从而不会发生修改异常发生修改异常耸认胸限竞辨罪刨群脏橱尺宽簇昏分挎锤箔咒翱盅凯冶貌狄屡鸿均逮虏抠第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.4 关系模式的规范化关系模式的规范化 各各范范式式级级别别是是在在分分析析函函数数依依赖赖条条件件下下对对关关系系模模式式分分离离程程度度的一种测度,范式级别可以逐级升高。的一种测度,范式级别可以逐级升高。一一个个低低一一级级范范式式的的关关系系模模式式,通通过过模模式式分分解解转转化化为为若若干干个个高高一一级级范范式式的的关关系系模模式式的的集集合合,这这种种分分解解过过程程叫叫作作关关系系模模式的式的规范化规范化(NormalizationNormalization)。)。5.4.1 5.4.1 关系模式规范化的目的和原则关系模式规范化的目的和原则n规范化的规范化的目的目的就是使结构合理,消除存储异常,使数据冗就是使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新余尽量小,便于插入、删除和更新n规规范范化化的的基基本本原原则则就就是是遵遵从从概概念念单单一一化化“一一事事一一地地”的的原原则则,即即一一个个关关系系只只描描述述一一个个实实体体或或者者实实体体间间的的联联系系。若若多多于一个实体,就把它于一个实体,就把它“分离分离”出来。出来。n因因此此,所所谓谓规规范范化化,实实质质上上是是概概念念的的单单一一化化,即即一一个个关关系系表示一个实体表示一个实体澄靖渭畔徊疏肿还怔穿揉逮侣荧饼鬼彰刘乌啦赊构萄虚署币郴着久掀可戮第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.4.2 5.4.2 关系模式规范化的步骤关系模式规范化的步骤v规规范范化化就就是是对对原原关关系系进进行行投投影影,消消除除决决定定属属性性不不是是候候选选键键的任何函数依赖。具体可以分为以下几步:的任何函数依赖。具体可以分为以下几步:1 1对对1NF1NF关关系系进进行行投投影影,消消除除原原关关系系中中非非主主属属性性对对键键的的部部分分函函数数依依赖赖,将将1NF1NF关关系系转转换换成成若若干干个个2NF2NF关系。关系。2 2对对2NF2NF关关系系进进行行投投影影,消消除除原原关关系系中中非非主主属属性性对对键键的的传传递递函函数数依依赖赖,将将2NF2NF关关系系转转换换成成若若干干个个3NF3NF关系。关系。3 3对对3NF3NF关关系系进进行行投投影影,消消除除原原关关系系中中主主属属性性对对键键的的部部分分函函数数依依赖赖和和传传递递函函数数依依赖赖,也也就就是是说说使使决决定因素都包含一个候选键。得到一组定因素都包含一个候选键。得到一组BCNFBCNF关系。关系。 振胸蹬每坯蔓琉机片虏珍瓦浚牌选铣扶捡说珊戒庄孝忠愁押坠康疮脯要靡第5章关系数据库的规范化设计第5章关系数据库的规范化设计关系规范化的基本步骤如图关系规范化的基本步骤如图5.175.17所示所示 1NF1NF2NF2NF3NF3NFBCNFBCNF消除决定属性消除决定属性不是候选键的不是候选键的非平凡的函数非平凡的函数依赖依赖消除非主属性对键的部分函数依赖消除非主属性对键的部分函数依赖消除非主属性对键的传递函数依赖消除非主属性对键的传递函数依赖消除主属性对键的部分和传递函数依赖消除主属性对键的部分和传递函数依赖图图5.17 5.17 规范化过程规范化过程 垂嫌娜豪贸汛椭崖病肌兑个莫驮靶栏杆闭股班蒲侮帘迷捡柴舷举彬叭算浸第5章关系数据库的规范化设计第5章关系数据库的规范化设计一般情况下,我们说没有异常弊病的数据库设计一般情况下,我们说没有异常弊病的数据库设计是好的数据库设计,一个不好的关系模式也总是是好的数据库设计,一个不好的关系模式也总是可以通过分解转换成好的关系模式的集合。可以通过分解转换成好的关系模式的集合。但是在分解时要全面衡量,综合考虑,视实际情但是在分解时要全面衡量,综合考虑,视实际情况而定。因为况而定。因为规范化程度越高,虽然规范化程度越高,虽然异常情况越异常情况越少,但也会导致查询操作越麻烦少,但也会导致查询操作越麻烦对于那些只要求查询而不要求插入、删除等操作对于那些只要求查询而不要求插入、删除等操作的系统,几种异常现象的存在并不影响数据库的的系统,几种异常现象的存在并不影响数据库的操作。这时便不宜过度分解,否则当要对整体查操作。这时便不宜过度分解,否则当要对整体查询时,需要更多的多表连接操作,这有可能得不询时,需要更多的多表连接操作,这有可能得不偿失偿失在实际应用中,最有价值的是在实际应用中,最有价值的是3NF3NF和和BCNFBCNF,在进行,在进行关系模式的设计时,通常分解到关系模式的设计时,通常分解到3NF3NF就足够了就足够了。 盆遵淑总沪涨钓缀芹途发屎捻莹祟辖撞届哲讳坟究泪粥缘恩苛弦冲狂姻咨第5章关系数据库的规范化设计第5章关系数据库的规范化设计5.4.3 5.4.3 关系模式的分解关系模式的分解关关系系模模式式的的规规范范化化过过程程是是通通过过对对关关系系模模式式的的投投影影分分解解来来实实现现的的,但但是是投投影影分分解解方方法法不不是是唯唯一一的的,不不同同的的投投影影分分解解会会得得到到不同的结果。不同的结果。在在这这些些分分解解方方法法中中,只只有有能能够够保保证证分分解解后后的的关关系系模模式式与与原原关关系模式等价的方法才是有意义的系模式等价的方法才是有意义的n模式分解的模式分解的定义定义:n函数依赖集合函数依赖集合Fi = XY | XY F+ XY Ui称为称为F在在Ui上的投影上的投影n关系模式关系模式R的一个分解是指的一个分解是指 = R1 , R2, , Rn其中其中U = U1U2UN ,并且没有,并且没有Ui Ui ,1i,j n, Fi是是F在在Ui上的投影上的投影县坠呕窜踪凛问昧炔汞猎洛呈哪镭醉逢嘴反挨蜕爷蹭奄苦闲帽品倒珐捂骨第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接性无损连接性(Lossless JoinLossless Join):): 如如果果R R与与R R1 1,R R2 2,R Rn n自自然然连连接接的的结结果果相相等等,则称关系模式则称关系模式R R的分解具有无损连接性。的分解具有无损连接性。函数依函数依赖保持性保持性(Preserve DependencyPreserve Dependency):): 如如果果F F所所蕴蕴含含的的函函数数依依赖赖一一定定也也由由分分解解得得到到的的某某个个关关系系模模式式中中的的函函数数依依赖赖F Fi i所所蕴蕴含含,则则称称关关系系模模式式R R的分解具有函数依赖保持性的分解具有函数依赖保持性痕六票菌剑第柿翌掖短黍攒理檀顾押酋碴埂存业锹覆益抑综鸵衅天盆庐腆第5章关系数据库的规范化设计第5章关系数据库的规范化设计n判判断断对对关关系系模模式式的的一一个个分分解解是是否否与与原原关关系系模模式式等价可以有三种不同的标准:等价可以有三种不同的标准:1分解要具有无损连接性。分解要具有无损连接性。2分解要具有函数依赖保持性。分解要具有函数依赖保持性。3分分解解既既要要具具有有无无损损连连接接性性,又又要要具具有有函数依赖保持性函数依赖保持性。夫拌花丘瓷仁徽赖拯竭虏抹尺呈铝讳娩防东陵桩凭月串靠形笑俐靳受爱胯第5章关系数据库的规范化设计第5章关系数据库的规范化设计模式分解中存在的问题模式分解中存在的问题R(A, B, C)ABC112221AB1122BC1221ABC112221AB(R)BC(R)AB(R)BC(R)R(A,B,C)ABC111212AB1121BC1112ABC111112211212AB(R)BC(R)AB(R)BC(R)有损分解有损分解无损分解无损分解掉照卡憋旁式纱舵砒伯澎陨徊锥马橡戊钉勒渭积崭楷经削厂撤噶孜捍踌夸第5章关系数据库的规范化设计第5章关系数据库的规范化设计模式分解中存在的问题模式分解中存在的问题ABCa1b1c1a2b1c1a3b2c2a4b3c1AB,BCAa1a2a3a4Bb1b2b3Cc1c2ABa1b1a2b1a3b2a4b3a5b3ACa1c1a2c1a3c2a4c1a5c3=ABCa1b1c1a2b1c1a3b2c2a4b3c1a5b3c3插入插入违反B C晤蓬爆烬疯以肄北旭乱豌我穷蝉辉肝榷弥怯崔仟涌苦每漏糠金爪病沟采塑第5章关系数据库的规范化设计第5章关系数据库的规范化设计模式分解中存在的问题模式分解中存在的问题ABa1b1a2b1a3b2a4b3BCb1c1b2c2b3c1ACa1c1a2c1a3c2a4c1BCb1c1b2c2b3c1=ABCa1b1c1a1b3c1a2b1c1a2b3c1a3b2c2a4b1c1a4b3c1ABCa1b1c1a2b1c1a3b2c2a4b3c1泼折锻腔戊哲惺吊兼脸饵佃谷闹霍钳抗危腕二锚迷月冠伊涌靶伦覆剧郑最第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解1.分解是两个子关系的无损连接性判断分解是两个子关系的无损连接性判断关系模式关系模式R(U)的分解的分解 =R1,R2,则,则 是是一个无一个无损连接分解的损连接分解的充要条件充要条件是是 R1R2(R1 R2 )或或R1R2(R2 R1)成立成立R=ABC, F=A B, 1=R1(AB), R2(AC) R1R2 = A, R1R2 = B由由A B ,得到,得到 1是无损连接分解是无损连接分解 2=R1(AB), R2(BC) R1R2 = B, R1R2 = A, R2R1 = C BA, BC均不成立,所以均不成立,所以 1不是无损连接分解不是无损连接分解沫丙狙拄匈兼砧唐浊咆奔棺胳靡蚕梨埔也凰隋垦介熔驴疯雨六牡运沃叭呀第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解2.分解是多于两个子关系的无损连接性判断分解是多于两个子关系的无损连接性判断U=A1, A2, , An = R1 , R2, , Rk( (1) )建立一个建立一个n列列k行的矩阵行的矩阵TB = Cij | 若若Aj Ui , Cij = aj , 否则否则Cij = bijA1A2AnU1ajCijUkbij氛肚佑匆晚芬仗重桨浇熔价稗伙爽厅摔痞力赁拭壁妄皇冒格骋酥乖慷汉眼第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解(2) 对对F中每一个函数依赖中每一个函数依赖XY,若,若TB中存在元组中存在元组t1,t2,使得,使得t1X=t2X,t1Yt2Y,则对,则对每一个每一个Ai Y:若若t1Ai,t2Ai中有一个等于中有一个等于aj,则另一个也,则另一个也改为改为aj ;若若不成立,则取不成立,则取t1Ai = t2Ai (t2的行号的行号小于小于t1)。)。吹仰吁祷提筛氢樱撅揭羽盈健絮蚀磕徘靡睹刨谤灯铀终拭胰战凸洁启掣妊第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解(3)反复执行()反复执行(2),直至:),直至:TB中出现一行为中出现一行为a1, a2 , , an 的一行。的一行。 TB不再发生变化,且没有一行为不再发生变化,且没有一行为a1, , an。在在情况下,情况下, 为无损分解,否则为有损分解。为无损分解,否则为有损分解。缓滩仿摇绘柠滔霍惫菇钧炼硕竿限拈价弛完揪灭挡翔祁酷翌翱独形柠镀杠第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解n示例一:示例一:U=A,B,C,D,E, F=ABC, CD,DE =(A, B, C), (C, D), (D, E)ABCDEABCa1a2a3b14b15CDb21b22a3a4b25DEb31b32b33a4a5ABCDEABCa1a2a3b14b15CDb21b22a3a4b25DEb31b32b33a4a5ABCABCDEABCa1a2a3a4b15CDb21b22a3a4b25DEb31b32b33a4a5CDABCDEABCa1a2a3a4a5CDb21b22a3a4a5DEb31b32b33a4a5DE规嫂窟斗增行压流嗣搏厢锡麻细慌订上枝刺铃嫩垣倪谜必魂将言综绍遇中第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解n示例二:示例二:U=A,B,C,D,E, F=AC, BC, CD,DEC ,CEA =(A, D), (A, B), (B, E), (C, D, E), (A, E)ABCDEADa1b12b13a4b15ABa1a2b23b24b25BEb31a2b33b34a5CDEb41b42a3a4a5AEa1b32b33b54a5ACABCDEADa1b12b13a4b15ABa1a2b13b24b25BEb31a2b33b34a5CDEb41b42a3a4a5AEa1b32b13b54a5弯伊寂械樟潜屋蚂憾羔磁窝势菜鸯掩是眷席哼夕妖霓狭凤巨袒棵致缩剂凯第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解BCABCDEADa1b12b13a4b15ABa1a2b13b24b25BEb31a2b13b34a5CDEb41b42a3a4a5AEa1b32b13b54a5CDABCDEADa1b12b13a4b15ABa1a2b13a4b25BEb31a2b13a4a5CDE b41b42a3a4a5AEa1b32b13a4a5谬帕贿艾钟应抨座儒骸脸用剥沂铝绞殊迷邓惨蟹税苛斜踞蛔撑私朝郊兄邵第5章关系数据库的规范化设计第5章关系数据库的规范化设计无损连接分解无损连接分解DECABCDEADa1b12b13a4b15ABa1a2b13a4b25BEb31a2a3a4a5CDEb41b42a3a4a5AEa1b32a3a4a5CEAABCDEADa1b12b13a4b15ABa1a2b13a4b25BEa1a2a3a4a5CDEa1b42a3a4a5AEa1b32a3a4a5匪筐凰野随反腻总粪酬茶竞安曼磋谈铅柱贮吁协岳肝下忿喘抿粕倡血尊摈第5章关系数据库的规范化设计第5章关系数据库的规范化设计保持函数依赖的分解保持函数依赖的分解n定义定义:nZ是是U的子集,函数依赖集合的子集,函数依赖集合F在在Z上的投影上的投影定义为定义为Z(F) = XY | XY F+ XY Zn设设 = R1, R2, , Rn是关系模式是关系模式R的一个分解,如果的一个分解,如果F+ = ( Ri(F)+,则称则称 是保持函数依赖的分解是保持函数依赖的分解兵忍韦檀胁著尧惭廓咸芍五糜茵甸憎楚蓟铱拳征浇虞千本唆池和遏值夫玻第5章关系数据库的规范化设计第5章关系数据库的规范化设计 逻辑蕴涵逻辑蕴涵定义:定义: 设设F是是R的的一一个个函函数数依依赖赖集集,X,Y是是R的的属属性性子子集集,如如果果从从F中中能能够够推推导导出出X Y, 则则称称X Y是是F的逻辑蕴函。的逻辑蕴函。 F的闭包的闭包F+: 所所有有被被F逻逻辑辑蕴蕴函函的的函函数数依依赖赖集集称称为为F的的闭包。记为闭包。记为F+ 因为因为 F F+ 如果如果FF+ 则称则称F是函数依赖的完备集。是函数依赖的完备集。 逻逻 辑辑 蕴蕴 涵涵织橇孰煤豺惮峭皿惰刨豆鼓贾钙芜氏君迄约番茫贵攫曲镶蜜宝锈猿报仟钠第5章关系数据库的规范化设计第5章关系数据库的规范化设计保持函数依赖的分解保持函数依赖的分解关系模式关系模式RU = CITY, ST, ZIP,F = (CITY, ST) ZIP, ZIP CITY分解分解 = R1(ST, ZIP), R2(CITY, ZIP)R1R2 =ZIP, R2R1 =CITY R1R2 R2R1 分解是无损的分解是无损的R1(F) = , R2(F) = ZIP CITYR1(F) R2(F) = ZIP CITY丢失了函数依赖丢失了函数依赖(CITY, ST) ZIP亥疡屉狮棉腻顾佯株享尝邢填待九炸呀憋袖焦授渴苍逛铂浩哺崭沽掉肃瞳第5章关系数据库的规范化设计第5章关系数据库的规范化设计保持函数依赖的分解保持函数依赖的分解STZIPBeida100862Beida100971ZIPCITY100862Beijing100971BeijingCITYSTZIPBeijingBeida100862BeijingBeida100971违反了函数依赖违反了函数依赖 (CITY, ST) ZIP淌喻俐狈劣短赡涟悄斩翟百娟忍翘掐踊蛙示鸡尝忠澄绅渣冀托职粱栖孔数第5章关系数据库的规范化设计第5章关系数据库的规范化设计例例如如,对对于于关关系系模模式式SD(SNO,SN,AGE,DEPT,MN)SD(SNO,SN,AGE,DEPT,MN),规规范范到到3NF3NF,可可以有以下三种不同的分解方法:以有以下三种不同的分解方法:n第一种第一种:nS(SNO,SN,AGE,DEPT)S(SNO,SN,AGE,DEPT)nD(DEPTD(DEPT,MN)MN)nSDSD(SNOSNO,SNSN,AGEAGE,DEPTDEPT,MNMN)=SSNO=SSNO,SNSN,AGEAGE,DEPT DEPT DDEPTDDEPT,MNMN,n也也就就是是说说,用用其其两两个个投投影影在在DEPTDEPT上上的的自自然然连连接接可可复复原原关关系系模式模式SDSD。也就是说这种分解具有无损连接性。也就是说这种分解具有无损连接性。n对对于于分分解解后后的的关关系系模模式式S S,有有函函数数依依赖赖SNODEPTSNODEPT,对对于于D D,有有函函数数依依赖赖DEPTMNDEPTMN,这这种种分分解解方方法法保保持持了了原原来来的的SDSD中中的的两两个个完完全全函函数数依依赖赖SNODEPTSNODEPT,DEPTMNDEPTMN。分分解解既既具具有有无无损损连连接接性性,又具有函数依赖保持性又具有函数依赖保持性分解的不唯一性分解的不唯一性勺曼淋肚冻愧司拭趋租衔竣圭眺傍湖匪耐候佃呐交斡祁穷蔑蜗劝杆外苑慷第5章关系数据库的规范化设计第5章关系数据库的规范化设计n第二种第二种:nS1(SNO,SN,AGE,DEPT)S1(SNO,SN,AGE,DEPT)nD1(SNOD1(SNO,MN)MN) S1 D1S1 D1SNOSNOSNSNAGEAGEDEPTDEPTSNOSNOMNMNS1赵亦17计算机S1刘伟S2钱尔18信息S2王平S3孙珊20信息S3王平S4李思21自动化S4刘伟图图5.18 5.18 关系关系S1S1和和D1D1 涨蟹谐村味钙氮光孵匠辽广辛喉此押转玖炭芭惕惨旱矮甫模猿舷东捞占瓤第5章关系数据库的规范化设计第5章关系数据库的规范化设计分分解解以以后后,两两个个关关系系的的主主键键都都为为SNOSNO,也也不不存存在在非非主主属性对主键的传递函数依,所以两个关系均属于属性对主键的传递函数依,所以两个关系均属于3NF3NF。且且SD=S1 SD=S1 D1D1,关关系系模模式式SDSD等等于于S1S1和和D1D1在在SNOSNO上上的的自自然然连连接接,这这种种分分解解也也具具有有无无损损连连接接性性,保保证证不不丢丢失失原原关关系系中中的的信信息息。但但这这种种分分解解结结果果,仍仍然然存存在在着着一一些问题:些问题:1 1数数据据冗冗余余。每每个个系系名名和和系系主主任任的的名名字字存存储储的的次次数数等等于该系的学生人数。于该系的学生人数。2 2插插入入异异常常。当当一一个个新新系系没没有有招招生生时时,系系主主任任的的名名字字则无法插入。则无法插入。3 3删删除除异异常常。某某系系学学生生全全部部毕毕业业而而没没有有招招生生时时,要要删删除除全全部部学学生生的的记记录录,两两个个关关系系都都要要涉涉及及,有有关关该该系系的的信息将被删除。信息将被删除。4 4更更新新异异常常。更更换换系系主主任任时时,需需改改动动较较多多的的学学生生记记录录。另外,某个学生要转系,还必须修改两个关系。另外,某个学生要转系,还必须修改两个关系。窥坤王最御绵句临桨圈枕眷简焚栽氯垫稻悬窘曹蝶太词遂甸苏恐勤腆棠掷第5章关系数据库的规范化设计第5章关系数据库的规范化设计n之之所所以以存存在在上上述述问问题题,是是因因为为分分解解得得到到的的两两个个关关系系模式不是相互独立的。模式不是相互独立的。nSDSD中中的的函函数数依依赖赖DEPTMNDEPTMN既既没没有有投投影影到到关关系系模模式式S1S1上上,也也没没有有投投影影到到关关系系模模式式D1D1上上,而而是是跨跨在在这这两两个个关关系系模模式式上上,也也就就是是说说这这种种分分解解方方法法没没有有保保持持原原关关系系中中的的函函数数依依赖赖,却却用用了了原原关关系系隐隐含含的的传传递递函函数数依依赖赖SNO MNSNO MN。n分解只具有无损连接性,而不具有函数依赖保持性分解只具有无损连接性,而不具有函数依赖保持性n因此,因此,“弊病弊病”仍然没有解决。仍然没有解决。莽跑乾下暇准逝炒玩元泪拓菊坛何轻隧密葡以瓣帜僻猿男迭埋噪靳海蕾尘第5章关系数据库的规范化设计第5章关系数据库的规范化设计n第三种:第三种:nS2(SNO,SN,AGE,MN)S2(SNO,SN,AGE,MN)nD2(DEPTD2(DEPT,MN)MN) S2 D2S2 D2SNOSNOSNSNAGEAGEMNMNDEPTDEPTMNMNS1赵亦17刘伟计算机刘伟S2钱尔18王平信息王平S3孙珊20王平自动化刘伟S4李思21刘伟图图5.19 5.19 关系关系S2S2和和D2D2 碳神蕴筛幽驰搪凹恃绥节诡俞慧癸等宿屎沥沪音畅谓昌渣爵岳肢察侄盯哎第5章关系数据库的规范化设计第5章关系数据库的规范化设计n分分解解以以后后,两两个个关关系系均均为为3NF3NF,公公共共属属性性为为MNMN,但,但MN SNOMN SNO,MN DEPTMN DEPT,所以,所以S2 D2SDS2 D2SD。nS2S2和和D2D2在在MNMN上的自然连接的结果如图上的自然连接的结果如图5.205.20。SNOSNOSNSNAGEAGEDEPTDEPTMNMNS1赵亦17计算机计算机刘伟刘伟S1赵亦17自动化自动化刘伟刘伟S2钱尔18信息王平S3孙珊20信息王平S4李思21计算机刘伟S4李思21自动化刘伟图图5.20 S25.20 S2和和D2D2的自然连接的自然连接膏乍惕役观铀漠藏冉谈鹿寐擞篙钵玉谣舀尽话存式卵趋团润奸躯分堪拼瓢第5章关系数据库的规范化设计第5章关系数据库的规范化设计S2 S2 D2D2比比原原来来的的关关系系SDSD多多了了两两个个元元组组(S1S1,赵赵亦亦,1717,自自动动化化,刘刘伟伟)和和(S4S4,李李思思,2121,计计算算机机,刘刘伟伟),因因此此也也无无法法知知道道原原来来的的SDSD关关系系中中究究竟竟有有哪哪些些元元组组,从从这这个个意意义义上上说说,此此分分解解方方法法仍然丢失了信息。所以其分解是不可恢复的。仍然丢失了信息。所以其分解是不可恢复的。另另外外,这这种种分分解解方方法法只只保保持持了了原原来来的的SDSD中中的的DEPTMNDEPTMN这这个个完完全全函函数数依依赖赖而而未未用用另另外外一一个个SNODEPTSNODEPT完完全全依依赖赖,却却用用了了原原关关系系的的传传递递函函数数依依赖赖SNO SNO MNMN。所所以以分分解解既既不不具具有有无无损损连连接接性性,也也不不具具有有函函数数依依赖赖保保持持性性,同同样样存存在在着着数数据据操操作作的异常情况。的异常情况。亭峭积岗坝靛瘸园栈葬垄弄迈噪痊撒肺魄窄社二议绅烬识负俭啼梦芭橙尊第5章关系数据库的规范化设计第5章关系数据库的规范化设计经经以以上上几几种种分分解解方方法法的的分分析析,如如果果一一个个分分解解具具有有无无损损连连接接性性,则则能能够够保保证证不不丢丢失失信信息息。如如果果一一个个分分解解具具有有函函数数依依赖赖保保持持性性,则可以减轻或解决各种异常情况。则可以减轻或解决各种异常情况。分分解解具具有有无无损损连连接接性性和和函函数数依依赖赖保保持持性性是是两两个个相相互互独独立立的的标标准准。具具有有无无损损连连接接性性的的分分解解不不一一定定具具有有函函数数依依赖赖保保持持性性。同同样样,具具有有函函数数依依赖赖保保持持性性的的分分解解也也不不一一定定具具有有无损连接性无损连接性戈乖爽妒巧甩觅阳扶所赘鄂胁险钠蓖蹿江粹甄肥妥衅驰轿匹溅御衫蜗钾詹第5章关系数据库的规范化设计第5章关系数据库的规范化设计若若要要求求分分解解具具有有无无损损连连接接性性,那那么么分分解一定可以达到解一定可以达到BCNF。若若要要求求分分解解保保持持函函数数依依赖赖,那那么么分分解解可可 以以 达达 到到 3NF, 但但 不不 一一 定定 能能 达达 到到BCNF。若要求分解既保持函数依赖,又具有若要求分解既保持函数依赖,又具有无损连接性,那么分解也可以达到无损连接性,那么分解也可以达到3NF,但不一定能达到,但不一定能达到BCNF。 模式分解的重要结论模式分解的重要结论 讲涎衙挑客锁渊废肋危卜议馆规矾天柏埃炭槛帝醉亥彻逾关檬摘肌怀蝶朔第5章关系数据库的规范化设计第5章关系数据库的规范化设计n设有关系模式设有关系模式R R(职工编号,日期,日营业额,部门(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额,每个职工只在定:每个职工每天只有一个营业额,每个职工只在一个部门工作,每个部门只有一个经理。一个部门工作,每个部门只有一个经理。n试回答下列问题:试回答下列问题:n(1 1)根据上述规定,写出模式)根据上述规定,写出模式R R的基本的基本FDFD和关键码;和关键码;n(2 2)说明)说明R R不是不是2NF2NF的理由,并把的理由,并把R R分解为分解为2NF2NF模式集;模式集;n(3 3)进而分解成)进而分解成3NF3NF模式集模式集练习题练习题篙钨哉竹迫喘蹦疤追圈筏录恶便韩拍娘虽除钡哇槽这视氛沉锰腐吠力墓仁第5章关系数据库的规范化设计第5章关系数据库的规范化设计参考解答参考解答(1)FD有有3个:个: (职工编号,日期)(职工编号,日期)日营业额日营业额 职工编号职工编号部门名部门名 部门名部门名部门经理部门经理 关键码为关键码为 (职工编号,日期)(职工编号,日期)隅瘸私俊概秸纂就沸拟俺鹰妊刨琵烫佰筒餐阳珐旦颠仿贷尧王泪易潜侮碌第5章关系数据库的规范化设计第5章关系数据库的规范化设计(2)由于)由于(职工编号,项目名)(职工编号,项目名)(部门名,部门经理部门名,部门经理) 职工编号职工编号(部门名,部门经理部门名,部门经理) 显然存在部分依赖,故显然存在部分依赖,故R不是不是2NF。可分解为:可分解为: R1(职工编号,部门名,部门经理)(职工编号,部门名,部门经理) R2(职工编号,日期,日营业额)(职工编号,日期,日营业额)蓑怕潮冷受镍搽扎奖秘瘁态伐轿愚磁肾篮殿壶飘将肯搔受沿或场登顶痒癣第5章关系数据库的规范化设计第5章关系数据库的规范化设计(3) R2 是是3NF R1 中存在传递依赖中存在传递依赖 职工编号职工编号部门名部门名 部门名部门名部门经理部门经理 故故R1不是不是3NF应分解为:应分解为: R11(职工编号(职工编号,部门名)部门名) R12(部门名,部门经理)(部门名,部门经理)沫化枯研哉饼节豌阑懈幸磋星典蚀齿祭歉吠剩辛隋熏室仕芍池羹庇烬墨雁第5章关系数据库的规范化设计第5章关系数据库的规范化设计小小 结结 在这一章,我们首先由关系模式的存储异常问题引出了在这一章,我们首先由关系模式的存储异常问题引出了函函数依赖数依赖的概念,其中包括的概念,其中包括完全完全函数依赖、函数依赖、部分部分函数依赖函数依赖和和传递传递函数依赖,这些概念是规范化理论的依据和规范函数依赖,这些概念是规范化理论的依据和规范化程度的准则。化程度的准则。规范化就是对原关系进行投影,消除决定属性不是候选键规范化就是对原关系进行投影,消除决定属性不是候选键的任何函数依赖。的任何函数依赖。一个关系只要其分量都是不可分的数据项,就可称作规范一个关系只要其分量都是不可分的数据项,就可称作规范化的关系,也称作化的关系,也称作1NF。消除消除1NF关系中非主属性对键的部分函数依赖,得到关系中非主属性对键的部分函数依赖,得到2NF,消除,消除2NF关系中非主属性对键的传递函数依赖,关系中非主属性对键的传递函数依赖,得到得到3NF,消除,消除3NF关系中主属性对键的部分函数依赖关系中主属性对键的部分函数依赖和传递函数依赖,便可得到一组和传递函数依赖,便可得到一组BCNF关系。关系。缘努上鬼拾乃堕论器蹬粤冉勿运蹈舒包亚坏颈着拳竟棋澳寻稼自确娟脐饲第5章关系数据库的规范化设计第5章关系数据库的规范化设计小小 结结在规范化过程中,逐渐消除存储异常,使数在规范化过程中,逐渐消除存储异常,使数据冗余尽量小,便于插入、删除和更新。据冗余尽量小,便于插入、删除和更新。规范化的基本原则就是遵从概念单一化规范化的基本原则就是遵从概念单一化“一一事一地事一地”的原则,即一个关系只描述一个实的原则,即一个关系只描述一个实体或者实体间的联系。体或者实体间的联系。规范化的投影分解方法不是唯一的,对于规范化的投影分解方法不是唯一的,对于3NF的规范化,分解既要具有无损连接性,的规范化,分解既要具有无损连接性,又要具有函数依赖保持性。又要具有函数依赖保持性。 慷煮轰瓮柞驮闹称潮涪瑶单推秒丈临恼纷链聚泰才祭捆孤慨诀九出厄更旁第5章关系数据库的规范化设计第5章关系数据库的规范化设计
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号