数据库系统概念(原书第7版)
Database System Concepts, 7th Edition
数据库领域的圣经级教材
数据库系统领域的经典教材,被全球数百所大学采用。全面讲解关系数据库、SQL、数据库设计(ER模型与规范化理论)、事务处理、并发控制、恢复系统、数据存储与索引等核心主题。第7版新增了大数据、NoSQL、分布式数据库等现代内容。
关联抽象层级
本教材覆盖以下抽象层级,帮助你建立从底层到顶层的完整知识体系。
为什么读这本书
数据库是几乎所有应用系统的基石。这本书不仅教你如何使用 SQL,更深入讲解数据库内部的实现原理:查询如何被优化、事务如何保证一致性、并发控制如何工作、崩溃后如何恢复。理解这些原理,才能写出高效的查询、设计合理的数据库、排查性能问题。
章节导览
引言
数据库系统的全貌
本章是全书的导论,介绍数据库系统的基本概念、数据模型的演进(从文件系统到关系数据库再到对象数据库),以及数据库管理员的职责。
关系代数介绍
关系数据库的数学基础
关系模型是关系数据库的理论基础。本章讲解关系代数运算:选择、投影、并、差、笛卡尔积、连接等。
SQL 基础
结构化查询语言
SQL 是关系数据库的标准查询语言。本章讲解 SQL 的基本语法:数据查询、数据定义、数据操纵。
中级 SQL
高级查询技术
本章深入讲解 SQL 的高级特性:复杂的连接操作、视图的更新、事务的概念、完整性约束的定义。
高级 SQL
现代 SQL 特性
本章讲解 SQL 的现代特性:递归查询、OLAP 操作、窗口函数、XML 和 JSON 数据处理。
实体-关系模型
数据库概念设计
ER 模型是数据库概念设计的标准工具。本章讲解如何用 ER 图描述现实世界的数据结构。
关系数据库设计
规范化理论
数据库设计的目标是消除冗余、避免异常。本章讲解函数依赖、范式理论、规范化过程。
应用设计与开发
数据库应用架构
本章讲解数据库应用的设计模式和开发技术:JDBC/ODBC 接口、ORM 框架、三层架构、安全考虑。
存储与文件结构
数据在磁盘上的组织
数据库的数据存储在磁盘上。本章讲解磁盘的物理结构、文件系统组织、缓冲池管理、RAID 技术。
索引与散列
加速数据访问
索引是加速数据访问的关键技术。本章讲解 B+ 树索引、散列索引、位图索引等索引结构。
查询处理
从 SQL 到执行计划
查询处理是数据库的核心功能。本章讲解查询的解析、翻译、优化、执行过程。
事务管理
ACID 属性的实现
事务是数据库操作的逻辑单位。本章讲解事务的概念、ACID 属性、并发执行的问题。
并发控制
保证事务隔离性
并发控制保证事务的隔离性。本章讲解封锁协议、两阶段封锁、时间戳排序、多版本并发控制。
恢复系统
保证事务持久性
恢复系统保证事务的持久性。本章讲解日志技术、检查点、崩溃恢复算法。
分布式数据库
数据分布在多个节点
分布式数据库将数据分布在多个节点上。本章讲解数据分片、复制、分布式事务、两阶段提交。
NoSQL 系统
超越关系模型
NoSQL 系统为特定应用场景提供了关系数据库之外的选择。本章讲解键值存储、文档数据库、列族存储、图数据库。
大数据与数据仓库
分析型数据处理
大数据和数据仓库是分析型数据处理的核心技术。本章讲解 MapReduce、Spark、数据仓库、OLAP。
读书笔记
引言
数据库系统的全貌
重点内容
- •数据库系统 vs 文件系统:数据独立性、高效数据访问、完整性、安全性
- •数据模型的演进:层次模型 → 网状模型 → 关系模型 → 对象模型
- •数据库体系结构:物理层、逻辑层、视图层
- •数据库语言:DDL(数据定义)、DML(数据操纵)、DCL(数据控制)
- •数据库管理员(DBA)的职责:模式定义、存储结构、授权、性能调优
关系代数介绍
关系数据库的数学基础
重点内容
- •关系的基本性质:无序性、无重复元组
- •选择运算(σ):按条件筛选行
- •投影运算(π):按列提取属性
- •连接运算(⋈):自然连接、θ连接、外连接
- •关系代数表达式的等价变换
SQL 基础
结构化查询语言
重点内容
- •SELECT-FROM-WHERE 基本查询结构
- •JOIN 操作:内连接、左外连接、右外连接、全外连接
- •子查询:嵌套查询、相关子查询、EXISTS
- •聚合函数:COUNT、SUM、AVG、MAX、MIN
- •GROUP BY 和 HAVING 子句
- •视图的定义和用途
代码示例
-- 查询选修了数据库课程的学生
SELECT S.name
FROM Student S
WHERE S.id IN (
SELECT T.student_id
FROM Takes T
WHERE T.course_id = 'CS101'
)-- 查询每个系的学生人数
SELECT dept_name, COUNT(*) AS student_count
FROM Student
GROUP BY dept_name
HAVING COUNT(*) > 10中级 SQL
高级查询技术
重点内容
- •外连接和全外连接
- •视图的可更新性
- •事务的 ACID 属性
- •完整性约束:主键、外键、CHECK、NOT NULL
- •索引的作用和类型
高级 SQL
现代 SQL 特性
重点内容
- •递归查询:WITH RECURSIVE
- •OLAP 操作:ROLLUP、CUBE、GROUPING SETS
- •窗口函数:ROW_NUMBER、RANK、LAG、LEAD
- •XML 和 JSON 数据的查询
- •SQL 标准的新特性
代码示例
-- 递归查询:查找课程先修关系
WITH RECURSIVE prereq(course_id, prereq_id) AS (
SELECT course_id, prereq_id
FROM prereq
UNION ALL
SELECT p.course_id, pr.prereq_id
FROM prereq p JOIN prereq pr ON p.prereq_id = pr.course_id
)
SELECT * FROM prereq实体-关系模型
数据库概念设计
重点内容
- •实体集和属性:简单属性、复合属性、多值属性、派生属性
- •联系集和联系类型:一对一、一对多、多对多
- •弱实体集:依赖于强实体集存在
- •ER 图到关系模式的转换
- •ER 模型的设计决策
关系数据库设计
规范化理论
重点内容
- •函数依赖:完全依赖、部分依赖、传递依赖
- •第一范式(1NF):原子性
- •第二范式(2NF):消除部分依赖
- •第三范式(3NF):消除传递依赖
- •BCNF:每个非平凡函数依赖的左部都包含候选键
- •多值依赖和第四范式(4NF)
- •反规范化的权衡
应用设计与开发
数据库应用架构
重点内容
- •JDBC 和 ODBC 数据库接口
- •ORM(对象关系映射)框架
- •三层架构:表示层、业务逻辑层、数据访问层
- •SQL 注入攻击与防御
- •数据库安全:认证、授权、审计
存储与文件结构
数据在磁盘上的组织
重点内容
- •磁盘的物理结构:磁道、扇区、柱面
- •文件组织:堆文件、顺序文件、散列文件
- •缓冲池管理:LRU 替换策略
- •RAID 技术:RAID 0/1/5/10
- •磁盘调度算法
索引与散列
加速数据访问
重点内容
- •B+ 树索引:结构、插入、删除、分裂
- •散列索引:静态散列、动态散列、可扩展散列
- •位图索引:适用于低基数属性
- •多级索引:前缀压缩、非键属性
- •索引选择策略
查询处理
从 SQL 到执行计划
重点内容
- •查询解析:语法分析、语义分析、视图展开
- •查询优化:等价变换、代价估算、选择连接顺序
- •执行计划:选择、投影、连接、排序的实现
- •基于代价的优化 vs 基于规则的优化
- •查询执行引擎:火山模型、数据流模型
事务管理
ACID 属性的实现
重点内容
- •事务的 ACID 属性:原子性、一致性、隔离性、持久性
- •事务状态:活跃、部分提交、提交、失败、中止
- •并发执行的问题:丢失更新、脏读、不可重复读、幻读
- •可串行化:冲突可串行化、视图可串行化
- •事务隔离级别
并发控制
保证事务隔离性
重点内容
- •封锁协议:共享锁、排他锁
- •两阶段封锁(2PL):保证可串行化
- •死锁处理:预防、检测、恢复
- •时间戳排序协议
- •多版本并发控制(MVCC)
- •乐观并发控制
恢复系统
保证事务持久性
重点内容
- •日志技术:deferred update、immediate update
- •检查点:减少恢复时间
- •ARIES 恢复算法:分析、重做、撤销三阶段
- •影子分页技术
- •数据库备份与恢复
分布式数据库
数据分布在多个节点
重点内容
- •数据分片:水平分片、垂直分片
- •数据复制:主从复制、多主复制
- •分布式事务:两阶段提交(2PC)
- •分布式查询处理
- •分布式一致性
NoSQL 系统
超越关系模型
重点内容
- •键值存储:Redis、Memcached
- •文档数据库:MongoDB、CouchDB
- •列族存储:Cassandra、HBase
- •图数据库:Neo4j、JanusGraph
- •NoSQL vs 关系数据库的权衡
- •BASE 特性 vs ACID 特性
大数据与数据仓库
分析型数据处理
重点内容
- •MapReduce 编程模型
- •Spark:内存计算、RDD
- •数据仓库:星型模式、雪花模式
- •OLAP 操作:上卷、下钻、切片、切块
- •数据湖与湖仓一体