导语
数据库规范化是使用一系列的范式去构建关系型数据库,从而减少数据依赖和提高数据一致性。现代数据库一般满足3NF,范式过高虽然对数据关系有更好的约束性,但也导致数据关系表增加、数据库IO更频繁。本文对1NF、2NF、3NF、BCNF加以说明。
1 - 第一范式
(1) 实体中属性不可再分--值域为原子值,即属性项不能是属性组合。
(2) 每个字段的值都只能是单一值,即属性项不能是属性组合。
例如,“电话号码” 这一个属性中,可能存在某一记录既有手机号又有座机号,那么该设计不符合第一范式。需要将该属性拆分成两列 -- “手机号”和“座机号”
2 - 第二范式
(1) 满足第一范式
(2) 非主键属性必须完全依赖于主键,不能只依赖于主键的一部分
3 - 第三范式
(1) 满足第二范式
(2) 非主键属性必须直接依赖于主键,不能存在传递依赖