如果我具有功能依赖性:F = {ABH-> CK,A-> D,C-> E, BGH-> L,L-> AD,E-> L,BH-> E}
任何人都可以解释为什么ABH-> CK中的A是多余的,AB,BH和AH的闭包是什么?
谢谢!
答案 0 :(得分:1)
自BH -> E -> L -> AD
以来,我们可以通过两次应用阿姆斯特朗的传递规则来说BH -> A
,然后进行分解。从那里,如果我们包含琐碎的FD BH -> BH
,我们就会看到BH -> ABH
。再次使用传递性,BH -> ABH -> CK
可以缩减为BH -> CK
,即A
不需要CK
来确定BH
。
可以通过再次使用Armstrong的规则来计算关于给定行列式的一组FD的关闭,以直接或间接地从所选择的行列式组合所有功能依赖性。例如,对于BH -> BH (trivial)
BH -> BEH (union with BH -> E)
BH -> BEHL (union with BH -> L which follows from BH -> E -> L)
BH -> ABDEHL (union with BH -> AD which follows from BH -> L -> AD)
BH -> ABCDEHKL (union with BH -> CK since BH -> ABH -> CK)
:
BH* = ABCDEHKL
所以G
。请注意,BH
未派生,因此Dockerfile
不是候选键。