在关系模式中,如何求所有候选码?

本文介绍了如何根据函数依赖集F确定关系模式中的L、R和LR部分,通过闭包分析来判断候选码。举例说明了候选码的查找过程,以及何时可能存在多个候选码和唯一候选码的情况。
摘要由CSDN通过智能技术生成

求所有候选码(键):

  1. 根据函数依赖集F,找出L(只在左部传递)、R(只在右部传递)、LR(既出现在左边也出现在右边)
  2. 找出候选码,候选码一般出现在L处,不可能出现在R处
  3. 判断在L中找出的候选码是否是唯一候选码:
  •  若L中找出的候选码的闭包等于全集U,则为唯一候选码,算法终止
  •  若L中找出的候选码的闭包只能推出本身,或不等于全集U,则将LR中的每一个元素与闭包相结合,如果结合能推出全集U,则为候选码。

上例题:

1)关系模式R(ABCDEP),F={A-> B,C->P,E->A,CE->D}.

· 找出L、R、LR,这里的A在左部,能推导出B,同时A也能被E推导出来处于右部,则A为LR的部分;C和E只在左部传递,不在右部,则为L的部分;BPD同理

L:C E

R:B P D

LR:A

(CE)+=ABCDEP,所以CE为唯一候选码

2)关系模式R(SDIBOQ),F={S-> D,I->B,B->O,O->Q,Q->I}.

L:   S

R:  D

LR:  I B O Q

(S)+=SD

· SD ≠ U,则将LR中的每个元素与闭包进行组合

  ① (SI))+= SDIBOQ

  ② (SB)+= SDIBOQ

  ③ (SO)+= SDIBOQ

  ④ (SQ)+= SDIBOQ

· (SI))+,(SB)+,(SO)+,(SQ)+都等于全集U,所以有多个候选码:SI,SB,SO,SQ

3)关系模式R(CTSNG), F={C->T,CS->G,S->N}

L:   C S

R:    T G N

LR:  空集

(CD)+=CDTNG,(CD)+等于全集U,所以CD为唯一候选码

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值