功能依赖:找到密钥并分解为BCNF和3NF

时间:2014-06-01 12:00:07

标签: functional-dependencies

晚安!

考虑以下关系R与属性:R = {A,B,C,D,E,G,H,I,J,K}与FDs:

F={AB → D, A → CE, B →G, G→HI, C→JK}

我想找到R的关键并将关系分解为BCNF和3NF。我尝试使用规范化算法的步骤来计算密钥,如下所示

1. -
2. DEHIJK
3. ABG
4. ABG

所以在确定上面的依赖关系后,我计算出的关键是:ABCDEG.

但是当我试图在site上验证这一点时,结果非常不同,我对于分解为BCNF和3NF感到困惑。任何人都可以帮我解决这个问题吗? 提前谢谢

1 个答案:

答案 0 :(得分:0)

R只有一个候选键。这是AB。

您不必努力确定AB是候选键。在每一步中,我们都知道左侧由{AB}确定。

FD    Attributes determined
--
AB->D {ABD}
A->CE {ABCDE}
B->G  {ABCDEG}
G->HI {ABCDEGHI}
C->JK {ABCDEGHIJK}

读取这个" AB确定D,因此我们知道属性A,B和D. A确定CE,因此我们知道属性A,B,C,D(来自上一步)和E "等等。