功能依赖和候选键
Functional Dependencies and Candidate key
假设我们在关系 R(A,B,C) 上定义了函数依赖 B->A,A->C。
这里 B->AC(来自给定的函数依赖),那么 B 是候选键吗?
我在教科书上读到,如果一个特定的属性能够唯一标识一个关系中的所有属性,那么它就有资格成为候选键。所以根据那个 B 应该是一个候选键。
但是如果我有 table.
B A C
1 3 2
1 3 2
在这个 table B->AC 中,所以 B 应该是候选键,但维基百科 (https://en.wikipedia.org/wiki/Candidate_key) 说它应该是唯一的。那么 B 是这个 table 中的候选键吗?
我很困惑。
混淆的原因来自于你的例子不是一个集合,而是一个多重集(即具有重复值的集合),而归一化理论只能应用于集合。
因此,即使在多重集中可能具有函数依赖性(以及函数依赖性的含义),也没有候选键的概念,它只对适当的集合有意义,因为它是一个属性或集合唯一标识集合中所有元素的属性。
假设我们在关系 R(A,B,C) 上定义了函数依赖 B->A,A->C。 这里 B->AC(来自给定的函数依赖),那么 B 是候选键吗?
我在教科书上读到,如果一个特定的属性能够唯一标识一个关系中的所有属性,那么它就有资格成为候选键。所以根据那个 B 应该是一个候选键。
但是如果我有 table.
B A C
1 3 2
1 3 2
在这个 table B->AC 中,所以 B 应该是候选键,但维基百科 (https://en.wikipedia.org/wiki/Candidate_key) 说它应该是唯一的。那么 B 是这个 table 中的候选键吗?
我很困惑。
混淆的原因来自于你的例子不是一个集合,而是一个多重集(即具有重复值的集合),而归一化理论只能应用于集合。
因此,即使在多重集中可能具有函数依赖性(以及函数依赖性的含义),也没有候选键的概念,它只对适当的集合有意义,因为它是一个属性或集合唯一标识集合中所有元素的属性。