如何证明3NF?

时间:2014-09-16 17:11:19

标签: proof 3nf

我正在努力让我的大脑围绕如何证明3NF。 我实际上有答案,但如果有人知道这一点,让我理解它,我将非常感激。好的,这就是:

  1. 根据定义2,如果R在3NF中,则根据定义1,R必须在3NF中。 回想一下,如果根据定义1 R为3NF,则必须满足以下两个条件。
  2. i)对于R,我们在非密钥之间没有任何传递函数依赖性 属性和通过其他非键属性的键。

    ii)对于R,我们在非键属性之间没有任何部分功能依赖性 和一把钥匙。

    假设R不满足(i)。然后,我们必须有一个传递FD:X→A,A→B,其中X是键,A和B是非键属性。但根据定义2,R没有这种FD。 (也就是说,A必须是主要属性或超级密钥。)矛盾。所以R必须满足(i)。

    假设R不满足(ii)。然后,我们必须具有密钥X的子集S(S×X),使得存在具有S→A的非密钥属性A.然而,根据定义2,S必须是超密钥。矛盾。所以R必须满足(ii)。 因此,根据定义1,R为3NF。

    1. 根据定义1,如果R在3NF,根据定义2,R必须在3NF。
    2.  根据定义2,假设R不在3NF中。那么,我们必须有FD:X→A,使得X不是超级密钥而A不是主要属性。考虑一下R的关键X'我们必须有 X'→X→A。 它是非键属性A和键X'到X之间的传递FD。如果X是非键属性,则根据定义1,R不在3NF中。矛盾。如果X出现在X'中,我们有一个部分FD。所以R不在2NF,与定义1相矛盾。

0 个答案:

没有答案