首先理解几个概念,
函数依赖:设R(U)是属性集上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不能存在两个元组在X上的属性值星等,而在Y上的属性值不等,即是说这里X可以唯一确定Y,则称,X函数确定Y或Y函数依赖于X,记作X–>Y。
完全函数依赖:在R(U)中,如果X–>Y,并且对于X的任何一个真子集X‘,都有X’-/->Y,记作 X-f->Y; (f为箭头的上标)
部分函数依赖:若X–>Y,但Y不完全依赖于X,则称Y对X部分函数依赖。X-p->Y
传递函数依赖:在R(U)中,如果X–>Y(Y不真含于X,也即X不真包含Y),Y-/->X,
Y–>Z,Z不真含于Y,则称Z于X传递函数依赖。记作,X-传递->Z
另外码(键)的概念,参考
https://blog.csdn.net/liushuijinger/article/details/12832017
几种范式定义:
2NF,若R属于1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R属于2NF。
3NF,设关系模式R<U,F>属于1NF,若R中不存在这样的码X,属性Y以及非主属性Z(Z不真包含Y)使得X-->Y,Y-->Z成立,Y-/->X,则R<U,F>属于3NF。 BCNF,关系模式R<U,F>属于1NF,若X-->Y且Y不真包含于X时X必含有码,则R<U,F>属于BCNF。也就是说关系模式R中,每一个决定因素都包含码。满足BCNF的关系模式具备的条件: 1)所有非主属性对每一个码都是完全函数依赖 2)所有主属性对每一个不包含它的码也就是完全函数依赖 3)没有任何属性完全函数依赖于非码的任何一组属性
来源:https://www.cnblogs.com/zhoading/p/10928770.html