功能依赖关系和候选关键字

时间:2016-12-23 08:13:18

标签: database key functional-dependencies candidate-key

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

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

但如果我有一张桌子。

B A C

1 3 2

1 3 2

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

我很困惑。

1 个答案:

答案 0 :(得分:1)

混淆的原因来自于您的示例不是集合,而是多集(即具有重复值的集合),而归一化理论只能应用于集合。

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