范式
使用范式的好处:
- 更新操作通常要比不使用范式的要快
- 几乎不存在重复的数据
- 规范化的表通常更小,拥有更好的性能
- 当查询列表的值,不需要使用DISTINCE 和 GROUP BY 进行分组
使用范式缺点:
- 很多情况下都要联表查询
- 可能会一些索引策略无效
第一范式
表列具有原子性,不能再分解
第二范式
在第一范式的基础上,要求数据库表中的每个实例或者行可以被唯一区分。通常涉及一个主键来实现
第三范式
在第二范式的基础上,要求一个数据表中不包含已在其他表中已包含的非主键字段。即尽量使表的信息能够推导出来,能用外键就用外键。
BCNF范式
在第三范式的基础上,要求不存在关键字段决定关键字段。
反范式
优点:
- 尽可能避免联表操作
- 全表扫描可以尽量避免随机IO操作
- 一个表可以使用更加高效的索引策略