候选键=候选码:能够唯一标识一条记录的最小属性集
主键=主码:某个能够唯一标识一条记录的最小属性集(是从候选码里人为挑选的一条)
主属性 包含在任一候选码中的属性称主属性。简单来说,主属性是候选码所有属性的并集
非主属性 不包含在候选码中的属性称为非主属性。 非主属性是相对于主属性来定义的。
第二范式:消除非主属性对主属性的部分依赖
如果你的主属性是一个字段,那没什么说的,肯定是满足第二范式的。但是主属性是多个字段呢?那就看每一个非主属性是否完全依赖主属性组,如果只依赖主属性组中的部分属性,该情况就不符合第二范式。第二范式:消除非主属性对主属性的部分依赖 。
第三范式:消除非主属性对主属性的传递依赖。
很好理解,就是非主属性必须直接依赖主属性,不能通过一个非主属性来传递一下。
BCNF:消除主属性之间的部分依赖于传递依赖。与非主属性无关。
称Y部分函数依赖于X。
举个例子:通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。
完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
举个例子:通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB.
传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
举个例子:通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么成C传递依赖于A