邻接学科概念 / Normalization and Denormalization
规范化与反规范化
规范化是通过拆分表和明确依赖来减少不必要重复与更新异常;反规范化是在有明确读写权衡时主动保留部分重复。
关键字段
Identity · 身份
- 子类型
- 对比
- 父级类目
- 数据库设计
What · 是什么
- 定义
- 规范化是通过拆分表和明确依赖来减少不必要重复与更新异常;反规范化是在有明确读写权衡时主动保留部分重复。
- 前置知识
- 数据库设计流程、表、行、列与记录
Why · 为什么
- 核心问题
- 数据应该拆到什么程度,才能减少矛盾又不让查询难以维护?
- 作用机制
- 把不同粒度的事实分开,使字段依赖于正确的键;反规范化则需要说明重复来源、同步方式和失效风险。
Where · 在哪里
- 表现形式
- 作者信息只保存一次,book_authors 保存关联;报表可能为读取速度保留预计算数量。
How · 怎么做
- 主要用途
- 检查重复事实、插入更新删除异常,并为性能或使用便利做有意识的权衡。
Evidence · 证据
- 局限与边界
- 范式不是越高越好,也不是只背 1NF、2NF、3NF 名称;实际取舍要结合查询、规模、并发和维护成本。
Lifecycle · 生命周期
- 状态
- 草稿
Content · 补充内容
- 兼容标签
- 关系型数据库 · 范式 · 案例
Relation · 关联
- 相关内容
- 表、行、列与记录
相关设计机制
关系来自本地关系表,并包含反向关联。
- 数据库设计Database Design属于
研究如何把真实问题中的对象、属性和关系组织成可靠、可查询、可维护的数据结构。
- 关系型数据库与图数据库如何选择Choosing Relational or Graph Databases反向 · 依赖于
数据库选择应根据数据结构、主要查询、完整性要求、事务边界、团队生态和运维成本做权衡,而不是根据流行程度决定。
- 约束与数据完整性Constraints and Data Integrity反向 · 依赖于
约束是数据库强制执行的数据规则;数据完整性是数据在结构、引用、取值和业务事实上的正确性与一致性。
- 数据库设计流程Database Design Process依赖于
数据库设计流程是把业务需求逐步转成概念模型、关系表、约束和可验证查询的过程。
- 表、行、列与记录Tables, Rows, Columns and Records依赖于
表是同类事实的集合,行或记录是一条事实,列是这类事实的属性,单元格是某条事实在某个属性上的值。