数据库系统范式教程_第1页
数据库系统范式教程_第2页
数据库系统范式教程_第3页
数据库系统范式教程_第4页
数据库系统范式教程_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.1数据库系统原理数据库系统原理n数据依赖对关系数据库的影响数据依赖对关系数据库的影响n函数依赖函数依赖n关系模式的范式关系模式的范式n关系模式的规范化关系模式的规范化n数据依赖的公理系统数据依赖的公理系统1.2数据库系统原理数据库系统原理n关系模式设计不规范会带来一系列的问题关系模式设计不规范会带来一系列的问题数据冗余、更新异常、插入异常、删除异常数据冗余、更新异常、插入异常、删除异常n示例示例1 1: : 关系模式关系模式 R(TnameR(Tname, , AddrAddr, C#, , C#, CnameCname) )一个教师只有一个地址(户口所在地)一个教师只有一个地址(户口所在

2、地)一个教师可教多门课程一个教师可教多门课程一门课程只有一个任课教师一门课程只有一个任课教师因此因此R R的主码是(的主码是(C C)1.3数据库系统原理数据库系统原理TnameTnameAddrAddrC#C#CnameCnameT1T1A1A1C1C1N1N1T1T1A1A1C2C2N2N2T1T1A1A1C3C3N3N3T2T2A2A2C4C4N4N4T2T2A2A2C5C5N5N5T3T3A3A3C6C6N6N61.4数据库系统原理数据库系统原理n教师教师T1T1教了三门课程,他的地址被重复存教了三门课程,他的地址被重复存储了储了2 2次。次。TnameTnameAddrAddrC#C

3、#CnameCnameT1T1A1A1C1C1N1N1T1T1A1A1C2C2N2N2T1T1A1A1C3C3N3N3T2T2A2A2C4C4N4N4T2T2A2A2C5C5N5N5T3T3A3A3C6C6N6N61.5数据库系统原理数据库系统原理n如果如果T1T1的地址变了,则需要改变的地址变了,则需要改变3 3个元组的地址;个元组的地址;若有一个未更改,就会出现数据不一致。但若有一个未更改,就会出现数据不一致。但DBMSDBMS无无法获知这种不一致。法获知这种不一致。TnameTnameAddrAddrC#C#CnameCnameT1T1A1A1C1C1N1N1T1T1A1A1C2C2N2

4、N2T1T1A1A1C3C3N3N3T2T2A2A2C4C4N4N4T2T2A2A2C5C5N5N5T3T3A3A3C6C6N6N61.6数据库系统原理数据库系统原理n如果要增加一名教师,但他还未带课,则如果要增加一名教师,但他还未带课,则C#C#和和CnameCname为空,但由于为空,但由于C C是主码,为空违反了实是主码,为空违反了实体完整性,所以这名教师将无法插入到数据库中体完整性,所以这名教师将无法插入到数据库中。TnameTnameAddrAddrC#C#CnameCnameT1T1A1A1C1C1N1N1T1T1A1A1C2C2N2N2T1T1A1A1C3C3N3N3T2T2A2

5、A2C4C4N4N4T2T2A2A2C5C5N5N5T3T3A3A3C6C6N6N61.7数据库系统原理数据库系统原理n如果教师如果教师T3T3现在不带课了,则需将现在不带课了,则需将T3T3的元组删去,的元组删去,但同时也把他的姓名和地址信息删掉了。但同时也把他的姓名和地址信息删掉了。TnameTnameAddrAddrC#C#CnameCnameT1T1A1A1C1C1N1N1T1T1A1A1C2C2N2N2T1T1A1A1C3C3N3N3T2T2A2A2C4C4N4N4T2T2A2A2C5C5N5N5T3T3A3A3C6C6N6N61.8数据库系统原理数据库系统原理n方法:模式分解方法:

6、模式分解方法方法1 1:R R分解为分解为R1(R1(TnameTname, , AddrAddr) )R2(R2(C#C#,Cname),Cname)方法方法2 2R1( R1( TnameTname, , AddrAddr) )R2( R2( TnameTname, , C#,C#, CnameCname) )授课信息丢失了授课信息丢失了基本解决问题基本解决问题1.9数据库系统原理数据库系统原理 规范化理论规范化理论正是用来改造关系模式,通正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新依赖,以解决插入异常

7、、删除异常、更新异常和数据冗余问题。异常和数据冗余问题。1.10数据库系统原理数据库系统原理n到底什么样的模式才最佳?到底什么样的模式才最佳?n怎么分解才能达到要求?怎么分解才能达到要求?n标准是什么?标准是什么?n如何实现?如何实现?1.11数据库系统原理数据库系统原理n关系模式是对关系的描述,它由五部分组成:关系模式是对关系的描述,它由五部分组成:R R(U U,D D,DomDom,F F)R R为关系模式名为关系模式名; ;U U是一个属性集是一个属性集; ;D D是是U U中属性的值所来自的域中属性的值所来自的域; ;DomDom是属性向域的映射集合是属性向域的映射集合; ;F F是

8、属性间的依赖关系。是属性间的依赖关系。1.12数据库系统原理数据库系统原理n定义:定义:设关系模式设关系模式R(A1,A2,R(A1,A2,An),An)或简记为或简记为R(U)R(U),U U是是R R的属性集合的属性集合,X,X和和Y Y是是U U的子集。的子集。r r是是R R的任意一个实的任意一个实例(关系),若例(关系),若r r的任意两个元组的任意两个元组t1t1、t2t2,由,由t1X=t2Xt1X=t2X可导致可导致t1Y=t2Yt1Y=t2Y,即如果,即如果X X相等相等则则Y Y也相等,也相等,则称则称Y Y函数依赖于函数依赖于X X或称为或称为X X函数决定函数决定Y Y

9、,记作,记作 X XY Y。1.13数据库系统原理数据库系统原理1.1.函数依赖函数依赖不是不是指关系模式指关系模式R R的的某个或某些某个或某些关系实关系实例满足的约束条件,例满足的约束条件,而是而是指指R R的的所有所有关系实例均关系实例均要满足的约束条件。要满足的约束条件。2.2.函数依赖是函数依赖是语义范畴语义范畴的概念。只能根据数据的的概念。只能根据数据的语义来确定函数依赖。语义来确定函数依赖。 例如例如“姓名姓名年龄年龄”这个函数依赖只有在不这个函数依赖只有在不允许有同名人的条件下成立。允许有同名人的条件下成立。1.14数据库系统原理数据库系统原理n3. 3. 若若X XY Y,则

10、则X X叫做叫做决定因素决定因素。n4. 4. 若若X XY Y,Y YX X,则记做则记做 X X Y Y。 n5. 5. 若若Y Y不函数依赖于不函数依赖于X X,则记做则记做X XY Y。1.15数据库系统原理数据库系统原理n定义定义11.2 11.2 在在R(U)R(U)中中, ,如果如果X XY Y,并且对于并且对于X X的的任何一个真子集任何一个真子集XX,都有都有XXY Y,则称则称Y Y完全完全函函数依赖于数依赖于X X,记做,记做X XY Y。否则称否则称 称称Y Y部分部分函数依函数依赖于赖于X X。记做。记做X XY Y。n在在 例例11中(中(Sno,Cname)Sno

11、,Cname)GradeGrade 是是完全完全函数依赖;函数依赖; (Sno,Cname)Sno,Cname)SdeptSdept 是是部分部分函数依赖;函数依赖; PFF1.16数据库系统原理数据库系统原理n定义定义11.311.3 在关系模式在关系模式R(U)R(U)中,如果中,如果X XY Y,Y YZ Z,且,且Y Y X,Y X,YX,X,则称则称Z Z传递函数依传递函数依赖赖于于X X,记作,记作X X Z Z 。在在 例例11中中SnoSno SdeptSdept, , SdeptSdept MnameMname成成立,立, 所以所以SnoSno MnameMname。传递传递

12、1.17数据库系统原理数据库系统原理n例如例如,在关系在关系Student(Sno,Sname,Ssex,Sage,SdeptStudent(Sno,Sname,Ssex,Sage,Sdept) )中中,有有SnoSnoSsexSsex, , SnoSnoSageSage, , SnoSnoSdeptSdept, , SnoSno SnameSname( (无重名),但无重名),但SsexSsexSageSage。1.18数据库系统原理数据库系统原理n在关系在关系SC(Sno,Cno,GradeSC(Sno,Cno,Grade) )中,有中,有 SnoSnoGradeGrade, , CnoC

13、noGradeGrade , , ( (Sno,Cno)Sno,Cno)GradeGrade,( (Sno,CnoSno,Cno) )是决定属性集是决定属性集。n在关系在关系Std(Sno,Sdept,MnameStd(Sno,Sdept,Mname) )中,有中,有 SnoSnoSdept,SdeptSdept,SdeptMname,SnoMname,Sno MnameMname。传递传递F1.19数据库系统原理数据库系统原理n函数依赖函数依赖实际上是指一个关系模式中一个属性实际上是指一个关系模式中一个属性集和另一个属性集间的多对一关系集和另一个属性集间的多对一关系 例如选课关系例如选课关系

14、SC(S#, C#, Score)SC(S#, C#, Score)存在由属性集存在由属性集S#,C#S#,C#到属性集到属性集ScoreScore的函数依赖的函数依赖对于任意给定的对于任意给定的S#S#值和值和C#C#值,只有一个值,只有一个ScoreScore值值与其对应与其对应反过来,可以存在多个反过来,可以存在多个S#S#值和值和C#C#值,它们对应的值,它们对应的ScoreScore值相等值相等1.20数据库系统原理数据库系统原理nFDFD是否成立,唯一办法是仔细考察应用中是否成立,唯一办法是仔细考察应用中属性的含义。属性的含义。nFDFD实际上是对现实世界的断言。实际上是对现实世界

15、的断言。n数据库设计者在设计时把应遵守的函数依数据库设计者在设计时把应遵守的函数依赖告知赖告知DBMSDBMS,则,则DBMSDBMS会自动检查关系的合会自动检查关系的合法性。法性。1.21数据库系统原理数据库系统原理StudentStudent关系模式中,关系模式中,S# S# SnameSname (单个属性可去掉括号,简写成(单个属性可去掉括号,简写成 S# S# SnameSname) SCSC关系模式中,关系模式中, S#,C# ScoreS#,C# Score对于关系模式对于关系模式 R(TnameR(Tname, , AddrAddr, C#, , C#, CnameCname)

16、 )若一门课只能有一个教师,则有若一门课只能有一个教师,则有 C# C# TnameTname 若一门课可有多个教师任教,则有若一门课可有多个教师任教,则有 C# C# TnameTname 不成立不成立因此因此FDFD是与具体应用相关的。是与具体应用相关的。1.22数据库系统原理数据库系统原理n定义定义11.11.4 4:设设K K为关系模式为关系模式R(U,F)R(U,F)中的属性或属性中的属性或属性集合,若集合,若K KU U,则则K K为为R R的的候选码候选码(Candidate Key)(Candidate Key)。若候选码多于一个,则选定其中一个为若候选码多于一个,则选定其中一

17、个为主码主码(Primary (Primary Key)Key)。n主属性、非主属性、全码主属性、非主属性、全码。n定义定义11.511.5:关系模式关系模式R R中属性或属性组中属性或属性组X X并非并非R R的码,的码,但但X X是另一个关系模式的码,则称是另一个关系模式的码,则称X X是是R R的的外码外码。F1.23数据库系统原理数据库系统原理n码码是关系模式中的一个重要概念。是关系模式中的一个重要概念。n候选码候选码能够唯一地标识关系的元组;是关能够唯一地标识关系的元组;是关系模式中一组最重要的属性。系模式中一组最重要的属性。n主码又和外码主码又和外码一起提供了一个表示关系间一起提供

18、了一个表示关系间联系的手段。联系的手段。1.24数据库系统原理数据库系统原理n例:例: R(TnameR(Tname, , AddrAddr, C#, , C#, CnameCname) )F=F=TnameTnameAddrAddr, , C#CnameC#Cname, , C#TnameC#Tname C#C#Tname,Addr,C#,CnameTname,Addr,C#,Cname 所以所以C C是候选码,若是候选码,若C#TnameC#Tname不成立,则不成立,则候选码为候选码为 TnameTname, C#, C#1.25数据库系统原理数据库系统原理n范式:范式:满足特定要求的模

19、式满足特定要求的模式不同级别的范式要求各不相同不同级别的范式要求各不相同范式可以作为衡量一个关系模式好坏的标准范式可以作为衡量一个关系模式好坏的标准若关系模式若关系模式R R满足范式满足范式xNF,记,记R xNFn规范化:规范化:将低一级范式的关系模式通过模式分解将低一级范式的关系模式通过模式分解转换为高一级范式的关系模式集合的过程转换为高一级范式的关系模式集合的过程n5NF 5NF 4NF 4NF BCNF BCNF 3NF 3NF 2NF 2NF 1NF 1NF19711972,E.F. Codd1974,Boyce and Codd19761979,Fagin1.26数据库系统原理数据

20、库系统原理n定义定义11.6 11.6 如果一个关系模式如果一个关系模式R R的所有属性都的所有属性都是不可分的基本数据项,(即对于关系模式是不可分的基本数据项,(即对于关系模式R R的任一实例,其元组的每一个属性值都只含有的任一实例,其元组的每一个属性值都只含有一个值),则一个值),则 R R 1NF1NF。1NF1NF是关系的基本要求是关系的基本要求, ,否则不能称其为关系否则不能称其为关系数据库。数据库。1.27数据库系统原理数据库系统原理n满足第一范式的关系模式并不一定是满足第一范式的关系模式并不一定是一个好的关系模式。一个好的关系模式。 如:如:nSLC(Sno,Sdept,Sloc

21、,Cno,GradeSLC(Sno,Sdept,Sloc,Cno,Grade) )n码为码为( (Sno,CnoSno,Cno) )1.28数据库系统原理数据库系统原理n函数依赖包括:函数依赖包括: ( (Sno,CnoSno,Cno) ) Grade Grade SnoSno SdeptSdept ( (Sno,CnoSno,Cno) ) SdeptSdept SnoSno SlocSloc ( (Sno,CnoSno,Cno) ) SlocSloc SdeptSdept SlocSloc( (因为每个系只住在一个地方)因为每个系只住在一个地方)fpp1.29数据库系统原理数据库系统原理n

22、SnoCnoGradeSdeptSlocSLC关系模式上的一组函数依赖关系模式上的一组函数依赖1.30数据库系统原理数据库系统原理n对前例分析:对前例分析:非主属性非主属性 SdeptSdept 和和 SlocSloc 部分部分函数依赖于码函数依赖于码(Sno,CnoSno,Cno) )。SLCSLC关系存在数据冗余、更新异常、插入异常、关系存在数据冗余、更新异常、插入异常、删除异常删除异常4 4个问题。个问题。因此因此SLCSLC不是一个好的关系模式。不是一个好的关系模式。应消除部分函数依赖,可用投影分解法分解为应消除部分函数依赖,可用投影分解法分解为两个关系模式两个关系模式: :1.31数

23、据库系统原理数据库系统原理nSC(SC(Sno,CnoSno,Cno,Grade,Grade) )nSL(SL(SnoSno,Sdept,Sloc,Sdept,Sloc) )n依赖关系为依赖关系为: : ( (Sno,CnoSno,Cno) Grade) Grade SnoSno SdeptSdept SnoSno SlocSlocn显然显然, ,分解后非主属性都分解后非主属性都完全完全函数依赖于码了,函数依赖于码了,使以上使以上4 4个问题得到一定解决,个问题得到一定解决,SCSC,SLSL属于属于2NF2NF。1.32数据库系统原理数据库系统原理n定义定义11.711.7: 若关系模式若关

24、系模式R R 1NF1NF,且每一非主且每一非主属性完全函数依赖于属性完全函数依赖于R R的码,则的码,则R R 2NF2NF。n2NF2NF含义:含义:R(A,B,C,D,E), A,BR(A,B,C,D,E), A,B为主码,则有为主码,则有A,BA,BCC, A,BA,BDD, A,BA,BEE但但C C、D D、E E都不局部函数依赖于都不局部函数依赖于A,BA,B即即A ACC、 B BCC、 A ADD、 B BDD、 A AEE、 B BEE中任何一个均不成立中任何一个均不成立 1.33数据库系统原理数据库系统原理n供应关系供应关系 R(SR(S, P, P, city, sta

25、tus, Price, QTY), city, status, Price, QTY)F=S#F=S#city, city, S#S#status ,status , P#Price, P#Price, city status,S#,P# QTY city status,S#,P# QTY 所以主码为所以主码为SS,P,P 但但citycity和和PricePrice都局部函数依赖于主码都局部函数依赖于主码所以所以R R 2NF 2NF1.34数据库系统原理数据库系统原理nR( R( S S, P, P, city, status, Price, , city, status, Price,

26、QTY)QTY)n插入异常:插入异常:没有供应零件的供应商无法插入没有供应零件的供应商无法插入n删除异常:删除异常:删除供应商的供货信息同时删除删除供应商的供货信息同时删除了供应商的其它信息了供应商的其它信息n更新异常:更新异常:供应商的供应商的citycity修改时必须修改多修改时必须修改多个元组个元组n数据冗余:数据冗余:同一供应商的同一供应商的citycity被重复存储被重复存储1.35数据库系统原理数据库系统原理nR( R( S S, P, P, City, Status, Price, QTY), City, Status, Price, QTY)SPPriceCityQTYStat

27、usR1( S#,City,Status)R2( P#,Price)R3( S#,P#,QTY)分解是否分解是否正确?正确?无损联接无损联接和保持函和保持函数依赖数依赖1.36数据库系统原理数据库系统原理n前面前面2NF2NF关系模式关系模式SL(Sno,Sdept,SlocSL(Sno,Sdept,Sloc) )中有下列中有下列函数依赖:函数依赖: SnoSno SdeptSdept SdeptSdept SlocSloc SnoSno SlocSlocnSlocSloc传递传递函数依赖于函数依赖于SnoSno, ,即即SLSL中存在非主属性中存在非主属性对码的传递函数依赖。对码的传递函数依

28、赖。SLSL关系仍然不同测定存在关系仍然不同测定存在上面上面4 4个问题,所以个问题,所以SLSL还不是一个好关系模式还不是一个好关系模式。1.37数据库系统原理数据库系统原理nSCSC、SLSL上的函数依赖上的函数依赖SnoCnoGradeSLSnoSdeptSlocSC1.38数据库系统原理数据库系统原理n定义定义11.8 11.8 :关系模式关系模式R(U,F)R(U,F)中,当且仅中,当且仅当当R R属于属于1NF1NF,且,且R R的每一个非主属性都不的每一个非主属性都不传递依赖于主码时,传递依赖于主码时,R R 3NF3NF。传递依赖:传递依赖:若若X XY Y,YAYA,并且,并

29、且YXYX,A A不是不是Y Y的子集,则称的子集,则称A A传递依赖于传递依赖于X X。1.39数据库系统原理数据库系统原理n为了消除为了消除SlocSloc传递传递函数依赖于函数依赖于SnoSno问题问题, ,可将可将SLSL进一步分解为:进一步分解为: SD(SD(SnoSno,Sdept,Sdept) ) DL(DL(SdeptSdept,Sloc,Sloc) )n函数依赖为:函数依赖为: SnoSno SdeptSdept SdeptSdept SlocSlocn显然显然, ,分解后没有非主属性对码的分解后没有非主属性对码的部分和传递部分和传递依依赖了,使以上赖了,使以上4 4个问题

30、得到基本解决,个问题得到基本解决,SCSC,SLSL属属于于3NF3NF。1.40数据库系统原理数据库系统原理n将一个将一个2NF2NF关系分解为多个关系分解为多个3NF3NF的关系后的关系后, ,并并不能完全消除关系模式中的各种异常情况和不能完全消除关系模式中的各种异常情况和数据冗余。数据冗余。n即即满足满足3NF3NF的关系模式不一定是一个好的关的关系模式不一定是一个好的关系模式。系模式。 n如,如,P134 P134 STJSTJ关系属关系属3NF3NF,但不是理想的关,但不是理想的关系模式。系模式。1.41数据库系统原理数据库系统原理nR1(R1(S#S#,City,Status),C

31、ity,Status)n插入异常:插入异常:不能插入一个具有不能插入一个具有statusstatus但没有供但没有供应商的应商的citycity,例如,例如RomeRome的的statusstatus为为5050,但除非,但除非有一个供应商住在有一个供应商住在Rome,Rome,否则无法插入否则无法插入n删除异常删除异常:删除供应商时会同时删除与该城市相:删除供应商时会同时删除与该城市相关的关的statusstatus信息信息n更新异常:更新异常:一个城市中会有多个供应商,因此一个城市中会有多个供应商,因此statusstatus更新时要更新多个元组更新时要更新多个元组n数据冗余数据冗余:同一

32、城市的:同一城市的statusstatus冗余存储冗余存储1.42数据库系统原理数据库系统原理nR1(R1(S#S#,City,Status),City,Status)n去掉传递依赖去掉传递依赖SCityStatusR4( City,Status)R5( S#,City)1.43数据库系统原理数据库系统原理n1 1NFNF:任一关系的每个属性值不可分任一关系的每个属性值不可分n2 2NFNF:属于属于1 1NFNF,且非主属性完全函数依赖于码且非主属性完全函数依赖于码n3 3NFNF:属于属于1 1NFNF,且不存在非主属性到码的传递且不存在非主属性到码的传递 依赖依赖1.44数据库系统原理数

33、据库系统原理nBCNF(Boyce BCNF(Boyce CoddCodd Normal Form) Normal Form)是由是由BoyceBoyce和和CoddCodd提出的,比提出的,比3NF3NF更进了一步。更进了一步。通常认为通常认为BCNFBCNF是修正的第三范式。是修正的第三范式。n2 2NFNF和和3 3NFNF的定义都假设了的定义都假设了R R只有一个候选码,但一只有一个候选码,但一般情况下般情况下R R可能有多个候选码,并且不同的候选码可能有多个候选码,并且不同的候选码之间还可能相互重叠。之间还可能相互重叠。n3 3NFNF不能处理不能处理R R的一般情况(多个候选码)。

34、的一般情况(多个候选码)。nBCNFBCNF扩充了扩充了3 3NFNF,可以处理可以处理R R有多个候选码的情形有多个候选码的情形。nR R只有一个候选码时只有一个候选码时BCNFBCNF等价等价3 3NFNF。1.45数据库系统原理数据库系统原理n假设供应商的名字是唯一的假设供应商的名字是唯一的n供应关系供应关系R(S#,SNAME,P#,QTY)R(S#,SNAME,P#,QTY)存在两个候选码存在两个候选码 S#,P#S#,P#和和 SNAME, P#SNAME, P#R R属于属于3 3NFNF,WHYWHY?S#S#SNAMESNAMEP#P#QTYQTYs1s1IntelIntel

35、p1p1300300s1s1IntelIntelp2p2200200s1s1IntelIntelP3P3400400s2s2AcerAcerp1p1200200SNAME, P# QTY, S#, P# QTY,S# SNAME, SNAME S#1.46数据库系统原理数据库系统原理n数据冗余:数据冗余:s1s1的名字的名字IntelIntel重复存储重复存储n更新异常:更新异常:修改修改s1s1的名字时必须修改多个元组的名字时必须修改多个元组n删除异常:删除异常:若若s2s2现在不提供任何零件,则须删除现在不提供任何零件,则须删除s2s2的元组,但同时删除了的元组,但同时删除了s2s2的名字

36、的名字n插入异常:插入异常:没有提供零件的供应商无法插入没有提供零件的供应商无法插入S#S#SNAMESNAMEP#P#QTYQTYs1s1IntelIntelp1p1300300s1s1IntelIntelp2p2200200s1s1IntelIntelP3P3400400s2s2AcerAcerp1p12002001.47数据库系统原理数据库系统原理SNamePS#QTYSPSnameQTYR1(S#,SNAME)R2(S#,P#,QTY)R1(SName,S#)R2(SName,P#,QTY)1.48数据库系统原理数据库系统原理n定义定义11.911.9:设关系模式设关系模式R R 1N

37、F1NF,若若R R中的中的任一函数依赖任一函数依赖X XY Y,若,若Y Y X X时,时,X X必含有必含有候选码,则候选码,则R R BCNFBCNF。n换句话说,换句话说,在关系模式在关系模式R R中,如果每一个中,如果每一个决定属性集都包含候选码,则决定属性集都包含候选码,则R R BCNFBCNF。1.49数据库系统原理数据库系统原理n(即:如果关系模式(即:如果关系模式R R的所有不平凡的、完的所有不平凡的、完全的函数依赖的决定因素(左边的属性集)全的函数依赖的决定因素(左边的属性集)都是候选码,则都是候选码,则R R BCNFBCNF)R R的非主属性完全函数依赖于候选码的非主

38、属性完全函数依赖于候选码所有的主属性对每一个不包含它的码,也所有的主属性对每一个不包含它的码,也是完全函数依赖是完全函数依赖没有任何属性完全函数依赖于没有任何属性完全函数依赖于非非主属性集主属性集1.50数据库系统原理数据库系统原理nR(S#,SNAME,STATUS,CITY)R(S#,SNAME,STATUS,CITY)n设设SnameSname唯一唯一nBCNFBCNF模式的函数依赖图中,箭头都是从候选码中模式的函数依赖图中,箭头都是从候选码中引出,所有不平凡引出,所有不平凡FDFD的左边都是候选码的左边都是候选码SSnameStatuscityS# Sname, S#Status,S#

39、 city,Sname S#,Sname city,SnameStatus, 1.51数据库系统原理数据库系统原理nR(S,J,T)-R(S,J,T)-学号,课程号,教师名学号,课程号,教师名n每一教师只教一门课。每门课由若干教师教,某一学生每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称某个教师的课就确定了所选课的名称 : ( (S S,J)TJ)T,(S(S,T)JT)J,TJTJnR R属于属于3 3NFNFnR R不属于不属于BCNFBCNF1.52数据库系统

40、原理数据库系统原理n数据依赖数据依赖SJTSTJSTJ1.53数据库系统原理数据库系统原理解决方法:将解决方法:将STJSTJ分解为二个关系模式:分解为二个关系模式: SJ(SJ(S S,J J) BCNF) BCNF, TJ( TJ(T T,J) BCNFJ) BCNF 没有没有任何属性任何属性对码的部分函数依赖和传递函数依赖对码的部分函数依赖和传递函数依赖SJSTTJTJ1.54数据库系统原理数据库系统原理例例: : 学校中某一门课程由多个教师讲授,他们使学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。用相同的一套参考书。关系模式关系模式Teaching(C, T, B)Teac

41、hing(C, T, B) 课程课程C C、教师教师T T 和和 参考书参考书B B1.55数据库系统原理数据库系统原理课课 程程 C教教 员员 T参参 考考 书书 B 物理物理 数学数学 计算数学计算数学李李 勇勇王王 军军 李李 勇勇张张 平平 张张 平平周周 峰峰 普通物理学普通物理学光学原理光学原理 物理习题集物理习题集 数学分析数学分析微分方程微分方程高等代数高等代数 数学分析数学分析 表表5.11.56数据库系统原理数据库系统原理普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高

42、等代数数学分析数学分析微分方程微分方程高等代数高等代数李李 勇勇李李 勇勇李李 勇勇王王 军军王王 军军王王 军军李李 勇勇李李 勇勇李李 勇勇张张 平平张张 平平张张 平平 物物 理理物物 理理物物 理理物物 理理物物 理理物物 理理数数 学学数数 学学数数 学学数数 学学数数 学学数数 学学 参考书参考书B B教员教员T T课程课程C C1.57数据库系统原理数据库系统原理nTeachingBCNF:TeachingBCNF:nTeachTeach具有唯一候选码具有唯一候选码( (C C,T T,B)B),即全码即全码nTeachingTeaching模式中存在的问题:模式中存在的问题:

43、(1)(1)数据冗余度大:数据冗余度大: 有多少名任课教师,参考书就要存储多少次有多少名任课教师,参考书就要存储多少次 1.58数据库系统原理数据库系统原理 (2)(2)插入操作复杂:插入操作复杂: 当某一课程增加一名任课教师时,该课程当某一课程增加一名任课教师时,该课程有多少本参照书,就必须插入多少个元组。有多少本参照书,就必须插入多少个元组。例如:例如:物理课增加一名教师刘关,需要插入两物理课增加一名教师刘关,需要插入两个元组:个元组: (物理,刘关,普通物理学)(物理,刘关,普通物理学) (物理,刘关,光学原理)(物理,刘关,光学原理)1.59数据库系统原理数据库系统原理(3) (3) 删除操作复杂:删除操作复杂: 某一门课要去掉一本参考书,该课程有多少名教师,某一门课要去掉一本参考书,该课程有多少名教师,就必须删除多少个元组就必须删除多少个元组(4) (4) 修改操作复杂:修改操作复杂: 某一门课要修改一本参考书,该课程有多少名教师,某一门课要修改一本参考书,该课程有多少名教师,就必须修改多少个元组就必须修改多少个元组 n产生原因产生原因存在多值依赖存在多值依赖1.60数据库系统原理数据库系统原理n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论