BC正規形式

Boyce - Codd範式 ( 縮寫 ） ， 是數據庫規範化的一種正規形式 。 是在第三範式的基礎上加上稍微更嚴格約束 ， 每個BCNF關係需滿足第三範式 。 BCNF去除了屬性間的不必要的函數依賴 。 BCNF的定義是 ： 如果對於關係模式R中存在的任意一個非平凡函數依賴X - > A ， 都滿足X是R的一個超鍵 ， 那麼關係模式R就屬於BCNF 。 對上述定義 ， 可以理解爲 ： 平凡函數依賴關係是指 ， 如果屬性集合X包含了屬性集合A ， 那麼就一定有X - > A ； 超鍵是指能夠唯一確定表中各行的屬性集合 ， 因此一個超鍵的最小化就是一個候選鍵 ； BCNF是說 ， 如果一個屬性集合X能 “ 不平凡 ” 地推導出另一個屬性集合A ， 而且X還不能唯一區分表的各行 ， 那麼這個表中一定包含了一些冗餘信息 。 BCNF與第三範式的不同之處在於 ： 第三範式中不允許非主屬性被另一個非主屬性決定 ， 但第三範式允許主屬性被非主屬性決定 ； 而在BCNF中 ， 任何屬性 （ 包括非主屬性和主屬性 ） 都不能被非主屬性所決定 。 任何一個BCNF必然滿足 ： 所有非主屬性都完全函數依賴於每個候選鍵 所有主屬性都完全函數依賴於每個不包含它的候選鍵 沒有任何屬性完全函數依賴於非候選鍵的任何一組屬性