R = (A, B, C, D, E)
函数依赖是:A -> B
ED -> A
BC -> E
然后它将候选键列为:ACD, BCD, CDE
这些候选 key 是如何从上述 FD 派生出来的?相似地,
R = (A, B, C, D)
函数依赖是:D -> B
AB -> D
AB -> C
C -> A
然后它将候选键列为:AB, BC, CD, AD
同样,我在这里的问题是我不确定候选 key 是如何从 FD 派生出来的。
最佳答案
本文介绍了如何从给定关系派生候选键。
http://en.wikipedia.org/wiki/Candidate_key .
也看看:candidate keys from functional dependencies功能依赖。
这也是一个很好的,我认为:
http://www.cs.newpaltz.edu/~pletcha/BuildingCandidateKeys.html .
所以它基本上是:
A => B(第一种情况):
ED => A
BC => E
因为 C 和 D 不依赖于任何 fd,显然 CD 是每个候选键的一部分。
ACD、BCD、CDE
第二:
D => B
AB => D
AB => C
C=> A
所有单曲都依赖于 fd 之一,因此它们都不包含在所有候选键中。
A 不依赖于 D 也不依赖于 B,既不显式也不隐式。 SO AD 和 AB 是一个候选键。 B 不依赖于 C 和 A,因此 AB 和 BC。 C 不依赖于 D,因此是 CD。
AB、BC、CD、AD
这个也很有用:
http://csc.lsu.edu/~jianhua/fd_slide2_09.pdf
关于functional-dependencies - 寻找给定关系的候选键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224354/