6种范式:
- 第一范式(1NF):数据库中的表的所有字段值都是不可分割的原子数据项。
- 第二范式(2NF):第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
- 第三范式(3NF):第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
- 巴斯-科德范式(BCNF):在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖)。
- 第四范式(4NF):要求把同一表内的多对多关系删除。
- 第五范式(5NF,又称完美范式):从最终结构重新建立原始结构。
一般来书,数据库设计只需要满足第三范式就行了。
- 范式的包含关系:一个数据库设计如果符合第二范式,那么一定也符合第一范式。如果符合第三范式,那么一定符合第二范式······
参考https://www.cnblogs.com/chenyang920/p/5268153.html容易理解。
参考https://www.zhihu.com/question/24696366偏向数学上的解释。