一、什么是范式
好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。
建立科学的,规范的数据库就需要满足一些规则来优化数据的设计和存储,这些规则就称为范式。
符合三大范式的数据库表,消除了数据冗余、更新异常、插入异常和删除异常。
二、第一范式
表中的某个列有多个值时,必须拆分为不同的列。
即第一范式每一列不可再拆分,称为原子性。
班级表
三、第二范式
在满足第一范式的前提下,表中的每一个字段都完全依赖于主键。
即第二范式就是在第一范式的基础上所有列完全依赖于主键列。
借书证表
四、第三范式
在满足第二范式的前提下,表中的每一列都直接依赖于主键,而不是通过其它的列来间接依赖于主键。
即是第三范式就是所有列不依赖于其它非主键列,也就是在满足 2NF 的基础上,任何非主列不得传递依赖于主键。
学生表
五、典型案例——论坛数据库设计
论坛用户表
发帖表
回帖表
版块表
六、三大范式总结
1NF 原子性:表中每列不可再拆分
2NF 不产生局部依赖,一张表只描述一件事情
3NF 不产生传递依赖,表中每一列都直接依赖于主键,而不是间接依赖于主键