归一化消除了冗余属性



如果我有功能依赖性:f = {abh-> ck,a-> d,c-> e,bgh-> l,l-> ad,e-> l,bh-> e}

任何人都可以解释为什么ABH-> ck中有多余的东西,而AB,BH和AH的关闭是什么?

谢谢!

BH -> E -> L -> AD以来,我们可以说BH -> A通过两次应用Armstrong的传递性规则,然后进行分解。从那里开始,如果我们包括琐碎的FD BH -> BH,然后我们就会看到该BH -> ABH。再次使用透射率,可以将BH -> ABH -> CK简化为BH -> CK,即A不需要确定CK

可以通过再次使用Armstrong的规则直接或间接地从所选的确定符中结合所有功能依赖性来计算一组FD相对于给定的决定因素的关闭。例如,对于BH

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)

SO BH* = ABCDEHKL。请注意,G不是派生的,因此BH不是候选密钥。

最新更新