BCNF和4NF财产

时间:2017-09-18 07:24:51

标签: database rdbms database-normalization bcnf

我读了一条声明" BCNF中的关系R与至少一个简单的候选键也在4NF"

我不认为它总是如此,但我无法证明它。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

陈述是正确的,这是从论文"Simple Conditions for Guaranteeing Higher Normal Forms in Relational Databases", by C.J.Date and R.Fagin, ACM TODS, Vol.17, No. 3, Sep. 1992中得到的证明草图。

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

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

由于我们有X→→Y和X→→Z,并且X不是候选键,假设假设是假的,即存在包含的候选K Y的成员(对称,既不是Z的成员)。但是,由于K是关键,我们有K→Y,K和Y不相交。

现在,有一个推理规则说,一般来说,如果V→→W和U→W,其中U和W是不相交的,那么V→W。

将此规则应用于我们的情况,因为X→→Y和K→Y,我们可以说X→Y。但这是矛盾的,因为我们已经说过R在BCNF中,而X是候选人密钥。

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

考虑到最初的假设,我们在BCNF中至少有一个简单的候选键,对于前一个引理,关系必须在4NF(否则每个键都应该由至少2个属性!)。