0

假设我们在关系 R(A,B,C) 上定义了函数依赖 B->A, A->C。这里 B->AC(来自给定的功能依赖),那么 B 候选键是什么?

我在教科书中读到,如果特定属性能够唯一标识关系中的所有属性,那么它就有资格成为候选键。所以根据那个 B 应该是一个候选键。

但如果我有一张桌子。

BAC

1 3 2

1 3 2

在此表中 B->AC 所以 B 应该是候选键,但维基百科(https://en.wikipedia.org/wiki/Candidate_key)说它应该是唯一的。那么B是这个表中的候选键吗?

我很困惑。

4

1 回答 1

1

造成混淆的原因在于您的示例不是集合,而是多重集合(即具有重复值的集合),而规范化理论只能应用于集合。

因此,即使在多重集中,一个可能具有函数依赖关系(以及函数依赖关系的含义),也没有候选键的概念,它只对适当的集合有意义,因为它是唯一标识的一个属性或一组属性集合的所有元素。

于 2016-12-23T08:28:44.983 回答