关系模型
概述
关系模型是 E.F. Codd 于1970年提出的数据管理范式,用数学中的关系(满足特定约束的二维表)作为数据的统一逻辑表示,将数据操作建立在集合论和一阶谓词逻辑的数学基础之上。
关键内容
核心概念
关系(Relation):定义在 n 个域(domain)的笛卡尔积之上的子集。直观上是一个二维表:每列对应一个属性(attribute),每行是一个元组(tuple)。
关系的数学性质: - 元组是无序的(与物理存储顺序无关) - 不允许出现重复的元组(保证数据唯一性) - 属性值必须是原子的(不可再分,即第一范式要求)
数据独立性
与层次/网状模型的区别
| 特性 | 层次/网状模型 | 关系模型 |
|---|---|---|
| 数据表示 | 指针链、树/图结构 | 二维表 |
| 查询方式 | 导航式(沿指针遍历) | 声明式(描述需要什么) |
| 物理耦合 | 高度耦合 | 完全解耦 |
| 数学基础 | 无 | 集合论 + 谓词逻辑 |
历史影响
- 取代了层次模型(IBM IMS)和网状模型(CODASYL)
- 催生了 Oracle、DB2、MySQL、PostgreSQL 等关系数据库产品
- SQL 成为历史上使用最广泛的声明式编程语言
- Codd 于1981年获得图灵奖
当代延续
- NewSQL(CockroachDB、TiDB、Google Spanner)在分布式环境下保持关系语义
- Text-to-SQL 技术将声明式查询推向自然语言层面
- "SQL-on-everything"成为通用数据查询趋势
来源
- raw/books/计算机科学/07-codd-relational-model.md