2026/1/25 4:32:38
网站建设
项目流程
电子商务网站建设评估工具有哪些,广州建设工程造价信息网,粤康码小程序,蚌埠注册公司“一二三范式”通常是指数据库设计中的 第一范式#xff08;1NF#xff09;、第二范式#xff08;2NF#xff09;、第三范式#xff08;3NF#xff09;#xff0c;它们是关系型数据库规范化#xff08;Normalization#xff09;理论的核心内容#xff0c;目的是减少数…“一二三范式”通常是指数据库设计中的第一范式1NF、第二范式2NF、第三范式3NF它们是关系型数据库规范化Normalization理论的核心内容目的是减少数据冗余、避免更新异常、提高数据一致性。下面用通俗易懂的方式解释这三个范式 0. 前提什么是“范式”范式 数据表设计的“规范标准”。满足更高范式意味着数据结构更合理、更健壮。一般实际开发中满足第三范式就足够了。✅ 第一范式1NF字段不可再分要求表的每一列都是原子性的不可再拆分的最小单位❌ 反例学号姓名电话号码001张三13800138000, 13900139000→ “电话号码”一列包含两个值违反 1NF。✅ 正确做法拆成多行或多列学号姓名电话号码001张三13800138000001张三13900139000或者如果最多两个号码 | 学号 | 姓名 | 电话1 | 电话2 |✅核心每个单元格只能存一个值✅ 第二范式2NF消除部分依赖前提已满足 1NF要求非主键字段必须完全依赖于整个主键不能只依赖主键的一部分⚠️ 适用场景主键是复合主键由多个字段组成时❌ 反例订单明细表订单ID商品ID商品名称商品价格数量O1P1苹果5元2主键 (订单ID, 商品ID)但 “商品名称”、“商品价格”只依赖于“商品ID”和“订单ID”无关 →部分依赖→ 如果商品价格变了所有历史订单都要改容易出错✅ 正确做法拆表商品表商品ID主键、商品名称、商品价格订单明细表订单ID、商品ID、数量✅核心非主键字段不能“只靠主键的一部分活着”✅ 第三范式3NF消除传递依赖前提已满足 2NF要求非主键字段之间不能有依赖关系所有非主键字段都直接依赖主键而不是依赖其他非主键字段❌ 反例学号姓名系名系主任001张三计算机李教授主键学号依赖关系学号 → 系名 → 系主任→ “系主任”依赖于“系名”而不是直接依赖“学号” →传递依赖→ 如果“计算机系”换了系主任所有该系学生记录都要更新✅ 正确做法拆表学生表学号主键、姓名、系名院系表系名主键、系主任✅核心非主键字段之间不能“互相依赖”都必须直连主键 一句话总结三大范式范式核心思想1NF字段不可再分原子性2NF非主键字段必须完全依赖整个主键消除部分依赖3NF非主键字段之间不能互相依赖消除传递依赖 实际应用建议大多数业务系统设计到3NF 就够了。有时为了查询性能如报表、大数据分析会故意反范式化增加冗余这是合理的权衡。范式不是教条而是指导原则——目标是让数据更可靠、更易维护。