数据库设计的三个范式

📅 2026/7/2 11:57:50
数据库设计的三个范式
数据库设计的三个范式Normal FormsNF是关系数据库规范化理论的核心用于减少数据冗余、避免更新异常。以下是详细说明第一范式1NF原子性定义表中的每个字段值都是不可再分的原子值。要求每个单元格只包含单一值不能有重复的列不能有重复的行需有主键反例不符合1NF表格学生ID姓名联系方式001张三手机:138001, 邮箱:zsqq.com正例符合1NF表格学生ID姓名手机号邮箱001张三138001zsqq.com第二范式2NF消除部分依赖定义在满足1NF的基础上非主键字段必须完全依赖于整个主键不能只依赖主键的一部分。适用场景主键为复合主键多个字段组合时。反例选课表主键为学生ID 课程ID表格学生ID课程ID课程名称成绩001C01数学90问题课程名称只依赖于课程ID与学生ID无关——存在部分依赖。正例拆分为两张表选课表表格学生ID课程ID成绩001C0190课程表表格课程ID课程名称C01数学第三范式3NF消除传递依赖定义在满足2NF的基础上非主键字段必须直接依赖于主键不能通过其他非主键字段传递依赖。反例学生表表格学生ID姓名班级ID班级名称班主任001张三B01一班王老师问题班级名称和班主任依赖于班级ID而班级ID又依赖于学生ID——存在传递依赖。正例拆分为两张表学生表表格学生ID姓名班级ID001张三B01班级表表格班级ID班级名称班主任B01一班王老师范式对比总结表格范式核心目标解决的问题1NF字段原子性重复组、多值属性2NF完全依赖部分依赖复合主键时3NF直接依赖传递依赖实际设计建议并非越高越好过度规范化如BCNF、4NF、5NF会导致表数量激增查询时需要大量JOIN影响性能适度反规范化在读取频繁、对性能要求高的场景如报表系统可适当保留冗余字段优先考虑3NF大多数OLTP系统遵循到3NF即可平衡数据一致性和查询效率OLAP场景数据仓库通常采用维度建模星型/雪花模型不完全遵循范式口诀1NF拆属性2NF拆部分3NF拆传递。