进阶·2019·17 章

数据库系统概念(原书第7版)

Database System Concepts, 7th Edition

数据库领域的圣经级教材

作者:Abraham Silberschatz, Henry F. Korth, S. Sudarshan·McGraw-Hill Education·ISBN: 978-0078022159

数据库系统领域的经典教材,被全球数百所大学采用。全面讲解关系数据库、SQL、数据库设计(ER模型与规范化理论)、事务处理、并发控制、恢复系统、数据存储与索引等核心主题。第7版新增了大数据、NoSQL、分布式数据库等现代内容。

为什么读这本书

数据库是几乎所有应用系统的基石。这本书不仅教你如何使用 SQL,更深入讲解数据库内部的实现原理:查询如何被优化、事务如何保证一致性、并发控制如何工作、崩溃后如何恢复。理解这些原理,才能写出高效的查询、设计合理的数据库、排查性能问题。

章节导览

01

引言

1 次阅读

数据库系统的全貌

本章是全书的导论,介绍数据库系统的基本概念、数据模型的演进(从文件系统到关系数据库再到对象数据库),以及数据库管理员的职责。

数据库系统数据模型数据库管理员数据库体系结构
关联层级:L6L7
02

关系代数介绍

1 次阅读

关系数据库的数学基础

关系模型是关系数据库的理论基础。本章讲解关系代数运算:选择、投影、并、差、笛卡尔积、连接等。

关系模型关系代数选择投影连接
关联层级:L6
03

SQL 基础

1 次阅读

结构化查询语言

SQL 是关系数据库的标准查询语言。本章讲解 SQL 的基本语法:数据查询、数据定义、数据操纵。

SELECTJOIN子查询聚合函数视图
关联层级:L6
04

中级 SQL

1 次阅读

高级查询技术

本章深入讲解 SQL 的高级特性:复杂的连接操作、视图的更新、事务的概念、完整性约束的定义。

连接表达式视图事务完整性约束索引
关联层级:L6
05

高级 SQL

1 次阅读

现代 SQL 特性

本章讲解 SQL 的现代特性:递归查询、OLAP 操作、窗口函数、XML 和 JSON 数据处理。

递归查询OLAP窗口函数XML/JSON
关联层级:L6L7
06

实体-关系模型

1 次阅读

数据库概念设计

ER 模型是数据库概念设计的标准工具。本章讲解如何用 ER 图描述现实世界的数据结构。

ER图实体属性联系弱实体
关联层级:L6L7
07

关系数据库设计

1 次阅读

规范化理论

数据库设计的目标是消除冗余、避免异常。本章讲解函数依赖、范式理论、规范化过程。

函数依赖范式规范化反规范化
关联层级:L6L7
08

应用设计与开发

1 次阅读

数据库应用架构

本章讲解数据库应用的设计模式和开发技术:JDBC/ODBC 接口、ORM 框架、三层架构、安全考虑。

JDBCODBCORM三层架构安全
关联层级:L6L7
09

存储与文件结构

1 次阅读

数据在磁盘上的组织

数据库的数据存储在磁盘上。本章讲解磁盘的物理结构、文件系统组织、缓冲池管理、RAID 技术。

磁盘结构文件系统缓冲池RAID
关联层级:L2L5
10

索引与散列

1 次阅读

加速数据访问

索引是加速数据访问的关键技术。本章讲解 B+ 树索引、散列索引、位图索引等索引结构。

B+树散列索引位图索引查询代价
关联层级:L2L5
11

查询处理

1 次阅读

从 SQL 到执行计划

查询处理是数据库的核心功能。本章讲解查询的解析、翻译、优化、执行过程。

查询解析查询优化执行计划代价估算
关联层级:L5L6
12

事务管理

1 次阅读

ACID 属性的实现

事务是数据库操作的逻辑单位。本章讲解事务的概念、ACID 属性、并发执行的问题。

事务ACID状态转换并发执行
关联层级:L5L6
13

并发控制

1 次阅读

保证事务隔离性

并发控制保证事务的隔离性。本章讲解封锁协议、两阶段封锁、时间戳排序、多版本并发控制。

封锁两阶段封锁时间戳排序多版本控制
关联层级:L5L6
14

恢复系统

1 次阅读

保证事务持久性

恢复系统保证事务的持久性。本章讲解日志技术、检查点、崩溃恢复算法。

日志检查点ARIES崩溃恢复
关联层级:L5L6
15

分布式数据库

1 次阅读

数据分布在多个节点

分布式数据库将数据分布在多个节点上。本章讲解数据分片、复制、分布式事务、两阶段提交。

分布式数据库数据分片复制分布式事务
关联层级:L6L7
16

NoSQL 系统

1 次阅读

超越关系模型

NoSQL 系统为特定应用场景提供了关系数据库之外的选择。本章讲解键值存储、文档数据库、列族存储、图数据库。

键值存储文档数据库列族存储图数据库
关联层级:L6L7
17

大数据与数据仓库

1 次阅读

分析型数据处理

大数据和数据仓库是分析型数据处理的核心技术。本章讲解 MapReduce、Spark、数据仓库、OLAP。

MapReduceSpark数据仓库OLAP
关联层级:L6L7

读书笔记

01

引言

