这3NF分解是否正确?

问题描述 投票:-1回答:1

关系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)

是不是所有这些都处于第三范式?我做了分解吗?

database-normalization functional-dependencies 3nf
1个回答
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中,这是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.