注册 登录 进入教材巡展
#
  • #

出版时间:2026-06-08

出版社:机械工业出版社

以下为《数据库系统原理与GaussDB实现》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 机械工业出版社
  • 9787111802938
  • 1-1
  • 2026-06-08
  • 593
内容简介
本书梳理了数据库系统发展现状,融合了哈尔滨工业大学数据库团队在数据库系统原理与GaussDB实现方向的最新研究成果,并充分借鉴了国内外相关领域的最新技术进展,力求全面呈现数据库系统技术体系及发展脉络。本书共10章,主要包括关系型数据库基础、存储引擎的分类、事务的概念及管理、数据库查询方法、分布式数据库技术和基于GaussDB的数据库设计与开发实践等内容。
本书内容由浅入深、全面翔实,结构清晰简明、编排合理,可作为计算机科学与技术、软件工程、大数据科学与技术等专业本科高年级教材,也可以作为研究生研讨课教材或供专业技术人员参考。
目录
目 录


前言

第1章 引言1

1.1 数据库系统的功能与应用1
1.1.1 什么是数据库系统1
1.1.2 数据库系统的功能2
1.1.3 数据库系统在生产
生活中的应用4
1.2 数据库类型简介5
1.2.1 关系型数据库简介5
1.2.2 非关系型数据库简介7
1.2.3 并行数据库简介18
1.2.4 分布式数据库简介20
1.2.5 云数据库简介22
1.3 数据库发展简史24
1.3.1 数据库发展的历史24
1.3.2 数据湖、数据仓库
与数据挖掘25
1.3.3 GaussDB数据库
简介25
1.3.4 数据库的性能挑战
及未来发展趋势26
1.3.5 国产数据库的发展27
1.4 小结28
1.4.1 术语回顾28
1.4.2 习题28

第2章 关系型数据库基础30

2.1 关系型数据库基础概念30
2.1.1 数据库模式30
2.1.2 数据库查询语言32
2.1.3 关系代数与SQL32
2.2 关系代数基本运算33
2.2.1 选择运算34
2.2.2 投影运算34
2.2.3 并运算35
2.2.4 差运算36
2.2.5 笛卡儿积运算36
2.2.6 更名运算38
2.2.7 关系代数的形式化
定义39
2.3 进阶关系代数运算39
2.3.1 为什么需要附加运算39
2.3.2 集合交运算40
2.3.3 自然连接运算41
2.3.4 赋值运算43
2.3.5 广义投影运算43
2.3.6 聚合函数44
2.3.7 外连接运算44
2.4 SQL基础语法46
2.4.1 数据类型46
2.4.2 定义数据表的模式47
2.4.3 完整性约束48
2.4.4 SQL查询的基本
结构50
2.4.5 变量更名运算56
2.4.6 字符串匹配57
2.4.7 集合运算58
2.4.8 插入、更新与删除59
2.5 复杂SQL查询62
2.5.1 聚合函数62
2.5.2 嵌套子查询64
2.5.3 递归查询67
2.6 存储过程与函数68
2.6.1 存储过程68
2.6.2 函数69
2.7 使用SQL连接数据库70
2.7.1 JDBC70
2.7.2 ODBC72
2.8 视图74
2.8.1 视图的定义及其
应用74
2.8.2 物化视图75
2.8.3 使用SQL操作
视图75
2.9 其他关系语言简介76
2.9.1 元组关系演算简介76
2.9.2 域关系演算简介77
2.9.3 Datalog简介78
2.10 小结79
2.10.1 术语回顾80
2.10.2 习题81

第3章 数据库存储引擎83

