我遇到了与功能依赖关系有关的数据库设计问题。
这是 RI 正在使用的关系模式以及它的一组功能依赖项 F:
R = (A, B, C, D, E, F, G)
F = {A->BC, CD->AB, EF->AD, B->AEF}
我的目标是检查是否可以从 F 派生 DE->AC,即它是否在 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。
你们中的任何人都可以看到我在下一步做什么方面可能缺少什么吗?
非常感谢你的帮忙!