其他功能依赖关系隐含的功能依赖关系

时间:2017-11-08 19:07:17

标签: database functional-dependencies

考虑以下属性和功能依赖性

属性:A,B,C,D,E,F,H

功能依赖:

A→D

AE→H

DF→B,C

E→C

H→E

上述依赖项暗含了以下哪些依赖项?

A)A→DH

B)AED→C

C)DH→C

D)ADF→E

这个问题的答案是B.任何人都可以帮我解释它是如何到达B的,我已经看过传递依赖,但非意味着

1 个答案:

答案 0 :(得分:2)

回答这类问题的一种方法是为每个函数依赖关系计算关于给定函数依赖关系的行列式的闭包,并查看确定性是否属于这样的闭包。

例如,我们可以计算A,A +的闭包,看看A→DH是否隐含:

A+ = A
A+ = AD (because of A → D)
stop, no other attribute can be added to the closure.

因此,由于DH不包含在A +中,我们可以得出结论,不暗示A→DH。

让我们对AED→C使用相同的方法:

AED+ = AED
AED+ = AEDH (for AE → H)
AED+ = ACDEH (for A → C)

不能使用其他依赖项,因此最终的闭包是:ACDEH,它包含C,因此隐含了AED→C。

如果您应用此方法,您可能会发现给定的功能依赖性也隐含了DH→C。