方法一:无损连接定理(针对只有两个的分解)
关系模式R(U,F)的一个分解,ρ={R1<U1, F1>, R2<U2, F2>}具有无损连接的充分必要条件是:
U1∩U2→U1-U2 ∈F+ 或U1∩U2→U2 -U1∈F+
方法二:表格法(针对两个以上分解)
ρ={R1<U1,F1>,R2<U2,F2>,…,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U={A1,A2,…,An},F={FD1,FD2,…,FDp},并设F是一个最小依赖集,记FDi为Xi→Alj,其步骤如下:
① 建立一张n列k行的表,每一列对应一个属性,每一行对应分解中的一个关系模式。若属性Aj ∈Ui,则在j列i行填上aj,否则填上bij;
② 对于每一个FDi做如下操作:找到Xi所对应的列中具有相同符号的那些行。考察这些行中li列的元素,若其中有aj,则全部改为aj,否则全部改为bmli,m是这些行的行号最小值。
如果在某次更改后,有一行成为:a1,a2,…,an,则算法终止。且分解ρ具有无损连接性,否则不具有无损连接性。
对F中p个FD逐一进行一次这样的处理,称为对F的一次扫描。
③ 比较扫描前后,表有无变化,如有变化,则返回第② 步,否则算法终止。如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此,循环必然终止。
举例:
设关系模式R(U, F),其中:U={A, B, C, D, E}, F={A→B, DE→B, CB→E, E→A, B→D}。分解()是无损连接:
A. ρ={AC, ED, AB}
B. ρ={ABC, ED, ACE}
针对A选项,分析步骤如下:
- 画出二维表
|
A |
B |
C |
D |
E |
AC |
A1 |
|
A3 |
|
|
ED |
|
|
|
A4 |
A5 |
AB |
A1 |
A2 |
|
|
|
- 根据关系 A→B:
|
A |
B |
C |
D |
E |
AC |
A1 |
A2 |
A3 |
|
|
ED |
|
|
|
A4 |
A5 |
AB |
A1 |
A2 |
|
|
|
- 根据关系 DE→B:
|
A |
B |
C |
D |
E |
AC |
A1 |
|
A3 |
|
|
ED |
|
A2 |
|
A4 |
A5 |
AB |
A1 |
A2 |
|
|
|
- 根据关系 CB→E:
|
A |
B |
C |
D |
E |
AC |
A1 |
|
A3 |
|
|
ED |
|
A2 |
|
A4 |
A5 |
AB |
A1 |
A2 |
|
|
|
- 根据关系 E→A:
|
A |
B |
C |
D |
E |
AC |
A1 |
|
A3 |
|
|
ED |
A1 |
A2 |
|
A4 |
A5 |
AB |
A1 |
A2 |
|
|
|
- 根据关系 B→D:
|
A |
B |
C |
D |
E |
AC |
A1 |
|
A3 |
|
|
ED |
A1 |
A2 |
|
A4 |
A5 |
AB |
A1 |
A2 |
|
A4 |
|
最终结果是没有一行全部覆盖Ai(A1到A5),则不具有无损连接性。
针对B选项,分析步骤如下:
- 画出二维表
|
A |
B |
C |
D |
E |
ABC |
A1 |
A2 |
A3 |
|
|
ED |
|
|
|
A4 |
A5 |
ACE |
A1 |
|
A3 |
|
A5 |
- 根据关系 A→B:
|
A |
B |
C |
D |
E |
ABC |
A1 |
A2 |
A3 |
|
|
ED |
|
|
|
A4 |
A5 |
ACE |
A1 |
A2 |
A3 |
|
A5 |
- 根据关系 DE→B:
|
A |
B |
C |
D |
E |
ABC |
A1 |
A2 |
A3 |
|
|
ED |
|
A2 |
|
A4 |
A5 |
ACE |
A1 |
A2 |
A3 |
|
A5 |
- 根据关系 CB→E:
|
A |
B |
C |
D |
E |
ABC |
A1 |
A2 |
A3 |
|
A2 |
ED |
|
A2 |
|
A4 |
A5 |
ACE |
A1 |
A2 |
A3 |
|
A5 |
- 根据关系 E→A:
|
A |
B |
C |
D |
E |
ABC |
A1 |
A2 |
A3 |
|
A2 |
ED |
A1 |
A2 |
|
A4 |
A5 |
ACE |
A1 |
A2 |
A3 |
|
A5 |
- 根据关系 B→D:
|
A |
B |
C |
D |
E |
ABC |
A1 |
A2 |
A3 |
A4 |
A2 |
ED |
A1 |
A2 |
|
A4 |
A5 |
ACE |
A1 |
A2 |
A3 |
A4 |
A5 |
可看出第一行和第三行全部覆盖Ai(A1到A5),只要有一行能全覆盖,则具有无损连接性。