type: concept status: active confidence: 0.95 created: 2026-04-17 updated: 2026-04-17 last_accessed: 2026-04-17 source_count: 1 tags: [技术, 研究, 数学, 计算理论, AI工程] - 技术 - 研究 - 数学 - 计算理论 aliases: - Normalization - 数据库规范化 - 范式 relates_to: - target: "关系模型" type: part_of confidence: 0.95 note: 关系模型的设计方法论 - target: "E.F. Codd" type: caused_by confidence: 0.95 note: 开创者 - target: "关系模型论文" type: caused_by confidence: 0.9 note: 论文中引入了第一范式概念 - target: "数据独立性" type: related_to confidence: 0.8 note: 规范化有助于实现数据独立性 supersedes: null
规范化理论
概述
规范化理论是 Codd 提出的数据库设计科学化方法论,通过系统化的分解过程消除关系中的数据冗余和更新异常,使数据库设计从依赖经验的"手艺"升级为基于数学原理的"工程"。
关键内容
第一范式(1NF)
Codd 在1970年论文中主要讨论了第一范式:一个关系处于第一范式,当且仅当其所有属性的值域都是原子的——不允许表中嵌套表,不允许一个单元格中存储一组值。
从层次模型到 1NF:层次模型中一个记录内部可以包含"重复组"(如订单记录内嵌多个订单项),1NF 要求将其"拍平"为独立的关系,通过外键关联。
后续发展
- 第二范式(2NF)和第三范式(3NF):Codd 在后续工作中进一步发展
- Boyce-Codd 范式(BCNF):Raymond Boyce 和 Codd 共同提出
消除的异常
规范化旨在消除三种更新异常: - 插入异常:无法插入某些数据,因为缺少其他无关数据 - 删除异常:删除某些数据时意外丢失其他数据 - 修改异常:修改一处数据需要同时修改多处副本
无损分解
规范化过程的一个重要性质:将一个包含冗余的关系分解为多个满足更高范式的关系后,通过自然连接可以无损地恢复原始关系。这确保了规范化过程不会丢失任何信息。
意义
规范化理论为数据库设计提供了第一个科学化的方法论框架,取代了此前纯粹依赖经验的设计方式。它通过函数依赖(functional dependency)等数学概念,精确地定义了什么是"好的"数据库设计。
来源
- raw/books/计算机科学/07-codd-relational-model.md