BC正規化

维基百科,自由的百科全书
跳转至: 导航搜索

Boyce-Codd范式英语Boyce-Codd normal form,缩写BCNF),是数据库规范化中所使用的一种正规形式。是在第三范式的基础上加上更严格约束,每个BCNF关系是第三范式的子集,有从属关系。它的定义是:

如果对于关系模式R中存在的任意一个非平凡函数依赖X->A,都满足X是R的一个候选键,那么关系模式R就属于BCNF,。

BCNF与第三范式的不同之处在于,第三范式允许A是主属性(第三范式中不存在非主键被另一个非主键决定),而在BCNF中,任何属性(包括非主键和主键)都不能被非主键所决定。

范例[编辑]

关系模式R:

Property_id#(主键) County_name Lot# Area

其中依赖关系如下: Property_id#->{County_name,Lot#,Area}; {County_name,Lot#}->{Property_id#,Area}; Area->County_name;

很明显最后一个依赖违反了BC范式的要求,Area不是关系模式R的主键,而依赖于它的County_name是能够决定其他属性的主属性。故应当规范化为:

Property_id#(主键) County_name Lot#
Area(主键) County_name

参考文獻[编辑]

外部連結[编辑]


数据库规范化

第一正規化 | 第二正規化 | 第三正規化
BC正規化 | 第四正規化 | 第五正規化 | DK正規化 | 第六正規化
反正規化