Database normalization was introduced as a procedure by Edgar Frank Codd, a computer scientist at IBM in his paper, A Relational Model of Data for Large Shared Data Banks in 1970. Database normalization is a process by which an existing schema is modified to bring its component tables into compliance through a series of progressive normal forms.
Basic
- https://en.wikipedia.org/wiki/Database_normalization#Normal_forms
- 数据库的表设计的基础(关系型数据库模型)
- 范式 - normal form
- 范式程度越高阶,冗余度越低
- 小心过度解耦 - 拆出过多的表 - 认知负担|I/O性能|影响查询效率
- trade-on
examples
- https://en.wikipedia.org/wiki/Database_normalization#Normal_forms
- 示例可以直接看wiki里面的
- 尽量满足3 NF
1 NF
- 属性值不可再分
- 原子性
2 NF
- 去除局部依赖
- 如果不处理,会有什么问题(冗余 | 插入/删除/更新异常)
3 NF
- 去除非主属性的传递依赖