假设我有关系模式R(A,B,C,D,E)
和一个功能依赖A->BCDE
。由于A
的关闭是ABCDE
(即每个属性),它是一个超级密钥;因为它是不包含任何其他键的最小键,所以它也是候选键。
如果我们再添加FD B->A
怎么办?这是否意味着B
是候选键,还是意味着A
不再是候选键?
我的导师正在研究一个例子,并说从一组FD中确定候选键的方法是找到任何FD上没有出现的任何属性(即任何(一组)属性(s) )任何其他属性都没有暗示)。这一定是真的吗?如果一个属性暗示了所有其他属性,但它本身就是其他一些因素所暗示的,它是否可以成为候选键?
答案 0 :(得分:1)
如果A-> BCDE和B-> A,则A-> B-> A.因此A和B都是R的候选键。
假设你有一个关系R和一组依赖关系F.如果你必须只从F中的内容推断出R的关键字那么R的任何属性都不会出现在F中任何依赖关系的RHS上 prime 属性(即候选键的一部分)。我希望这就是你老师的意思。这并不意味着主要属性可能从未出现在RHS上。如果有多个候选键,他们可能会这样做。
答案 1 :(得分:1)
候选键是否可以被其他属性暗示?
依赖关系隐含候选键。这可能就是你的意思。
我的导师正在研究一个例子,并说从一组FD中确定候选键的方法是找到任何FD上没有出现的任何属性(即任何(一组)属性(s) )任何其他属性都没有暗示)。
这不会确定候选键。它确定必须成为每个候选键的一部分的列。