模式分解——无损连接分解
练习1:已知R<U,F>,U={A, B, C, D, E},F={AB->C, C->D, D->E},R的一个分解为R1(A, B, C),R2(C, D),R3(D, E),判断是否为无损分解
1. 构造表(根据分解的R进行构造,和F无关)
A | B | C | D | E | |
ABC | |||||
CD | |||||
DE |
2. 初始化,根据表中行号中的元素,填上对应的ai
A | B | C | D | E | |
ABC | a1 | a2 | a3 | ||
CD | a3 | a4 | |||
DE | a4 | a5 |
对空白部分补上bij
A | B | C | D | E | |
ABC | a1 | a2 | a3 | b14 | b15 |
CD | b21 | b22 | a3 | a4 | b25 |
DE | b31 | b32 | b33 | a4 | a5 |
3. 由AB->C,找AB列(注意不是A、B列),发现每一行(元组)中AB组合没有相同的,跳过
由C->D,找C列,发现1、2行相同,因此将D列的1、2行改为a4
A | B | C | D | E | |
ABC | a1 | a2 | a3 | a4 | b15 |
CD | b21 | b22 | a3 | a4 | b25 |
DE | b31 | b32 | b33 | a4 | a5 |
由D->E,找到D列,发现1、2、3行全部相同,因此将E列的1、2、3行都改为a5
A | B | C | D | E | |
ABC | a1 | a2 | a3 | a4 | a5 |
CD | b21 | b22 | a3 | a4 | a5 |
DE | b31 | b32 | b33 | a4 | a5 |
4. 全部处理完了,发现第一行出现a1、a2、a3、a4、a5,因此本次分解为无损连接分解
2022.3.21更新
如果对于X->Y,对于相同的X,所有的Y都不相同,则取行号最小的Y覆盖所有的Y(本例题没有体现)