3.1 存储引擎概述83
3.2 存储介质84
3.2.1 机械硬盘86
3.2.2 固态硬盘88
3.2.3 云硬盘89
3.3 存储访问和缓冲区91
3.3.1 为什么需要缓冲区91
3.3.2 缓冲区的管理与替换
策略92
3.3.3 GaussDB的缓冲区
管理94
3.4 GaussDB行存储引擎95
3.4.1 Astore存储引擎96
3.4.2 Ustore存储引擎100
3.5 GaussDB列存储引擎103
3.5.1 列存储单元结构103
3.5.2 列存储的MVCC105
3.6 GaussDB内存引擎107
3.7 索引109
3.7.1 稠密索引和稀疏
索引109
3.7.2 哈希索引110
3.7.3 B +树114
3.7.4 GaussDB支持的索引
类型122
3.8 预写日志122
3.8.1 WAL协议123
3.8.2 基于WAL的故障
恢复124
3.9 检查点126
3.10 小结127
3.10.1 术语回顾128
3.10.2 习题129

第4章 事务管理131

4.1 事务的概念132
4.1.1 事务的原子性132
4.1.2 事务的持久性133
4.1.3 事务的隔离性133
4.1.4 事务的一致性133
4.1.5 事务隔离级别134
4.2 并发执行与调度136
4.2.1 并发执行136
4.2.2 可串行化136
4.2.3 可恢复性137
4.3 并发控制138
4.3.1 基于锁的协议138
4.3.2 死锁处理142
4.3.3 基于时间戳的协议145
4.3.4 乐观并发控制147
4.4 故障恢复149
4.4.1 常见数据库故障149
4.4.2 数据恢复与事务
原子性150
4.4.3 基于重做日志的
恢复151
4.4.4 基于回滚日志的
恢复152
4.4.5 缓冲区管理152
4.4.6 非易失存储下的故障
恢复155
4.4.7 远程备份156
4.5 GaussDB事务机制157
4.5.1 GaussDB中的事务
ACID特性158
4.5.2 GaussDB的并发
控制159
4.6 小结162
4.6.1 术语回顾163
4.6.2 习题164

第5章 查询处理167

5.1 查询处理的一般流程167
5.2 SQL查询解析概述169
5.2.1 何谓语法169
5.2.2 词法分析170
5.2.3 语法分析171
5.2.4 语义分析172
5.3 查询计划172
5.3.1 查询算子173
5.3.2 查询树173
5.4 选择操作的实现174
5.4.1 线性扫描175
5.4.2 基于索引的等值查询176
5.4.3 基于索引的比较179
5.4.4 复杂选择的实现181
5.5 排序操作的实现186
5.5.1 外存排序186
5.5.2 代价分析188
5.6 连接操作的实现189
5.6.1 循环嵌套连接190
5.6.2 索引循环嵌套连接191
5.6.3 分块循环嵌套连接191
5.6.4 排序归并连接193
5.6.5 哈希连接195
5.7 聚合操作的实现197
5.8 小结200
5.8.1 术语回顾200
5.8.2 习题201

第6章 查询优化206

6.1 查询优化概述206
6.1.1 查询代价的度量207
6.1.2 查询计划的逻辑查询优化与物理查询优化208
6.2 关系表达式的等价变换210
6.2.1 等价变换规则210
6.2.2 变换示例212
6.3 基数估计214
6.3.1 选择运算215
6.3.2 连接运算217
6.3.3 投影运算219
6.3.4 HyperLogLog算法220
6.3.5 蓄水池算法224
6.4 连接顺序选择227
6.4.1 基于动态规划的连接
顺序选择228
6.4.2 基于启发式方法的连接
顺序选择230
6.5 基于人工智能的查询优化231
6.5.1 离线优化与在线
优化232
6.5.2 NP难问题的近似
求解233
6.5.3 数据库中的回归
问题234
6.5.4 数据库中的预测
问题235
6.6 流水线执行236
6.6.1 流水线与表达式的
物化236
6.6.2 流水线的实现方式237
6.6.3 为流水线改写算法239
6.7 物理优化240
6.7.1 物理算子选取241
6.7.2 确定执行顺序242
6.8 GaussDB中的查询优化243
6.9 小结245
6.9.1 术语回顾245
6.9.2 习题246

第7章 查询执行248

