functional-dependencies - 寻找给定关系的候选键

标签 functional-dependencies candidate-key

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/

相关文章:

Haskell 函数依赖 a b -> c 取决于 c?

sql - DBMS 中的扩充规则示例

sql - 行列式和候选键是否相同?

mysql - 查找候选键/ super 键

database - 候选人和 super key

database - 部分依赖(数据库)

haskell - 功能依赖与类型族

haskell - 如何使用通过实例约束的函数依赖关系确定的类型参数作为关联类型族方程的 RHS?

relational-database - 具有功能依赖性的候选键识别

database - RDBMS 键混淆