模式分解——无损连接分解

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

 

posted @ 2022-03-06 10:21  火星架构师  阅读(1387)  评论(0编辑  收藏  举报