《《关系数据理论》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据理论》PPT课件.ppt(97页珍藏版)》请在金锄头文库上搜索。
1、第六章第六章 关系数据理论关系数据理论AnIntroductiontoDatabaseSystem关系数据理论关系数据理论v关关系系数数据据库库的的规规范范化化理理论论最最早早是是由由关关系系数数据据库库的的创创始始人人E.F.CoddE.F.Codd提提出出的的,然然后后经经许许多多专专家家学学者者对对关关系系数数据据库库理理论论作作了了深深入入的的研研究究和和发发展展,形形成成了了一一整整套套有有关关关关系系数数据据库设计的理论库设计的理论AnIntroductiontoDatabaseSystem第第六六章章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.3数据依
2、赖的公理系统数据依赖的公理系统*6.4模式的分解模式的分解6.5小结小结AnIntroductiontoDatabaseSystem6.1问题的提出问题的提出关系数据库逻辑设计关系数据库逻辑设计针针对对具具体体问问题题,如如何何构构造造一一个个适适合合于于它它的的数数据据模式模式数数据据库库逻逻辑辑设设计计的的工工具具关关系系数数据据库库的的规规范范化化理论理论AnIntroductiontoDatabaseSystem问题的提出(续)问题的提出(续)v在关系数据库系统中,在关系数据库系统中,关系模型关系模型包括一组包括一组关系模关系模式式,各个关系不是完全孤立的,各个关系不是完全孤立的v如何
3、设计一个适合的关系数据库系统,如何设计一个适合的关系数据库系统,关键关键是是关关系数据库系数据库模式模式的设计,一个好的关系数据库模型的设计,一个好的关系数据库模型应该包括多少应该包括多少关系模式关系模式,而每一个关系模式又应,而每一个关系模式又应该包括哪些该包括哪些属性属性,又如何将这些相互关联的关系,又如何将这些相互关联的关系模式组建一个适合的模式组建一个适合的关系模型关系模型,这些工作决定了,这些工作决定了到整个系统运行的效率,也是系统成败的关键所到整个系统运行的效率,也是系统成败的关键所在,所以必须在关系数据库的在,所以必须在关系数据库的规范化理论规范化理论的指导的指导下逐步完成下逐步
4、完成AnIntroductiontoDatabaseSystem问题的提出(续)问题的提出(续)例例建立一个描述建立一个描述学校教务学校教务的的关系数据库模型关系数据库模型:学生的学号(学生的学号(Sno)、)、所在系(所在系(Sdept)系主任姓名(系主任姓名(Mname)、)、课程名(课程名(Cname)成绩(成绩(Grade)单一单一的关系模式的关系模式:U Sno, Sdept, Mname, Cname, Grade 两个两个的关系模式的关系模式:S Sno, Sdept, Cname, Grade D Sdept, Mname AnIntroductiontoDatabaseSys
5、tem问题的提出问题的提出一、概念回顾一、概念回顾二、关系模式的形式化定义二、关系模式的形式化定义三、什么是数据依赖三、什么是数据依赖四、关系模式的简化定义四、关系模式的简化定义五、数据依赖对关系模式影响五、数据依赖对关系模式影响AnIntroductiontoDatabaseSystem一、概念回顾一、概念回顾v关系关系v关系模式关系模式v关系数据库关系数据库v关系数据库的模式关系数据库的模式AnIntroductiontoDatabaseSystem二、关系模式的形式化定义二、关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组:R(U,D,D
6、OM,F)R:关系名关系名U:组成该关系的组成该关系的属性名集合属性名集合D:属性组属性组U中属性所来自的中属性所来自的域域DOM:属性向域的属性向域的映象集合映象集合F:属性间数据的依赖关系集合属性间数据的依赖关系集合由于由于D和和DOM对模式设计关系不大对模式设计关系不大,因此我们在本章中因此我们在本章中把关系模式看作是一个三元组:把关系模式看作是一个三元组:RAnIntroductiontoDatabaseSystem三、什么是数据依赖三、什么是数据依赖1.完整性约束的表现形式完整性约束的表现形式v限定限定属性取值范围属性取值范围:例如学生成绩必须在:例如学生成绩必须在0-100之间之间
7、v定义定义属性值间的相互关连属性值间的相互关连(主要体现于值的(主要体现于值的相等与否相等与否),这就是,这就是数据依赖数据依赖,它是数据库模式设计的,它是数据库模式设计的关键关键AnIntroductiontoDatabaseSystem什么是数据依赖(续)什么是数据依赖(续)2.数据依赖数据依赖v一个关系内部一个关系内部属性属性与与属性属性之间的之间的约束关系约束关系v现实世界属性间相互联系的抽象现实世界属性间相互联系的抽象v数据内在的性质数据内在的性质v语义语义的体现的体现AnIntroductiontoDatabaseSystem什么是数据依赖(续)什么是数据依赖(续)3.数据依赖的类
8、型数据依赖的类型v函数依赖函数依赖(FunctionalDependency,简记为简记为FD)v多值依赖多值依赖(MultivaluedDependency,简记为简记为MVD)v其他其他AnIntroductiontoDatabaseSystem四、关系模式的简化表示四、关系模式的简化表示v关系模式关系模式R(U,D,DOM,F)简化为一个三元组:简化为一个三元组:Rv当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为称为关系模关系模式式R(U,F)的一个的一个关系关系AnIntroductiontoDatabaseSystem五、五、数据依赖对关系模式的影响数据依赖对关
9、系模式的影响例例1建立一个描述建立一个描述学校教务学校教务的数据库关系模型:的数据库关系模型:学生的学号(学生的学号(Sno)、)、所在系(所在系(Sdept)系主任姓名(系主任姓名(Mname)、)、课程名(课程名(Cname)成绩(成绩(Grade)单一单一的关系模式的关系模式:StudentU Sno, Sdept, Mname, Cname, Grade AnIntroductiontoDatabaseSystem数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)根据实际情况,这些数据有如下根据实际情况,这些数据有如下语义规定语义规定:1.1.一个系有若干个学生,但一个学生只
10、属于一个系一个系有若干个学生,但一个学生只属于一个系2.2.一一个个系系只只有有一一名名系系主主任任,但但一一个个系系主主任任可可以以同同时时兼兼几个系的系主任几个系的系主任3.3.一一个个学学生生可可以以选选修修多多门门功功课课,每每门门课课程程可可有有若若干干学学生选修生选修4.4.每个学生学习的课程有一个成绩每个学生学习的课程有一个成绩AnIntroductiontoDatabaseSystem数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)属性组属性组U上的一组函数依赖上的一组函数依赖F:FSnoSdept,SdeptMname,(Sno,Cname)GradeCname
11、SnoSdeptMnameGradeAnIntroductiontoDatabaseSystem关系模式关系模式Student中存在的问题中存在的问题SnoSdeptMnameCnoGradeS1计算机系计算机系张明张明C195S2计算机系计算机系张明张明C190S3计算机系计算机系张明张明C188S4计算机系计算机系张明张明C170S5计算机系计算机系张明张明C178表表6.1Student表表AnIntroductiontoDatabaseSystem关系模式关系模式Student中存在的问题中存在的问题1.1.数据冗余太大数据冗余太大2.2.更新异常(更新异常(Update Anomal
12、iesUpdate Anomalies)3.3.插入异常(插入异常(Insertion AnomaliesInsertion Anomalies)4.4.删除异常(删除异常(Deletion AnomaliesDeletion Anomalies)AnIntroductiontoDatabaseSystem数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)结论:结论:nStudent关系模式不是一个好的模式关系模式不是一个好的模式n“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少数据冗余应尽可能少原因:原因:由存在
13、于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的引起的解决方法:解决方法:通过通过分解分解关系模式来关系模式来消除其中不合适的数据消除其中不合适的数据依赖依赖AnIntroductiontoDatabaseSystem分解关系模式分解关系模式v把这个单一模式分成把这个单一模式分成3个关系模式:个关系模式:S(Sno,Sdept,SnoSdept);SC(Sno,Cno,Grade,(Sno,Cno)Grade);DEPT(Sdept,Mname,SdeptMname)属性组属性组U函数依赖函数依赖FAnIntroductiontoDatabaseSystem分解关系模式(续)分解关系模
14、式(续)v在以上三个关系模式中,实现了信息的某种程度在以上三个关系模式中,实现了信息的某种程度的分离:的分离:S S中存储学号信息,与所选课程及系主任无关中存储学号信息,与所选课程及系主任无关DEPTDEPT中存储系的有关信息,与学生无关中存储系的有关信息,与学生无关SCSC中存储学生选课的信息,与学生及系的有关中存储学生选课的信息,与学生及系的有关信息无关信息无关AnIntroductiontoDatabaseSystem分解关系模式(续)分解关系模式(续)v分解为三个关系模式后,数据的冗余度明显降低分解为三个关系模式后,数据的冗余度明显降低当新插入一个系时,只要在关系当新插入一个系时,只要
15、在关系DEPTDEPT中添加一中添加一条记录条记录当某个学生尚未选课,只要在关系当某个学生尚未选课,只要在关系S S中添加一条中添加一条学生记录,而与选课关系无关,这就避免了学生记录,而与选课关系无关,这就避免了插插入异常入异常当一个系的学生全部毕业时,只需在当一个系的学生全部毕业时,只需在S S中删除该中删除该系的全部学生记录,而关系系的全部学生记录,而关系DEPTDEPT中有关该系的中有关该系的信息仍然保留,从而不会引起信息仍然保留,从而不会引起删除异常删除异常同时,由于数据冗余度的降低,数据没有重复同时,由于数据冗余度的降低,数据没有重复存储,也不会引起存储,也不会引起更新异常更新异常A
16、nIntroductiontoDatabaseSystem第第六六章章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.3数据依赖的公理系统数据依赖的公理系统*6.4模式的分解模式的分解6.5小结小结AnIntroductiontoDatabaseSystem6.2规范化规范化规范化理论规范化理论正是用来改造关系模式,通过正是用来改造关系模式,通过分解关分解关系模式系模式来消除其中不合适的数据依赖,以解决来消除其中不合适的数据依赖,以解决插插入异常入异常、删除异常删除异常、更新异常更新异常和和数据冗余数据冗余问题问题AnIntroductiontoDatabaseSyst
17、em6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.1函数依赖函数依赖v函数依赖函数依赖v平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖v完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v传递函数依赖传递函数依赖AnIntroductiontoDatabaseSystem一、函数依赖一、函数依赖定义定义6.1设设R(U)是一个属性集是一个属性集U上的关系模式,上的关
18、系模式,X和和Y是是U的的子集子集若对于若对于R(U)的的任意任意一个可能的关系一个可能的关系r,r中不可能存在两个元中不可能存在两个元组在组在X上的属性值相等,上的属性值相等,而在而在Y上的属性值不等,上的属性值不等,则称则称“X函数确定函数确定Y”或或“Y函数依赖于函数依赖于X”,记作记作XY例如例如:学号确定,学生的年龄唯一确定,:学号确定,学生的年龄唯一确定,年龄函数依赖于学号年龄函数依赖于学号AnIntroductiontoDatabaseSystem说明说明1.所有关系实例所有关系实例均要满足均要满足2.语义范畴语义范畴的概念的概念3.数据库设计者可以对现实世界作强制的规定数据库设
19、计者可以对现实世界作强制的规定AnIntroductiontoDatabaseSystem函数依赖(小结)函数依赖(小结)函数依赖函数依赖与与属性之间的联系类型属性之间的联系类型有关有关(1 1)在在一一个个关关系系模模式式中中,如如果果属属性性X X与与Y Y有有1:11:1联联系系时时,则则存存在函数依赖在函数依赖XYXY,YXYX,即,即X YX Y例如:当学生无重名时,例如:当学生无重名时,SnoSno SnameSname(2 2)如果属性)如果属性X X与与Y Y有有m:1m:1的联系时,则只存在函数依赖的联系时,则只存在函数依赖XYXY。例例 如如 : SnoSno与与 Sage
20、Sage, SdeptSdept之之 间间 均均 为为 m:1m:1联联 系系 , 所所 以以 有有SnoSageSnoSage,SnoSdeptSnoSdept(3 3)如如果果属属性性X X与与Y Y有有m:nm:n的的联联系系时时,则则X X与与Y Y之之间间不不存存在在任任何何函数依赖关系函数依赖关系例例如如,一一个个学学生生可可以以选选修修多多门门课课程程,一一门门课课程程又又可可以以为为多多个个学生选修,所以学生选修,所以SnoSno与与CnoCno之间不存在函数依赖关系之间不存在函数依赖关系AnIntroductiontoDatabaseSystem函数依赖(小结)函数依赖(小结
21、)v由于由于函数依赖函数依赖与与属性之间的联系类型属性之间的联系类型有关,有关,所以在确定属性间的函数依赖关系时,可以所以在确定属性间的函数依赖关系时,可以从分析从分析属性间的联系类型属性间的联系类型入手,便可确定属入手,便可确定属性间的函数依赖性间的函数依赖AnIntroductiontoDatabaseSystem二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果如果XY,但,但Y X,则称则称XY是是非平凡的函数依赖非平凡的函数依赖若若XY,但,但Y X,则称则称XY是是平凡的函数依赖平凡的函数依赖v例
22、例在关系在关系SC(Sno,Cno,Grade)中,中,非平凡函数依赖非平凡函数依赖:(Sno,Cno)Grade平凡函数依赖平凡函数依赖:(Sno,Cno)Sno(Sno,Cno)CnoAnIntroductiontoDatabaseSystem平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)若若XY,则,则X称为这个函数依赖的称为这个函数依赖的决定属性组决定属性组,也,也称为称为决定因素决定因素(Determinant)若若XY,YX,则记作,则记作XY若若Y不函数依赖于不函数依赖于X,则记作,则记作XYAnIntroductiontoDatabaseSystem三、完
23、全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖定义定义6.2在在R(U)中,如果中,如果XY,并且对于并且对于X的任何一个真的任何一个真子集子集X,都有,都有XY,则称则称Y对对X完全函数依赖完全函数依赖,记作,记作XFY若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称则称Y对对X部分函数部分函数依赖依赖,记作,记作XPYAnIntroductiontoDatabaseSystem完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)例例1中中(Sno,Cno)Grade是是完全函数依赖完全函数依赖(Sno,Cno)Sdept是是部分函数依赖部分函数依赖因为因为:S
24、noSdept成立,且成立,且Sno是(是(Sno,Cno)的)的真子集真子集FPAnIntroductiontoDatabaseSystem四、传递函数依赖四、传递函数依赖定义定义6.3在在R(U)中,如果中,如果XY,(Y X),YXYZ,则称则称Z对对X传递函数依赖传递函数依赖记为记为:XZ注注:如果如果YX,即即XY,则,则Z直接依赖于直接依赖于X例例在关系在关系Std(Sno,Sdept,Mname)中,有:中,有:SnoSdept,SdeptSno,SdeptMnameMname传递函数传递函数依赖于依赖于Sno传递传递AnIntroductiontoDatabaseSystem函
25、数依赖函数依赖综综上上所所述述,函函数数依依赖赖分分为为完完全全函函数数依依赖赖、部部分分函函数数依依赖赖和和传传递递函函数数依依赖赖三三类类,它它们们是是规规范范化化理理论论的的依依据据和和规规范范化化程程度度的的准准则则,下下面面我我们们将将以以介介绍绍这这些些概概念念为为基基础础,进进行行数数据据库的库的规范设计规范设计AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntro
26、ductiontoDatabaseSystem6.2.2码码定义定义6.4设设K为为R中的中的属性属性或或属性组合属性组合。若。若KU,则,则K称为称为R的的侯选码侯选码(CandidateKey)若候选码多于一个,则选定其中的一个做为若候选码多于一个,则选定其中的一个做为主主码码(PrimaryKey)FAnIntroductiontoDatabaseSystem码(续)码(续)v主属性与非主属性主属性与非主属性包含在任何一个包含在任何一个候选码候选码中的属性中的属性,称为,称为主属性主属性(Primeattribute)不包含在任何码中的属性称为不包含在任何码中的属性称为非主属性非主属性(
27、Nonprimeattribute)或)或非码属性非码属性(Non-keyattribute)v全码全码整个属性组是码,称为整个属性组是码,称为全码全码(All-key)AnIntroductiontoDatabaseSystem码(续)码(续)例例2关系模式关系模式S(Sno,Sdept,Sage),单个属性),单个属性Sno是是码码,SC(Sno,Cno,Grade)中,()中,(Sno,Cno)是)是码码例例3关系模式关系模式R(P,W,A)P:演奏者:演奏者W:作品:作品A:听众:听众一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏某一作品可被多个演奏者演
28、奏听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品码为码为(P,W,A),即,即All-KeyAnIntroductiontoDatabaseSystem外部码外部码定义定义6.5关系模式关系模式R 中属性或属性组中属性或属性组X 并非并非R的码,但的码,但X 是另一个关系模式的码,则称是另一个关系模式的码,则称X 是是R 的的外部码外部码(Foreignkey)也称也称外码外码v如在如在SC(Sno,Cno,Grade)中,)中,Sno不是码,但不是码,但Sno是关系模式是关系模式S(Sno,Sdept,Sage)的码,则)的码,则Sno是关系模式是关系模式SC的的外部码外部
29、码v主码主码与与外部码外部码一起提供了表示一起提供了表示关系间联系的手段关系间联系的手段AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.3范式范式v范式范式是符合某一种级别的是符合某一种级别的关系模式的集合关系模式的集合v关系数据库中的关系必须满足一定的要求。满足不同程度关系数据库中的关系必须满足一定的要求。满足不同程度
30、要求的为不同要求的为不同范式范式v范式的种类范式的种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)AnIntroductiontoDatabaseSystem范式(续)范式(续)v规范化的规范化的基本思想基本思想是消除关系模式中的数据冗余,消除数是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除时发生异据依赖中的不合适的部分,解决数据插入、删除时发生异常现象常现象v这就要求关系数据库设计出来的关系模式要满足一定的条这就要求关系数据库设计出来的关系模式要满足一
31、定的条件件v我们把关系数据库的规范化过程中为不同程度的规范化要我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为求设立的不同标准称为范式范式(Normal FormNormal Form)v由于规范化的程度不同,就产生了由于规范化的程度不同,就产生了不同的范式不同的范式v满足最基本规范化要求的关系模式叫满足最基本规范化要求的关系模式叫第一范式第一范式v在第一范式中进一步满足一些要求为在第一范式中进一步满足一些要求为第二范式第二范式v以此类推就产生了以此类推就产生了第三范式第三范式等概念等概念v每种范式都规定了一些限制约束条件每种范式都规定了一些限制约束条件AnIntrodu
32、ctiontoDatabaseSystem范式(续)范式(续)v各种范式之间存在联系:各种范式之间存在联系:v某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为RnNFv一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分解模式分解可以转换为若可以转换为若干个高一级范式的关系模式的集合,这种过程就叫干个高一级范式的关系模式的集合,这种过程就叫规范化规范化AnIntroductiontoDatabaseSystem范式(续)范式(续)各种范式之间的关系图各种范式之间的关系图下面逐一介绍各级范式及其规范化下面逐一介绍各级范式及其规范化AnIntroductiontoDa
33、tabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.42NFv1NF的定义的定义如果一个关系模式如果一个关系模式R的所有属性都是的所有属性都是不可分的基本数据项不可分的基本数据项,则则R1NFv第一范式是对关系模式的最起码的要求。不满足第一范式是对关系模式的最起码的要求。不满足第一范式第一范式的数据库模式的数据库模式不能称为关系数据库不能称为关系数据库v但是但
34、是满足第一范式的关系模式并不一定是一个好的关系模满足第一范式的关系模式并不一定是一个好的关系模式式AnIntroductiontoDatabaseSystem2NF(续)(续)例例4关系模式关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,为学生住处,假设每个系的学生住在同一个地方假设每个系的学生住在同一个地方v函数依赖包括:函数依赖包括:(Sno,Cno)FGradeSnoSdept(Sno,Cno)PSdeptSnoSloc(Sno,Cno)PSlocSdeptSlocAnIntroductiontoDatabaseSystem2NF(续)(续)vS
35、-L-C的的码码为为(Sno,Cno)vS-L-C满足满足第一范式第一范式v非主属性非主属性Sdept和和Sloc部分函数依赖于码部分函数依赖于码(Sno,Cno)SnoCnoGradeSdeptSlocS-L-CAnIntroductiontoDatabaseSystemS-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)关系模式关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)(1)插入异常插入异常(2)删除异常删除异常(3)数据冗余度大数据冗余度大(4)修改复杂修改复杂AnIntroductiontoDatabaseSystemS-L-C不是一个好的关系模式
36、(续)不是一个好的关系模式(续)v原因原因非主属性非主属性Sdept、Sloc部分函数依赖于码部分函数依赖于码v解决方法解决方法S-L-C分解为两个关系模式,以分解为两个关系模式,以消除消除这些这些部分函数依赖部分函数依赖SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)AnIntroductiontoDatabaseSystem2NF(续)(续)函数依赖图:函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式关系模式SC的的码码为(为(Sno,Cno)v关系模式关系模式S-L的的码码为为Snov这样这样非主属性非主属性对对码码都是都是完全函数依
37、赖完全函数依赖AnIntroductiontoDatabaseSystem2NF(续)(续)v2NF的定义的定义定义定义6.6若若R1NF,且每一个,且每一个非主属性非主属性完全函数依赖完全函数依赖于于码,则码,则R2NF例:例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)2NFSC(Sno,Cno,Grade)2NF S-L(Sno,Sdept,Sloc)2NFAnIntroductiontoDatabaseSystem2NF(续)(续)v采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系
38、分解为多个2NF的关系,的关系,可以在一定程度上可以在一定程度上减轻减轻原原1NF关系中存在的关系中存在的插入异常插入异常、删删除异常除异常、数据冗余度大数据冗余度大、修改复杂修改复杂等问题等问题v将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,的关系,并不能完全消除并不能完全消除关系模式中的各种异常情况和数据冗余关系模式中的各种异常情况和数据冗余AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9
39、规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.53NFv3NF的定义的定义定义定义6.7关系模式关系模式R中若中若不存在这样的码不存在这样的码X、属性、属性组组Y及非主属性及非主属性Z(Z Y), 使得使得XY,YZ成立,成立,YX,则称,则称R3NFn若若R3NF,则每一个,则每一个非主属性非主属性既不部分依赖既不部分依赖于码于码也不也不传递依赖传递依赖于码于码AnIntroductiontoDatabaseSystem3NF(续)(续)例:例:2NF关系模式关系模式S-L(Sno,Sdept,Sloc)中中函数依赖:函数依赖:SnoSdeptSde
40、ptSnoSdeptSloc可得:可得:SnoSloc,即,即S-L中存在中存在非主属性非主属性对对码码的的传递函数依传递函数依赖赖,S-L3NF传递传递S-LSnoSdeptSlocAnIntroductiontoDatabaseSystem3NF(续)(续)v解决方法解决方法采用投影分解法,把采用投影分解法,把S-L分解分解为两个关系模式,以为两个关系模式,以消消除传递函数依赖除传递函数依赖:S-D(Sno,Sdept)D-L(Sdept,Sloc)S-D的的码码为为Sno,D-L的的码码为为Sdeptn分解后的关系模式分解后的关系模式S-D与与D-L中中不再存在传递依赖不再存在传递依赖A
41、nIntroductiontoDatabaseSystem3NF(续)(续)S-D的码为的码为Sno,D-L的码为的码为SdeptSnoSdeptS-DSdeptSlocD-LvS-L(Sno,Sdept,Sloc)2NFS-L(Sno,Sdept,Sloc)3NFS-D(Sno,Sdept)3NFD-L(Sdept,Sloc)3NFAnIntroductiontoDatabaseSystem3NF(续)(续)v采用投影分解法将一个采用投影分解法将一个2NF的关系的关系分解分解为多个为多个3NF的关系,可以在一定程度上解决原的关系,可以在一定程度上解决原2NF关系关系中存在的中存在的插入异常插
42、入异常、删除异常删除异常、数据冗余度大数据冗余度大、修改复杂修改复杂等问题等问题v将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,仍然的关系后,仍然不能完全消除关系模式中的各种异常情况和数据不能完全消除关系模式中的各种异常情况和数据冗余冗余AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.6BC范式(范式(B
43、CNF)v3NF3NF只只限限制制了了非非主主属属性性对对码码的的依依赖赖关关系系,而而没没有有限限制制主属性主属性对对码码的依赖关系的依赖关系v如如果果发发生生了了这这种种依依赖赖,仍仍有有可可能能存存在在数数据据冗冗余余、插入异常插入异常、删除异常删除异常和和修改异常修改异常v对对3NF3NF进进一一步步规规范范化化,消消除除主主属属性性对对码码的的依依赖赖关关系系。为为了了解解决决这这种种问问题题,BoyceBoyce与与CoddCodd共共同同提提出出了了一一个个新新范范式式的的定定义义,这这就就是是Boyce-Boyce-CoddCodd范范式式,通通常常简简称称BCNFBCNF或或
44、BCBC范式范式v它弥补了它弥补了3NF3NF的不足的不足AnIntroductiontoDatabaseSystemBCNF(续)(续)v定义定义6.8关系模式关系模式R1NF,若,若XY且且Y X时,时,X必含有码必含有码,则,则RBCNFv等价于等价于:每一个决定属性因素都包含码每一个决定属性因素都包含码AnIntroductiontoDatabaseSystemBCNF(续)(续)v若若RBCNF所有所有非主属性非主属性对对每一个码每一个码都是都是完全函数依赖完全函数依赖所有的所有的主属性主属性对对每一个不包含它的码每一个不包含它的码,也是,也是完全函数完全函数依赖依赖没有任何属性完全
45、函数依赖于没有任何属性完全函数依赖于非码非码的的任何一组属性任何一组属性vRBCNFR3NF充分充分不必要不必要AnIntroductiontoDatabaseSystemBCNF(续)(续)例例5关系模式关系模式C(Cno,Cname,Pcno)CnoCname,CnoPcnonC3NFnCBCNFCCnoCnamePcno判断依据:每一个决定属性因素都包含码?判断依据:每一个决定属性因素都包含码?若若RBCNF所有所有非主属性非主属性对对每一个码每一个码都是都是完全函数依赖完全函数依赖所有的所有的主属性主属性对对每一个不包含它的码每一个不包含它的码,也是,也是完全函数依赖完全函数依赖没有任
46、何属性完全函数依赖于没有任何属性完全函数依赖于非码非码的的任何一组属性任何一组属性AnIntroductiontoDatabaseSystemBCNF(续)(续)例例6关系模式关系模式S(Sno,Sname,Sdept,Sage)n假定假定S有两个码有两个码Sno,SnameSnoSname,SnameSno,SnoSdept,SnoSage,SnameSdept,SnameSagenS3NFnSBCNFSSnoSdeptSageSname判断依据:每一个决定属性因素都包含码?判断依据:每一个决定属性因素都包含码?若若RBCNF所有所有非主属性非主属性对对每一个码每一个码都是都是完全函数依赖完
47、全函数依赖所有的所有的主属性主属性对对每一个不包含它的码每一个不包含它的码,也是,也是完全函数依赖完全函数依赖没有任何属性完全函数依赖于没有任何属性完全函数依赖于非码非码的的任何一组属性任何一组属性AnIntroductiontoDatabaseSystemBCNF(续)(续)例例7关系模式关系模式SJP(S,J,P)n函数依赖函数依赖:(:(S,J)P;(;(J,P)Sn(S,J)与()与(J,P)都可以作为)都可以作为候选码候选码,属性相交属性相交nSJP3NFnSJPBCNF判断依据:每一个决定属性因素都包含码?判断依据:每一个决定属性因素都包含码?若若RBCNF所有所有非主属性非主属性
48、对对每一个码每一个码都是都是完全函数依赖完全函数依赖所有的所有的主属性主属性对对每一个不包含它的码每一个不包含它的码,也是,也是完全函数依赖完全函数依赖没有任何属性完全函数依赖于没有任何属性完全函数依赖于非码非码的的任何一组属性任何一组属性AnIntroductiontoDatabaseSystemBCNF(续)(续)例例8在关系模式在关系模式STJ(S,T,J)中,中,S表示学生,表示学生,T表表示教师,示教师,J表示课程。表示课程。函数依赖函数依赖:(S,J)T,(S,T)J,TJ(S,J)和和(S,T)都是都是候选码候选码判断依据:每一个决定属性因素都包含码?判断依据:每一个决定属性因素
49、都包含码?AnIntroductiontoDatabaseSystemBCNF(续)(续) JSJTSTSTJ中的函数依赖中的函数依赖vSTJ3NF没有任何非主属性对码传递依赖或部分依赖没有任何非主属性对码传递依赖或部分依赖vSTJBCNFT是是TJ的决定因素,但的决定因素,但T不包含码不包含码判断决定因素判断决定因素(S,J)、(S,T)和和T是否包含码?是否包含码?AnIntroductiontoDatabaseSystemBCNF(续)(续)v解决方法解决方法:将:将STJ分解为二个关系模式:分解为二个关系模式:ST(S,T)BCNF,TJ(T,J)BCNF没有没有任何属性任何属性对码的
50、对码的部分函数依赖部分函数依赖和和传递函数依赖传递函数依赖STSTTJTJAnIntroductiontoDatabaseSystem3NF与与BCNF的关系的关系vRBCNFR3NFv如果如果R3NF,且,且R只有只有一个候选码一个候选码RBCNFR3NF充分充分不必要不必要充分充分必要必要AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabase
51、System6.2.7多值依赖多值依赖例例9学校中某一门课程由学校中某一门课程由多个教师多个教师讲授,他们使用相同讲授,他们使用相同的的一套一套参考书。参考书。每个教员可以讲授多门课程,每种每个教员可以讲授多门课程,每种参考书可以供多门课程使用。参考书可以供多门课程使用。AnIntroductiontoDatabaseSystem课课程程C教教员员T参参考考书书B物理物理数学数学计算数学计算数学李李勇勇王王军军李李勇勇张张平平张张平平周周峰峰普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析.多值依赖(续)多值依赖(续)v非
52、规范化关系非规范化关系AnIntroductiontoDatabaseSystem普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析微分方程微分方程高等代数高等代数李李勇勇李李勇勇李李勇勇王王军军王王军军王王军军李李勇勇李李勇勇李李勇勇张张平平张张平平张张平平物物理理物物理理物物理理物物理理物物理理物物理理数数学学数数学学数数学学数数学学数数学学数数学学参考书参考书B(Z)教员教员T(Y)课程课程C(X)多值依赖(续)多值依赖(续)v用二维表表示用二维表表示Teachi
53、ngAnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)vTeachingBCNFvTeaching具有唯一候选码具有唯一候选码(C,T,B),即即全码全码AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)Teaching模式中存在的问题模式中存在的问题(1)数据冗余度大数据冗余度大(2)插入操作复杂插入操作复杂(3)删除操作复杂删除操作复杂(4)修改操作复杂修改操作复杂存在存在多值依赖多值依赖AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)v定义定义6.9设设R(U)是一个属性集
54、是一个属性集U上的一个关系模式,上的一个关系模式,X、Y和和Z是是U的子的子集,并且集,并且ZUXY。关系模式。关系模式R(U)中中多值依赖多值依赖XY成立,成立,当且仅当对当且仅当对R(U)的的任一关系任一关系r,给定的一对(,给定的一对(x,z)值,有一组)值,有一组Y的值,这组值仅仅的值,这组值仅仅决定于决定于x值值而而与与z值无关值无关v例例Teaching(C,T,B)v教员教员T多值依赖于多值依赖于课程课程C,即,即CTTAnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)v多值依赖的多值依赖的另一个等价另一个等价的形式化的定义:的形式化的定义:
55、在在R(U)的任一关系的任一关系r中,如果存在元组中,如果存在元组t,s 使得使得tX=sX,那么就必然存在元组那么就必然存在元组w,v r,(,(w,v可以可以与与s,t相同),使得相同),使得wX=vX=tX,而,而wY=tY,wZ=sZ,vY=sY,vZ=tZ(即交换即交换s,t元组的元组的Y值所得的两个新元组必在值所得的两个新元组必在r中中),则),则Y多值依赖于多值依赖于X,记为记为XY。这里,这里,X,Y是是U的子集,的子集,Z=U-X-YAnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)数数 学学张张 平平微分方程微分方程物物 理理王王 军军
56、普通物理学普通物理学数数 学学李李 勇勇数学分析数学分析XYZCTT普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析微分方程微分方程高等代数高等代数李李勇勇李李勇勇李李勇勇王王军军王王军军王王军军李李勇勇李李勇勇李李勇勇张张平平张张平平张张平平物物理理物物理理物物理理物物理理物物理理物物理理数数学学数数学学数数学学数数学学数数学学数数学学参考书参考书B教员教员T课程课程CTeaching物物 理理李李 勇勇光学原理光学原理AnIntroductiontoDatabas
57、eSystem多值依赖(续)多值依赖(续)v平凡多值依赖平凡多值依赖和和非平凡的多值依赖非平凡的多值依赖若若XY,而,而Z,则称则称XY为为平凡的多值依赖平凡的多值依赖否则否则称称XY为为非平凡的多值依赖非平凡的多值依赖AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)例例10关系模式关系模式WSC(W,S,C)nW表示仓库,表示仓库,S表示保管员,表示保管员,C表示商品表示商品n假设每个仓库有若干个保管员,有若干种商品假设每个仓库有若干个保管员,有若干种商品n每个保管员保管所在的仓库的所有商品每个保管员保管所在的仓库的所有商品n每种商品被所有保管员保管每
58、种商品被所有保管员保管AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)W(仓库)(仓库)S(保管员)(保管员)C(商品)(商品)W1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5WSSAnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)WS且且WC用下图表示这种对应用下图表示这种对应表示在仓库表示在仓库Wi工作的全部保管员工作的全部保管员表示仓库表示仓库Wi中存放的全部商品中存放的全部商品SWi中的每一个取值和中的每一个取值和CWi中的每一个取值相对
59、应中的每一个取值相对应完全完全二分图二分图AnIntroductiontoDatabaseSystem多值依赖的性质多值依赖的性质(1)多值依赖具有)多值依赖具有对称性对称性若若XY,则,则XZ,其中其中ZUXY(2)多值依赖具有)多值依赖具有传递性传递性若若XY,YZ,则则XZY(3)函数依赖是多值依赖的)函数依赖是多值依赖的特殊特殊情况情况若若XY,则,则XY(4)若)若XY,XZ,则,则XY Z(5)若)若XY,XZ,则,则XYZ(6)若)若XY,XZ,则,则XY-Z,XZ-YAnIntroductiontoDatabaseSystem多值依赖与函数依赖的区别多值依赖与函数依赖的区别(1
60、)多值依赖的有效性与属性集的范围有关多值依赖的有效性与属性集的范围有关XY不仅涉及属性组不仅涉及属性组X和和Y,而且涉及,而且涉及U中其余属性中其余属性Z,但是在关系模式,但是在关系模式R(U)中函数依赖中函数依赖XY的有效性仅决定的有效性仅决定于于X,Y这两个属性集的值这两个属性集的值(2)若函数依赖若函数依赖XY在在R(U)上成立,则对于任何上成立,则对于任何Y Y均均有有XY成立成立多值依赖多值依赖XY若在若在R(U)上成立,上成立,不能断言不能断言对于任何对于任何Y Y有有XY成立成立AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依
61、赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.84NFv定义定义6.10关系模式关系模式R1NF,如果对于如果对于R的每个的每个非平凡多值依赖非平凡多值依赖XY(Y X),),X都含有码都含有码,则,则R4NFv如果如果R4NF,则则RBCNFn不允许不允许有非平凡且非函数依赖的有非平凡且非函数依赖的多值依赖多值依赖n允许允许的非平凡多值依赖是的非平凡多值依赖是函数依赖函数依赖n根据定义,对于每一个根据定义,对于每一个
62、非非平凡的多值依赖平凡的多值依赖XY,X都含有候选码,于是就有都含有候选码,于是就有XYAnIntroductiontoDatabaseSystem4NF(续(续)例:例:Teaching(C,T,B)4NF存在非平凡的多值依赖存在非平凡的多值依赖CT,且,且C不是码不是码n用投影分解法把用投影分解法把Teaching分解为如下两个关系模式:分解为如下两个关系模式:CT(C,T)4NFCB(C,B)4NFCT,CB是是平凡多值依赖平凡多值依赖AnIntroductiontoDatabaseSystem4NF(续)(续)v多值依赖的不足在于多值依赖的不足在于数据冗余太大数据冗余太大。我们可以用。
63、我们可以用投影分解的方法消去投影分解的方法消去非平凡非平凡且且非函数依赖非函数依赖的的多值多值依赖依赖v函数依赖和多值依赖是两种最重要的数据依赖。函数依赖和多值依赖是两种最重要的数据依赖。如果如果只考虑函数依赖只考虑函数依赖,则属于,则属于BCNF的关系模式的关系模式规范化程度已最高了规范化程度已最高了。如果。如果考虑多值依赖考虑多值依赖,则属,则属于于4NF的关系模式规范化程度是最高的了的关系模式规范化程度是最高的了AnIntroductiontoDatabaseSystem思思考考v一个全是主属性的关系模式一定可以达到第几范一个全是主属性的关系模式一定可以达到第几范式?式?v一个全码的关系
64、模式一定可以达到第几范式?一个全码的关系模式一定可以达到第几范式?AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.9规范化小结规范化小结v关系数据库的关系数据库的规范化理论规范化理论是数据库逻辑设计的工是数据库逻辑设计的工具具v关系模式规范化的目的关系模式规范化的目的 一个关系只要其分量都是不可分的数据项,就可称作规范一
65、个关系只要其分量都是不可分的数据项,就可称作规范化的关系,但这只是最基本的规范化化的关系,但这只是最基本的规范化 这样的关系模式是合法的这样的关系模式是合法的 但人们发现有些关系模式存在但人们发现有些关系模式存在插入插入、删除删除、修改异常修改异常、数数据冗余据冗余等弊病等弊病 规范化的目的规范化的目的就是使结构合理,尽可能消除异常,使数据就是使结构合理,尽可能消除异常,使数据冗余尽量小,便于插入、删除和更新冗余尽量小,便于插入、删除和更新AnIntroductiontoDatabaseSystem规范化小结(续)规范化小结(续)v基本思想基本思想:逐步消除数据依赖中不合适的部分:逐步消除数据
66、依赖中不合适的部分一一个个低低一一级级范范式式的的关关系系模模式式,通通过过模模式式分分解解转转化化为为若若干干个个高高一一级级范范式式的的关关系系模模式式的的集集合合,这这种种分分解解过过程程叫叫作作关关系系模模式的式的规范化规范化(Normalization)v规规范范化化的的基基本本原原则则就就是是遵遵从从概概念念单单一一化化“一一事事一一地地”的的原原则则,即即一一个个关关系系只只描描述述一一个个实实体体或或者者实实体间的联系体间的联系v实质:概念的实质:概念的单一化单一化 若多于一个实体,就把它若多于一个实体,就把它“分离分离”出来出来 因因此此,所所谓谓规规范范化化,实实质质上上是
67、是概概念念的的单单一一化化,即即一一个个关关系系表示一个实体表示一个实体AnIntroductiontoDatabaseSystem规范化小结(续)规范化小结(续)v关系模式规范化的基本步骤关系模式规范化的基本步骤1NF消除消除非主属性非主属性对对码码的部分函数依赖的部分函数依赖消除决定属性消除决定属性2NF集非码的非平集非码的非平消除消除非主属性非主属性对对码码的传递函数依赖的传递函数依赖凡函数依赖凡函数依赖3NF消除消除主属性主属性对对码码的部分和传递函数依赖的部分和传递函数依赖BCNF消除消除非平凡非平凡且且非函数依赖非函数依赖的多值依赖的多值依赖4NFAnIntroductiontoDatabaseSystem规范化小结(续)规范化小结(续)v不能说规范化程度越高的关系模式就越好不能说规范化程度越高的关系模式就越好v在设计数据库模式结构时,必须对现实世界的实际情况和在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式现实世界的模式v上面的规范化步骤可以在其中任何一步终止上面的规范化步骤可以在其中任何一步终止AnIntroductiontoDatabaseSystem