2016-02-26 45 views
1

我有R(A,B,C,d)與AB 主鍵和AD - 「ç2NF第二範式難以鍛鍊

我認爲這是在2NF becouse不能確定下用一個子集來自維基百科的AB 「如果一個表在2NF中,並且沒有非素數屬性依賴於表的任何候選鍵的任何適當子集」

但是很多人說它是在1nf中,因爲定義 「在2NF中,如果它在1NF中並且該表的每個非素數屬性都依賴於整個每個候選關鍵字」 「,所以AD不是整個主鍵,而只是其中一部分[R屬性不是素數

請你能不能也把維基百科的不同部分refereces,所以我可以demostrate我的論文,如果真的是正確的

+1

{AB}是一個關鍵的事實意味着AB-> CD。 「如果關係R處於第一範式 並且R的每個非素數屬性完全依賴於R的每個 候選關鍵字,則關係R處於第二範式。」因爲每個非最優屬性(C,D)完全依賴於每個密鑰({A,B}),所以R確實滿足2NF。在Randall J.Rustin(編輯),Data Base Systems:Courant Computer Science Symposia Series 6,Prentice-Hall,Englewood Cliffs,NJ,1972中,Codd EF,「數據庫關係模型的進一步標準化」 。* – sqlvogel

回答

2

幽州作爲一個事實,即AB對給定的主鍵關係R。爲了實現這一點,除了AD-> C之外,必須至少有一個以上的功能依賴性。

爲了解釋2NF,我假設缺少的FD是說B-> D。因此,我們有一個關係R(A,B,C,d)與FD的:

AD->Ç
B-> d

然後我們的主鍵是AB。現在簡單地說,2NF處理部分依賴關係,也就是說,當一個屬性依賴於主鍵的一部分。 (因此,如果我們有一個主鍵,這只是一個比關係R已經在2NF屬性!)

形式上:

給定函數依賴X->的關係爲R的其中:

  1. X設定的屬性ř
  2. 一個非黃金屬性不X

然後在2NF,X應該是任何關鍵的真子集。

回到我們的例子。主要關鍵是AB。所以主要屬性是AB。非主要屬性是CD

讓我們考慮第一FD,AD->Ç

這裏Ç是一個非主要屬性。到不是違反2NF條件,AD應該不是是主鍵的合適子集AB。 AD不是AB的真正子集,因此它不違反2NF條件。

讓我們看看下一FD,B-> d

這裏d是一個非主要屬性和是主鍵AB的適當子集,因此它違反2NF條件。

因此,關係R不是第二範式。

在另一方面,如果爲[R設定FD的的本來:

AD->ç
AB-> d

我們的主鍵仍然是AB但現在關係R處於第二範式。

+0

考慮到兩種情況都有很好的答案。謝謝。 –