从给定的关系中查找候选键

mic*_*ckm 9 functional-dependencies candidate-key

我一直在研究这个问题,似乎无法找到答案.

R = (A, B, C, D, E)
Run Code Online (Sandbox Code Playgroud)

功能依赖是:

A => B
ED => A
BC => E
Run Code Online (Sandbox Code Playgroud)

然后它将候选键列为:

ACD, BCD, CDE
Run Code Online (Sandbox Code Playgroud)

这些候选密钥是如何从上述FD中获得的?

同样,在哪里R = (A, B, C, D):

功能依赖是:

D => B 
AB => D 
AB => C 
C=> A
Run Code Online (Sandbox Code Playgroud)

然后它将候选键列为:

AB, BC, CD, AD
Run Code Online (Sandbox Code Playgroud)

同样,我的问题是我不确定候选密钥是如何从FD中派生出来的?

提前感谢你.

Pet*_*ter 6

本文描述了如何从给定关系派生候选键.
http://en.wikipedia.org/wiki/Candidate_key.
另请参阅:功能依赖性
功能依赖项中的候选键.
这也是一个很好的,我认为:
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