0

我遇到了与功能依赖关系有关的数据库设计问题。

这是 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。

你们中的任何人都可以看到我在下一步做什么方面可能缺少什么吗?

非常感谢你的帮忙!

4

1 回答 1

1

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

现在继续 A->BC 等,直到您在 RHS 上设置了作为 AC 超集的属性。

于 2013-10-02T18:09:56.160 回答