練習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(本例題沒有體現)