首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找到所有由3个属性组成的候选键(如果有的话)?样本期中

找到所有由3个属性组成的候选键(如果有的话)?样本期中
EN

Stack Overflow用户
提问于 2016-04-20 01:15:25
回答 1查看 30关注 0票数 0

这是我的数据库课程期中考试样本中的一个问题。期中期中没有给出解决方案,我只想问一下我的解决方案在任何意义上是否正确。

代码语言:javascript
运行
复制
Consider the following relation T=(N,A,I,V,L,P,C,D)

with the FD={N->AI , AV->LP, VC->PD, VL->P, LA->D, NP->IVL, CID-> LVP, AD->IP}
Find all candidate keys that consist of 3 attributes if any? 

我试图解决这个问题,这就是我得到的结果:

代码语言:javascript
运行
复制
Left Attributes = N,C
Middle Attributes = A,I,V,L,P,D
Right Attributes = None

然后,我用NC生成了3个属性对,并找到了它们的闭包:

代码语言:javascript
运行
复制
NC+ = {NCAI} NO
NCA+ = {NCA} NO
NCI+ = {NCI} NO
NCV+ = {NCVPDAIL} = Get PD from VC->PD AND AI from N->AI and L from NP->IVL? Is this correct? If IV is already in there can I use this dependency to get L?
NCL+ ={NCLAIDVP} = Get AI from N->AI & D from LA->A and VP from CID->LVP using same logic from above?
NCP+ = {NCPAIVLD} straight forward using same logic from above
NCD+ = {NCDAILVD} YES

所以我得到了4个候选键,其中包含3个属性。NCV,NCL,NCP,NCD。

那么,我是确定了它,还是应该只有一个候选密钥,应该是NCD?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-20 05:09:43

你给出了正确的答案。该关系只有四个候选键,NCV、NCL、NCP、NCD,它们都具有三个属性。

N和C必须始终存在于每个键中,因为它们只出现在左侧。尝试向它们添加其他属性并计算闭包是检查哪些是键所需的。请注意,NCA+和NCI+等于NC+并生成NCAI。您也应该尝试组合NCAI+,但是结果是相同的。因此,在最后,添加到NC的四个属性V和D中的每一个都生成一个键,您的答案是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36732172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档