数据库系统 = 把现实信息可靠、独立、可共享地存进机器,并高效取出。
文件系统只提供「按名字读写字节」,关联、约束、并发全由应用自己扛;DBMS 把这些下沉为专门软件:
| 能力 | 文件系统 | 数据库系统 |
|---|---|---|
| 数据结构化 | 无,字节流 | 有(关系/文档/图) |
| 数据共享 | 难,各自私有 | 集中统一,多用户 |
| 一致性约束 | 应用自写 | DBMS 强制(主键/外键/检查) |
| 并发与恢复 | 应用自写 | 内置(事务、日志) |
| 数据独立性 | 无 | 三级模式两层映像保证 |
DBMS 屏蔽存储细节,应用只面对逻辑数据 → 数据独立性。
数据模型 = 现实→机器的抽象规则(数据怎么组织、怎么联系)。三种形态:
层次模型 网状模型 关系模型
┌────────┐ ┌────────┐ 表(二维结构)
│ 系 │ │ 系 ──┤ 学生(学号,姓名,系)
│ │ │ │ │ │\ │ ┌────┬────┬────┐
│ 教 学 │ │ 教 学 │ │S001│张三 │ CS │
│ │ │ │ │ │ └────┴────┴────┘
│ 研 │ │ 研 ──┘ 联系 = 公共属性(外键)
└────────┘ └────────┘
一对多树,父子指针 多对多网,指针链 集合代数,值匹配
ANSI/SPARC 分三层,两层映像解耦:
外部层 外模式1(视图A) 外模式2(视图B) ← 每个应用的视角
│ 外模式/模式映像 ← 逻辑独立性
概念层 模式(全局逻辑结构) ← 全库唯一的逻辑视图
│ 模式/内模式映像 ← 物理独立性
内部层 内模式(存储结构、索引、物理文件) ← 磁盘上的样子
外模式(视图):单个用户看到的数据,可隐藏、裁剪。
模式(概念模式):全库逻辑结构(有哪些表、什么约束),不管物理。
内模式(存储模式):数据怎么存、用什么索引、聚簇与否(见第 9 章)。
逻辑独立性:改模式不改外模式。
物理独立性:改内模式不动模式(加索引、换存储)。
用户/应用
│ SQL
┌──▼──────────────┐
│ 查询处理器 │ 解析 → 优化 → 执行(见第 9 章)
├─────────────────┤
│ 存储管理器 │ 缓冲池、文件组织、索引
├─────────────────┤
│ 事务管理器 │ 并发控制(第 7 章)、故障恢复(第 8 章)
├─────────────────┤
│ 数据字典 │ 元数据:表结构、约束、索引定义
└─────────────────┘
对比:层次最简但僵化;网状灵活但程序员须自己导航指针;关系数学基础、声明式、独立性最好,代价是连接/规范化开销(第 5 章)。演进把复杂度从「写指针」转给「DBMS 优化」。