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

满足下列条件的函数依赖集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}
分享至
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别: IT学习┆阅读( 0)┆评论( 0) ┆ 返回博主首页┆ 返回博客首页
上一篇 解决 MyEclipse加载sqlexplore时出现假死 下一篇 贪心算法

你可能感兴趣的:(无损连接,函数依赖性)