BCNF是由Boyce和Codd提出的,比3NF又进了一步,通常认为是修正的第三范式.
所谓第三范式,定义是关系模式R<U,F>中若不存在这样的码X,属性组Y及非主属性Z,使得X—>Y,Y—>Z成立,(不存在Y—>X),则称R<U,F>为3NF.
即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
对3NF关系进行投影,将消除原关系中主属性对码的部分与传递依赖,得到一组BCNF关系。
BCNF定义,关系模式中,若X函数确定Y且Y不在X内时X必含有码,则此关系属于BCNF。
具有函数依赖集F的关系模式R属于BCNF的条件是,对所有F的闭包中形如
X->Y,下面至少有一个成立:
1X->Y是平凡的依赖。
2X是R的一个超码。
由于R∈BCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以R∈3NF。但是若R∈3NF,则R未必属于BCNF。