2015-06-20 61 views
0

我試圖理解函數依賴函數依賴鍵和正常形態

比方說,我們具有R與{A,B,C,d,E}和FDS A-> B,BC-> E和ED - >一個。

3NF或BCNF中的密鑰是什麼?

+1

您認爲什麼?爲什麼?如果R在BCNF中,根據定義,它也在3NF中,但它可能在3NF中而不在BCNF中。 –

+1

假設有人說「ACD,不,不」。這會幫助你嗎?你會不同意嗎?爲什麼? –

回答

1

這裏的關鍵是 - ACDBCDECD。由於關係R的每個屬性在每個關鍵字中至少出現一次,因此關係R中的所有屬性都是主要屬性。

請注意,如果一個關係具有所有素數屬性,那麼它已經在3NF。

因此,給定的關係R是在3NF。

要在BCNF,對於每個函數依賴X->ÿX應該是一個鍵。我們看到第一個依賴關係(A-> B)違反了這一點,因此關係R不在BCNF中。

+0

Re對於每個函數依賴關係X-> Y,X應該是一個關鍵字:X應該是Y的超級鍵或者Y的超集。因爲如果關鍵字X-> Y,那麼每個超集關鍵字都會有一個FD X(即包含X的超鍵) - > Y,並且還將有一個FD X - > X的每個子集。 – philipxy

0

關鍵是 - ACD,BCD和ECD。

總體屬性將是(A,B,C,D,E),因爲所有的都來自主鍵。

請注意,如果關係具有所有素數屬性,則它已經在3NF中。

因此,給定的關係R是在3NF。

要在BCNF中,對於每個函數依賴關係X-> Y,X應該是一個超級鍵。我們看到第一個依賴關係(A-> B)違反了這一點,因此關係R不在BCNF中。

0

候選鍵是 - ACD,BCD和ECD。 主要屬性是(A,B,C,D,E),因爲它們都在主鍵中。 現在,我們首先檢查BCNF的關係 對於BCNF,在FD中,屬性中的左側必須是超級鍵,並且您可以注意到沒有任何FD在此條件之後 對於3NF,在FD中有兩個條件: 1.左側是超級鍵 2.如果第一個條件失敗,則同一個FD的右側必須是主屬性。 如果關係遵循這些條件,則它在3NF中,並且因爲我們可以注意到所有屬性都是素數屬性,所以下面的關係R在3NF中但不在BCNF中。