關係模式 R(U, D, DOM, F) 簡化為 R(U, F),核心在於函數依賴集 F。FD 不當導致冗餘、插入/刪除/更新異常,範式理透過分解消除不良 FD。
設 R(U) 關係模式,X,Y ⊆ U。若對任意合法關係 r,r 中不存在兩元組在 X 上相等而 Y 上不等,則稱 X 函數決定 Y,記 X → Y。
| 類型 | 定義 | 記號 | 例 (SC: Sno,Cno,Grade) |
|---|---|---|---|
| 平凡 FD | Y ⊆ X | X → Y | (Sno,Cno) → Sno |
| 非平凡 FD | Y ⊈ X | X → Y | (Sno,Cno) → Grade |
| 完全 FD | X → Y 且 ∀X'⊂X, X' ↛ Y | X F Y | (Sno,Cno) F Grade |
| 部分 FD | X → Y 但 ∃X'⊂X, X' → Y | X P Y | (Sno,Cno) P Sdept (因 Sno → Sdept) |
| 傳遞 FD | X → Y, Y ⊈ X, Y → Z, Z ⊈ Y | X → Z | Sno → Sdept → Mname ⇒ Sno → Mname |
決定因素 = FD 左邊屬性組。X ↔ Y 表示雙向決定。
F = { Sno→Sdept, Sdept→Mname, (Sno,Cno)→Grade }
根因:存在傳遞 FD (Sno → Sdept → Mname) 與部分 FD ((Sno,Cno) P Sdept)。
S(Sno, Sdept) FD: Sno → Sdept
SC(Sno, Cno, Grade) FD: (Sno,Cno) → Grade
DEPT(Sdept, Mname) FD: Sdept → Mname
分解後每模式**單一語義**、**無傳遞/部分 FD**、**達 3NF/BCNF**,實現「一事一地」。
| 範式 | 核心要求 | 消除目標 |
|---|---|---|
| 1NF | 屬性原子、無重複組 | 非原子屬性 |
| 2NF | 非主屬性完全依賴主鍵 | 部分 FD |
| 3NF | 非主屬性不傳遞依賴主鍵 | 傳遞 FD |
| BCNF | 主屬性也不部分/傳遞依賴 | 主鍵內部依賴 |
實務以 **3NF/BCNF** 為標準,過度正規化增加 Join 成本,必要時保留受控冗餘 (如高頻聚合列)。