数据库原理之候选码的判断方法

1.如果有属性只在函数依赖集的左边出现,则该属性一定包含在候选码中(继续求它的闭包,如果他的闭包是属性全集,则为候选码,如果不是,则需要结合其他属性求闭包,继而判断是否是候选码)

2.只在函数依赖集右边出现的属性,一定不属于候选码

3.对于左右都出现过的属性:
(1)先结合只在左边出现的属性求闭包,看看是否包括所有属性,如果他的闭包是属性全集,则为候选码;
(2)如果没有包括所有属性,就结合其他左右都出现的求闭包,看看是否包括所有属性,如果他的闭包是属性全集,则为候选码

4.如果有属性不在函数依赖集中出现(外部属性),那么一定包含在候选码中(继续求它的闭包,如果他的闭包是属性全集,则为候选码,如果不是,则需要结合其他属性求闭包,继而判断是否是候选码)

另外
如果有属性或者属性组能唯一标识元组,则他就是候选码(定义)
在这里插入图片描述比如说这道题,求候选码过程如下
1.没有外部属性
2.只出现在了左边的属性有 B E
3.只出现在了右边的属性有 (没有)
4.左右都出现的属性有 A、C、D
5.B值出现在了左边,B肯定包含在候选码中,求一下B的闭包,为BCD,不是属性全集,所以B不是候选码,需要和其他左右都出现的属性结合
6.B分别和A、C、D、E结合,BA BC BD的闭包均不含所有属性,只有BE的闭包包含所有属性,因此BE为候选码
在这里插入图片描述
接下来判断所属范式,第二范式的要求是不存在非主属性对候选码的部分函数依赖
但是在这道题中,Fm中有B->C,这是非主属性对候选码的部分函数依赖,因此不能达到第二范式,因此也不能达到第三范式的要求。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值