資料庫正規化:BC正規化介紹

BC 正規化的全名是: Boyce Codd normal form 簡稱 BCNF,以下將會使用 BCNF 來稱呼。
BCNF 的前提條件是符合第三正規化,並且 所有非主鍵屬性完全依賴於資料表的主鍵,並且只依賴於主鍵,而不是依賴於非主鍵或是主鍵的一部份

直接看範例:
課程編號 學期 授課教師 辦公室位置
C001 上學期 高老師 教學大樓 101
C001 下學期 高老師 教學大樓 101
C002 上學期 高老師 教學大樓 101
C003 上學期 王老師 自強大樓 301
C004 上學期 王老師 自強大樓 301
C005 上學期 林老師 自強大樓 302

上表是課程編號和學期組合成的複合主鍵,但是在這個例子中教師總是在同一個辦公室,所以教師依賴於辦公室,依賴主鍵的一部份,不符合 BCNF

要符合 BCNF 的話我們可以把它拆分為下面兩張表:

課程表

課程編號 學期 授課教師
C001 上學期 高老師
C001 下學期 高老師
C002 上學期 高老師
C003 上學期 王老師
C004 上學期 王老師
C005 上學期 林老師

教師辦公室位置

授課教師 辦公室位置
高老師 教學大樓 101
王老師 自強大樓 301
林老師 自強大樓 302


延伸閱讀: 資料庫正規化介紹(1NF, 2NF, 3NF)

參考資料:
Wiki - Database normalization
A Simple Guide to Five Normal Forms in Relational Database Theory
Wiki - Fourth normal form

留言