定义:
在第三范式的基础之上,数据库表中如果不存在任何字段对任一候选关键字的传递函数依赖则附合BC范式。也就是说如果是复合关键字,则复合关键字之间也不能存在函数依赖关系。
(以商品同供应商的关系表来说明BCNF)
表11
供应商 | 商品ID | 供应商联系人 | 商品数量 |
饮料一厂 | 1 | 张三 | 10 |
饮料一厂 | 2 | 李四 | 20 |
饮料二厂 | 1 | 王五 | 20 |
假定:
供应商联系人只能受雇于一家供应商,每家供应商可以供应多个商品则存在如下决定关系:
(供应商,商品ID)->(联系人,商品数量)
(联系人,商品ID)->(供应商,商品数量)
存在下列关系因此不符合BCNF要求:
(供应商)->(供应商联系人)
(供应商联系人)->(供应商)
并且存在数据操作异常及数据冗余
表12
供应商 | 商品ID | 商品数量 |
饮料一厂 | 1 | 10 |
饮料一厂 | 2 | 20 |
饮料二厂 | 1 | 20 |
表13
供应商 | 供应商联系人 |
饮料一厂 | 张三 |
饮料一厂 | 李四 |
饮料二厂 | 王五 |