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

Galina ·
更新时间:2024-09-21
· 678 次阅读

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

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

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

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

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

安锦华 原创文章 2获赞 2访问量 54 关注 私信 展开阅读全文
作者:安锦华



候选码 方法 数据 数据库原理 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章