正規化的五個階段對應三種相依性

五個正規形式背起來像五條規則,其實是三種相依性各自對應的清理工作。看懂這張表就知道每一階段在問什麼、判準從哪裡來。

相依性對應階段拆成幾張判準來源
函數相依(functional)1NF / 2NF / 3NF / BCNF兩張schema 的相依關係
多值相依(multi-valued)4NF兩張,且兩邊矩形完整資料可直接驗
連接相依(join)5NF三張以上,兩張還原不回來業務規則,資料看不出來

正規化的三個階段是同一個問句的三種問法 把 1NF~3NF 收斂成「這個欄位到底跟誰有關」。BCNF 仍在這條線上(把判準從主鍵換成候選鍵);但 4NF 之後問句換了,問的是「這一組值跟誰有關」。

包含關係(愈後面愈嚴格):

5NF ⊂ 4NF ⊂ BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF

兩個常被跳過的蘊含關係:

  • 每條函數相依都是多值相依的特例 → 4NF 蘊含 BCNF。
  • 多值相依就是「只有兩個成分的連接相依」→ 4NF 是 5NF 的特例。

所以這個順序不是硬湊的,是真的一層包一層。但愈高階不等於愈該做:BCNF 之後就要開始付代價(BCNF 保證無損 join,但不保證保持相依),而 5NF 的觸發條件在現實裡幾乎不成立(5NF 的判準不在資料裡,在業務規則裡)。