Database 规范化消除冗余属性

Database 规范化消除冗余属性,database,database-design,relational-database,relational-algebra,Database,Database Design,Relational Database,Relational Algebra,如果我有一个函数依赖项: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。从这里开始,如果我们包括平凡的FDBH->BH,我们就会看到BH->ABH。再次使用及物性,BH->ABH->CK可以简化为BH->CK,即A不需要确定CK 对于给定的行列式,一组FD的闭包可以通过再

如果我有一个函数依赖项: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
。从这里开始,如果我们包括平凡的FD
BH->BH
,我们就会看到
BH->ABH
。再次使用及物性,
BH->ABH->CK
可以简化为
BH->CK
,即
A
不需要确定
CK

对于给定的行列式,一组FD的闭包可以通过再次使用Armstrong规则来计算,以合并直接或间接来自所选行列式的所有函数依赖项。例如,对于
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,它们以某种关系存在。还有,你说的“多余”是什么意思?你是指FDs{AB,BH,AH}集的闭包还是行列式AB,BH&AH的闭包?你写得不清楚。此外,请说明您目前拥有的资料以及您正在遵循的参考资料。