练习:已知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(本例题没有体现)