归一化消除冗余属性
normalization eliminate redundant attributes
如果我有功能依赖:F = {ABH->CK, A->D, C->E,
BGH->L, L->AD, E->L, BH->E}
谁能解释一下为什么 A 在 ABH->CK 中是多余的,AB、BH 和 AH 的闭包是什么?
谢谢!
自 BH -> E -> L -> AD
以来,我们可以通过两次应用阿姆斯特朗的传递性规则,然后进行分解来表示 BH -> A
。从那里,如果我们包括普通的 FD BH -> BH
,我们就会看到 BH -> ABH
。再次使用传递性,BH -> ABH -> CK
可以简化为 BH -> CK
,即 A
不需要确定 CK
.
关于给定行列式的一组 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)
所以BH* = ABCDEHKL
。请注意,G
不是派生的,因此 BH
不是候选键。
如果我有功能依赖:F = {ABH->CK, A->D, C->E, BGH->L, L->AD, E->L, BH->E}
谁能解释一下为什么 A 在 ABH->CK 中是多余的,AB、BH 和 AH 的闭包是什么?
谢谢!
自 BH -> E -> L -> AD
以来,我们可以通过两次应用阿姆斯特朗的传递性规则,然后进行分解来表示 BH -> A
。从那里,如果我们包括普通的 FD BH -> BH
,我们就会看到 BH -> ABH
。再次使用传递性,BH -> ABH -> CK
可以简化为 BH -> CK
,即 A
不需要确定 CK
.
关于给定行列式的一组 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)
所以BH* = ABCDEHKL
。请注意,G
不是派生的,因此 BH
不是候选键。