1、 数据库系统概论数据库系统概论第六章第六章 关系数据理论关系数据理论第六章第六章 关系数据理论关系数据理论6 6.1.1 问题的提出问题的提出6 6.2.2 规范化规范化6 6.3.3 数据依赖的公理系统数据依赖的公理系统*6 6.4.4 模式的分解模式的分解6 6.5.5 小结小结一、概念回顾一、概念回顾v关系关系v关系模式关系模式v关系数据库关系数据库v关系数据库的模式关系数据库的模式关系模式的形式化定义关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F)R(U,D,DOM,F)R R:关系名关系名U U:组成该关系的
2、属性名集合组成该关系的属性名集合DD:属性组属性组U U中属性所来自的域中属性所来自的域DOMDOM:属性向域的映象集合属性向域的映象集合F F:属性间数据的依赖关系集合属性间数据的依赖关系集合四、关系模式的简化表示四、关系模式的简化表示v关系模式关系模式R R(U,D,DOM,FU,D,DOM,F)简化为一个三元组:简化为一个三元组:R R(U,FU,F)v当且仅当当且仅当U U上的一个关系上的一个关系r r满足满足F F时,时,r r称为称为关系模式关系模式 R R(U,FU,F)的一个)的一个关系关系6.1 问题的提出问题的提出关系数据库逻辑设计关系数据库逻辑设计 针对具体问题,如何构造
3、一个适合于它针对具体问题,如何构造一个适合于它的数据模式的数据模式 数据库逻辑设计的工具数据库逻辑设计的工具关系数据库关系数据库的规范化理论的规范化理论 例例11建立一个描述学校教务的数据库:建立一个描述学校教务的数据库:学生的学号(学生的学号(SnoSno)、所在系()、所在系(SdeptSdept)系主任姓名(系主任姓名(MnameMname)、课程名()、课程名(CnameCname)成绩(成绩(GradeGrade)单一单一的关系模式的关系模式 :Student UStudent FU U Sno,Sdept,Mname,CnameSno,Sdept,Mname,Cname,Grade
4、 Grade 6.1 问题的提出问题的提出U U Sno,Sdept,Mname,CnameSno,Sdept,Mname,Cname,Grade Grade U U SnoSno,Sdept,Mname,Sdept,Mname,CnameCname,Grade Grade 6.1 问题的提出问题的提出 属性组属性组U U上的一组函数依赖上的一组函数依赖F F:F F Sno Sdept,Sdept MnameSno Sdept,Sdept Mname,(Sno,Cname (Sno,Cname)Grade)Grade SnoCnameSdeptMnameGrade6.1 问题的提出问题的提出
5、关系模式中存在的问题关系模式中存在的问题 数据冗余太大数据冗余太大浪费大量的存储空间浪费大量的存储空间 例:每一个系主任信息重复出现例:每一个系主任信息重复出现 更新异常更新异常 数据冗余数据冗余 ,更新数据时,维护数据完整性代更新数据时,维护数据完整性代价大。价大。例:系主任信息修改例:系主任信息修改U U SnoSno,Sdept,Mname,Sdept,Mname,CnameCname,Grade,Grade 关系模式中存在的问题关系模式中存在的问题 插入异常插入异常该插的数据插不进去该插的数据插不进去 例,插入一个新系信息。例,插入一个新系信息。删除异常删除异常不该删除的数据不得不删不
6、该删除的数据不得不删例,某系学生全部毕业例,某系学生全部毕业关系模式关系模式Student中存在的问题中存在的问题1.1.数据冗余太大数据冗余太大2.2.更新异常(更新异常(Update AnomaliesUpdate Anomalies)3.3.插入异常(插入异常(Insertion AnomaliesInsertion Anomalies)4.4.删除异常(删除异常(Deletion AnomaliesDeletion Anomalies)数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)结论:结论:nStudentStudent关系模式不是一个好的模式。关系模式不是一个好的模式
7、。n“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少数据冗余应尽可能少原因:原因:由存在于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的引起的解决方法:解决方法:通过通过分解分解关系模式来消除其中不合适关系模式来消除其中不合适 的数据依赖的数据依赖什么是数据依赖(续)什么是数据依赖(续)数据依赖数据依赖v一个关系内部属性与属性之间的约束关系一个关系内部属性与属性之间的约束关系v现实世界属性间相互联系的抽象现实世界属性间相互联系的抽象v数据内在的性质数据内在的性质v语义语义的体现的体现什么是数据依赖(续)什么是数据依赖
8、(续)数据依赖的类型数据依赖的类型v函数依赖函数依赖(Functional DependencyFunctional Dependency,简记,简记为为FDFD)v多值依赖(多值依赖(MultivaluedMultivalued Dependency Dependency,简,简记为记为MVDMVD)v其他其他分解关系模式分解关系模式v把这个单一模式分成把这个单一模式分成3 3个关系模式:个关系模式:S S(SnoSno,SdeptSdept,SnoSno SdeptSdept);SC SC(SnoSno,CnoCno,GradeGrade,(,(SnoSno,CnoCno)GradeGra
9、de);DEPT DEPT(SdeptSdept,MnameMname,SdeptSdept MnameMname)第六章第六章 关系数据理论关系数据理论6 6.1.1 问题的提出问题的提出6.2 6.2 规范化规范化6 6.3.3 数据依赖的公理系统数据依赖的公理系统*6 6.4.4 模式的分解模式的分解6 6.5.5 小结小结6.2 规范化规范化 规范化理论规范化理论正是用来改造关系模式,通过正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异赖,以解决插入异常、删除异常、更新异常和数据冗余问题。常和数据冗余
10、问题。6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6.2.1 函数依赖函数依赖v函数依赖函数依赖v平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖v完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v传递函数依赖传递函数依赖一、函数依赖一、函数依赖定义定义6 6.1 .1 设设R(
11、U)R(U)是一个属性集是一个属性集U U上的关系模式,上的关系模式,X X和和Y Y是是U U的子集。的子集。若对于若对于R(U)R(U)的的任意任意一个可能的关系一个可能的关系r r,r r中不可能中不可能存在两个元组在存在两个元组在X X上的属性值相等,上的属性值相等,而在而在Y Y上的属上的属性值不等,性值不等,则称则称“X X函数确定函数确定Y Y”或或 “Y Y函数依函数依赖于赖于X X”,记作,记作XYXY。说明说明 1.1.所有关系实例所有关系实例均要满足均要满足2.2.语义范畴语义范畴的概念的概念3.3.数据库设计者可以对现实世界作强制数据库设计者可以对现实世界作强制的规定的
12、规定二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖在关系模式在关系模式R(U)R(U)中,对于中,对于U U的子集的子集X X和和Y Y,如果如果XYXY,但,但Y Y X X,则称,则称XYXY是非平凡的函数依赖是非平凡的函数依赖若若XYXY,但,但Y Y X,X,则称则称XYXY是是平凡的函数依赖平凡的函数依赖v例:在关系例:在关系SC(Sno,CnoSC(Sno,Cno,Grade),Grade)中,中,非平凡函数依赖:非平凡函数依赖:(Sno,Cno(Sno,Cno)GradeGrade 平凡函数依赖:平凡函数依赖:(Sno,Cno(Sno,Cno)SnoSno (S
13、no,Cno)Cno (Sno,Cno)Cno平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)若若X XY Y,则,则X X称为这个函数依赖的决定属称为这个函数依赖的决定属性组,也称为决定因素(性组,也称为决定因素(DeterminantDeterminant)。)。若若X XY Y,Y YX X,则记作,则记作X XY Y。若若Y Y不函数依赖于不函数依赖于X X,则记作,则记作X XY Y。三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖定义定义6 6.2 .2 在在R(U)R(U)中,如果中,如果XYXY,并且对于,并且对于X X的任何一个真子集的任何一个
14、真子集XX,都有,都有X Y,X Y,则则称称Y Y对对X X完全函数依赖完全函数依赖,记作,记作X X F F Y Y。若若XYXY,但,但Y Y不完全函数依赖于不完全函数依赖于X X,则称,则称Y Y对对X X部分函数依赖部分函数依赖,记作,记作X X P P Y Y。完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)例例1 1 中中(Sno,Cno)GradeSno,Cno)Grade是完全函数依赖,是完全函数依赖,(Sno,Cno)SdeptSno,Cno)Sdept是部分函数依赖是部分函数依赖 FP因为因为SnoSdeptSnoSdept成立,且成立,且SnoSno是(
15、是(SnoSno,CnoCno)的真子集)的真子集四、传递函数依赖四、传递函数依赖定义定义6 6.3 .3 在在R(U)R(U)中,如果中,如果XYXY,(Y(Y X),X),YXYX YZYZ,则称则称Z Z对对X X传递函数依赖传递函数依赖。记为:记为:X ZX Z 注注:如果如果YXYX,即即XYXY,则,则Z Z直接依赖于直接依赖于X X。例例:在关系在关系Std(Sno,Sdept,MnameStd(Sno,Sdept,Mname)中,有:中,有:Sno SdeptSno Sdept,Sdept MnameSdept Mname Mname Mname传递函数依赖于传递函数依赖于Sn
16、oSno传递传递6 6.2 .2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6.2.2 码码 定义定义6 6.4 .4 设设K K为为RR中的属性或属性组合。中的属性或属性组合。若若K K U U,则则K K称为称为R R的的侯选码侯选码(Candidate Candidate KeyKey)。)
17、。若候选码多于一个,则选定其中的一个做若候选码多于一个,则选定其中的一个做为为主码主码(Primary KeyPrimary Key)。)。F码(续)码(续)v主属性与非主属性主属性与非主属性 包含在任何一个候选码中的属性包含在任何一个候选码中的属性 ,称,称为主属性为主属性(Prime attributePrime attribute)不包含在任何码中的属性称为不包含在任何码中的属性称为非主属性非主属性(Nonprime attributeNonprime attribute)或非码属性()或非码属性(Non-key Non-key attributeattribute)v全码全码 整个属性
18、组是码,称为整个属性组是码,称为全码全码(All-keyAll-key)码(续)码(续)例例33 关系模式关系模式R R(P P,WW,A A)P P:演奏者:演奏者 WW:作品:作品 A A:听众:听众 一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品 码为码为(P(P,WW,A)A),即,即All-Key All-Key 外部码外部码定义定义6.5 6.5 关系模式关系模式 R R 中属性或属性组中属性或属性组X X 并非并非 R R的码,的码,但但 X X 是另一个
19、关系模式的码,则称是另一个关系模式的码,则称 X X 是是R R 的的外部码外部码(Foreign keyForeign key)也称也称外码外码v如在如在SCSC(SnoSno,CnoCno,GradeGrade)中,)中,SnoSno不是码不是码,但但SnoSno是关系模式是关系模式S S(SnoSno,SdeptSdept,SageSage)的码,)的码,则则SnoSno是关系模式是关系模式SCSC的外部码的外部码 v主码与外部码一起提供了表示关系间联系的手段主码与外部码一起提供了表示关系间联系的手段复复 习习v什么是函数依赖、非平凡函数依赖、什么是函数依赖、非平凡函数依赖、完全函数依赖
20、完全函数依赖v什么是码?什么是码?v不好的关系模式会存在哪些问题?不好的关系模式会存在哪些问题?6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6.2.3 范式范式v范式范式是符合某一种级别的关系模式的集合是符合某一种级别的关系模式的集合v范式的种类:范式的种类:第一范式第一范式(1NF)(1N
21、F)第二范式第二范式(2NF)(2NF)第三范式第三范式(3NF)(3NF)BCBC范式范式(BCNF)(BCNF)第四范式第四范式(4NF)(4NF)第五范式第五范式(5NF)(5NF)6.2.3 范式范式v各种范式之间存在联系:各种范式之间存在联系:v某一关系模式某一关系模式R R为第为第n n范式,可简记为范式,可简记为RnNFRnNF。v一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分解模式分解可以可以转换为若干个高一级范式的关系模式的集合,这转换为若干个高一级范式的关系模式的集合,这种过程就叫种过程就叫规范化规范化 NF5NF4BCNFNF3NF2NF16.2 规范
22、化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6.2.4 2NFv1NF1NF的定义的定义如果一个关系模式如果一个关系模式R R的所有属性都是的所有属性都是不可分的不可分的基本数据项基本数据项,则,则R1NFR1NFv第一范式是对关系模式的最起码的要求。不满第一范式是对关系模式的最起码的要求。不满足第一范
23、式的数据库模式不能称为关系数据库足第一范式的数据库模式不能称为关系数据库v但是满足第一范式的关系模式并不一定是一个但是满足第一范式的关系模式并不一定是一个好的关系模式好的关系模式 2NF(续)(续)v2NF2NF的定义的定义定义定义6.6 6.6 若若R1NFR1NF,且每一个,且每一个非主属性非主属性完全完全函数依赖于码,则函数依赖于码,则R2NFR2NF。2NF(续)(续)例例4 4 关系模式关系模式 S-L-C(Sno,Sdept,Sloc,CnoS-L-C(Sno,Sdept,Sloc,Cno,Grade),Grade)Sloc Sloc为学生住处,假设每个系的学生住在同一个地方为学生
24、住处,假设每个系的学生住在同一个地方v函数依赖包括:函数依赖包括:(Sno,Cno(Sno,Cno)F F Grade Grade Sno Sdept Sno Sdept (Sno,Cno (Sno,Cno)P P Sdept Sdept Sno Sloc Sno Sloc (Sno,Cno (Sno,Cno)P P Sloc Sloc Sdept Sloc Sdept Sloc 2NF 2NF(续)(续)vS-L-CS-L-C的码为的码为(Sno,Cno(Sno,Cno)vS-L-CS-L-C满足第一范式。满足第一范式。v非主属性非主属性SdeptSdept和和SlocSloc部分函数依赖于
25、码部分函数依赖于码(Sno,(Sno,CnoCno)SnoSnoCnoCnoGradeGradeSdeptSdeptSlocSlocS-L-CS-L-CS-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)(1)(1)插入异常插入异常(2)(2)删除异常删除异常(3)(3)数据冗余度大数据冗余度大(4)(4)修改复杂修改复杂S-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)v原因原因 SdeptSdept、SlocSloc部分函数依赖于码。部分函数依赖于码。v解决方法解决方法 S-L-CS-L-C分解为两个关系模式,以消除这些部分解为两个关系模式,以消除这些部分函数依赖分函
26、数依赖 SCSC(SnoSno,CnoCno,GradeGrade)2NF2NF S-L S-L(SnoSno,SdeptSdept,SlocSloc)2NF2NF2NF(续)(续)函数依赖图:函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式关系模式SCSC的码为(的码为(SnoSno,CnoCno)v关系模式关系模式S-LS-L的码为的码为SnoSnov这样非主属性对码都是完全函数依赖这样非主属性对码都是完全函数依赖 2NF(续)(续)v采用投影分解法将一个采用投影分解法将一个1NF1NF的关系分解为多个的关系分解为多个2NF2NF的关系,可以在一定程度上减轻原
27、的关系,可以在一定程度上减轻原1NF1NF关系中关系中存在的插入异常、删除异常、数据冗余度大、修改存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。复杂等问题。v将一个将一个1NF1NF关系分解为多个关系分解为多个2NF2NF的关系,并不能的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。完全消除关系模式中的各种异常情况和数据冗余。6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.
28、7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结 6.2.5 3NFv3NF3NF的定义的定义定义定义6.7 6.7 关系模式关系模式RURF 中若不存在这样的中若不存在这样的码码X X,属性组,属性组Y Y及非主属性及非主属性Z Z(Z Z Y Y),使得使得X XY Y,Y YZ Z 成立成立,Y Y X X,则称,则称R R 3NF3NF。n若若R R3NF3NF,则每一个,则每一个非主属性非主属性既不部分依赖既不部分依赖于码于码也不传递依赖也不传递依赖于码。于码。3NF(续)(续)例:例:2NF2NF关系模式关系模式S-L(Sno,S
29、dept,SlocS-L(Sno,Sdept,Sloc)中中 函数依赖:函数依赖:SnoSdeptSnoSdept Sdept Sno Sdept Sno SdeptSloc SdeptSloc 可得:可得:SnoSlocSnoSloc,传递传递所以所以S-L S-L 3NF3NF 3NF(续)(续)函数依赖图:函数依赖图:S-LSnoSdeptSloc3NF(续)(续)v解决方法解决方法 采用投影分解法,把采用投影分解法,把S-LS-L分解为两个关系模式,以分解为两个关系模式,以消除传递函数依赖:消除传递函数依赖:S-DS-D(SnoSno,SdeptSdept)D-LD-L(SdeptSd
30、ept,SlocSloc)S-DS-D的码为的码为SnoSno,D-LD-L的码为的码为SdeptSdept。n分解后的关系模式分解后的关系模式S-DS-D与与D-LD-L中不再存在传递中不再存在传递依赖依赖 3NF(续)(续)S-DS-D的码为的码为SnoSno,D-LD-L的码为的码为SdeptSdeptSnoSdeptS-DSdeptSlocD-L S-L(Sno,Sdept,SlocS-L(Sno,Sdept,Sloc)2NF)2NF S-L(Sno,Sdept,Sloc S-L(Sno,Sdept,Sloc)3NF)3NF S-D(SnoS-D(Sno,SdeptSdept)3NF)
31、3NFD-L(SdeptD-L(Sdept,SlocSloc)3NF)3NF6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结 6.2.6 BC范式(范式(BCNF)v定义定义6.8 6.8 关系模式关系模式RUR1NFF1NF,若若XYXY且且Y Y X X时时X X必含有码,则必含有码,则RB
32、CNFRBCNF。v等价于:每一个决定属性因素都包含等价于:每一个决定属性因素都包含码码BCNF(续)(续)v若若R RBCNF BCNF 所有非主属性对每一个码都是完全函数依赖所有非主属性对每一个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是所有的主属性对每一个不包含它的码,也是完全函数依赖完全函数依赖 没有任何属性完全函数依赖于非码的任何一没有任何属性完全函数依赖于非码的任何一组属性组属性 R BCNF R 3NFR BCNF R 3NF充分充分不必要不必要BCNF(续)(续)例例5 5 关系模式关系模式C C(CnoCno,CnameCname,PcnoPcno)nC3NFC
33、3NFnCBCNFCBCNF 例例6 6 关系模式关系模式S S(SnoSno,SnameSname,SdeptSdept,SageSage)n假定假定S S有两个码有两个码SnoSno,SnameSnamenS3NFS3NF。nS BCNFS BCNFBCNF(续)(续)例例7 7关系模式关系模式SJPSJP(S S,J J,P P)学生学生 课程课程 名次名次n函数依赖:函数依赖:(S S,J J)PP;(J(J,P P)S Sn(S S,J J)与()与(J J,P P)都可以作为候选码)都可以作为候选码nSJP3NFSJP3NFnSJPBCNFSJPBCNF BCNF(续)(续)例例8
34、8在关系模式在关系模式STJSTJ(S S,T T,J J)中,)中,S S表示学生,表示学生,T T表示教师,表示教师,J J表示课程。表示课程。函数依赖:函数依赖:(S(S,J)TJ)T,(S(S,T)JT)J,TJTJ(S(S,J)J)和和(S(S,T)T)都是候选码都是候选码 BCNF(续)(续)JSJTSTSTJSTJ中的函数依赖中的函数依赖BCNF(续)(续)vSTJ3NFSTJ3NF 没有任何非主属性对码传递依赖或部没有任何非主属性对码传递依赖或部分依赖分依赖 vSTJBCNFSTJBCNF T T是决定因素,是决定因素,T T不包含码不包含码BCNF(续)(续)v解决方法:将解
35、决方法:将STJSTJ分解为二个关系模式:分解为二个关系模式:ST(SST(S,T)BCNFT)BCNF,TJ(TTJ(T,J)BCNFJ)BCNF 没有没有任何属性任何属性对码的部分函数依赖和传递函数依赖对码的部分函数依赖和传递函数依赖STSTTJTJ3NF与与BCNF的关系的关系vR BCNF R 3NFR BCNF R 3NFv如果如果R3NFR3NF,且,且R R只有一个候选码只有一个候选码 R BCNF R 3NFR BCNF R 3NF充分不必要充分必要判断下列关系模式是否满足判断下列关系模式是否满足BCBC范式范式1 1、R R(X,Y,ZX,Y,Z)F=Y-Z,Y-X,X-YZ
36、 F=Y-Z,Y-X,X-YZ 2 2、管理(仓库号,设管理(仓库号,设 备号,职工号)备号,职工号)(语义:每个仓库有多个职工,一名职工只能语义:每个仓库有多个职工,一名职工只能在一个仓库工作,每个仓库一种设备仅有一在一个仓库工作,每个仓库一种设备仅有一名职工保管,每名职工可保管多种设备名职工保管,每名职工可保管多种设备)职工号职工号 仓库号仓库号 (仓库号(仓库号,设备号)设备号)职工号职工号6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.
37、6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6.2.7 多值依赖多值依赖 例例9 9 学校中某一门课程由多个教师学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种每个教员可以讲授多门课程,每种参考书可以供多门课程使用。参考书可以供多门课程使用。课课 程程 C教教 员员 T参参 考考 书书 B B 物理物理数学数学 计算数学计算数学李李 勇勇王王 军军 李李 勇勇张张 平平 张张 平平 周周 峰峰 普通物理学普通物理学光
38、学原理光学原理 物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析.多值依赖(续)多值依赖(续)v非规范化关系非规范化关系普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析微分方程微分方程高等代数高等代数李李 勇勇李李 勇勇李李 勇勇王王 军军王王 军军王王 军军李李 勇勇李李 勇勇李李 勇勇张张 平平张张 平平张张 平平 物物 理理物物 理理物物 理理物物 理理物物 理理物物 理理数数 学学数数 学学数数 学学数数 学学数数 学学数数
39、 学学 参考书参考书B B教员教员T T课程课程C C多值依赖(续)多值依赖(续)v 用二维表表示用二维表表示TeachingTeaching多值依赖(续)多值依赖(续)vTeachingBCNFTeachingBCNFvTeachingTeaching具有唯一候选码具有唯一候选码(C(C,T T,B)B),即全码即全码 多值依赖(续)多值依赖(续)Teaching Teaching模式中存在的问题模式中存在的问题(1)(1)数据冗余度大数据冗余度大 (2)(2)插入操作复杂插入操作复杂(3)(3)删除操作复杂删除操作复杂(4)(4)修改操作复杂修改操作复杂存在存在多值依赖多值依赖多值依赖(续
40、)多值依赖(续)v定义定义6.9 6.9 设设R(U)R(U)是一个属性集是一个属性集U U上的一个关系模式,上的一个关系模式,X X、Y Y和和Z Z是是U U的子集,并且的子集,并且Z ZU UX XY Y,当且仅当,当且仅当对对R R的的任一关系任一关系r r,r r在(在(X X,Z Z)上的每个值对应)上的每个值对应一组一组Y Y的值,这组值仅仅决定于的值,这组值仅仅决定于X X值而与值而与Z Z值无关值无关则则多值依赖多值依赖 XYXY成立成立 例例 TeachingTeaching(C,T,BC,T,B)多值依赖(续)多值依赖(续)v多值依赖的另一个等价的形式化的定义:多值依赖的
41、另一个等价的形式化的定义:在在R R(U U)的任一关系)的任一关系r r中,如果存在元组中,如果存在元组t t,s s 使得使得t t X X=s s X X,那么就必然存在元组那么就必然存在元组 w w,v v r r,(,(w w,v v可以与可以与s s,t t相同),相同),使得使得w w X X=v v X X=t t X X,而,而w w Y Y=t t Y Y,w w Z Z=s s Z Z,v v Y Y=s s Y Y,v v Z Z=t t Z Z(即交换(即交换s s,t t元组的元组的Y Y值所得的两个新元组必在值所得的两个新元组必在r r中),则中),则Y Y多值依
42、赖于多值依赖于X X,记为,记为X XY Y。这里,这里,X X,Y Y是是U U的的子集,子集,Z Z=U-XU-X-Y Y。多值依赖(续)多值依赖(续)v平凡多值依赖和非平凡的多值依赖平凡多值依赖和非平凡的多值依赖若若XYXY,而,而Z Z,则称,则称 XYXY为为平凡的多值依赖平凡的多值依赖 否则称否则称XYXY为为非平凡的多值依赖非平凡的多值依赖多值依赖(续)多值依赖(续)例例1010关系模式关系模式WSCWSC(WW,S S,C C)n WW表示仓库,表示仓库,S S表示保管员,表示保管员,C C表示商品表示商品n 假设每个仓库有若干个保管员,有若干种商品假设每个仓库有若干个保管员,
43、有若干种商品 n 每个保管员保管所在的仓库的所有商品每个保管员保管所在的仓库的所有商品n 每种商品被所有保管员保管每种商品被所有保管员保管 多值依赖(续)多值依赖(续)WWS SC CW1W1S1S1C1C1W1W1S1S1C2C2W1W1S1S1C3C3W1W1S2S2C1C1W1W1S2S2C2C2W1W1S2S2C3C3W2W2S3S3C4C4W2W2S3S3C5C5W2W2S4S4C4C4W2W2S4S4C5C5WSWS且且WCWC多值依赖(续)多值依赖(续)WSWS且且WCWC多值依赖的性质多值依赖的性质(1 1)多值依赖具有对称性)多值依赖具有对称性若若XYXY,则,则XZXZ,其
44、中,其中Z ZU UX XY Y(2 2)多值依赖具有传递性)多值依赖具有传递性若若XYXY,YZYZ,则则XZ YXZ Y(3 3)函数依赖是多值依赖的特殊情况。)函数依赖是多值依赖的特殊情况。若若XYXY,则,则XYXY。(4 4)若)若XYXY,XZXZ,则,则XYXY Z Z。(5 5)若)若XYXY,XZXZ,则,则XYZXYZ。(6 6)若)若XYXY,XZXZ,则,则XY-ZXY-Z,XZ-YXZ-Y。多值依赖与函数依赖的区别多值依赖与函数依赖的区别(1)(1)多值依赖的有效性与属性集的范围有关多值依赖的有效性与属性集的范围有关(2)(2)若函数依赖若函数依赖XYXY在在R R(
45、U U)上成立,则)上成立,则对于任何对于任何Y Y Y Y均有均有XY XY 成立成立 多值依赖多值依赖XYXY若在若在R(U)R(U)上成立,不上成立,不能断言对于任何能断言对于任何Y Y Y Y有有XY XY 成立成立6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6.2.8 4NFv定义
46、定义6.10 6.10 关系模式关系模式RUR1NFF1NF,如果对,如果对于于R R的每个非平凡多值依赖的每个非平凡多值依赖XYXY(Y Y X X),),X X都含有码,则都含有码,则R4NFR4NF。v如果如果R 4NFR 4NF,则则R BCNFR BCNF4NF(续(续)例:例:Teaching(C,T,BTeaching(C,T,B)4NF)4NF 存在非平凡的多值依赖存在非平凡的多值依赖CTCT,且,且C C不是不是码。用投影分解法把码。用投影分解法把TeachingTeaching分解为如下两分解为如下两个关系模式:个关系模式:CT(C,T)4NFCT(C,T)4NF CB(C
47、,B)4NF CB(C,B)4NF CT CT,CBCB是平凡多值依赖是平凡多值依赖 6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6.2.9 规范化小结规范化小结v关系数据库的关系数据库的规范化理论规范化理论是是数据库逻辑设计数据库逻辑设计的的工具工具v目的:尽量消除插入、删除异常,修改复杂
48、,目的:尽量消除插入、删除异常,修改复杂,数据冗余数据冗余v基本思想:逐步消除数据依赖中不合适的部分基本思想:逐步消除数据依赖中不合适的部分 实质:概念的实质:概念的单一化单一化规范化小结(续)规范化小结(续)v关系模式规范化的基本步骤关系模式规范化的基本步骤 1NF1NF 消除非主属性对码的部分函数依赖消除非主属性对码的部分函数依赖消除决定属性消除决定属性 2NF2NF集非码的非平集非码的非平 消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖凡函数依赖凡函数依赖 3NF3NF 消除主属性对码的部分和传递函数依赖消除主属性对码的部分和传递函数依赖 -BCNF-BCNF 消除非平凡且
49、非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖 4NF4NF规范化小结(续)规范化小结(续)v不能说规范化程度越高的关系模式就越好不能说规范化程度越高的关系模式就越好v在设计数据库模式结构时,必须对现实世界的实在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式合适的、能够反映现实世界的模式v上面的规范化步骤可以在其中任何一步终止上面的规范化步骤可以在其中任何一步终止第六章第六章 关系数据理论关系数据理论6 6.1.1 问题的提出问题的提出6.2 6.2 规范化规范化6.3 6.3 数
50、据依赖的公理系统数据依赖的公理系统*6 6.4.4 模式的分解模式的分解6 6.5.5 小结小结6.3 数据依赖的公理系统数据依赖的公理系统v逻辑蕴含逻辑蕴含定义定义6.11 6.11 对于满足一组对于满足一组函数依赖函数依赖 F F 的的关系模式关系模式R UR F,其任何一个关系,其任何一个关系r r,若函数依赖若函数依赖XYXY都成立都成立,则称则称F F逻辑蕴逻辑蕴含含X YX Y 例如,关系模式例如,关系模式Student(SnoStudent(Sno,SnameSname,SageSage,SDSD,SDnameSDname)其属性组上的函数依赖集为其属性组上的函数依赖集为 F F