7.1 拉取式模型248
7.1.1 火山模型248
7.1.2 物化模型253
7.1.3 向量化执行模型259
7.2 推送式模型261
7.3 编译执行263
7.3.1 底层虚拟机263
7.3.2 实时编译266
7.3.3 缓存优化268
7.4 GaussDB执行引擎273
7.4.1 GaussDB执行引擎的
架构273
7.4.2 GaussDB执行引擎的
关键技术275
7.4.3 GaussDB执行引擎的
优化策略277
7.5 小结279
7.5.1 术语回顾279
7.5.2 习题280

第8章 分布式数据库281

8.1 分布式数据库系统概念281
8.1.1 为什么需要分布式281
8.1.2 计算机网络概述282
8.1.3 分布式数据库带来的
设计挑战284
8.2 分布式存储285
8.2.1 基于锁的并发控制
算法285
8.2.2 基于MVCC的多版本
并发控制算法287
8.2.3 数据分片290
8.2.4 多副本管理292
8.3 分布式查询处理293
8.3.1 分布式代价模型294
8.3.2 分布式动态查询
优化296
8.3.3 分布式静态查询
优化297
8.3.4 分布式混合查询
优化299
8.4 分布式数据库的可靠性301
8.4.1 可靠性的概念和
度量302
8.4.2 分布式数据库故障304
8.4.3 局部可靠性协议305
8.4.4 分布式可靠性协议306
8.5 GaussDB分布式查询
处理309
8.5.1 GaussDB分布式
架构309
8.5.2 GaussDB分布式查询
优化311
8.5.3 GaussDB分布式执行
引擎312
8.5.4 GaussDB分布式事务
处理314
8.5.5 GaussDB分布式存储
引擎316
8.6 小结318
8.6.1 术语回顾318
8.6.2 习题319

第9章 GaussDB数据库关键
技术320

9.1 GaussDB高可用技术320
9.1.1 多层级冗余320
9.1.2 DCF高可用组件321
9.1.3 跨AZ容灾技术322
9.1.4 备份与闪回323
9.1.5 应用无损透明324
9.1.6 双集群强一致325
9.2 GaussDB高安全技术325
9.2.1 安全机制的概念325
9.2.2 访问控制326
9.2.3 全密态327
9.2.4 透明数据加密328
9.2.5 动态数据脱敏329
9.2.6 防篡改330
9.3 GaussDB高性能技术331
9.3.1 软硬结合331
9.3.2 并发执行332
9.3.3 实时编译332
9.3.4 日志并行流水线333
9.3.5 计划缓存333
9.3.6 GTM-Lite334
9.4 GaussDB高弹性技术335
9.5 GaussDB高智能技术336
9.5.1 AI查询时间预测336
9.5.2 参数调优和诊断337
9.5.3 慢SQL发现337
9.5.4 智能索引推荐338
9.5.5 指标采集、预测与
异常检测339
9.5.6 DEEP SQL340
9.5.7 数据库原生AI
算法341
9.6 小结342
9.6.1 术语回顾342
9.6.2 习题342

第10章 基于GaussDB的数据库
设计与开发实践343

10.1 基于实体-联系模型的概念
数据库设计344
10.1.1 实体-联系模型344
10.1.2 实体集、联系集
与属性345
10.1.3 实体-联系
模式图350
10.2 基于关系模型的逻辑数据库
设计353
10.2.1 关系模型353
10.2.2 形成初始关系数据库
模式357
10.2.3 查询和性能需求358
10.2.4 基于函数依赖的
关系模式逻辑
规范化358
10.2.5 讨论:什么是好的
设计369
10.3 GaussDB使用基础370
10.3.1 访问并购买云原生
数据库GaussDB370
10.3.2 创建并连接数据库
实例376
10.3.3 GaussDB上的SQL
查询392
10.3.4 常见数据库操作404
10.3.5 备份恢复410
10.3.6 基于GaussDB的权限
管理与审计414
10.3.7 存储过程418
10.3.8 参数修改418
10.4 案例研究:基于GaussDB的
教学管理系统的实现418
10.4.1 背景与需求418
10.4.2 概念数据库设计419
10.4.3 逻辑数据库设计420
10.4.4 系统设计422
10.4.5 源码获取和部署428
10.5 小结433

参考文献437