修正的第三范式(
BCNF
)
1.
定义
当下面性质成立时,一个数据库模式中的表
T
及函数依赖集
F
被称为符合
Boyce-Codd
范式(
BCNF
):任何
F
可推导出的函数依赖
X->A
都在
T
中,这里
A
是不在
X
中的单一属性,
X
必须是
T
的一个超键。当一个数据库模式包含的所有表都符合
BCNF
时,这个数据库被称为符合
BCNF.
2.
说明
BCNF
是比第三范式更严格一个范式。它要求关系模型中所有的属性(包括主属性和非主属性)都不传递依赖于任何候选关键字。也就是说,当关系型表中功能上互相依赖的那些列的每一列都是一个候选关键字时候,该满足
BCNF
。
BCNF
实际上是在第三范式的基础上,进一步消除了主属性的传递依赖。
3.
举例
有这样一个配件管理表
WPE(WNO,PNO,ENO,QNT),
其中
WNO
表示仓库号,
PNO
表示配件号,
ENO
表示职工号,
QNT
表示数量。
有以下约束要求:
(1)
一个仓库有多名职工;
(2)
一个职工仅在一个仓库工作;
(3)
每个仓库里一种型号的配件由专人负责,但一个人可以管理几种配件;
(4)
同一种型号的配件可以分放在几个仓库中。