BCNF 和 4NF 属性

Zep*_*hyr 2 database rdbms database-normalization bcnf

我读到一篇声明“BCNF 中至少有一个简单候选键的关系 R 也在 4NF 中”

我不认为这总是正确的,但我无法证明这一点。

有人可以帮忙吗?

Ren*_*nzo 5

该陈述是正确的,这是取自论文 “Simple Conditions for Ensureing High Normal Forms in Relational Databases”的证明草图,作者:CJDate 和 R.Fagin,ACM TODS,第 17 卷,第 3 期,1992 年 9 月

\n\n

如果对于 F+ 中的每个非平凡多值依赖 X \xe2\x86\x92\xe2\x86\x92 Y,X 是 R 的超键,则关系属于 4NF。因此,如果关系属于 BCNF,但不属于 4NF,那么必须存在一个非平凡的多值依赖(MVD) X \xe2\x86\x92\xe2\x86\x92 Y 使得 X 不是键。我们将证明这与关系是 BCNF 并且具有由唯一属性(简单候选键)构成的候选键 K 的事实相矛盾。

\n\n

考虑这样一个事实,在关系 R(T) 中,当我们有一个非平凡的 MVD X \xe2\x86\x92\xe2\x86\x92 Y(假设,不失一般性,X 和 Y 不相交),那么另外,MVD 依赖项 X \xe2\x86\x92\xe2\x86\x92 Z必须保持相同的关系,其中 Z = T - X - Y(即 Z 是该关系的所有其他属性)。现在我们可以证明每个候选键必须至少包含一个 Z 属性和一个 Y 属性(因此它必须至少包含 2 个属性!)。

\n\n

由于我们有 X \xe2\x86\x92\xe2\x86\x92 Y 和 X \xe2\x86\x92\xe2\x86\x92 Z,并且 X 不是候选键,因此假设假设为假,即存在一个候选 K,它包含 Y 的成员(并且为了对称性,也不包含 Z 的成员)。但是,由于 K 是键,因此我们有 K \xe2\x86\x92 Y,其中 K 和 Y 不相交。

\n\n

现在,有一个推理规则,一般来说,如果 V \xe2\x86\x92\xe2\x86\x92 W 和 U \xe2\x86\x92 W,其中 U 和 W 不相交,则 V \xe2 \x86\x92 W.

\n\n

将此规则应用于我们的情况,由于 X \xe2\x86\x92\xe2\x86\x92 Y 和 K \xe2\x86\x92 Y,我们可以说 X \xe2\x86\x92 Y。矛盾,因为我们已经说过R在BCNF中,而X不是候选键。

\n\n

换句话说,如果关系不属于 4NF,则每个必须至少有 2 个属性。

\n\n

给定初始假设,即我们在 BCNF 中存在至少一个简单候选键的关系,对于前面的引理,该关系必须在 4NF 中(否则每个键应由至少 2 个属性构成!)。

\n