数据库系统概述
什么是数据库系统
数据库系统研究的是如何高效、可靠、安全地存储和检索大量数据。现代数据库系统不只是"存数据",它要解决的核心问题包括:如何快速查找(索引)、如何保证并发操作不冲突(事务和锁)、如何在系统故障时不丢数据(持久化和恢复)。
为什么要学数据库系统
后端开发的基石。 不管是 Web 开发、微服务还是 AI 应用,数据存取都是绕不开的环节。
理解数据存储的本质。 向量数据库本质上也是一种数据库,只是索引方式从 B+ 树变成了向量近似搜索。
面试必考。 事务 ACID、索引原理、SQL 优化——这些是后端面试的铁题。
考研 408 核心科目。 分值约 25 分。
核心知识模块
关系模型与 SQL
- 关系模型、关系代数、SQL
存储与索引
- B+ 树索引、哈希索引、聚簇索引
查询处理与优化
- 执行计划、连接算法、查询优化器
事务处理
- ACID、并发控制、隔离级别、MVCC
故障恢复
- WAL、ARIES 算法、检查点
怎么学
理论和实践并重。 光看书不写 SQL,概念永远是纸上谈兵。
从一个具体数据库入手。 推荐先学 MySQL。
做 CMU 15-445 实验。 实现一个完整的数据库系统。
本模块资源
| 资源 | 类型 | 说明 |
|---|---|---|
| CMU 15-445 | 课程 | CMU 数据库系统,实现完整数据库 |
| Berkeley CS186 | 课程 | Berkeley 数据库课程 |
| DDIA | 教材 | 数据密集型应用系统设计 |