通俗理解主属性,范式!

主属性?

候选码的诸属性叫做主属性,一个关系关系表的候选码可能有多个,每个候选码可能包括多个主属性(多个属性列)。概括来说,就是,只要是可以用某一列或者多列能够推出关系表中的所有的列,这个时候,那个某一列或多列就是一个候选码,所有候选码的所有属性列都称为主属性。

何为1NF?

所有属性都是不可分的!

何为2NF?

所有的属性列只能有候选码决定,不能有候选码的一部分决定!(不懂不看这句话,容易乱——这里是非候选码的属性,就是非主属性)也就是消除部分函数依赖!

何为3NF?

在2NF的基础上添加一条,不存在传递函数依赖,意思就是候选码决定非候选码的列的时候不能依靠传递性得到,(比如A决定B,B能决定C,属性列只有ABC三列,这个时候A为候选码,只有一个属性列,A就是主属性,但是A决定C的时候是通过非主属性B得到的,那么,此时这个ABC三个属性列就不是3NF)

何为BCNF?

在3NF的基础上添加了一条候选码和主属性之间的约束,如果确定是3NF那么他如果只有一个候选码,就不用考虑这个只需要考虑,有没有属性列依赖于非候选码。如果,没有就是3NF,如果有两组候选码,两组里面的所有属性都是主属性,第一组的主属性必须完全依赖于第二组候选码,反正也一样(通俗点就是,第一组候选码中的所有属性列只能够被第二组候选码决定。第二组候选码中的所有属性列只能被第一组的候选码决定。)一句话,决定因素是不是候选码,不能是非候选码或者候选码的一部分。

你可能感兴趣的:(学习经验)