Database design 不确定如何检查函数依赖项是否在F+;

Database design 不确定如何检查函数依赖项是否在F+;,database-design,functional-dependencies,Database Design,Functional Dependencies,我遇到了一个与函数依赖性有关的数据库设计问题 下面是我使用的关系模式R及其一组函数依赖项F: R = (A, B, C, D, E, F, G) F = {A->BC, CD->AB, EF->AD, B->AEF} 我的目标是检查DE->AC是否可以从F派生,也就是说,它是否在F+(F闭包)中 我理解自反性、增广性、传递性、并集、分解和伪传递性的阿姆斯特朗公理(基本上是人们可以对函数依赖性进行的代数式操作,以将它们转换为R和F的真实陈述),但我不确定我是否以正确的方式

我遇到了一个与函数依赖性有关的数据库设计问题

下面是我使用的关系模式R及其一组函数依赖项F:

R = (A, B, C, D, E, F, G)
F = {A->BC, CD->AB, EF->AD, B->AEF}
我的目标是检查DE->AC是否可以从F派生,也就是说,它是否在F+(F闭包)中

我理解自反性、增广性、传递性、并集、分解和伪传递性的阿姆斯特朗公理(基本上是人们可以对函数依赖性进行的代数式操作,以将它们转换为R和F的真实陈述),但我不确定我是否以正确的方式应用了它们,从而得出了一个确切的答案,即DE->AC是否包含在F+中

我一直在搞DE->AC,这就是我到目前为止取得的成绩:

Given: A->BC
Given: CD->AB
    Therefore: CD->A and CD->B
From there I deduced that CD->BC by the transitivity rule.
I then canceled out the C's on both sides:
    D->B
After that I augmented E's on both sides:
    DE->BE
By decomposition, I now have:
    DE->B and DE->E, of which DE->B will be what I want to work with to try to make the right-hand-side AC.
现在,我有了这个函数依赖项的适当左侧,但我不确定接下来要做什么才能使右侧等效于AC

你们中有谁能看出我在下一步做什么方面可能遗漏了什么


非常感谢你的帮助

继续DE->BE和B->AEF以获得DE->ABDEF

现在继续执行->BC等操作,直到在RHS上设置了一个属性,该属性是AC的超集