《数据库模式的分解无损连接性.pptx》由会员分享,可在线阅读,更多相关《数据库模式的分解无损连接性.pptx(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3.9 3.9 模式的分解模式的分解3.9.1 3.9.1 关系模式分解的标准关系模式分解的标准把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义 “等价等价”概念的三种定义:概念的三种定义:(1 1)分解具有无损连接性。)分解具有无损连接性。(2 2)分解要保持函数依赖性。)分解要保持函数依赖性。(3 3)分解既要保持函数依赖,又要具有无损连接性。)分解既要保持函数依赖,又要具有无损连接性。第
2、1页/共40页3.9.2 3.9.2 无损分解无损分解 无损分解无损分解定义:关系模式定义:关系模式RR的一个分解的一个分解 =R=R1 1U,R R2 2U,R Rn nU,对于,对于R R的任一关系的任一关系r r,都有,都有r r为其在各为其在各U Ui i(1=1,n)(1=1,n)上上的投影的的投影的(自然自然)连接连接,即即r=r=U1U1(r)(r)U2U2(r)(r)UnUn(r)(r),则称,则称关系关系模式模式R R的这个分解的这个分解具有无损连接性具有无损连接性(Lossless joinLossless join)。)。具有无损连接性的分解保证不丢失信息。具有无损连接性
3、的分解保证不丢失信息。无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题。题。第2页/共40页3.9.2 3.9.2 无损分解(续)无损分解(续)例:例:S-LS-L(SnoSno,SdeptSdept,SlocSloc)F=F=SnoSnoSdept,SdeptSloc,SnoSdept,SdeptSloc,SnoSloc S-L2NFSloc S-L2NF,分解方法可以有,分解方法可以有多种:多种:1.S-L1.S-L分解为三个关系模式:分解为三个关系模式:SN(SN(SnoSno),SD(SD(SdeptSd
4、ept),SL(SL(SlocSloc)2.SL 2.SL分解为下面二个关系模式:分解为下面二个关系模式:NL(NL(SnoSno,Sloc),Sloc),DL(DL(SdeptSdept,Sloc),Sloc)3.3.将将SLSL分解为下面二个关系模式:分解为下面二个关系模式:ND(ND(SnoSno,Sdept),Sdept),NL(NL(SnoSno,Sloc),Sloc)第3页/共40页3.9.2 3.9.2 无损分解(续)无损分解(续)第第3 3种分解方法具有无损连接性。种分解方法具有无损连接性。问题问题:(1 1)没有保持原关系中的函数依赖,即)没有保持原关系中的函数依赖,即S-L
5、S-L中的函数依赖中的函数依赖SdeptSlocSdeptSloc没有投影到关系没有投影到关系模模式式NDND、NLNL上。上。(2 2)存在冗余和操作异常。)存在冗余和操作异常。第4页/共40页3.9.2 3.9.2 无损分解(续)无损分解(续)4.将将SLSL分解为下面二个关系模式:分解为下面二个关系模式:ND(ND(SnoSno,Sdept),Sdept),DL(DL(SdeptSdept,Sloc),Sloc)该分解保持了函数依赖该分解保持了函数依赖(且具有无损连接性且具有无损连接性)。第5页/共40页3.9.3 3.9.3 保持函数依赖的模式分解保持函数依赖的模式分解 定义:设关系模
6、式定义:设关系模式RR被分解为若干个关系模式被分解为若干个关系模式 R R1 1U,R R2 2U,R Rn nU 其中其中U=UU=U1 1UU2 2UUn n,且不存在,且不存在U Ui i U Uj j,F Fi i为为F F在在U Ui i上的投影),若上的投影),若F F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖F Fi i所逻辑所逻辑蕴含,则称蕴含,则称关系模式关系模式R R的这个分解是保持函数依赖的的这个分解是保持函数依赖的(Preserve dependencyPreserve dependenc
7、y)。)。第6页/共40页3.9.3 3.9.3 保持函数依赖的模式分解保持函数依赖的模式分解(续)(续)例如,将例如,将S SL L(SnoSno,SdeptSdept,SlocSloc)F=SnoF=SnoSdept,SdeptSloc,SnoSdept,SdeptSloc,SnoSlocSloc 分解为下面二个关系模式分解为下面二个关系模式(第四种分解第四种分解):ND(ND(SnoSno,Sdept),Sdept),DL(DL(SdeptSdept,Sloc),Sloc)该分解保持了函数依赖该分解保持了函数依赖(具有无损连接性具有无损连接性)。第7页/共40页3.9.3 3.9.3 保
8、持函数依赖的模式分解保持函数依赖的模式分解(续续)如果一个分解具有无损连接性,则它能够保证不丢失信息。如果一个分解具有无损连接性,则它能够保证不丢失信息。如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。损连接性。第8页/共40页3.9.3
9、 3.9.3 保持函数依赖的模式分解保持函数依赖的模式分解(续续)对于关系模式对于关系模式S-LS-L:第第1 1种分解方法既种分解方法既不具有不具有无损连接性,也无损连接性,也未保持未保持函数依赖。函数依赖。第第2 2种分解方法种分解方法未保持未保持函数依赖,也函数依赖,也不具有不具有无损连接性。无损连接性。第第3 3种分解方法种分解方法具有具有无损连接性,但无损连接性,但未保持未保持函数依赖。函数依赖。第第4 4种分解方法既种分解方法既具有具有无损连接性,又无损连接性,又保持保持了函数依赖。了函数依赖。第9页/共40页3.9.4 3.9.4 模式分解算法模式分解算法算法算法1 1 判别一个
10、判别一个二元二元分解的无损连接性分解的无损连接性 算法算法2 2 判别一个分解的无损连接性判别一个分解的无损连接性 算法算法3 3(合成法)转换为(合成法)转换为3NF3NF的保持函数依赖的分解。的保持函数依赖的分解。算法算法4 4 转换为转换为3NF3NF既有无损连接性又保持函数依赖的分解既有无损连接性又保持函数依赖的分解 。算法算法5 5 (分解法)转换为(分解法)转换为BCNFBCNF的无损连接分解的无损连接分解 算法算法6 6 达到达到4NF4NF的具有无损连接性的分解。的具有无损连接性的分解。第10页/共40页算法算法1 1 判别一个判别一个二元分解二元分解的无损连接性。的无损连接性
11、。若若F F中至少存在如下函数依赖中的中至少存在如下函数依赖中的一个一个:(1 1)()(U U1 1UU2 2)UU1 1U U2 2(2 2)()(U U1 1UU2 2)UU2 2U U1 1 则则=R=R1 1U,R R2 2U是是R R的无损分解。反之也的无损分解。反之也 成立。成立。如:模式如:模式S-LS-L(SnoSno,SdeptSdept,SlocSloc)分解为分解为2 2个模式:个模式:ND(ND(SnoSno,Sdept),Sdept),NL(NL(SnoSno,Sloc),Sloc)则是无损分解。则是无损分解。3.9.4 3.9.4 模式分解算法模式分解算法第11页
12、/共40页算法算法2 2 判别一个判别一个分解分解的无损连接的无损连接性性 设设RR1 1U,R R2 2U,R Rk kU是是RURF的一个分解,的一个分解,U UAA1 1,A,An n 构造一张构造一张k k行行n n列的表格。每列对应一个属性列的表格。每列对应一个属性A Aj j,每行对应一个模式,每行对应一个模式R Ri i。如果。如果A Aj j属属于于U Ui i,那么在表格的第,那么在表格的第i i行第行第j j列处填上符号列处填上符号a aj j,否则填上,否则填上b bijij。第12页/共40页算法算法2 2 判别一个判别一个分解分解的无损连接性的无损连接性逐一检查逐一检
13、查F F中的中的每个函数依赖每个函数依赖,并修改元素,方法是:取,并修改元素,方法是:取F F中一函数依赖中一函数依赖X XY Y,找,找出出X X所对应的列中具有相同符号的行,考察这些行中所对应的列中具有相同符号的行,考察这些行中Y Y列的元素,若其中有列的元素,若其中有a aj j,则全,则全部改为部改为a aj j,否则全部改,否则全部改b bmjmj,其中,其中m m是这些行的行号最小值。是这些行的行号最小值。若在某次更改后,有一行是若在某次更改后,有一行是a a1 1a a2 2aan n,那么,那么相对于相对于F F是无损分解,算法结束。是无损分解,算法结束。对对F F中的每个函数
14、依赖进行一次上述的处置,称对中的每个函数依赖进行一次上述的处置,称对F F的一次扫描。的一次扫描。第13页/共40页算法算法2 2 判别一个判别一个分解分解的无损连接性的无损连接性比较扫描前后,表有无变化。如有变化,比较扫描前后,表有无变化。如有变化,则返回第则返回第步处理,否则,算法结束,则步处理,否则,算法结束,则相对于相对于F F是有损分解。是有损分解。如果发生循环,那么前次扫描至少应使如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此该表减少一个符号,表中符号有限,因此循环必然会终止。循环必然会终止。第14页/共40页算法算法2 2 判别一个分解的无损连接性判别一个
15、分解的无损连接性 例例1 1,设关系模式,设关系模式R(ABCDE)R(ABCDE),F=ABCF=ABC,CDCD,DEDE,R R分解成分解成 =R R1 1(ABC),ABC),R R2 2(CD),(CD),R R3 3(DE)(DE)。那么那么相对于相对于F F是否无损分解?是否无损分解?第15页/共40页算法算法2 2 判别一个分解的无损连接判别一个分解的无损连接性性R1(ABC),R2(CD),R3(DE)F=ABC,CD,DEA AB BC CD DE Ea1a1a2a2a3a3b14b14b15b15b21b21b22b22a3a3a4a4b25b25b31b31b32b32
16、b33b33a4a4a5a5A AB BC CD DE Ea1a1a2a2a3a3a4a4a5a5b21b21b22b22a3a3a4a4a5a5b31b31b32b32b33b33a4a4a5a5初始表:初始表:最后结果:最后结果:R1R1R2R2R3R3R1R1R2R2R3R31 12 22 2相对于相对于F F是无损分解是无损分解第16页/共40页算法算法2 2 判别一个分解的无损连接判别一个分解的无损连接性性 例例2 2,R(AR(A,B B,C)C),F=AF=AB B,C CBB分解分解1 1=R=R1 1(A,B)(A,B),R R2 2(A,C)(A,C)分解分解2 2=R=R
17、1 1(A,B)(A,B),R R1 1(B,C)(B,C)分析两种分解的无损连接性?分析两种分解的无损连接性?分解分解1 1只具有无损连接性只具有无损连接性,分解分解2 2不具有无损不具有无损连接性。连接性。A AB BC Ca1a1a2a2a1a1a2a2a3a3ABABACACA AB BC Ca1a1a2a2a2a2a3a3ABABBCBC第17页/共40页算法算法2 2 判别一个分解的无损连接性判别一个分解的无损连接性例例3 3,设关系模式,设关系模式R(ABCD)R(ABCD),R R分解成分解成 =R R1 1(AB),AB),R R2 2(BC),(BC),R R3 3(CD)
18、(CD)。如果如果R R上成立的函数依赖集上成立的函数依赖集 F=ABF=AB,CDCD,那么那么相对于相对于F F是否无损分解?是否无损分解?第18页/共40页算法算法2 2 判别一个分解的无损连接性判别一个分解的无损连接性 F=AB,CDA AB BC CD DABABa a1 1a a2 2b b1313b b1414 BCBCb b2121a a2 2a a3 3b b2424 CDCDb b3131b b3232a a3 3a a4 4 是是有损分解有损分解A AB BC CD DABABa a1 1a a2 2b b1313b b1414 BCBCb b2121a a2 2a a3
19、 3a a4 4 CDCDb b3131b b3232a a3 3a a4 4 第19页/共40页3.9.4 3.9.4 模式分解算法模式分解算法算法算法3 3(合成法)转换为(合成法)转换为3NF3NF的保持函数依赖的分解。的保持函数依赖的分解。(1 1)对关系模式)对关系模式R R中的函数依赖集中的函数依赖集F F进行进行“极小化极小化”处理,处理后的函数依赖集仍记处理,处理后的函数依赖集仍记为为F F;(2 2)若有)若有XAXA F F,且,且XA=UXA=U,则,则=R=R,算法终止;,算法终止;(3 3)找出不在)找出不在F F中出现的属性,中出现的属性,将它们构成一个关系模式将它
20、们构成一个关系模式,并把这些属性从,并把这些属性从R R中去掉,中去掉,把剩余的属性仍记为把剩余的属性仍记为U U。第20页/共40页算法算法3 3 转换为转换为3NF3NF的保持函数依赖的分的保持函数依赖的分解解(4 4)对)对F F按具有相同左部的原则分组按具有相同左部的原则分组(假定分为假定分为k k组组),每一组函数依赖,每一组函数依赖F Fi i所涉及的全所涉及的全部属性形成一个属性集部属性形成一个属性集U Ui i。若。若U Ui i U Uj j(ij)(ij),就去掉,就去掉U Ui i。于是。于是=R=R1 1U,R R2 2U,R Rk kU 构成构成RURF的一个保持函数
21、依赖的分解,并且每的一个保持函数依赖的分解,并且每个个R Ri i(U(Ui i,F,Fi i)均属于均属于3NF3NF且保持函数依赖。且保持函数依赖。第21页/共40页3.9.4 3.9.4 模式分解算法模式分解算法例,设例,设R R(A,B,C,D,EA,B,C,D,E),),F Fminmin=AB=AB,CDCD。则,则,RR1 1(A,B)A,B),R R2 2(C,DC,D),R,R3 3(E E)是保持函数依赖的分解。是保持函数依赖的分解。第22页/共40页算法算法4 4 转换为转换为3NF3NF既有无损连接性又保持函数依赖的分解既有无损连接性又保持函数依赖的分解 。(1 1)对
22、关系模式)对关系模式R R中的函数依赖集中的函数依赖集F F进行进行“极小化极小化”处理,然后把最小依赖集中处理,然后把最小依赖集中那些左部相同的那些左部相同的FDFD用合并性合并起来,处理后的函数依赖集仍记为用合并性合并起来,处理后的函数依赖集仍记为F F;(2 2)对)对F F中的每个一函数依赖中的每个一函数依赖XYXY,构成一个关系模式,构成一个关系模式R Ri i(X,Y)(X,Y),R Ri i为为3NF,3NF,RR1 1,R,R2 2,R,Rn n(3 3)如果每个)如果每个R Ri i不包含不包含R R的候选键,那么把候选键作为一个模式放入的候选键,那么把候选键作为一个模式放入
23、中。中。即为所求。即为所求。3.9.4 3.9.4 模式分解算法模式分解算法第23页/共40页 例,设有关系例,设有关系R(F,G,R(F,G,H H,I,I,J J),FD=FI,I,J JI,IG,GI,IG,GH HI,II,IH HFF,将分解为,将分解为3NF,3NF,并具有无损连接性和并具有无损连接性和保持依赖性。保持依赖性。解:解:HJHJ是是L L类属性,所以候选键至少包含类属性,所以候选键至少包含HJHJ,另外,另外,(HJHJ)FGHIJFGHIJ,所以,所以HJHJ是唯一的候选键。是唯一的候选键。(1 1)求出最小依赖集)求出最小依赖集 F Fminmin=F=FI,JI
24、,IG,GHI,IHF=F=FI,JI,IG,GHI,IHF3.9.4 3.9.4 模式分解算法模式分解算法第24页/共40页 (2)(2)将关系分解为:将关系分解为:R R1 1(FI),R(FI),R2 2(JI),R(JI),R3 3(IG),R(IG),R4 4(GHI),R(GHI),R5 5(IHF)(IHF)(3)(3)并上候选键:并上候选键:RR1 1(FIFI),R,R2 2(JI),R(JI),R3 3(IG),R(IG),R4 4(GHI),R(GHI),R5 5(IHF)(IHF),R R6 6(HJHJ)3.9.4 3.9.4 模式分解算法模式分解算法第25页/共40
25、页3.9.4 3.9.4 模式分解算法模式分解算法 课后习题:课后习题:已知,关系模式已知,关系模式R(A,B,C,D,E)R(A,B,C,D,E),R R的最小依赖集的最小依赖集F Fminmin=AB=AB,CDCD。试将试将R R分解为分解为3NF,3NF,并具有无损连接性和保持函数依赖性。并具有无损连接性和保持函数依赖性。第26页/共40页3.9.4 3.9.4 模式分解算法模式分解算法算法算法5 5 转换为转换为BCNFBCNF的无损连接分解。的无损连接分解。(1)(1)关系模式关系模式R R的分解的分解,初始时,初始时=R=R。(2)(2)检查检查中各关系模式是否均属于中各关系模式
26、是否均属于BCNFBCNF。若是,则。若是,则 算法终止。算法终止。(3)(3)设设中中R Ri iU 不属于不属于BCNFBCNF,那么必有,那么必有XAXA F Fi i (A A X)X),且且X X非非R Ri i的超码。对的超码。对R Ri i进行分解:进行分解:SS1 1,S,S2 2,U US1S1XAXA,U US2S2U Ui iAA,以,以代替代替 R Ri iU 返回第返回第(2)(2)步。步。由于由于U U中属性有限,因而有限次循环后算法中属性有限,因而有限次循环后算法5 5一定一定 会终止。会终止。第27页/共40页算法算法5 5 转换为转换为BCNFBCNF的无损连
27、接分解的无损连接分解。这是一个自项向下的算法。它自然地形成一棵对这是一个自项向下的算法。它自然地形成一棵对RR的二又分解树。的二又分解树。RR的分解树不一定是唯一的。的分解树不一定是唯一的。这与步骤这与步骤(3)(3)中具体选定的中具体选定的XAXA有关。有关。第28页/共40页算法算法5 5 转换为转换为BCNFBCNF的无损连接分解。的无损连接分解。例,例,设关系模式设关系模式W(CTHRSG)W(CTHRSG)的属性分别表示课程名、任课教师名、上课时间、的属性分别表示课程名、任课教师名、上课时间、上课教室、选修的学生学号、成绩等含义。上课教室、选修的学生学号、成绩等含义。W W上的函数依
28、赖集上的函数依赖集F F:C TC T,HR CHR C,THRTHR,CS GCS G,HS RHS R 显然,模式显然,模式W W上只有一个键,是上只有一个键,是HSHS。解:要把解:要把W W分解成分解成BCNFBCNF模式集,可以首先考虑模式集,可以首先考虑CS GCS G,据算法,应把,据算法,应把CTHRSGCTHRSG分分解成解成CSGCSG和和CTHRSCTHRS。为进一步分解,计算出。为进一步分解,计算出CSGCSG(F)(F)CS G CS G,CTHRSCTHRS (F)(F)C TC T,HR CHR C,TH RTH R,HS RHS R。模式。模式CTHRSCTHR
29、S的键是的键是HSHS。第29页/共40页算法算法5 5 转换为转换为BCNFBCNF的无损连接分解。的无损连接分解。显然显然CSGCSG已是已是BCNFBCNF,而,而CTHRSCTHRS必须进一步分解。如考虑必须进一步分解。如考虑CTCT,则把,则把CTHRSCTHRS分解成分解成CTCT和和CHRSCHRS,CTCT(F)(F)C C TT,CHRSCHRS(F)(F)CH RCH R,HS RHS R,HR CHR C。HSHS是是CHRSCHRS的键。的键。CHRSCHRS再分解一次,利用再分解一次,利用CHRCHR分解成分解成CHRCHR和和CHSCHS,2 2模式模式均满足均满足
30、BCNFBCNF。分解结束。分解结束。第30页/共40页分解树分解树第31页/共40页算法算法5 5 转换为转换为BCNFBCNF的无损连接分解。的无损连接分解。W W分解成分解成CSGCSG,CTCT,CHRCHR,CHSCHS,其,其中四个关系模式分别描述:中四个关系模式分别描述:学生的各门课程成绩学生的各门课程成绩(CSG)(CSG)每门课程的任课教师每门课程的任课教师(CT)(CT)每门课程的上课时间和教室每门课程的上课时间和教室 (CHR)(CHR)每个学生的上课时间表每个学生的上课时间表(CHS)(CHS)是转换为是转换为BCNFBCNF的无损连接分解,但分的无损连接分解,但分解中
31、有一个问题,解中有一个问题,THRTHR在分解时未能保在分解时未能保持。在持。在CTHRSCTHRS分解成分解成CTCT和和CHRSCHRS时,时,THRTHR丢失了。丢失了。第32页/共40页3.9.4 3.9.4 模式分解算法模式分解算法算法算法6 6 达到达到4NF4NF的具有无损连接性的分解的具有无损连接性的分解 首先使用算法首先使用算法5 5得到得到R R的一个达到了的一个达到了BCNFBCNF的无损连接分解的无损连接分解。然后对某一。然后对某一R Ri iU ,若不属于若不属于4NF4NF,则可按下述定理的作法,则可按下述定理的作法进行分解。直到每个关系模式均属于进行分解。直到每个
32、关系模式均属于4NF4NF为止。为止。定理定理 若若RR中中XY成立,则成立,则R R的分解的分解 =R=R1 1(X,Y),R(X,Y),R2 2(X,Z)(X,Z)具有无损连具有无损连接性。接性。其中其中Z ZU UX XY Y。第33页/共40页算法算法6 6 达到达到4NF4NF的具有无损连接性的分解的具有无损连接性的分解例,例,TEACHING(TEACHING(C C,T T,B B)的码是的码是A1l_KeyA1l_Key。TEACHINGBCNFTEACHINGBCNF,但,但TEACHING4NFTEACHING4NF 将模式将模式TEACHINGTEACHING分解为:分解
33、为:CT(CT(C C,T T)和和CB(CB(C C,B B),均满足,均满足4NF4NF第34页/共40页数据依赖的一个有效且完备的公理系数据依赖的一个有效且完备的公理系统统 关系模式关系模式RR,U U是属性总体集,是属性总体集,D D是是U U上的一组数据依赖上的一组数据依赖(函数依赖和多值依赖函数依赖和多值依赖),对于包含函数依赖和,对于包含函数依赖和多值依赖的数据依赖有多值依赖的数据依赖有个有效且完备的公理系统。个有效且完备的公理系统。A1A1:若:若Y Y X X U U,则,则XYXY;A2A2:若:若XYXY为为F F所蕴含,且所蕴含,且Z Z U U,则,则XZYZXZYZ
34、。A3A3:若:若XYXY,YZYZ,则,则XZXZ A4A4:若:若XYXY ,V V W W U U,则,则XW XW YV YVA5A5:若:若XYXY ,则,则XUXUX XY Y A6A6:若:若XYXY ,Y YZZ,则则XZXZY Y 第35页/共40页A7A7:若:若XYXY,则,则XYXY A8A8:若:若XYXY,W WZZ,WYWY,Z Z Y Y,则,则 XXZ Z。公理系统的有效性是指从公理系统的有效性是指从D D出发根据出发根据8 8条公理推导出的函数依赖或多值依赖一定为条公理推导出的函数依赖或多值依赖一定为D D蕴含;完备性是指凡蕴含;完备性是指凡D D所蕴含的函
35、数依赖或多值依赖均可以从所蕴含的函数依赖或多值依赖均可以从D D根据根据8 8条公理推导条公理推导出来。也就是说,在函数依赖和多值依赖的条件下,出来。也就是说,在函数依赖和多值依赖的条件下,“蕴含蕴含”与与“导出导出”仍是等仍是等价的。价的。数据依赖的一个有效且完备的公理系数据依赖的一个有效且完备的公理系统统第36页/共40页3.9.5 3.9.5 模式分解小结模式分解小结 关于模式分解的几个重要事实:关于模式分解的几个重要事实:(1 1)若要求分解保持函数依赖,那么分解总可以达到)若要求分解保持函数依赖,那么分解总可以达到3NF3NF,但不一定能达到,但不一定能达到BCNFBCNF。(2 2
36、)若要求分解既保持函数依赖,又具有无损连接性,可以达到)若要求分解既保持函数依赖,又具有无损连接性,可以达到3NF3NF,但不一定能达到,但不一定能达到BCNFBCNF。(3 3)若要求分解具有无损连接性,那一定可达到)若要求分解具有无损连接性,那一定可达到4NF4NF。第37页/共40页3.9.5 3.9.5 模式分解小结模式分解小结数据库设计者在进行关系数据库设计时,应作权衡,尽可能使数据库模式保持最好的特性。一般尽可能设数据库设计者在进行关系数据库设计时,应作权衡,尽可能使数据库模式保持最好的特性。一般尽可能设计成计成BCNFBCNF模式集。如果设计成模式集。如果设计成BCNFBCNF模
37、式集时达不到保持模式集时达不到保持FDFD的特点,那么只能降低要求,设计成的特点,那么只能降低要求,设计成3NF3NF模式集,模式集,以求达到保持以求达到保持FDFD和无损分解的特点。和无损分解的特点。第38页/共40页3.10 3.10 本章小结本章小结关系模式的规范化过程实际上是一个关系模式的规范化过程实际上是一个“分解分解”过程:把过程:把逻辑上独立的信息放在独立的关系模式中。分解是解决逻辑上独立的信息放在独立的关系模式中。分解是解决数据冗余的主要方法,也是规范化的一条原则:数据冗余的主要方法,也是规范化的一条原则:“关系关系模式有冗余问题就分解它模式有冗余问题就分解它”。要设计好的数据库模式,必须有一定的理论为基础。这要设计好的数据库模式,必须有一定的理论为基础。这就是模式规范化理论。就是模式规范化理论。第39页/共40页感谢您的观看!第40页/共40页