判别一个分解的无损连接性算法
考试要求: 掌握     
知识路径:  > 数据库技术  > 关系数据库  > 关系数据库理论  > 模式分解  > 模式分解及分解后的特性


 
       【算法7.1】判别一个分解是否无损连接算法。
       关系模式R(U,F)的一个分解ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)},U={A1,A2,…,An},F={FD1,FD2,…,FDp},并设F是一个最小依赖集,记FDi为Xi→Aij。判断ρ是否无损连接的步骤如下:
       步骤1:建立一张nk行的表,每一列对应一个属性,每一行对应分解中的一个关系模式。若属性AjUi,则在ji行上填上aj,否则填上bij
       步骤2:对于每一个FDi做如下操作:找到Xi所对应的列中具有相同符号的那些行。考察这些行中li列的元素,若其中有aij,则全部改为aij,否则全部改为bmlim是这些行的行号最小值。该步骤执行时注意如下几点:
       .如果在某次更改后,有一行成为“a1a2,…,an”则算法终止,且分解ρ具有无损连接性,否则不具有无损连接性。
       .对F中p个FD逐一进行一次这样的处理,称为对F的一次扫描。
       步骤3:比较扫描前后的表有无变化,若有变化,则返回步骤2;否则算法终止。
       如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此,循环必然终止。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有