这个3NF分解正确吗?

时间:2019-03-27 17:16:28

标签: database-normalization functional-dependencies 3nf

  

关系R(ABCDEF)具有以下功能依赖性:

A->B
B->C
A->D
A->E,F
E->F
     

说出其中最强的范式,然后将其转换为第三范式。

我认为该关系为第一范式,因为在候选键为A时存在部分依赖性,因此将其转换为第二/第三范式后,我将R(ABCDEF)分解为

R1(A,B,D,E,F) 
R2(B,C) 
R3(E,F)

不是所有这些都是第三范式吗?我完成分解了吗?

1 个答案:

答案 0 :(得分:0)

当非素数属性依赖于候选键的适当子集时,模式不在2NF中(所谓的部分依赖)(例如,参见wikipedia)。由于在您的架构中唯一的候选键是A,因此不可能,因此该架构在2NF中。

您在3NF中进行的分解是不正确的,因为在关系R1(A B D E F)中,依赖项E->F保持不变,而属性F并非素数且并非平凡地取决于行列式超级键。

正确的分解是:

R1(A B D E)
R2(B C)
R3(E F)

请注意,在分解的情况下,R3包含在R1中。