iT邦幫忙

0

資料庫設計 (十五) - 第三正規化(3NF)

Ryuk 2025-07-02 18:33:311014 瀏覽
  • 分享至 

  • xImage
  •  

什麼是第三正規化(3NF)?

第三正規化的定義如下:

在符合第二正規化(2NF)的條件下,資料表中不應該存在傳遞依賴(Transitive dependency)。

什麼是傳遞依賴?

所謂傳遞依賴,指的是一個非主鍵欄位,不是直接依賴於主鍵,而是透過另一個非主鍵欄位間接依賴主鍵。
舉個簡單的例子來說明:
假設欄位 A 是主鍵。
A → B(A 決定 B)
B → C(B 決定 C)
根據依賴的傳遞性,我們可以推出:A → C
這表示欄位 C 是透過欄位 B 間接依賴主鍵 A。這就是所謂的傳遞依賴。
在 3NF 中,這樣的情況是不被允許的。為了消除這種依賴關係,欄位 C 應該被移至一個獨立的表格中,與欄位 B 建立直接關聯。

為什麼要消除傳遞依賴?

當表格中存在傳遞依賴時,容易導致以下問題:

  • 資料冗餘:相同的資訊可能重複儲存在多筆紀錄中。
  • 更新異常:更新一處資料時,可能會忘記更新其他地方,導致資料不一致。
  • 插入與刪除異常:資料間的依賴關係混雜,可能無法獨立插入或刪除某些資料。

透過 3NF 的設計,我們可以將這些依賴關係拆開,使每個表格都只關心自己直接依賴主鍵的欄位,提升資料的一致性與可維護性。

總結

第三正規化的核心在於消除所有非主鍵欄位對主鍵的間接依賴關係。透過良好的正規化設計,可以讓資料庫更加一致、結構清晰,未來在維護、擴充或查詢時都能受益。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言