什么是范式
范式:关系模型原理的核心是“规范化”概念,规范化是把数据库组织成在保持存储数据完整型的同时又能最小化冗余的过程。规范化的数据库是符合关系模型规则的数据库,这些规则叫做范式。
第一范式(1NF):
数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
原则:
*数组的每个属性只能包含一个值
*关系中的每个数组必须包含相同数量的值
*关系中的每个数组一定不能相同
例子:
如图所示就不符合第一范式,因为最后一栏里姓名这个属性有多个属性值
接下来,将这个表变成第一范式
第二范式(2NF):
如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段。(不含有部分依赖)
例子:
如图,除了负责人部门不依赖项目编号外,其余都依赖项目编号,这不满足第二范式!
现在将这个表换成满足第二范式的表,因为负责人部门依赖于负责人,所以拆开!如图,这样下面的两个表就满足第二范式了!
第三范式(3NF):
如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数据值之间不存在函数信赖关系,那么该数据表满足第三范式。(不含有传递依赖)
例子:
如图所示
工资列与奖金列就有一定的函数关系,就是说工资的多少决定奖金的多少,我们将奖金这列去掉就满足第三范式了。