加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

两个例子说明3NF的无损保持依赖分解

发布时间:2020-12-13 22:28:34 所属栏目:百科 来源:网络整理
导读:例1:R={F,G,H,I,J},F={F-I,J-I,I-G,GH-I,IH-F},写出R的3NF的无损保持依赖分解。 答案:R1(FI),R2(JI),R3(GHI),R4(IHF),R5(JH) 解释:根据题目,可以知道F=Fc已经是正则覆盖了,并且可以推导出候选键是JH,于是以每个alpha-beta的依赖作为一个Ri,得到R1(F

例1:R={F,G,H,I,J},F={F->I,J->I,I->G,GH->I,IH->F},写出R的3NF的无损保持依赖分解。

答案:R1(FI),R2(JI),R3(GHI),R4(IHF),R5(JH)

解释:根据题目,可以知道F=Fc已经是正则覆盖了,并且可以推导出候选键是JH,于是以每个alpha->beta的依赖作为一个Ri,得到R1(FI),R3(GI),R4(GHI),R5(IHF)K,去掉被R4完全包含的R3。得到R1(FI),R4(IHF)。然后发现,候选码JH不包含于某个Ri中,所以新建一个R5(JH)。最终得到R1(FI),R5(JH)。


例2:R={S#,C#,TN,D},F={(S#,C#)->G,C#->TN,TN->D},写出R的3NF的无损保持依赖分解。

答案:R1(S#,G),R2(C#,TN),R3(TN,D)

解释:根据题目,可以知道F=Fc已经是正则覆盖了,并且可以推导出候选键是(S#,C#)。于是以每个alpha->beta的依赖作为一个Ri,得到R1(S#,D),显然R1中已经包含了候选键,所以最终得到的分解是R1(S#,D)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读