Normalization
誰能幫我理解以下段落?
我正在閱讀 Carlos Coronel 的《數據庫系統設計、實施和管理》。在他解釋 3NF 之後的章節中
Normalization
,他寫道多個候選鍵的存在也會影響傳遞依賴的辨識。以前,當一個非主屬性確定另一個非主屬性時,傳遞依賴被定義為存在。在存在多個候選鍵的情況下,將非主屬性定義為不屬於任何候選鍵的屬性是至關重要的。如果函式依賴的決定因素不是主鍵而是另一個候選鍵的一部分,那麼它不是非主屬性並且不表示存在傳遞依賴。
我很難理解他想說什麼。誰能用更簡單的術語解釋這一段。
我不知道以下內容是否有助於解釋您引用的內捲詞,但是以下所有事實都是正確的。
- 一個關係必須至少有一個候選鍵,並且可以有多個候選鍵。
- 根據定義,如果屬性是任何候選鍵的一部分,則該屬性是素數。
- 傳遞依賴是通過“傳遞”阿姆斯特朗公理(如果 X -> Y 和 Y -> Z,則 X -> Z)從其他兩個依賴派生的依賴,例如,如果在關係 R(A, B , C, D) 我們有 A -> BC 和 BC -> D,依賴 A -> D 是傳遞依賴。
- 如果傳遞規則的第二個依賴項(規則的“Y -> Z”依賴項)具有不是完整候選鍵的行列式,則傳遞依賴項可能會出現問題(即會產生數據異常) ,但是(a)候選鍵的子集,或 (b) 包含非素數的屬性。
考慮關係 R(A, B, C, DE),依賴 AB -> CDE, CD -> ABE, C -> E。在這種情況下,有兩個候選鍵 AB 和 CD,所以 C 是C -> D, 是一個主要屬性,因為它是候選鍵 CD 的一個屬性(“它不是非主要屬性”)。
請注意,在前面的範例中,屬性 E 傳遞依賴於 AB(從 AB -> CDE 我們可以推導出 AB -> C,並且從 AB -> C 和 C -> E,我們可以推導出 AB -> E)並且關係不在 3NF 中,也不在 BCNF 中。