知识全景图/ 学科主线/ 大学计算机专业课程/ 数据库系统、SQL、事务与存储课群
Database Systems Curriculum

大学计算机数据库系统、SQL、事务与存储课群

这页补大学计算机专业里经常被低估的一门核心课:数据库系统。它不是只教 SQL 语法,也不是直接跳到某个数据库产品调参;它回答课程视角的问题:数据怎样被建模、约束、查询、索引、事务化、恢复、复制和在线演进。

核心系统课
承接数据结构、操作系统和网络,向分布式数据库与数据管理延伸
三层对象
业务数据库设计、关系查询语言、DBMS 内部机制
关键能力
把“数据错了 / 慢了 / 丢了 / 改不动”拆回模型、索引、事务、日志和演进边界
继续下钻
具体机制回到 `pages/tech/data/` 的数据库、存储引擎、索引、WAL、MVCC 和优化器专题
一、这组课共同回答什么问题

数据库课的核心不是“会写 SELECT”,而是理解长期存在的数据如何在并发、故障、变更和多人协作中保持可用与可信。

从业务事实到数据模型
课程先把现实对象翻译成表、列、主键、外键、约束和关系。这里决定了后面能不能查、能不能改、能不能审计,也决定业务系统是否会被脏数据拖住。
业务事实 实体关系 Schema 约束 演进
从查询结果到系统机制
一条 SQL 背后有解析、绑定、优化、执行、索引访问、缓存页、锁、日志和恢复。数据库系统课要把“结果对不对”和“系统怎样保证它对”接起来。
SQL 执行计划 索引 事务 恢复
一句话判断:如果你只会说“加索引”和“开事务”,但解释不了 B+Tree、隔离级别、WAL、MVCC、执行计划和在线迁移的边界,数据库课还没有真正接起来。
二、核心课程怎么分工
课程 / 模块主问题关键对象继续下钻
关系模型与数据库设计业务事实怎样变成可约束、可查询、可演进的数据结构实体、关系、范式、主外键、唯一约束、审计字段、软删除业务数据库设计
SQL 与关系代数怎样用声明式语言描述查询意图SELECT、JOIN、GROUP BY、子查询、窗口函数、关系代数SQL 执行器设计
索引与访问路径数据量变大后怎样避免全表扫描B+Tree、Hash、聚簇索引、覆盖索引、选择性、回表B+Tree 索引设计
查询执行与优化器数据库怎样选择更便宜的执行计划Parser、Binder、Planner、Executor、统计信息、代价模型、Join 顺序查询优化器设计
事务与并发控制并发读写怎样保持一致性ACID、隔离级别、锁、死锁、MVCC、快照、写写冲突事务系统设计 / MVCC 设计
存储引擎与恢复数据怎样落盘、缓存、刷脏、崩溃后恢复Page、RID、Heap File、Buffer Pool、Dirty Page、WAL、Checkpoint存储引擎设计 / WAL 和崩溃恢复
复制、分片与分布式数据库单机容量和可用性不够时怎样扩展主从复制、LSN、选主、分片键、路由、跨分片事务、热点治理分布式数据库设计
数据库演进与数据管理长期运行的数据怎样安全改表、回填、校验和被使用Schema 演进、约束、备份恢复、CDC、数据质量、口径数据库在线演进专题 / 数据治理专题
三、按学习阶段怎么推进

第一阶段:先会建模和写查询

从关系模型、表设计、约束和 SQL 开始。目标不是背语法,而是能把业务对象翻译成稳定 schema,并用查询表达清楚问题。

第二阶段:理解索引和执行计划

数据量一大,查询不再只是“写出来”,而是“怎样被执行”。要能读懂 EXPLAIN,理解选择性、回表、Join 顺序和统计信息失真。

第三阶段:接入事务、锁和恢复

数据库真正进入系统课,是从并发和故障开始的。隔离级别、锁、MVCC、WAL 和崩溃恢复解释了为什么“提交成功”不是一句口号。

第四阶段:进入分布式与在线演进

当系统长期运行,复制、分片、迁移、回填、对账、CDC 和数据治理会成为主问题。这里数据库课开始和操作系统、网络、分布式数据库机制合流。

四、真实卡点该回到哪门课
现象优先回到哪门课为什么不要只做
表越来越多,字段含义越来越乱数据库设计 + 约束建模对象边界、约束、命名、审计和生命周期没有稳定下来,后面查询和迁移都会变难只补一份字段说明
查询突然变慢索引 + 优化器 + 统计信息可能是选择性变化、索引失效、Join 顺序改变、回表过多或计划回归只盲目加索引
并发下偶发重复扣款或重复下单事务 + 隔离级别 + 幂等事务边界、唯一约束、锁粒度、重试和业务幂等要共同成立只加 synchronized 或只相信事务注解
数据库改表风险很大数据库演进 + 事务 / 恢复DDL、回填、读写切换、回滚和下游消费者都需要分阶段设计只在低峰期直接 ALTER
主从延迟或分片热点影响业务复制 + 分布式数据库LSN、同步策略、路由、分片键、热点写入和读写一致性都会影响体验只加机器
报表口径和业务系统对不上数据库 + 数据工程源系统事实、指标口径、同步链路、血缘和质量规则可能不一致只改报表 SQL
五、这页和其他课程页怎么分工
页面负责什么什么时候看
本页:数据库系统、SQL、事务与存储课群负责把数据库按大学课程顺序、系统机制和工程卡点接成学习路线你要补“数据库系统”这门课,而不是只查某个数据库产品用法时
数据结构、算法设计与复杂度课群负责 B+Tree、哈希、排序、Join、图和复杂度这些数据库机制的算法底座你想知道索引、执行计划和查询代价从哪里来时
操作系统课群负责文件、内存、IO、锁和并发这些数据库运行依赖的系统对象你要理解 Buffer Pool、WAL、锁等待和 IO 代价时
如何设计一个数据库负责 DBMS 内部主线:存储引擎、B+Tree、SQL 执行器、优化器、事务、WAL 和 MVCC你要理解“数据库软件本身怎么设计”时
网络课群负责网络协议、Socket、分布式通信和生产流量基础你遇到跨服务、跨节点、跨区域的数据一致性和延迟问题时
六、最小读法
学生课程路线
先关系模型和 SQL,再索引与执行计划,然后事务、锁、WAL、MVCC,最后进入复制、分片和在线迁移。不要把数据库课学成产品命令清单。
关系模型SQL索引事务恢复复制分片
工程回读路线
从一次真实数据事故倒着看:业务事实、schema 约束、事务边界、幂等、日志恢复、补偿对账、迁移回滚,每一层都要留下证据。
定位: 这页是大学计算机专业课程页的第二层下钻,负责把数据库系统、SQL、索引、事务、存储、恢复、复制、分片和在线演进放回课程依赖图;具体 DBMS 机制和生产数据库治理仍回到 `pages/tech/data/` 维护。
回到大学计算机专业课程 / 进入计算机课程阅读路线 / 进入网络、互联网协议与分布式通信课群 / 进入数据结构、算法设计与复杂度课群 / 进入操作系统、进程线程、内存与并发课群 / 进入如何设计一个数据库 / 回到知识全景图