Database 候选密钥是否可以由其他属性暗示?

Database 候选密钥是否可以由其他属性暗示?,database,relational-database,functional-dependencies,Database,Relational Database,Functional Dependencies,假设我有关系模式R(A,B,C,D,E)和一个函数依赖关系A->BCDE。由于A的闭包是ABCDE(即每个属性),因此它是一个超级键;因为它是不包含任何其他密钥的最小密钥,所以它也是候选密钥 如果我们随后添加FDB->A,这是否意味着B是候选密钥,还是意味着A不再是候选密钥 我的导师正在研究一个示例,他说从一组FD中确定候选关键点的一种方法是找到任何FD的RHS上没有出现的属性(即任何其他属性没有暗示的任何(一组)属性)。这一定是真的吗?如果一个属性暗示了所有其他属性,但它本身却被其他一组属性所

假设我有关系模式
R(A,B,C,D,E)
和一个函数依赖关系
A->BCDE
。由于
A
的闭包是
ABCDE
(即每个属性),因此它是一个超级键;因为它是不包含任何其他密钥的最小密钥,所以它也是候选密钥

如果我们随后添加FD
B->A
,这是否意味着
B
是候选密钥,还是意味着
A
不再是候选密钥


我的导师正在研究一个示例,他说从一组FD中确定候选关键点的一种方法是找到任何FD的RHS上没有出现的属性(即任何其他属性没有暗示的任何(一组)属性)。这一定是真的吗?如果一个属性暗示了所有其他属性,但它本身却被其他一组属性所暗示,那么它能成为候选键吗?

如果a->BCDE和B->a,那么a->B->a。因此a和B都是R的候选键

假设您有一个关系R和一组依赖项F。如果必须仅从F中的内容推断R的键,则在F中任何依赖项的RHS上未出现的R的任何属性必须是基本属性(即候选键的一部分)。我想这就是你老师的意思。这并不意味着基本属性可能永远不会出现在RHS上。如果有多个候选密钥,它们可能会这样做

候选密钥是否可以由其他属性暗示

候选密钥由依赖项暗示。这可能就是你的意思

我的导师正在研究一个示例,他说从一组FD中确定候选关键点的一种方法是找到任何FD的RHS上没有出现的属性(即任何其他属性没有暗示的任何(一组)属性)


这并不能确定候选密钥。它确定每个候选键必须包含的列。

我的意思是,例如,如果AB是一个候选键,而您有C->AB,则其他属性(C)会暗示该候选键。也许我用错了术语。。。无论如何,谢谢你的回答。我真的很感激。是的,我想她一定是指主要属性。谢谢你的回答,这正是我想知道的。