Normalization
第二範式的表可以有一個非主要屬性依賴於具有無關屬性的超級鍵的 FD 嗎?
對於 2NF,我可以得到的每個來源都說以下內容:
非主要屬性必須完全依賴於候選鍵。
但是非素數屬性可以依賴於候選鍵的超集嗎?我的意思是左側可以包含一個無關的屬性。
另外,請解釋一下,如果有必要所有非主要屬性都必須完全依賴於任何候選鍵。一個非主要屬性不能僅僅依賴於另一個非主要屬性嗎?
你在問:
但是非素數屬性可以依賴於候選鍵的超集嗎?我的意思是左側可以包含一個無關的屬性。
如果一組屬性是候選鍵,則它確定所有其他屬性,包括非主屬性。因此,如果您在左側添加屬性,則相對於 2NF 的定義沒有任何變化,唯一重要的是非素數屬性不能依賴於候選鍵的適當子集。
然後,你問:
一個非主要屬性不能僅僅依賴於另一個非主要屬性嗎?
如果在關係模式中,一個非素數屬性依賴於另一個非素數屬性,我們只能說這種依賴關係不違反原始 Codd 的定義,即只要求每個非素數屬性必須“完全依賴於 R 的每個候選鍵” ,也可以表示為:不存在左側為候選鍵的真子集,右側為非素數屬性的依賴關係。
因此,出於同樣的原因,如果依賴項在左側包含候選鍵的真子集加上非主屬性,則這不屬於 Codd 的定義,這意味著它不違反該定義。
最後,請注意,2NF 在實踐和理論上都沒有興趣:它只有歷史興趣。事實上,如果關係處於 Boyce-Codd 範式或第三範式(或第四或更大範式),則稱該關係被適當規範化。事實上,在許多重要的數據庫書籍中,您都可以找到在 BCNF 或 3NF 中引入關係的正式算法,但在 2NF 中卻沒有。