概述
数据库范式就是数据库设计时需要满足的规范,只有满足这些规范才能保证数据库的冗余小、结构明确,这也直接影响着数据库性能的发挥。数据库开发人员需要遵守范式建立出科学规范的数据库结构。
目前对于关系型数据库有六种范式
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- 巴斯-科德范式(BCNF)
- 第四范式(4NF)
- 第五范式(5NF,又称完美范式)
一般来说数据库只需要满足前三范式就可以了。
三大范式
第一范式(1NF)
1、每一列属性都是不可再分的属性值,确保每一列的原子性
2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。
简单的来说就是列不能在分割成其他列,一列中只放一种相关的信息。
第二范式(2NF)
第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
满足1NF,表必须要有主键,非主键字段完全依赖主键字段。
第三范式(3NF)
满足2NF,第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。