|
知识路径: > 数据库技术 > 关系数据库 > 关系数据库理论 > 模式分解 > 模式分解及分解后的特性 >
|
相关知识点:7个
|
|
|
|
|
关系模式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:建立一张n列k行的表,每一列对应一个属性,每一行对应分解中的一个关系模式。若属性Aj∈Ui,则在j列i行上填上aj,否则填上bij;
|
|
|
步骤2:对于每一个FDi做如下操作:找到Xi所对应的列中具有相同符号的那些行。考察这些行中li列的元素,若其中有aij,则全部改为aij,否则全部改为bmli,m是这些行的行号最小值。该步骤执行时注意如下几点:
|
|
|
.如果在某次更改后,有一行成为“a1,a2,…,an”则算法终止,且分解ρ具有无损连接性,否则不具有无损连接性。
|
|
|
.对F中p个FD逐一进行一次这样的处理,称为对F的一次扫描。
|
|
|
步骤3:比较扫描前后的表有无变化,若有变化,则返回步骤2;否则算法终止。
|
|
|
如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此,循环必然终止。
|
|
|