数据库~如何快速、准确选取候选码(候选键)?

1, 定义:若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(候选键)。
2.,条件:若W是候选码,则必须满足两个条件 ①W的闭包为全集U ②W没有冗余(如何求闭包,下一篇博客)
3.,求候选码的步骤:
设有关系模式R,U= {A,B,C,}为R的属性集, F为R上的函数依赖集
- ①只在F右部出现的属性,不属于候选码
- ②只在F左部出现的属性,一定存在于某候选码当中
- ③两边都没有出现的属性,一定存在于候选码中
- ④其他属性逐个与②③的属性结合,求属性闭包 ,直至X的闭包等于U。若等于U,则X为候选码

例题: 关系模式R,U= {ABCDE}, F= {AB–>C, AB–>E, CDE–>AB}, 求候选码
解:
①没有只在F右部出现的属性
②D为只在F左部出现的属性,所以D一定在候选码中
③没有两边都没有出现的属性
④还有属性ABCE待考虑,逐个结合,求闭包
AD的闭包是AD,不等于U
BD的闭包是BD,不等于U
CD的闭包是CD,不等于U
ED的闭包是ED,不等于U (1个与之结合没找到候选码,继续两个与之结合)
ABD的闭包是 ABCDE,等于U √
ACD的闭包是ACD,不等于U
AED的闭包是AED,不等于U
BCD的闭包是BCD,不等于U
BED的闭包是BED,不等于U
CED的闭包是ABCDE,等于U √ (2个的结合找到了候选码,就不需要3个的结合了哦~)
因此,候选码是ABD 和 CED。

  • 44
    点赞
  • 169
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值