数据库系统课程总笔记
课程笔记按模型、查询、设计、存储、事务、恢复、分布式和工程串联全课。
关联:全课程
《数据库系统》课程总笔记
一条主线
这门课把数据库看成共享状态管理系统,而不是 SQL 关键字合集。十二章依次是:数据库不是表格软件:先建立系统观、关系模型与关系代数、SQL 基础:从模式到可靠查询、SQL 进阶:连接、聚合与分析、概念建模、函数依赖与范式、存储、页、缓冲与索引、查询处理与优化、事务、隔离与并发控制、日志、恢复与高可用基础、分布式数据库与 NoSQL 边界、安全、权限与数据治理、数据库工程项目:从需求到上线。每次学习都沿同一条证据链推进:先说清结果中一行代表什么,再声明键和不变量;随后选择关系算子、存储结构或并发协议;最后用正常样例、边界反例和故障恢复证明设计成立。
模型与查询
关系 是元组集合,选择 保留满足谓词的行,投影 保留属性,连接 。SQL 的逻辑顺序按 FROM/ON、WHERE、GROUP BY、HAVING、SELECT、DISTINCT、ORDER BY、LIMIT 理解。遇到复杂查询,先写输出粒度,再把候选集、证据关系、否定量词和聚合分层为 CTE。NULL 进入三值逻辑,任何 NOT IN、外连接过滤和 COUNT 都要专门反查空值。
模式设计
候选键同时满足唯一性与最小性。函数依赖 是对全部合法实例的语义承诺;属性闭包 用于判断超键和依赖蕴含。规范化要同时检查冗余、无损连接与依赖保持,不能机械追求最高范式。把 ER 的基数与最小参与约束落实为主键、唯一、外键、非空、检查或事务级断言。
存储与优化
沿记录、槽式页、文件、缓冲池、索引理解 I/O。B+ 树适合等值和范围,哈希偏等值,复合索引受左前缀、选择率、聚簇与覆盖影响。优化时从 EXPLAIN 的第一个估算偏差出发;嵌套循环、哈希、归并连接没有绝对优劣。每个索引都登记读收益、写放大、空间、构建时间和删除条件。
事务与恢复
ACID 必须分开验收。冲突可串行化用优先图无环判断;严格 2PL、死锁处理和 MVCC 各有边界,快照仍可能写偏斜。WAL 要求数据页落盘前日志先稳定,提交成功前提交记录稳定。恢复按分析、重做、撤销理解;备份必须通过真实恢复演练,RPO/RTO 才有证据。
分布式、安全与工程
分布式设计先说明容量、地域或故障域目标,再选择分片和复制。CAP 只讨论分区期间的一致性与可用性取舍;NoSQL 类型按访问模式与原子边界选择。安全上坚持参数化、最小权限、行列隔离、加密密钥生命周期与可审计删除。项目交付包括模式、迁移、查询计划、并发脚本、恢复记录、监控门禁和复现手册。
复习法
每节完成三类绑定题:单选辨条件,多选补证据链,计算或 SQL 推演写步骤;每章再完成 SQLite 代码实验与阶段卷。错题不要只改选项,要标注是粒度、量词、NULL、基数、成本、并发历史还是故障模型判断错误。一周后换表名和数据重做,若还能独立推演,才算迁移成功。