2009-12-12 35 views

回答

2

如果您符合1NF,2NF和3NF的規則,則您的數據庫位於3NF中。

作爲粗略指南。

  1. 在單行中沒有重複的數據。

  2. 消除被重複多次(I認爲這是「參考」的數據,例如查找。等CustomerRelationshipType事情)

  3. 刪除任何數據子集(其中,相同的數據被以不同的方式顯示的列)與表格的鍵不直接相關的數據(這是一個檢查,以確保你沒有不必要地攜帶任何東西或可能將某些東西存儲在錯誤的表格中)。

3

是否有任何非關鍵字段依賴於不屬於關鍵字的另一個字段?如果是這樣,那麼架構不在3NF。

+1

這仍然是1NF。如果它取決於整個密鑰,它只是2NF –

+0

不,他是正確的,從維基百科複製:「要求非密鑰屬性依賴於」整個密鑰「確保一個表在2NF;進一步要求非密鑰屬性取決於「只有關鍵」,確保表格在3NF中。「 –

+0

對不起,我假設2NF。 –

1

如果所有非關鍵屬性依賴於鍵,整個鍵,不過按鍵的話,那應該是第三範式。

當然,原子性已經被假定了。

0

您的數據庫是3NF,當且僅當它遵循任何一個或兩個以下規則:

規則1:對於每一個給定的FD的,FD的左手邊(LHS)應超密鑰對任何表數據庫。

OR

規則2:對於每個給定的FD的,FD的右手邊(RHS)應該是螞蟻關係/表主屬性。

有關超密鑰更詳細,主屬性等等,請參考:Detailed explanation of Normal forms and Database.