如何检查两组功能依赖是否相同?

时间:2018-01-17 16:59:39

标签: database functional-dependencies

FD1 = {A-> DF,A-> B,D-> F,DE-> F},   FD2 = {A-> BD,D-> EF}

来自FD1:A-> DF变为A-> D和A-> F。还不需要A-> F,因为我们可以用A-> D和D-> F到达那里。 因此A-> BD,因为A-> B和A-> D

如何证明FD1中的D-> EF?

1 个答案:

答案 0 :(得分:1)

不难证明函数依赖关系可以从一组依赖关系中得到F.你要做的只是计算关于F的依赖项左边部分的闭包,看看是否正确的部分包含在封闭物中。

例如,如果你想发现D - > FD不暗示EF,你可以根据FD1计算D的闭包,看看是否包含EF:

D+ = D
D+ = DF (because of the dependency D -> F in FD1)

FD1中没有其他依赖性,左侧部分在DF内,右侧部分在其外部,因此D,D +的闭合是DF,其不包含E,因此依赖性D - > EF不能从FD1派生,并且两组依赖关系不相等。