1、 掌握函数依赖相关概念;掌握1NF、2NF、3NF等范式判定条件;了解数据依赖的公理系统等相关概念;了解关系模式分解等价的概念。函数依赖相关概念;侯选码、主码、主属性、非主属性、外码等概念;1NF、2NF、3NF等范式判定条件 关系模式的规范化经验方法等 关系模式的规范化 多值依赖的概念 BCNF、4NF等范式的判定 其余内容(如数据依赖的公理系统、模式的分解)可安排有兴趣的同学自学。从数据库逻辑设计中如何构造一个好的数据库模式问题出发,阐述关系规范化理论研究的实际背景阐述关系规范化理论研究的实际背景。介绍规范化理论,讨论各种范式及可能存在的插入、删除异常,并地描述解决问题的方法。1、引例 2
2、、模式存在的弊病及原因 3、直观的解决方法 针对具体问题,如何构造一个适合于它的数据模式,关系规范关系规范化理论化理论 从用户观点看:它是一张二维表;严格的说:是所涉及属性的笛卡尔积的一个有意义的 真子集。对关系的描述,可用五元组形式化表示。在一个给定的应用领域中,所有关系的集合构成一个关系数据库,从形式上看它由一组关系组成。定义一组关系的关系模式的全体。关系数据库模式包括:.若干域的定义;.在这些域上定义的若干关系模式关系模式由五部分组成,即它是一个 R(U,D,DOM,F)R(U,D,DOM,F)R:关系名U:组成该关系的属性名集合D:属性组U中属性所来自的域DOM:属性向域的映象集合F:
3、属性间数据的依赖关系集合由于 D D 和 DOM DOM 对模式设计和关系规范化影响不大,本章将关系模式看成一个三元组:R(U,F)R(U,F)1.关系必须满足一定的完整性约束条件。有两种表现形式:2.数据依赖概念与类别 是通过一个关系中体现出来的数据间的相互关系。.是现实世界属性之间相互联系的抽象;.是数据内在的性质;.是语义的体现;可见,是通过一个关系中的相互关连体现出来的数据间的相互关系。数据依赖有多种类型,其中最重要的是:(FD:Functional Dependency)(MVD:Multivalued Dependency)(如连接依赖)描述学校的数据库:涉及如下属性:学号(Sno
4、)、所在系(Sdept)、系主任姓名(Mname)、课程名称(Cname)、成绩(Grade)学校数据库的语义:一个系有若干学生,一个学生只属于一个系;一个系只有一名主任;一个学生可以选修多门课程,每门课程有若干 学生选修;每个学生所学的每门课程都有一个成绩。若将所有信息集中在建立一个关系中处理,可设计关系模式 STUDENT(U,F),其一关系实例为:在这个单一的关系模式 Student 中:如图:CnameGradeMnameSnoSdept 1)数据冗余太大 例:每一个系主任姓名重复出现,浪费大量的空间。2)更新异常 数据的冗余造成更新数据时,维护数据完整性代价大。例:某系更换系主任后,
5、系统必须修改与该系学生有关的每一个元组。模式中存在的问题模式中存在的问题 3)插入异常该插的数据插不进去。例如一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。模式中存在的问题模式中存在的问题数学系刘英4)删除异常 不该删除的数据不得不删,例如,某个系的学生全部毕业了,删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。模式中存在的问题模式中存在的问题.Student关系模式不是一个好的模式。.“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。由于模式中存在的某些性质不好的数据依赖(部分函数依赖、传递函数依赖)引起的。CnameGradeMnam
6、eSnoSdept部分函数依赖传递函数依赖 把这个单一模式分成 个关系模式:通过来消除其中不合适的数据依赖,使分解后的子模式不存在那些性质不好的数据依赖 经过分析,分解后的关系模式是一个好的关系数据库模式。从而得出结论,一个好的关系模式应该具备以下四个条件:l 尽可能少的数据冗余。l 没有插入异常。l 没有删除异常。l 没有更新异常。并不是并不是,对于分解后的数据库模式,要查询某个学生选修课程名及所在系的系主任时,就要通过连接而连接所需要的系统开销非常大。因此要以实际设计的目标(规范化要求还是效率要求)出发来进行设计。有关系模式WW=U,F U=日期,工号,姓名,工种,定额,超额,车间,车间主
7、任 F=工号姓名,工号工种,工号车间,车间车间主任,工种定额,(日期,工号)超额 分析:分析:码为:(日期,工号):存在部分函数依赖和传递函数依赖。19711971年年E.F.E.F.CoddCodd博士首先提出了关系数据库的规博士首先提出了关系数据库的规范化理论,之后,此理论不断深化、完善。规范化理范化理论,之后,此理论不断深化、完善。规范化理论是设计关系模式的理论指导和强有力的工具。论是设计关系模式的理论指导和强有力的工具。规范化理论研究如何将一个不好的关系模式转化为规范化理论研究如何将一个不好的关系模式转化为好的关系模式的理论,规范化理论围绕范式而建立。好的关系模式的理论,规范化理论围绕
8、范式而建立。规范化的作用规范化的作用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 规范化小结规范化小结 设设R(U)R(U)是一关系模式,是一关系模式,U U是是R R的属性集合,的属性集合,X X和和Y Y是是U U的子集。对于的子集。对于R(U)R(U)的任意一个可能的关系的任意一个可能的关系r r,如果如果r r中中不存在两个
9、元组,它们在不存在两个元组,它们在X X上的属性值相同,而在上的属性值相同,而在Y Y上上的属性值不同的属性值不同,则称则称“X X函数确定函数确定Y”Y”或或“Y Y函数依赖于函数依赖于X”X”,记作:,记作:,其中,其中X X是决定因素。是决定因素。(可以认为在可以认为在X X上属性值相同上属性值相同,在在Y Y上必然相同上必然相同)若若Y Y不函数依赖于不函数依赖于X X,则记作:,则记作:。若若XYXY,YXYX,则记作:,则记作:。1.1.所有关系实例均要满足所有关系实例均要满足2.2.语义范畴的概念语义范畴的概念3.3.数据库设计者可以对现实世界作强制的规定数据库设计者可以对现实世
10、界作强制的规定l 平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖l 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖l 直接函数依赖与传递函数依赖直接函数依赖与传递函数依赖关系关系StudentStudent中中SnoSnoSname Sname SnoSnoSsexSsexSnameSnameSdept Sdept 关系关系SCSC中中 SnoSnoGradeGrade(SnoSno,CnoCno)Grade)Grade定义:定义:在关系模式在关系模式R(U)R(U)中,对于中,对于U U的子集的子集X X和和Y Y存在存在XYXY如果如果XYXY,但,但Y Y X X,则称,
11、则称XYXY是是 若若XYXY,但,但Y Y X,X,则称则称XYXY是是 对任一关系模式,平凡函数依赖都必然成立,故对任一关系模式,平凡函数依赖都必然成立,故一般只讨论非平凡的函数依赖。一般只讨论非平凡的函数依赖。关系关系StudentStudent和和ScSc中中SnoSnoSage,(Sage,(SnoSno,CnoCno)Grade)Grade是非平凡的函数依赖是非平凡的函数依赖(SnoSno,CnoCno)SnoSno,(,(SnoSno,CnoCno)CnoCno 是平凡的函数依赖是平凡的函数依赖在关系模式在关系模式R(U)R(U)中,如果中,如果XY,XY,对于对于X X的任一真
12、的任一真子集子集XX都有都有X YX Y,则称则称Y Y完全函数依赖于完全函数依赖于X X,记作:记作:XYXY。Y Y不完全函数依赖于不完全函数依赖于X X,则称则称Y Y部分函数依赖于部分函数依赖于X X,记作:记作:XYXY。FP例:关系关系StudentStudent中中SnoSnoSdept Sdept SnameSnameSdept Sdept(snosno,snamesname)SdeptSdept FFP在关系模式在关系模式R(U)R(U)中,如果中,如果XYXY,YZYZ且且Y YX,YXX,YX,则称则称Z Z传递函数依赖于传递函数依赖于X,X,记作记作X ZX Z。例:例
13、:关系关系StudentStudent中中SnoSnoSdeptSdept,SdeptSdeptmgr,mgr,snosnomgrmgr传递传递 函数依赖不是指关系模式函数依赖不是指关系模式R R的某个或某些关系实例的某个或某些关系实例满足的约束条件,而是指满足的约束条件,而是指R R的的均要满足均要满足的约束条件。(不仅对的约束条件。(不仅对R R中现有的元组,而且针对所中现有的元组,而且针对所有将来进入有将来进入R R中的元组。)中的元组。)函数依赖和别的数据之间的依赖关系一样,是语义函数依赖和别的数据之间的依赖关系一样,是语义范畴的概念,只能范畴的概念,只能。(所谓数据的语义,可以认为是
14、现实世界的经验或常识,(所谓数据的语义,可以认为是现实世界的经验或常识,是依赖于具体现实环境的。)是依赖于具体现实环境的。)定义:定义:设设K K为关系模式为关系模式R(U,F)R(U,F)中属性或属性组合。若中属性或属性组合。若KUKU,则则K K称为称为R R的一个的一个候选码候选码。F若若R R有多个候选码,则选定其中一个作为有多个候选码,则选定其中一个作为 主码主码 。包含在任何一个候选码中的属性,叫做包含在任何一个候选码中的属性,叫做 主属性。主属性。不包含在任何码中的属性称为不包含在任何码中的属性称为非主属性。非主属性。整个属性组是码,称为整个属性组是码,称为全码。全码。例:例:关
15、系关系StudentStudent中中(SnoSno,SnameSname,SsexSsex,Sage,Sage,SdeptSdept)讨论讨论在什么情况下,关系在什么情况下,关系Student中中Sname可以做主码可以做主码?例:例:关系关系SCSC中中 (SnoSno,CnoCno,Grade),Grade)关系模式关系模式 S(S(SnoSno,SdeptSdept,Sage),Sage),单个属性,单个属性SnoSno是码,是码,SCSC(SnoSno,CnoCno,GradeGrade)中,()中,(SnoSno,CnoCno)是码)是码 关系模式关系模式R R(P P,W W,A
16、 A)P P:演奏者:演奏者 W W:作品:作品 A A:听众:听众 一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品 码为码为(P(P,W W,A)A),即,即All-Key All-Key 关系模式关系模式R R中属性或属性组中属性或属性组X X并非并非R R的码的码,但是但是X X是是另一个关系模式的码,则成另一个关系模式的码,则成X X是是R R的的外部码外部码(Foreign(Foreign Key)Key),也称外码。,也称外码。Sname Ssex Sno-
17、李勇李勇 男男 200215121刘晨刘晨 女女 200215122王敏王敏 女女 200215123张立张立 男男 200515125 Sno Cno Grade -200215121 1 92200215121 2 85200215121 3 88200215122 2 90200215122 3 80 Cno Cname-1 数据库数据库2 数学数学3 信息系统信息系统4 操作系统操作系统5 数据结构数据结构6 数据处理数据处理 PKPKFKFKPK 满足不同程度的规范满足不同程度的规范(约束条件约束条件)要求的称为不要求的称为不同的同的。NFNFBCNFNFNFNF54321 规范化理
18、论把关系应满足的规范要求分为几级,规范化理论把关系应满足的规范要求分为几级,分别为分别为。范式的等。范式的等级越高,应满足的约束条件也越严格。级越高,应满足的约束条件也越严格。一个低一级的关系模式,可以通过模式分解转一个低一级的关系模式,可以通过模式分解转换为若干个高一级范式的关系模式的集合,这就是换为若干个高一级范式的关系模式的集合,这就是。各种范式之间:各种范式之间:在关系模式在关系模式R R中的每一个具体关系中的每一个具体关系r r中,如果中,如果每个属性值每个属性值 都是不可再分的最小数据单位,则称都是不可再分的最小数据单位,则称R R是是第一范式的关系第一范式的关系,R R1NF1N
19、F。1NF1NF的要求是:的要求是:消除非原子属性消除非原子属性。为使关系模式满足为使关系模式满足1NF的要求,可以:的要求,可以:l为元组确立关键字。为元组确立关键字。l将属性细化,尽量地小,成为原子型的属性。将属性细化,尽量地小,成为原子型的属性。l将多值属性移动到另一个关系里。将多值属性移动到另一个关系里。例:下列关系不符合例:下列关系不符合1NF1NF的要求。的要求。工号,姓名,工资,补贴工号,姓名,工资,补贴 职工号,姓名,电话号码职工号,姓名,电话号码 多值属性第一范式是对关系模式的最起码的要求。第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库不满足
20、第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的但是满足第一范式的关系模式并不一定是一个好的关系模式关系模式 若若R1NFR1NF,且每一个非主属性完全函数依赖于码,且每一个非主属性完全函数依赖于码,则则R2NFR2NF。如果满足如果满足1NF1NF的表的主码只有一列,则它自动的表的主码只有一列,则它自动满足满足2NF2NF。2NF2NF的要求是:的要求是:消除部分函数依赖消除部分函数依赖 关系模式关系模式 S-L-C(S-L-C(SnoSno,SdeptSdept,SlocSloc,CnoCno,Grade)Grade)SlocSloc为学生住处,假设每个系
21、的学生住在同一个为学生住处,假设每个系的学生住在同一个地方。函数依赖包括:地方。函数依赖包括:(SnoSno,CnoCno)F F Grade Grade SnoSno SdeptSdept (SnoSno,CnoCno)P P SdeptSdept Sno Sno SlocSloc (SnoSno,CnoCno)P P SlocSloc Sdept Sdept SlocSlocS-L-CS-L-C的码为的码为(SnoSno,CnoCno)S-L-CS-L-C满足第一范式。满足第一范式。非主属性非主属性SdeptSdept和和SlocSloc部分函数依赖于码部分函数依赖于码(SnoSno,Cn
22、oCno)SnoCnoGradeSdeptSlocS-L-C函数依赖图(1)(1)插入异常插入异常(2)(2)删除异常删除异常(3)(3)数据冗余度大数据冗余度大(4)(4)修改复杂修改复杂原因:原因:SdeptSdept、SlocSloc部分函数依赖于码。部分函数依赖于码。解决方法解决方法 S-L-CS-L-C分解为两个关系模式,以消除这些部分函分解为两个关系模式,以消除这些部分函数依赖数依赖 SC SC(SnoSno,CnoCno,GradeGrade)S-LS-L(SnoSno,SdeptSdept,SlocSloc)思考思考可不可以分解为可不可以分解为SC(Sno,Cno,Grade)
23、和和S-L(Sdept,sloc)?函数依赖图:函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式关系模式SC的码为(的码为(Sno,Cno)v关系模式关系模式S-L的码为的码为 Snov这样非主属性对码都是完全函数依赖这样非主属性对码都是完全函数依赖 分析分析 试分析试分析SC和和S-L两个关系模式是否属于两个关系模式是否属于2NF?例:例:S-L-C(S-L-C(SnoSno,SdeptSdept,SlocSloc,CnoCno,Grade)1NF,Grade)1NF S-L-C(S-L-C(SnoSno,SdeptSdept,SlocSloc,CnoCno,G
24、rade)2NF,Grade)2NF SC SC(SnoSno,CnoCno,GradeGrade)2NF2NF S-L S-L(SnoSno,SdeptSdept,SlocSloc)2NF2NFv 采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系分解为多个2NF的关系,可以在一定程度上减轻原的关系,可以在一定程度上减轻原1NF关系中存在的关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问插入异常、删除异常、数据冗余度大、修改复杂等问题。题。v 将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,并不能完全的关系,并不能完全消除关系模式中的各种异常情况和数据
25、冗余。消除关系模式中的各种异常情况和数据冗余。为将关系转化为为将关系转化为2NF关系,采用经验的方法。在该关系,采用经验的方法。在该方法中:方法中:构成码的属性组与被其完全函数决定的相关非主构成码的属性组与被其完全函数决定的相关非主属性组成属性组成;可决定其他非主属性的码中的主属性和相关非主可决定其他非主属性的码中的主属性和相关非主属性构成按决定因素组成属性构成按决定因素组成若关系模式若关系模式2NF2NF中,且中,且R R中不存在这样的中不存在这样的码码X X,属性组,属性组Y Y和非主属性和非主属性Z Z(Z Z Y Y),使得,使得XYXY,YZYZ成立,成立,YXYX则称则称R(UR(
26、U,F)3NFF)3NF。3NF3NF的要求是:的要求是:消除传递函数依赖消除传递函数依赖 若若R3NFR3NF,则每一个非主属性既不部分依,则每一个非主属性既不部分依赖于码也不传递依赖于码。赖于码也不传递依赖于码。例:关系模式例:关系模式SdeptSdept存在传递函数依赖:存在传递函数依赖:F=F=SnoSnoSdeptSdept,SdeptSdept Mgr Mgrl可以分解成两个关系,可以分解成两个关系,进一步消除数据冗余。进一步消除数据冗余。S(S(SnoSno,SdeptSdept)Dept(Dept(SdeptSdept,Mgr)Mgr)思考题:画出分解前后的函数依赖图,然后判断
27、分解思考题:画出分解前后的函数依赖图,然后判断分解后的关系模式后的关系模式S和和Ddept属于第几范式?属于第几范式?为将关系转化为为将关系转化为3NF关系,采用经验的方法。在该方关系,采用经验的方法。在该方法中:法中:构成码的属性组与被其直接函数决定的相关非主属性构成码的属性组与被其直接函数决定的相关非主属性组成组成;可决定其他非主属性的非主属性和被其决定的相关非可决定其他非主属性的非主属性和被其决定的相关非主属性构成主属性构成。l某书店购书情况汇总登记表某书店购书情况汇总登记表 :根据分析可以得到一组函数依赖:根据分析可以得到一组函数依赖:F=NOC#,C#CN,C#CA,B#BN,B#E
28、U,B#UP,(NO,B#)F=NOC#,C#CN,C#CA,B#BN,B#EU,B#UP,(NO,B#)QUA QUA,表中(,表中(NO,B#NO,B#)为关键字。)为关键字。消除重复组后,关系模式满足消除重复组后,关系模式满足1NF1NF的要求。的要求。将其分解成三个关系,使每一个非主属性都完全依赖于主将其分解成三个关系,使每一个非主属性都完全依赖于主关键字,满足关键字,满足2NF2NF的要求。的要求。进一步消除传递函数依赖,满足进一步消除传递函数依赖,满足3NF3NF的要求。的要求。设关系模式R1NF。如果对于R的每个函数依赖XY,且YX,X必含有候选码,那么RBCNF。既每一个决定属
29、性因素都包含码。l所有非主属性都完全函数依赖于每个候选码。l所有主属性都完全函数依赖于每个不包含它的候选码(非平凡的函数依赖)。l没有任何属性完全函数依赖于非码的任何一组属性BCNF的要求是:消除主属性对码的部分依赖和传递依赖。例例:关系模式关系模式StudentStudent中,中,SnoSno是唯一的码,主属是唯一的码,主属性只有一个性只有一个SnoSno,Student BCNF Student BCNF。例:例:关系模式关系模式ScSc中,中,(SnoSno,CnoCno)是唯一的码,主是唯一的码,主属性有两个:属性有两个:SnoSno和和CnoCno,SCBCNFSCBCNF。例例:
30、关系关系CourseCourse模式中,有两个候选码:模式中,有两个候选码:CnoCno和和CnameCname,CnoCno和和CnameCname都是单个属性,彼此不相交,不存在主属都是单个属性,彼此不相交,不存在主属性间的部分依赖或传递依赖,性间的部分依赖或传递依赖,CourseBCNFCourseBCNF。例例 每一教师只教一门课。每一教师只教一门课。每门课由若干教师教,某一每门课由若干教师教,某一学生选定某门课,就确定了学生选定某门课,就确定了一个固定的教师。某个学生一个固定的教师。某个学生选修某个教师的课就确定了选修某个教师的课就确定了所选课的名称。所选课的名称。思考题:试判断是否
31、属于思考题:试判断是否属于BCNF主属性间存在部分函数依赖主属性间存在部分函数依赖 SCT不是不是BCNF。SCT中的函数依赖中的函数依赖SCTSTC关系模式关系模式SctSct中有以下函中有以下函数依赖:数依赖:(S,C)T(S,C)T (S,T)C (S,T)C TC TCSCT3NFSCT3NF没有任何非主属性对码传递依赖或部分依没有任何非主属性对码传递依赖或部分依赖赖SCTBCNFSCTBCNFT T是决定因素,是决定因素,T T不包含码不包含码解决方法:将解决方法:将SCTSCT分解为二个关系模式:分解为二个关系模式:ST(SST(S,T)BCNFT)BCNF,TC(TTC(T,C)
32、BCNFC)BCNF 没有没有任何属性任何属性对码的部分函数依赖和传对码的部分函数依赖和传递函数依赖递函数依赖STT CSTTCR BCNF R 3NFR BCNF R 3NF充分不必要充分必要如果如果R3NFR3NF,且,且R R只有一个候选码只有一个候选码 R BCNF R 3NFR BCNF R 3NF例:例:学校中某一门课程由多个教师讲授,他们学校中某一门课程由多个教师讲授,他们 使用相同的一套参考书。使用相同的一套参考书。关系模式关系模式Teaching(C,T,B)Teaching(C,T,B)课程课程C C、教师教师T T 和和 参考书参考书B B课课 程程 C教教 员员 T参参
33、 考考 书书 B 物理物理 数学数学 计算数学计算数学李李 勇勇王王 军军 李李 勇勇张张 平平 张张 平平周周 峰峰 普通物理学普通物理学光学原理光学原理 物理习题集物理习题集 数学分析数学分析微分方程微分方程高等代数高等代数 数学分析数学分析 普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析微分方程微分方程高等代数高等代数李李 勇勇李李 勇勇李李 勇勇王王 军军王王 军军王王 军军李李 勇勇李李 勇勇李李 勇勇张张 平平张张 平平张张 平平 物物 理理物物 理理物
34、物 理理物物 理理物物 理理物物 理理数数 学学数数 学学数数 学学数数 学学数数 学学数数 学学 参考书参考书B B教员教员T T课程课程C C存在存在多值依赖多值依赖TeachTeach具有唯一候选码具有唯一候选码(C C,T T,B)B),即全码即全码 TeachingBCNF:TeachingBCNF:(2)(2)插入操作复杂:插入操作复杂:当某一课程增加一名任课教师时,该课程有多当某一课程增加一名任课教师时,该课程有多少本参照书,就必须插入多少个元组少本参照书,就必须插入多少个元组例如:物理课增加一名教师刘关,需要插入两个元组:例如:物理课增加一名教师刘关,需要插入两个元组:(物理,
35、刘关,普通物理学)(物理,刘关,普通物理学)(物理,刘关,光学原理)(物理,刘关,光学原理)(1)(1)数据冗余度大:有多少名任课教师,参考书就要存数据冗余度大:有多少名任课教师,参考书就要存 储多少次储多少次(3)(3)删除操作复杂:某一门课要去掉一本参考书,删除操作复杂:某一门课要去掉一本参考书,该课程有多少名教师,就必须删除多少个元组该课程有多少名教师,就必须删除多少个元组(4)(4)修改操作复杂:某一门课要修改一本参考书,修改操作复杂:某一门课要修改一本参考书,该课程有多少名教师,就必须修改多少个元组该课程有多少名教师,就必须修改多少个元组定义定义:设设R(U)R(U)是一个属性集是一
36、个属性集U U上的一个关系模式,上的一个关系模式,X X,Y Y和和Z Z是是U U的子集,并且的子集,并且Z=U-X-YZ=U-X-Y,多值依赖多值依赖XYXY成立,当且仅当对成立,当且仅当对R R的任一关系的任一关系r r,l平凡多值依赖和非平凡的多值依赖平凡多值依赖和非平凡的多值依赖l若若XYXY,而,而Z Z,则称,则称 XYXY为为平凡的多值依赖平凡的多值依赖l否则称否则称XYXY为为非平凡的多值依赖非平凡的多值依赖例关系模式例关系模式WSCWSC(W W,S S,C C)n W W表示仓库,表示仓库,S S表示保管员,表示保管员,C C表示商品表示商品n 假设每个仓库有若干个保管员
37、,有若干种商品假设每个仓库有若干个保管员,有若干种商品 n 每个保管员保管所在的仓库的所有商品每个保管员保管所在的仓库的所有商品n 每种商品被所有保管员保管每种商品被所有保管员保管 WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5WS且WC用下图表示这种对应用下图表示这种对应(1 1)多值依赖具有对称性)多值依赖具有对称性若若XYXY,则,则XZXZ,其中,其中Z ZU UX XY Y(2 2)多值依赖具有传递性)多值依赖具有传递性若若XYXY,YZYZ,则则XZ YXZ Y(3 3)函数依赖是多值依赖的特殊情况。)
38、函数依赖是多值依赖的特殊情况。若若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)l若函数依赖若函数依赖XYXY在在R R(U U)上成立,则对于任)上成立,则对于任何何Y Y Y Y均有均有XY XY 成立成立l多值依赖多值依赖XYXY若在若在R(U)R(U)上成立,不能断言上成立,不能断言对于任何对于任何Y Y Y Y有有XY X
39、Y 成立成立定义定义:关系模式:关系模式R(U,F)1NFR(U,F)1NF,如果对如果对R R的每个的每个非平凡多值依赖非平凡多值依赖XYXY(Y YX X),),X X都含有候都含有候选码,则选码,则R4NFR4NF。通过投影分解法消除非平凡的多值依赖通过投影分解法消除非平凡的多值依赖例:例:Teaching(C,T,B)4NFTeaching(C,T,B)4NF 存在非平凡的多值依赖存在非平凡的多值依赖CTCT,且,且C C不是码不是码用投影分解法把用投影分解法把TeachingTeaching分解为如下两个关系模式:分解为如下两个关系模式:CT(C,T)4NFCT(C,T)4NF CB
40、(C,B)4NF CB(C,B)4NF CT CT,CBCB是平凡多值依赖是平凡多值依赖l规范化的基本思想规范化的基本思想是逐步消除数据依赖中不合适的部是逐步消除数据依赖中不合适的部分,使一个关系描述一个概念、一个实体或者实体间分,使一个关系描述一个概念、一个实体或者实体间的一种联系,可以认为规范化的实质是:概念的单一的一种联系,可以认为规范化的实质是:概念的单一化。化。l函数依赖的完美范式是函数依赖的完美范式是BCNFBCNF,多值依赖的完美范式是多值依赖的完美范式是4 4NFNF。多值依赖是连接依赖的特殊情况,当消除了连接多值依赖是连接依赖的特殊情况,当消除了连接依赖后,将达到依赖后,将达
41、到5 5NFNF。l关系模式的规范化通过对关系模式的规范化通过对关系模式的分解关系模式的分解来实现。来实现。4NF4NF消除非平凡且非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖BCNFBCNF消除主属性对码的部分和传递依赖消除主属性对码的部分和传递依赖3NF3NF消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖2NF2NF消除非主属性对码的部分函树依赖消除非主属性对码的部分函树依赖1NF1NF消除决定因素非码的非消除决定因素非码的非平凡的函数依赖平凡的函数依赖l 不能说不能说规范化程度规范化程度越高越高的关系模式就的关系模式就越好越好l 在设计数据库模式结构时,必须对现实世
42、界在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确的实际情况和用户应用需求作进一步分析,确定一个定一个合适合适的、能够反映现实世界的模式的、能够反映现实世界的模式l上面的规范化步骤可以在其中上面的规范化步骤可以在其中任何一步终止任何一步终止l规范化的优点规范化的优点是减少了数据冗余,节约了存储空间,是减少了数据冗余,节约了存储空间,相应逻辑和物理的相应逻辑和物理的I/OI/O次数减少,同时加快了增、删、次数减少,同时加快了增、删、改的速度。改的速度。l完全规范化的设计并不总能生成最优的性能完全规范化的设计并不总能生成最优的性能,因为规,因为规范化的设计使产生的关系
43、增多,结构更加复杂,对数范化的设计使产生的关系增多,结构更加复杂,对数据库查询通常需要更多的连接操作。在数据库设计中据库查询通常需要更多的连接操作。在数据库设计中特别对以查询为主的数据库设计来说,频繁的连接严特别对以查询为主的数据库设计来说,频繁的连接严重影响查询速度。重影响查询速度。l故有时故有时为了提高某些查询或应用的性能而有意破坏规为了提高某些查询或应用的性能而有意破坏规范规则,即范规则,即。l反规范化的好处是降低连接操作的需求、降低外码和反规范化的好处是降低连接操作的需求、降低外码和索引数目,减少表的个数,提高查询速度。索引数目,减少表的个数,提高查询速度。l常用的反规范技术有常用的反
44、规范技术有合理增加冗余列、派生列,或重合理增加冗余列、派生列,或重新组表新组表几种。几种。l复制某些数据列到一些表中以便更容易地访问它们复制某些数据列到一些表中以便更容易地访问它们而不用进行多表的连接,这些被复制的列可以是它而不用进行多表的连接,这些被复制的列可以是它们自己的列或外码列。们自己的列或外码列。l预计算和派生数据的存储可以加快处理过程。预计算和派生数据的存储可以加快处理过程。l撤消某些分解的实体是为避免多个连接的开销。撤消某些分解的实体是为避免多个连接的开销。讨论(1):工资史职务职工生产科研项目电话办公室部门 下图表示一个公司各部门的层次结构下图表示一个公司各部门的层次结构讨论(
45、2):l对每个部门,包含部门号(唯一的)D#、预算费(BUDGET)以及此部门领导人的职工号E#(唯一的)信息。l对每一个部门,还存在着关于此部门的全部职工、生产与科研项目以及办公室的信息。l职工信息包括:职工号、他所参加的生产与科研项目号(J#)、他所在的办公室电话号码(PHONE#)。l生产科研项目包括:项目号(唯一的)、预算费。l办公室信息包含办公室房间号(唯一的)、面积。讨论(3):l对每个职工,数据库中有他曾担任过的职务以及担任某一职务时的工资历史。l对每个办公室包含此办公室中全部电话号码的信息。请你给出认为合理的数据依赖,把这个层次结构转化成一组规范化的关系。提示:此题可分步完成,
46、第一步先转换成一组1NF的关系,然后逐步转换成2NF、3NF,对于满足一组函数依赖对于满足一组函数依赖F F的关系模式的关系模式RURF,其其任何一个关系任何一个关系r r,若函数依赖若函数依赖XYXY都成立(即都成立(即r r中任意中任意两元组两元组t,st,s若若tX=sX,tX=sX,则则tY=sY)tY=sY),则称则称 F F 逻辑逻辑蕴含蕴含XYXY。设设U U为属性集总体,为属性集总体,F F是是U U上的一组函数依赖,于上的一组函数依赖,于是有关系模式是有关系模式R(UR(U,F)F)。对于对于R(UR(U,F)F)来说有下面的推来说有下面的推理规则:理规则:l A1 A1:若
47、若Y YX XU U,则则XYXY为为F F所蕴含。所蕴含。l A2 A2:若若X XY Y为为F F所蕴含,且所蕴含,且Z ZU U,则则XZXZYZYZ为为F F所蕴含。所蕴含。l A3 A3:若若X XY Y及及Y YZ Z为为F F所蕴含,则所蕴含,则X XZ Z为为F F所蕴含。所蕴含。根据根据A1A1,A2A2,A3A3这三条推理规则,可以得这三条推理规则,可以得到以下三条有用的推理规则:到以下三条有用的推理规则:l合并规则:合并规则:由由XYXY,XZXZ,有,有XYZXYZ。l伪传递规则:伪传递规则:由由XYXY,WYZWYZ,有,有XWZXWZ。l分解规则:分解规则:由由XY
48、XY及及Z ZY Y,有,有XZXZ。:在关系在关系R R(U U,F F)中为)中为F F所逻辑蕴涵的函数依赖的所逻辑蕴涵的函数依赖的全体叫做全体叫做,记做:,记做:。设设F F为属性集为属性集U U上的一组函数依赖,上的一组函数依赖,X XU U,X X关于函关于函数依赖集数依赖集F F的闭包的闭包 是:是:A|XAA|XA 如果如果G G+=F=F+,就说函数依赖集,就说函数依赖集F F覆盖覆盖G G(F F是是G G的覆盖,或的覆盖,或G G是是F F的覆盖),或的覆盖),或F F与与G G等价等价。F=XY,YZF+=X,Y,Z,XY,XZ,YZ,XYZ,XX,YY,ZZ,XYX,X
49、ZX,YZY,XYZX,XY,Y Z,XYY,XZY,YZZ,XYZY,XZ,YYZ,XYZ,XZZ,YZYZ,XYZZ,XXY,XYXY,XZXY,XYZXY,XXZ,XYYZ,XZXZ,XYZYZ,XYZ,XYXZ,XZXY,XYZXZ,XZYZ,XYXYZ,XZXYZ,XYZXYZ F=XA1,XAn的闭包F+计算是一个NPNP完全问题完全问题l引理引理6.2 6.2 设设F F为属性集为属性集U U上的一组函数依赖,上的一组函数依赖,X X,Y Y U U,X XY Y能由能由F F 根据根据ArmstrongArmstrong公理导出的充分必要条件是公理导出的充分必要条件是Y Y X
50、 XF F+l用途用途 将判定将判定X XY Y是否能由是否能由F F根据根据ArmstrongArmstrong公理导出的问公理导出的问题,转化为求出题,转化为求出X XF F+、判定、判定Y Y是否为是否为X XF F+的子集的问题的子集的问题定理6.2 Armstrong公理系统是有效的、完备的 定义定义6.146.14 如果G+=F+,就说函数依赖集F 覆盖G(F 是G 的覆盖,或G 是F 的覆盖),或F与G 等价。引理引理6.36.3 F+=G+的充分必要条件是F G+和G F+如果函数依赖集如果函数依赖集F F满足下列条件,则称满足下列条件,则称F F为一个为一个。亦称为。亦称为或