数据库系统的全貌

重点内容

  • •数据库系统 vs 文件系统:数据独立性、高效数据访问、完整性、安全性
  • •数据模型的演进:层次模型 → 网状模型 → 关系模型 → 对象模型
  • •数据库体系结构:物理层、逻辑层、视图层
  • •数据库语言:DDL(数据定义)、DML(数据操纵)、DCL(数据控制)
  • •数据库管理员(DBA)的职责:模式定义、存储结构、授权、性能调优
02

关系代数介绍

关系数据库的数学基础

重点内容

  • •关系的基本性质:无序性、无重复元组
  • •选择运算(σ):按条件筛选行
  • •投影运算(π):按列提取属性
  • •连接运算(⋈):自然连接、θ连接、外连接
  • •关系代数表达式的等价变换
03

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
04

中级 SQL

高级查询技术

重点内容

  • •外连接和全外连接
  • •视图的可更新性
  • •事务的 ACID 属性
  • •完整性约束:主键、外键、CHECK、NOT NULL
  • •索引的作用和类型
05

高级 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
06

实体-关系模型

数据库概念设计

重点内容

  • •实体集和属性:简单属性、复合属性、多值属性、派生属性
  • •联系集和联系类型:一对一、一对多、多对多
  • •弱实体集:依赖于强实体集存在
  • •ER 图到关系模式的转换
  • •ER 模型的设计决策
07

关系数据库设计

规范化理论

重点内容

  • •函数依赖:完全依赖、部分依赖、传递依赖
  • •第一范式(1NF):原子性
  • •第二范式(2NF):消除部分依赖
  • •第三范式(3NF):消除传递依赖
  • •BCNF:每个非平凡函数依赖的左部都包含候选键
  • •多值依赖和第四范式(4NF)
  • •反规范化的权衡
08

应用设计与开发

数据库应用架构

重点内容

  • •JDBC 和 ODBC 数据库接口
  • •ORM(对象关系映射)框架
  • •三层架构:表示层、业务逻辑层、数据访问层
  • •SQL 注入攻击与防御
  • •数据库安全:认证、授权、审计
09

存储与文件结构

数据在磁盘上的组织

重点内容

  • •磁盘的物理结构:磁道、扇区、柱面
  • •文件组织:堆文件、顺序文件、散列文件
  • •缓冲池管理:LRU 替换策略
  • •RAID 技术:RAID 0/1/5/10
  • •磁盘调度算法
10

索引与散列

加速数据访问

重点内容

  • •B+ 树索引:结构、插入、删除、分裂
  • •散列索引:静态散列、动态散列、可扩展散列
  • •位图索引:适用于低基数属性
  • •多级索引:前缀压缩、非键属性
  • •索引选择策略
11

查询处理

从 SQL 到执行计划

重点内容

  • •查询解析:语法分析、语义分析、视图展开
  • •查询优化:等价变换、代价估算、选择连接顺序
  • •执行计划:选择、投影、连接、排序的实现
  • •基于代价的优化 vs 基于规则的优化
  • •查询执行引擎:火山模型、数据流模型
12

事务管理

ACID 属性的实现

重点内容

  • •事务的 ACID 属性:原子性、一致性、隔离性、持久性
  • •事务状态:活跃、部分提交、提交、失败、中止
  • •并发执行的问题:丢失更新、脏读、不可重复读、幻读
  • •可串行化:冲突可串行化、视图可串行化
  • •事务隔离级别
13

并发控制

保证事务隔离性

重点内容

  • •封锁协议:共享锁、排他锁
  • •两阶段封锁(2PL):保证可串行化
  • •死锁处理:预防、检测、恢复
  • •时间戳排序协议
  • •多版本并发控制(MVCC)
  • •乐观并发控制
14

恢复系统

保证事务持久性

重点内容

  • •日志技术:deferred update、immediate update
  • •检查点:减少恢复时间
  • •ARIES 恢复算法:分析、重做、撤销三阶段
  • •影子分页技术
  • •数据库备份与恢复
15

分布式数据库

数据分布在多个节点

重点内容

  • •数据分片:水平分片、垂直分片
  • •数据复制:主从复制、多主复制
  • •分布式事务:两阶段提交(2PC)
  • •分布式查询处理
  • •分布式一致性
16

NoSQL 系统

超越关系模型

重点内容

  • •键值存储:Redis、Memcached
  • •文档数据库:MongoDB、CouchDB
  • •列族存储:Cassandra、HBase
  • •图数据库:Neo4j、JanusGraph
  • •NoSQL vs 关系数据库的权衡
  • •BASE 特性 vs ACID 特性
17

大数据与数据仓库

分析型数据处理

重点内容

  • •MapReduce 编程模型
  • •Spark:内存计算、RDD
  • •数据仓库:星型模式、雪花模式
  • •OLAP 操作:上卷、下钻、切片、切块
  • •数据湖与湖仓一体

配套实验

1实验1: SQL 基础查询
2实验2: SQL 高级查询
3实验3: ER 图设计
4实验4: 数据库规范化
5实验5: JDBC 编程
6实验6: 索引性能测试
7实验7: 事务与并发控制
8实验8: 查询优化分析

标签

数据库SQL关系代数事务并发控制规范化