关系模型的三种范式(1NF、2NF、3NF)是数据库设计的核心规范,用于消除数据冗余、确保数据一致性。 第一范式要求数据原子性,第二范式解决部分依赖,第三范式消除传递依赖。遵循范式能提升数据库效率,但需权衡实际业务需求。
1. 第一范式(1NF)
- 数据原子性:每列不可再分,确保字段值单一。
- 唯一标识:每行需有主键,避免重复记录。
- 示例:将“地址”拆分为省、市、街道等独立字段。
2. 第二范式(2NF)
- 消除部分依赖:非主键字段必须完全依赖主键(针对复合主键)。
- 拆分表结构:若部分字段仅依赖主键的一部分,需拆分为多张表。
- 示例:订单表中,商品名称应依赖订单ID+商品ID,而非仅订单ID。
3. 第三范式(3NF)
- 消除传递依赖:非主键字段间不能存在依赖关系。
- 进一步拆分:将间接依赖的字段移至新表,仅通过外键关联。
- 示例:员工表中,部门名称不应直接存储,而应通过部门ID关联部门表。
总结:三种范式层层递进,但过度规范化可能增加查询复杂度。实际设计中需结合业务场景,灵活平衡范式要求与性能需求。