目前,数据库的范式主要分为6种:第一范式,第二范式,第三范式,BC范式(巴斯-科德范式),第四范式和第五范式。
第一范式:
关系模型的所有属性都是不可分割的基本数据项,即每个属性都只包含单一的值。
特点:
实体的属性不能再分
规则如下:
1) 两个含义重复的属性不能同时存在于一个表中。
2) 一个表中的一列不能是其他列的计算结果。
3) 一个表中的一列的取值不能有多个含义。
第二范式:
要满足第二范式,必先满足第一范式要求数据库表的每一列都与主键相关。
第三范式:
建立在第二范式的基础上,数据表中如果不存在非关键列对任一主键的传递函数依赖。
我的理解是:
一张表中不能存在部分依赖,即外键存在的意义。
例如:
当描述一个学生的信息时,学生的联系方式包含多个信息,例如联系电话,家庭住址等。
根据第三范式,不能将其放入一张表中,可用外键将练联系方式独立出来。