6.4模式的分解.ppt
6.4 模式的分解*v分解的目的u解决冗余和异常,提高范式等级v分解的概念u用原关系模式的若干个投影构成新的关系模式,即关系模式分解应满足的特性v无损连接性(Lossless join)v保持函数依赖性(Preserve dependency)v相互独立性u分解后的关系模式中,当修改某一个关系数据时,不会影响其他关系例子分析v设S-C-M(学号,班级,班主任)F=学号班级,班级班主任,学号班主任存在传递依赖,为2NF有三种分解:该关系属于几范式?范式?3NF三种特性?例子v教材P188,例4算法6.2:检验一个分解是否具有无损连接性*ABCDEa1a2a3b14b15b21b22a3a4b25b31b32b33a4a5ABCDEa1a2a3a4a5b21b22a3a4a5b31b32b33a4a5初始表:最后结果:R1R2R3R1R2R3122例子:判断无损连接性*ABCDEa1a2a3a3a4a4a5ABCDEa1a2a3a4a5a3a4a5a4a5初始表:最后结果:R1R2R3R1R2R3122简易方法:只画关注数据例子vR(A,B,C),F=AB,C Bu分解1=(A,B)AB,(A,C)u分解2=(A,B)AB,(B,C)CBv分析两种分解的无损连接性?u分解1只具有无损连接性,分解2不具有无损连接性ABCa1a2a1a3ABACa2ABCa1a2a2a3ABBC定理6.5:检验一个关系模式分解为两个子模式时是否具有无损连接性*v对于R的一个分解R1,R2,如果U1U2U1-U2F+或U1U2U2-U1F+,则此分解具有无损连接性。例子vR(A,B,C),F=AB,C Bu分解1=(A,B)AB,(A,C)u分解2=(A,B)AB),(B,C)C Bv分析两种分解的是否保持无损连接性?u分解1:(A,B)(A,C)(A,B)-(A,C)F+,有AB,显然,分解1具有保持无损连接性u分解2:(A,B)(B,C)(A,B)-(B,C)F+,(A,B)(B,C)(B,C)-(A,B)F+,显然,分解2不具有保持无损连接性算法:检验一个分解是否具有保持函数依赖性例子vR(A,B,C),F=AB,C Bu分解1=(A,B)AB,(A,C)u分解2=(A,B)AB),(B,C)C Bv分析两种分解的依赖保持性?u分解1:只有AB,显然,分解1不具有依赖保持性u分解2:保留了所有函数依赖,具有依赖保持性简单练习:判定无损连接性和函数依赖性v设S-C-M(S学号,C班级,M班主任)F=S学号C班级,C班级M班主任,S学号M班主任 几个命题v一个无损连接的分解不一定不一定具有依赖保持性,反之亦然v若要求模式分解保持函数依赖,则模式分离总能达到3NF,但不一定不一定能达到BCNFv若要求分解既保持函数依赖,又具有无损连接性,则模式分离可以达到3NF,但不一定不一定能达到BCNFv若要求分解具有无损连接性,则模式分离一定一定可以达到4NF算法6.3:求R的保持函数依赖的3NF分解*算法6.4:求R的无损连接且保持函数依赖的3NF分解*由于IS是ISQ的子集,所以R分解为SD,IB,ISQ,BO算法6.5:(分解法)转换为BCNF的无损连接分解*例:R(U,F),U=X,Y,Z,F=YZ,XZY,在保持无损连接的情况下分解为BCNF。解答:R的侯选码为XY和XZ;R为3NF。由于存在着YZ,而Y不是码,根据算法6.5将R分解为R1(Y,Z),(YZ)R2(X,Y)(全码)作业v第四版,P195 习题1,2,5,12v思考:10,11,自由选做