三大范式介绍
- 是什么
数据库设计表时,有三种规则或者原则,叫做三大范式 - 第一范式
确保每一列的原子性(做到每列不可拆分)所做的操作就是拆列
- 第二范式
在第一范式的基础上,每列都要和主键(直接或者间接)相关 所做的操作就是拆表 - 案例
此表的产品数量、产品折扣、产品价格、与“订单号”和“产品号”都相关,但是订单金额和订单时间仅与“订单号”相关,与“产品号”无关
- 第三范式(3NF)
在第二范式的基础上,每列都和主键直接相关(数据比较少冗余)操作是使用外键 - 案例
所有属性都完全依赖于学号,所以满足第二范式,但是“班主任性别”和“班主任年龄”直接依赖的是“班主任姓名”,而不是主键“学号”
反三范式
- 介绍
反三范式是基于第三范式所调整的,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。 - 目的
1.为了更好更方便的满足业务需求
2为了获取更高的数据库查询性能 - 我们在设计数据库的时候,既要考虑数据库的规范度,同时也要考虑数据库的执行效率