Normalization

證明如果關係 R 在 3NF 中並且如果 R 中的每個鍵都是簡單的,那麼 R 在 BCNF 中?

  • January 9, 2017

如果一個鍵只包含一個屬性,那麼它就是簡單的”。證明如果關係 R 在 3NF 中並且如果 R 中的每個鍵都是簡單的,則 R 在 BCNF 中。你的證明應該是一般的,例如,它不應該假設 R 有固定數量的,比如兩個或三個,屬性。

解決方案:

考慮FD X -> Y在 R 中成立的一個。由於 R 在 3NF 中,要麼

  1. X 是一個超級鍵或
  2. Y 是密鑰的成員。

在第二種情況下,由於 R 中的每個鍵都是簡單的,因此 Y 本身就是一個鍵,這意味著 X 是一個超鍵。因此,X -> Y在任何一種情況下都不會違反 BCNF,這意味著 R 在 BCNF 中。

除了最後一部分,我什麼都懂;Y 是一個鍵意味著 X 是一個超級鍵。有人可以詳細說明嗎?

有趣的問題(我現在正好在讀 Ullman 的書)。我認為答案是這樣的:

假設這X不是超級鍵。然後,每個屬性Y都是一個鍵的成員(是素數)。由於每個鍵由一個屬性組成,y -> {every other attribute},其中y是 的成員Y。然後通過傳遞性,X -> {every other attribute},這意味著它X是一個超鍵。我們與最初的假設相矛盾,即X不是超級密鑰,因此X必須是超級密鑰。

證明中最重要的部分是傳遞性部分。

引用自:https://dba.stackexchange.com/questions/160394