为什么这个属性是多余的?这些属性集的闭包是什么?

问题描述 投票:0回答:1

我有一个函数依赖集 F = {ABH->CK, A->D, C->E, BGH->L,L->AD,E->L,BH->E}.

为什么ABH->CK中A是多余的?

AB、BH 和 AH 的关闭时间是什么?

database database-design relational-database relational-algebra
1个回答
1
投票

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
不是候选键。

© www.soinside.com 2019 - 2024. All rights reserved.