Normalization
證明如果關係 R 在 3NF 中並且如果 R 中的每個鍵都是簡單的,那麼 R 在 BCNF 中?
“如果一個鍵只包含一個屬性,那麼它就是簡單的”。證明如果關係 R 在 3NF 中並且如果 R 中的每個鍵都是簡單的,則 R 在 BCNF 中。你的證明應該是一般的,例如,它不應該假設 R 有固定數量的,比如兩個或三個,屬性。
解決方案:
考慮
FD X -> Y
在 R 中成立的一個。由於 R 在 3NF 中,要麼
- X 是一個超級鍵或
- 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
必須是超級密鑰。證明中最重要的部分是傳遞性部分。