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