我有一个家庭作业问题,需要确定无损联接,并针对以下项进行依赖分解:
R(A,B,C,D,E,F,G,H,I,J)
具有功能依赖性:
AB-> CG
C-> A
BD-> EF
ABC-> DEFG
G-> H
G->我
G-> J
H-> IJ
J->我
I-> H
我不确定该怎么做
我知道第一步是确定我在这里所做的最小封面/规范封面:
AB-> C
C-> A
BD-> E
BD-> F
BC-> D
BC-> G
G-> J
H-> J
J->我
I-> H
但是我不明白此后该怎么办。
我实际上认为这个问题:Designing lossless-join, dependency preserving, 3NF database 是我要找的东西,但我不明白那里的任何答案。第一个答案的链接已死,所以我找不到算法。
我真的在寻找有关如何执行此操作的分步说明,我们将不胜感激。
答案 0 :(得分:1)
是的,第一步是找到最小的掩护。然后,您应该合并具有相同左侧的依赖项。例如,您可以将BD->E
和BD->F
合并到BD->EF
中。在将所有可能的依赖项合并到最小限度后,每个依赖项可以是一个关系(例如R1(B,D,E,F)
。然后,您将获得保留3NF关系的依赖项。但是,它可能不是无损的,您可能需要将其转换为无损的通过添加另一个关系来实现方案。
这些是一些有用的资源: