数据库,模式的分解,无损连接性,教案.ppt
《数据库,模式的分解,无损连接性,教案.ppt》由会员分享,可在线阅读,更多相关《数据库,模式的分解,无损连接性,教案.ppt(40页珍藏版)》请在三一办公上搜索。
1、3.9(关系)模式的分解,分解的定义:关系模式R的一个分解是指 R1,R2,Rn 其中UU1U2Un,并且不存在Ui Uj,1i,jn,Fi是F在Ui上的投影。函数依赖集合XY|XY FXYUi的一个覆盖(等价)Fi叫做F在属性Ui上的投影。,3.9 模式的分解,3.9.1 关系模式分解的标准把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义“等价”概念的三种定义:(1)分解具有无损连接性。(2)分解要保持函数依赖性。(3)分解既要保持函数依赖,又要具有无损连接性。,3.9.2 无损分解,无损分解定义:关系模式R的一个
2、分解=R1,R2,Rn,对于R的任一关系r,都有r为其在各Ui(1=1,n)上的投影的(自然)连接,即r=U1(r)U2(r)Un(r),则称关系模式R的这个分解具有无损连接性(Lossless join)。具有无损连接性的分解保证不丢失信息。无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题。,3.9.2 无损分解(续),例:S-L(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSloc S-L2NF,分解方法可以有多种:1.S-L分解为三个关系模式:SN(Sno),SD(Sdept),SL(Sloc)2.SL分解为下面二个关系模式:NL(Sn
3、o,Sloc),DL(Sdept,Sloc)3.将SL分解为下面二个关系模式:ND(Sno,Sdept),NL(Sno,Sloc),3.9.2 无损分解(续),第3种分解方法具有无损连接性。问题:(1)没有保持原关系中的函数依赖,即S-L中的函数依赖SdeptSloc没有投影到关系模式ND、NL上。(2)存在冗余和操作异常。,3.9.2 无损分解(续),4.将SL分解为下面二个关系模式:ND(Sno,Sdept),DL(Sdept,Sloc)该分解保持了函数依赖(且具有无损连接性)。,3.9.3 保持函数依赖的模式分解,定义:设关系模式R被分解为若干个关系模式 R1,R2,Rn 其中U=U1U
4、2Un,且不存在Ui Uj,Fi为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的(Preserve dependency)。,3.9.3 保持函数依赖的模式分解(续),例如,将SL(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSloc 分解为下面二个关系模式(第四种分解):ND(Sno,Sdept),DL(Sdept,Sloc)该分解保持了函数依赖(具有无损连接性)。,3.9.3 保持函数依赖的模式分解(续),如果一个分解具有无损连接性,则它能够保证不丢失信息。如果
5、一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。,3.9.3 保持函数依赖的模式分解(续),对于关系模式S-L:第1种分解方法既不具有无损连接性,也未保持函数依赖。第2种分解方法未保持函数依赖,也不具有无损连接性。第3种分解方法具有无损连接性,但未保持函数依赖。第4种分解方法既具有无损连接性,又保持了函数依赖。,3.9.4 模式分解算法,算法1 判别一个二元分解的无损连接性 算法2 判别一个分解的无损连接性 算法3(合成法)转换为3NF的
6、保持函数依赖的分解。算法4 转换为3NF既有无损连接性又保持函数依赖的分解。算法5(分解法)转换为BCNF的无损连接分解 算法6 达到4NF的具有无损连接性的分解。,算法1 判别一个二元分解的无损连接性。若F中至少存在如下函数依赖中的一个:(1)(U1U2)U1U2(2)(U1U2)U2U1 则=R1,R2是R的无损分解。反之也 成立。如:模式S-L(Sno,Sdept,Sloc)分解为2个模式:ND(Sno,Sdept),NL(Sno,Sloc)则是无损分解。,3.9.4 模式分解算法,算法2 判别一个分解的无损连接性,设R1,R2,Rk是R的一个分解,UA1,An构造一张k行n列的表格。每
7、列对应一个属性Aj,每行对应一个模式Ri。如果Aj属于Ui,那么在表格的第i行第j列处填上符号aj,否则填上bij。,算法2 判别一个分解的无损连接性,逐一检查F中的每个函数依赖,并修改元素,方法是:取F中一函数依赖XY,找出X所对应的列中具有相同符号的行,考察这些行中Y列的元素,若其中有aj,则全部改为aj,否则全部改bmj,其中m是这些行的行号最小值。若在某次更改后,有一行是a1a2an,那么相对于F是无损分解,算法结束。对F中的每个函数依赖进行一次上述的处置,称对F的一次扫描。,算法2 判别一个分解的无损连接性,比较扫描前后,表有无变化。如有变化,则返回第步处理,否则,算法结束,则相对于
8、F是有损分解。如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此循环必然会终止。,算法2 判别一个分解的无损连接性,例1,设关系模式R(ABCDE),F=ABC,CD,DE,R分解成=R1(ABC),R2(CD),R3(DE)。那么相对于F是否无损分解?,算法2 判别一个分解的无损连接性R1(ABC),R2(CD),R3(DE)F=ABC,CD,DE,初始表:,最后结果:,R1,R2,R3,R1,R2,R3,1,2,2,相对于F是无损分解,算法2 判别一个分解的无损连接性,例2,R(A,B,C),F=AB,CB分解1=R1(A,B),R2(A,C)分解2=R1(A,B),R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 模式 分解 无损 连接 教案

链接地址:https://www.31ppt.com/p-6417882.html