如何确定保留分解的无损连接依赖项

时间:2019-01-12 22:01:29

标签: functional-dependencies decomposition

我有一个家庭作业问题,需要确定无损联接,并针对以下项进行依赖分解:

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 是我要找的东西,但我不明白那里的任何答案。第一个答案的链接已死,所以我找不到算法。

我真的在寻找有关如何执行此操作的分步说明,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

是的,第一步是找到最小的掩护。然后,您应该合并具有相同左侧的依赖项。例如,您可以将BD->EBD->F合并到BD->EF中。在将所有可能的依赖项合并到最小限度后,每个依赖项可以是一个关系(例如R1(B,D,E,F)。然后,您将获得保留3NF关系的依赖项。但是,它可能不是无损的,您可能需要将其转换为无损的通过添加另一个关系来实现方案。

这些是一些有用的资源: