设关系模式R(ABC),函数依赖F=(A->B,B->A,A->C)满足3NF还是满足BCNF,为什么?
这个问题困扰我很久了,在这个关系模式中候选码有哪些呢?A是候选码,那B是不是候选码呢?希望各位前辈指导指导,最好能扩展一下关于范式之间判断的一些方法,和相关知识。
另外怎么追加悬赏啊....
A 是候选码 ,同时 B也是候选码 ,因为A,B都可以用一个法则推出关系ABC,这个法则相信你应该学过。名字叫什么忘了。
满足3NF 但不是BC范式。 范式之间的具体区分如下:
第一范式: 关系之间的属性必须是原子型。 最基本的数据库模式
第二范式: 消除了非主属性对主属性的部分函数依赖。
第三范式: 消除了非主属性对主属性的传递函数依赖。
BC范式: 消除了主属性对除主属性之外的候选码的函数依赖(包括部分函数依赖和传递依赖)。
还有第四范式:(你没有提到过): 这里是消除了属性之间的多值依赖。
此题中A,B 都是候选码 ,但是候选码之间存在依赖,所以不是BCNF 只是3NF。
准备增加重新发布一次,可能悬赏太低了= =大神们懒得搭理我
2楼说的很详细了。赞
A 是候选码 ,同时 B也是候选码 ,这点2楼说的已经很详细了,不过我可以再提供一下BC范式和3NF的定义
BCNF要求:在F依赖集的闭包F* 中形如a—>b的函数依赖,要么b属于a,要么a是超码
3NF要求:在F依赖集的闭包F* 中形如a—>b的函数依赖,要么b属于a,要么a是超码,要么就是b-a的每个属性A都包含在R的一个候选码中
满足了BCNF就一定满足了3NF,但是满足3NF不一定满足BCNF
不过我认为这道题是BCNF,因为满足BCNF的所有非主属性对每一个码都是完全函数依赖。因为可得A->C,B->C,C完全依赖于A和B
同时所有的主属性对每一个不包含它的码,也是完全依赖,本题中A<— —>B
第三没有任何属性完全依赖于非码的任何一组属性。既C不能推出A也不能推出B,综上我认为是BCNF,如果满意,请采纳。
第三范式:关系模式R
中不存在这样的码
X
,属性组
Y
及非主属性
Z
,使得X->Y,Y->Z成立,
Y
不能推出(这个符号恕我打不出来,
专业术语叫不函数依赖,
为了迎合大家的理解,
所以叫做不能推出)
X
,则R属于3NF。
我的解释:在满足2 NF的基础上,不存在传递函数依赖的关系就是第三范式。
什么叫做传递函数依赖呢?同样举个例子:
关系
R
(过去,现在,未来)
,过去决定现在,现在决定未来,这个就是传递函数依赖,
出现在了这个关系中,
说明该关系不属于第三范式,
只能退缩到第二范式。
https://wenku.baidu.com/view/9468f0fcf705cc17552709b9.html 这个网址对范式的表达生动有趣,希望可以帮到楼主。
2楼牛逼,我在这里也给个例子R(A,B,C) F={AB-->C,BC-->A},这里候选码时AB和BC,但AB和BC之间不存在依赖所以是BCNF