词条 | bcnf |
释义 | 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的一个超码。 一个满足BCNF的关系模式有: 1 所有非主属性对每一个码都是完全函数依赖; 2 所有的主属性对每一个不包含它的码,也是完全函数依赖; 3 没有任何属性完全函数依赖于非码的任何一组属性。 由于R∈BCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以R∈3NF。但是若R∈3NF,则R未必属于BCNF。 例如:关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一个教师只教一门课。每门课有 若干个教师,某一学生选定某门课,就对应一个固定的教师。由语义可得到如下函数依赖: (S,J)->T;(S,T)->j;T->J。 (S,J),(S,T)都是候选码。 STJ是3NF,因为没有任何非主属性对码传递依赖或部分依赖。但STJ不是BCNF关系,因为T是决定因素而T不包含码。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。