有关系R和函数依赖F: R(A,B,C,D,E),F = { ABC→DE,BC→D,D→E }。

有关系R和函数依赖F:
R(A,B,C,D,E),F = { ABC→DE,BC→D,D→E }。
试求下列问题:
(1)关系R的候选码是什么?R属于第几范式?并说明理由。(3分)
(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。(5分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。

函数依赖图

(1)

    1.首先来看一下这个函数依赖图是不是只有当组合键为ABC时才能遍历完整个关系模式,所以候选码为ABC

    2.根据上图所示BC→D属于部分函数依赖,未到达第2NF但已经满足了原子性所以为1NF

(2)

   变为2NF:R1 = (A,B,C) R2 =(B,C,D,E),F{BC→D,D→E} R2的候选码为BC 这样一来就消除了非主属性对码的部分函数依赖

    变为3NF:变为2NF后R2存在非主属性对码的传递函数依赖(BC只能通过D来确定E),继续拆分R2 = (B,C,D),F{BC→D}优选码BC,R3=(D,E),F={D→E}候选码D。此时原来的R2已经不存在传递函数依赖了。

    变为BCNF:R1中都是候选码所以不存在依赖关系,看R2、R3。R2中BC→D与R3中D→E的决定因素均为候选码,且候选码中不存在主属性对码的部分与传递函数依赖为BCNF。

纯属个人理解,如有错误请指正,切勿口吐莲花!!! 如有了解javaSE与javaEE的入门课程的小伙伴们可以联系我!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-26
(1)关系R候选码为(A,B,C)
由于存在非主属性D对主属性BC的部分函数依赖,因此R属于第一范式
(2)首先消除非主属性对主属性的部分函数依赖
R可分解为:
R1(A,B,C) R1中不存在非平凡的函数依赖

R2(B,C,D,E) 候选码为(B,C) F={BC->D,D->E}

继续消除非主属性E对主属性的传递依赖

R21(B,C,D) R21中不存在非平凡的函数依赖 F={BC->D}

R22(D,E) R22中不存在非平凡的函数依赖 F={D->E}

且R21,R22中决定因素均为候选码,因此关系模式达到BCNF
第2个回答  2017-01-15
您好,看到您的问题很久没有人来回答,但是问题过期无人回答会被扣分的并且你的悬赏分也会被没收!所以我给你提几条建议,希望对你有所帮助:
一,
你可以选择在正确的分类和问题回答的高峰时段(中午11:00-3:00 晚上17:00-24:00)去提问,这样知道你问题答案的人才会多一些,回答的人也会多些。

二,你可以请教老师,问问同学,共同学习互相进步

三,您可以到与您问题相关专业网站论坛里去看看,那里聚集了许多专业人才,一定可以为你解决问题的。

四,网上很多专业论坛以及知识平台,(如作业帮)上面也有很多资料,我遇到专业性的问题总是上论坛求解决办法的。

五,将你的问题问的细一些,清楚一些!让人更加容易看懂明白是什么意思!

~\(^o^)/~祝学习进步~~~
希望对你有帮助,你的采纳就是我们回答的动力!帅气又萌萌哒你不要忘了采纳哦!!
第3个回答  2017-12-30
候选码是abc
属于1nf
R1(a,b,c)
R2(b,c,d)
R3(d,e)
相似回答