您的位置:首页 > 其它

一个无损连接和保持函数依赖性的3nf分解

2013-02-26 11:14 417 查看
满足下列条件的函数依赖集F称为正则覆盖,记作Fc:
1)Fc 与 F 等价
2)Fc 中任何函数依赖都不含无关属性
3)Fc 中函数依赖的左半部都是唯一的

R={F,G,H,I,J},候选码是JH,F={F->I,J->I,I->G,GH->I,IH->F},求R的无损连接和保持函数依赖性的算法
根据题目,可以知道F=Fc已经是正则覆盖了。于是以每个alpha->beta的依赖作为一个Ri,得到R1(FI),R2(JI),R3(GI),R4(GHI),R5(IHF)K,去掉被R4完全包含的R3。得到R1(FI),R2(JI),R3(GHI),R4(IHF)。然后发现,候选码JH不包含于某个Ri中,所以新建一个R5(JH)。最终得到R1(FI),R2(JI),R3(GHI),R4(IHF),R5(JH)

有关系模式R(A,B,C,D),R上的函数依赖集F={A->C, C->A, B->AC, D->AC}
1.求F的最小等价依赖集Fm
2.求R的关键字
3.R属于第几NF
4.将R分解成3NF,并保持无损连接性和函数依赖保持性。


1、将 F 中依赖右部属性单一化:
F 1 : A->C C->A  B->A  B->C  D->A D->C
在 F 1 中去掉多余的函数依赖:
因为 B->A , A->C 所以 B->C 是多余的
又因为 D->A , A->C 所以 D->C 是多余的
F 2 : A->C C->A B->A D->A
函数依赖集的最小集不是唯一的,本题答案不唯一。
因为 F 2 中所有依赖的左部都是单属性,所以不存在依赖左部多余的属性。
所以 Fm : A->C C->A B->A D->A
2、 因为 DB 在 F 中的函数依赖的右部中均未出现,所以候选关键字一定包含 BD ,而( BD ) + =ABCD 因此 BD 是 R 惟一的候选关键字。
3、因为存在部分函数依赖,所以是1NF
4、消除部分及传递依赖后,即达到3NF要求。
考虑 A->C ,所以将 ABCD 分解为 AC 和 ABD 。 AC 已是 3NF ,进一步分解 ABD 选择 B->A ,把 ABD 分解为 AD、AB 和 BD ,此时 AD、AB 和 BD 均为 3NF ,所以 ρ ={AC , BA , DA , BD}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息