一、什么是范式

好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。

建立科学的,规范的数据库就需要满足一些规则来优化数据的设计和存储,这些规则就称为范式。

符合三大范式的数据库表,消除了数据冗余、更新异常、插入异常和删除异常。

二、第一范式

表中的某个列有多个值时,必须拆分为不同的列。
即第一范式每一列不可再拆分,称为原子性。

班级表
数据库设计三大范式——带你玩转数据库表

三、第二范式

在满足第一范式的前提下,表中的每一个字段都完全依赖于主键。
即第二范式就是在第一范式的基础上所有列完全依赖于主键列。

借书证表
数据库设计三大范式——带你玩转数据库表

四、第三范式

在满足第二范式的前提下,表中的每一列都直接依赖于主键,而不是通过其它的列来间接依赖于主键。
即是第三范式就是所有列不依赖于其它非主键列,也就是在满足 2NF 的基础上,任何非主列不得传递依赖于主键。

学生表
数据库设计三大范式——带你玩转数据库表

五、典型案例——论坛数据库设计

论坛用户表
数据库设计三大范式——带你玩转数据库表

发帖表
数据库设计三大范式——带你玩转数据库表

回帖表
数据库设计三大范式——带你玩转数据库表

版块表
数据库设计三大范式——带你玩转数据库表

六、三大范式总结

1NF 原子性:表中每列不可再拆分
2NF 不产生局部依赖,一张表只描述一件事情
3NF 不产生传递依赖,表中每一列都直接依赖于主键,而不是间接依赖于主键

相关文章: