2011-05-26 98 views
1

第四範式描述BCNF中的一個關係,但它不包含非平凡的多值依賴關係。第四範式

我很努力去理解什麼是微不足道的多值依賴和不平凡的多值依賴和差異。如何識別後者以執行4NF?

編輯:

我主要需要知道一個簡單的和不平凡的依賴之間的區別是什麼?

回答

5

維基百科上有一個相當不錯的例子:Fourth normal form。有沒有你不明白的具體部分?你可能也想看看Multivalued dependency

更新:那麼平凡和非平凡依賴之間有什麼區別?

這取決於我們是否在討論函數或多值依賴。

甲瑣碎函數依賴X -> Y是其中YX一個子集。由於X -> Y意味着「Y可以從X確定」,所以對於任何XY這都是非常正確的,其中Y由來自X的屬性組成;顯然,如果我們知道X,如果它只包含X的內容,我們可以確定Y

一個平凡的多值依賴X ->-> Y是一個地方Y含有不X每個屬性。請注意,它也可以包含X中的屬性。對於所有的XY來說,這種多值依賴性也是如此,因此是微不足道的。這是根據多值依賴的定義:

表示由(X,Y,Z)的具有用於X 值,YR − X − Y 統稱等於X,Y,Z, 相應,則元組每當元組(a,b,c)和(a,d,e)存在於元組中時,元組(a,b,e)和(a,d,c)應該也存在於r中。

在一個微不足道的多值扶養,該組z = R - X - Y是空的,所以要求降低至(0是空集):

元組(A,B,0)和(a ,d,0)存在於r中, 中也存在元組(a,b,0)和(a,d,0)。

這顯然是對的。

+0

BCNF是否意味着表中的每個屬性都可以唯一地標識一個元組? – user559142 2011-05-26 10:13:15

+0

@ user559142:BCNF(實際上是2NF或更高)要求表中沒有非素數屬性,是非素數意味着**候選鍵的屬性**部分,但不一定是候選鍵* *在其自己的**。所以不,不是每個屬性都可以唯一地標識一個元組,但是它必須是**的一個子集的一部分。 – verdesmarald 2011-05-26 10:36:30

+0

啊,太棒了!我現在明白了!那麼平凡和非平凡依賴之間的區別是什麼? – user559142 2011-05-26 11:21:29

1

X-> Y是Trival當且僅當右側是左側的一個子集。 X->如果Y不包含在X中,則Y是非Trival。