- 机械工业出版社
- 9787111724704
- 3-1
- 462494
- 46255275-3
- 16开
- 2023-06
- 数据科学与大数据技术
- 本科
内容简介
本书主要介绍分布式数据库系统和大数据库系统的基本理论与实现技术。全书共13章,第1~10章重点介绍经典的分布式数据库系统的基本理论和关键技术、当前流行的商品化数据库系统的分布式数据管理机制,以及大数据库管理的关键技术和流行的大数据库系统。第11~13章介绍当下流行的区块链分布式数据管理技术、AI赋能的数据管理技术以及分布式数据库的发展前瞻。
本书理论与实践相结合,可作为计算机及相关专业高年级本科生和研究生的教材,也可供数据库相关技术人员参考使用。
本书理论与实践相结合,可作为计算机及相关专业高年级本科生和研究生的教材,也可供数据库相关技术人员参考使用。
目录
目 录
前言
第1章 分布式数据库系统概论 1
1.1 引言及准备知识 1
1.1.1 基本概念 1
1.1.2 基础知识 4
1.2 分布式数据库系统的基本概念 5
1.2.1 节点/场地 5
1.2.2 分布式数据库 5
1.2.3 分布式数据库管理系统 6
1.2.4 分布式数据库系统应用
举例 6
1.2.5 分布式数据库的特性 7
1.3 分布式数据库系统的作用和特点 9
1.3.1 作用 9
1.3.2 特点 9
1.4 分布式数据库系统中的关键
技术 10
1.4.1 关键技术 10
1.4.2 典型的分布式数据库原型
系统简介 11
1.5 大数据应用与分布式大数据库
技术 12
1.5.1 大数据的类型和应用 12
1.5.2 大数据的特点 15
1.5.3 大数据处理过程 15
1.5.4 大数据管理新模式 16
1.5.5 分布式大数据库系统及
关键技术 18
1.6 本章小结 21
习题 21
参考文献 22
第2章 分布式数据库系统的
体系结构 25
2.1 DDBS的物理结构和逻辑结构 26
2.2 DDBS的体系结构 26
2.2.1 基于客户/服务器结构的
体系结构 27
2.2.2 基于“中间件”的客户/
服务器结构 28
2.3 DDBS的模式结构 30
2.4 DDBS的组件结构 32
2.5 多数据库集成系统 33
2.5.1 数据库集成 33
2.5.2 多数据库系统 35
2.6 DDBS的分类 38
2.6.1 三个基本特性 38
2.6.2 DDBS的分类图 39
2.7 元数据的管理 40
2.7.1 数据字典的主要内容和
用途 40
2.7.2 数据字典的组织 40
2.8 Oracle系统体系结构介绍 41
2.8.1 Oracle系统体系结构 41
2.8.2 Oracle中实现分布式功能的
组件 42
2.8.3 Oracle分布式数据库架构
案例 44
2.9 分布式大数据库的系统体系
结构 46
2.10 分布式大数据库系统案例 47
2.10.1 HBase 47
2.10.2 Spanner 49
2.10.3 OceanBase 51
2.11 本章小结 53
习题 53
参考文献 53
第3章 分布式数据库的设计 56
3.1 设计策略 56
3.1.1 Top-Down设计过程 56
3.1.2 Bottom-Up设计过程 57
3.2 分片的定义和作用 57
3.2.1 分片的定义 58
3.2.2 分片的作用 58
3.2.3 分片设计过程 59
3.2.4 分片的原则 59
3.2.5 分片的种类 60
3.2.6 分布透明性 60
3.3 水平分片的设计 60
3.3.1 定义 60
3.3.2 水平分片的操作 63
3.3.3 水平分片的设计 63
3.3.4 正确性检验 65
3.4 垂直分片的设计 66
3.4.1 定义 66
3.4.2 垂直分片的操作 67
3.4.3 垂直分片的设计 67
3.4.4 正确性检验 67
3.5 混合分片的设计 68
3.6 分片的表示方法 69
3.6.1 图形表示法 69
3.6.2 分片树表示方法 69
3.7 分配设计 70
3.7.1 分配类型 70
3.7.2 分配设计原则 72
3.7.3 分配模型 73
3.8 数据复制技术 74
3.8.1 数据复制的优势 74
3.8.2 数据复制的分类 75
3.8.3 复制的常用方法 75
3.9 Oracle数据库的数据分布设计
案例 76
3.9.1 基于Oracle数据库链的
数据分布设计 76
3.9.2 Oracle集中式数据库的
数据分区技术 80
3.9.3 基于Oracle分片技术的
分布式数据库案例 82
3.10 大数据库的分布设计 86
3.10.1 大数据模型 86
3.10.2 数据分区策略 93
3.11 典型的大数据分布设计案例 97
3.11.1 HBase 97
3.11.2 Spanner 102
3.11.3 OceanBase 105
3.12 本章小结 110
习题 110
参考文献 111
第4章 分布式数据存储 114
4.1 大数据分布式存储类型 114
4.2 分布式文件系统 116
4.2.1 HDFS简介 116
4.2.2 HDFS的关系数据存储
结构 119
4.2.3 基本的SSTable数据存储
结构 125
4.2.4 LSM-Tree存储结构 127
4.3 分布式对象存储技术 130
4.3.1 三种主流的网络存储
结构 131
4.3.2 对象存储系统的体系
结构 131
4.3.3 Ceph 134
4.3.4 Swift 137
4.3.5 主流分布式存储技术的
比较 141
4.4 分布式索引结构 142
4.4.1 布隆过滤器 142
4.4.2 键值二级索引 145
4.4.3 跳跃表 148
4.4.4 分区数据上的索引结构 149
4.5 分布式缓存 151
4.5.1 分布式缓存概述 152
4.5.2 分布式缓存的体系结构 153
4.5.3 典型的分布式缓存系统 154
4.5.4 分布式缓存与存储引擎的
结合使用 160
4.6 Oracle数据库的存储结构 161
4.6.1 Oracle数据库的物理存储
结构 162
4.6.2 Oracle数据库的逻辑存储
结构 163
4.7 大数据库分布存储案例 164
4.7.1 HBase 164
4.7.2 Spanner 168
4.7.3 OceanBase 171
4.8 本章小结 177
习题 178
参考文献 179
第5章 分布式查询处理
与优化 181
5.1 查询处理基础 181
5.1.1 查询处理目标 181
5.1.2 查询优化的意义 183
5.1.3 查询优化的基本概念 186
5.1.4 查询优化的过程 187
5.2 查询处理器 189
5.2.1 查询处理器的特性 190
5.2.2 查询处理层次 192
5.3 查询分解 194
5.3.1 规范化 194
5.3.2 分析 195
5.3.3 约简 196
5.3.4 查询重写 197
5.4 数据局部化 200
5.5 片段查询的优化 202
5.6 Oracle查询计划案例 205
5.7 大数据库的查询处理及优化 207
5.7.1 NoSQL数据库的查询
处理方法 207
5.7.2 基于MapReduce的查询
处理 209
5.7.3 基于Hadoop的查询处理 214
5.7.4 基于Spark的数据分析
处理 217
5.8 大数据库查询处理与优化案例 221
5.8.1 HBase 221
5.8.2 Spanner 222
5.8.3 OceanBase 227
5.9 本章小结 235
习题 235
参考文献 236
第6章 查询存取优化 238
6.1 基本概念 239
6.1.1 分布查询的执行与处理 239
6.1.2 查询存取优化的内容 240
6.2 存取优化的理论基础 242
6.2.1 查询代价模型 242
6.2.2 数据库的特征参数和
统计信息 244
6.2.3 关系运算的特征参数 246
6.3 基于半连接的优化方法 255
6.3.1 半连接操作及相关规则 255
6.3.2 半连接运算的作用 256
6.3.3 使用半连接算法的通信
代价估计 257
6.3.4 半连接算法优化原理 258
6.4 基于枚举法的优化技术 259
6.4.1 嵌套循环连接算法 259
6.4.2 基于排序的连接算法 262
6.4.3 哈希连接算法 264
6.4.4 基于索引的连接算法 264
6.4.5 连接关系的传输方法 265
6.5 集中式系统中的查询优化算法 265
6.5.1 INGRES 265
6.5.2 System R 方法 269
6.5.3 考虑代价的动态规划
方法 270
6.5.4 PostgreSQL的遗传算法 273
6.6 分布式数据库系统中的查询
优化算法 275
6.6.1 分布式INGRES方法 275
6.6.2 System R*方法 281
6.6.3 SDD-1方法 282
6.7 Oracle分布式查询优化案例 292
6.7.1 基于数据链的Oracle
分布式查询优化 292
6.7.2 Oracle分片数据库查询
优化 295
6.8 面向大数据的存取优化方法 299
6.8.1 大数据库的查询存取
框架 299
6.8.2 基于索引的大数据库查询
存取优化方法 300
6.8.3 基于并行的大数据库查询
存取执行计划 304
6.9 大数据库系统的查询存取优化
案例 306
6.9.1 HBase 307
6.9.2 Spanner 308
6.9.3 OceanBase 318
6.10 本章小结 326
习题 326
参考文献 329
第7章 分布式事务管理 331
7.1 事务的基本概念 331
7.1.1 事务的定义 331
7.1.2 事务的基本性质 333
7.1.3 事务的种类 335
7.2 分布式事务 336
7.2.1 分布式事务的定义 336
7.2.2 分布式事务的实现模型 336
7.2.3 分布式事务管理的目标 339
7.3 分布式事务的提交协议 340
7.3.1 协调者和参与者 340
7.3.2 两段提交协议的基本
思想 341
7.3.3 两段提交协议的基本
流程 342
7.4 分布式事务管理的实现 343
7.4.1 LTM与DTM 344
7.4.2 分布式事务执行的控制
模型 344
7.4.3 分布式事务管理的实现
模型 346
7.5 两段提交协议的实现方法 348
7.5.1 集中式方法 348
7.5.2 分布式方法 349
7.5.3 分层式方法 349
7.5.4 线性方法 350
7.6 非阻塞分布式事务提交协议 351
7.6.1 三段提交协议的基本
思想 352
7.6.2 三段提交协议执行的
基本流程 354
7.7 Oracle分布事务管理案例 355
7.8 大数据库的事务管理 359
7.8.1 大数据库的事务管理
问题 359
7.8.2 大数据库系统设计的理论
基础 360
7.8.3 弱事务型与强事务型
大数据库 362
7.8.4 大数据库中的事务特性 364
7.8.5 大数据库的事务实现
方法 367
7.9 大数据库的分布式事务管理
案例 374
7.9.1 HBase 374
7.9.2 Spanner 377
7.9.3 OceanBase 379
7.10 本章小结 382
习题 383
参考文献 384
第8章 分布式恢复管理 386
8.1 分布式恢复概述 386
8.1.1 故障类型 386
8.1.2 恢复模型 389
8.2 集中式数据库的故障恢复 392
8.2.1 局部恢复系统的体系
结构 392
8.2.2 数据更新策略 392
8.3 分布式事务的故障恢复 393
8.3.1 两段提交协议对故障的
恢复 393
8.3.2 三段提交协议对故障的
恢复 396
8.4 分布式可靠性协议 399
8.4.1 可靠性和可用性 399
8.4.2 分布式可靠性协议的
组成 402
8.4.3 两段提交协议的终结
协议 402
8.4.4 两段提交协议的演变 405
8.4.5 三段提交协议的终结
协议 405
8.4.6 三段提交协议的演变 407
8.5 Oracle分布式数据库系统故障
恢复案例 409
8.6 大数据库的恢复管理 412
8.6.1 大数据库的恢复管理
问题 412
8.6.2 大数据库系统中的故障
类型 413
8.6.3 大数据库系统的故障检测
技术 414
8.6.4 基于事务的大数据库容错
技术 416
8.6.5 基于冗余的大数据库容错
技术 416
8.6.6 针对不同更新事务的恢复
方法 421
8.7 大数据库的分布式恢复管理
案例 423
8.7.1 HBase 423
8.7.2 Spanner 425
8.7.3 OceanBase 428
8.8 本章小结 431
习题 431
参考文献 432
第9章 分布式并发控制 435
9.1 分布式并发控制的基本概念 435
9.1.1 并发控制的问题 435
9.1.2 并发控制的定义 437
9.2 并发控制理论基础 437
9.2.1 事务执行过程的形式化
描述 437
9.2.2 集中库的可串行化
问题 438
9.2.3 分布式事务的可串行化
问题 439
9.3 基于锁的并发控制方法 440
9.3.1 锁的类型和相容性 440
9.3.2 封锁规则 440
9.3.3 锁的粒度 441
9.4 两段锁协议 441
9.4.1 基本的两段锁协议 441
9.4.2 严格的两段锁协议 443
9.4.3 可串行性证明 444
9.5 分布式数据库并发控制方法 444
9.5.1 基于锁的并发控制方法的
实现 444
9.5.2 基于时间戳的并发控制
算法 447
9.5.3 乐观的并发控制算法 450
9.6 分布式死锁管理 452
9.6.1 死锁等待图 452
9.6.2 死锁的检测 453
9.6.3 死锁的预防和避免 455
9.7 Oracle数据库并发控制案例 456
9.7.1 Oracle中的锁机制 456
9.7.2 Oracle中的并发控制 457
9.8 大数据库并发控制技术 458
9.8.1 事务读写模式扩展 458
9.8.2 封锁机制扩展 459
9.8.3 基于多版本并发控制
扩展 462
9.9 大数据库的分布式并发控制
案例 464
9.9.1 HBase 464
9.9.2 Spanner 466
9.9.3 OceanBase 470
9.10 本章小结 474
习题 474
参考文献 476
第10章 数据复制与一致性 478
10.1 数据复制的作用 478
10.2 数据复制一致性模型 479
10.3 分布式数据库复制策略 480
10.3.1 数据复制的执行方式 480
10.3.2 数据复制的实现方法 481
10.3.3 数据复制的体系结构 482
10.4 数据复制协议 483
10.4.1 主从复制协议 483
10.4.2 对等复制协议 487
10.5 大数据库一致性协议 488
10.5.1 Paxos协议 488
10.5.2 反熵协议 489
10.5.3 NWR协议 491
10.5.4 向量时钟技术 492
10.6 大数据库复制一致性管理 494
10.6.1 基于Paxos的复制管理
技术 494
10.6.2 基于反熵的复制管理
技术 498
10.6.3 基于NWR的复制管理
技术 499
10.6.4 基于向量时钟的复制
管理技术 501
10.6.5 ZooKeeper的ZAB
协议 502
10.7 Oracle数据库复制技术 504
10.8 大数据库复制与一致性管理
案例 507
10.8.1 HBase 507
10.8.2 Spanner 511
10.8.3 OceanBase 512
10.9 本章小结 515
习题 515
参考文献 515
第11章 区块链分布式数据
管理 517
11.1 区块链系统概述 517
11.1.1 区块链系统的起源 517
11.1.2 区块链系统与传统数据库
系统的对比 519
11.1.3 区块链系统的分类 520
11.1.4 区块链系统的体系结构 523
11.2 区块链的主要数据结构 525
11.2.1 区块链拓扑结构 525
11.2.2 区块数据存储结构 526
11.3 区块链的数据存储 529
11.3.1 区块链数据存储方法 529
11.3.2 区块链系统扩展存储
方法 532
11.4 区块链系统的数据管理 533
11.4.1 区块链的存取优化 533
11.4.2 区块链系统的查询
处理 534
11.5 区块链系统的事务管理 535
11.5.1 共识机制 535
11.5.2 智能合约 537
11.5.3 分布式事务处理 537
11.6 本章小结 539
习题 539
参考文献 539
第12章 AI赋能的数据管理 542
12.1 人工智能相关技术简介 542
12.1.1 决策树 542
12.1.2 聚类 543
12.1.3 人工神经网络 543
12.1.4 强化学习 544
12.2 数据分区 545
12.3 索引构建 546
12.4 查询优化 549
12.4.1 代价模型 549
12.4.2 基数估计 551
12.4.3 连接优化 553
12.5 负载管理与负载预测 556
12.5.1 负载管理 556
12.5.2 负载预测 558
12.6 配置参数调优 559
12.7 AI赋能的自治数据库系统 561
12.8 本章小结 562
习题 562
参考文献 562
第13章 分布式数据库系统
发展与前瞻 567
13.1 云原生数据库系统 567
13.1.1 Aurora数据库系统 568
13.1.2 PolarDB数据库系统 572
13.2 事务与分析混合处理数据库
系统 575
13.2.1 SAP HANA系统 576
13.2.2 TiDB数据库系统 580
13.3 其他类型的分布式大数据库
管理系统 583
13.3.1 NoSQL分布式大数据库
系统 583
13.3.2 面向OLTP的分布式
大数据库系统 584
13.3.3 跨异构处理系统的分布式
大数据库系统 585
13.4 数据库及大数据管理系统的
发展方向 585
13.4.1 数据科学 586
13.4.2 数据治理 586
13.4.3 云数据库服务 587
13.4.4 数据库引擎 589
13.4.5 新型数据库应用 590
13.5 本章小结 592
习题 592
参考文献 592
前言
第1章 分布式数据库系统概论 1
1.1 引言及准备知识 1
1.1.1 基本概念 1
1.1.2 基础知识 4
1.2 分布式数据库系统的基本概念 5
1.2.1 节点/场地 5
1.2.2 分布式数据库 5
1.2.3 分布式数据库管理系统 6
1.2.4 分布式数据库系统应用
举例 6
1.2.5 分布式数据库的特性 7
1.3 分布式数据库系统的作用和特点 9
1.3.1 作用 9
1.3.2 特点 9
1.4 分布式数据库系统中的关键
技术 10
1.4.1 关键技术 10
1.4.2 典型的分布式数据库原型
系统简介 11
1.5 大数据应用与分布式大数据库
技术 12
1.5.1 大数据的类型和应用 12
1.5.2 大数据的特点 15
1.5.3 大数据处理过程 15
1.5.4 大数据管理新模式 16
1.5.5 分布式大数据库系统及
关键技术 18
1.6 本章小结 21
习题 21
参考文献 22
第2章 分布式数据库系统的
体系结构 25
2.1 DDBS的物理结构和逻辑结构 26
2.2 DDBS的体系结构 26
2.2.1 基于客户/服务器结构的
体系结构 27
2.2.2 基于“中间件”的客户/
服务器结构 28
2.3 DDBS的模式结构 30
2.4 DDBS的组件结构 32
2.5 多数据库集成系统 33
2.5.1 数据库集成 33
2.5.2 多数据库系统 35
2.6 DDBS的分类 38
2.6.1 三个基本特性 38
2.6.2 DDBS的分类图 39
2.7 元数据的管理 40
2.7.1 数据字典的主要内容和
用途 40
2.7.2 数据字典的组织 40
2.8 Oracle系统体系结构介绍 41
2.8.1 Oracle系统体系结构 41
2.8.2 Oracle中实现分布式功能的
组件 42
2.8.3 Oracle分布式数据库架构
案例 44
2.9 分布式大数据库的系统体系
结构 46
2.10 分布式大数据库系统案例 47
2.10.1 HBase 47
2.10.2 Spanner 49
2.10.3 OceanBase 51
2.11 本章小结 53
习题 53
参考文献 53
第3章 分布式数据库的设计 56
3.1 设计策略 56
3.1.1 Top-Down设计过程 56
3.1.2 Bottom-Up设计过程 57
3.2 分片的定义和作用 57
3.2.1 分片的定义 58
3.2.2 分片的作用 58
3.2.3 分片设计过程 59
3.2.4 分片的原则 59
3.2.5 分片的种类 60
3.2.6 分布透明性 60
3.3 水平分片的设计 60
3.3.1 定义 60
3.3.2 水平分片的操作 63
3.3.3 水平分片的设计 63
3.3.4 正确性检验 65
3.4 垂直分片的设计 66
3.4.1 定义 66
3.4.2 垂直分片的操作 67
3.4.3 垂直分片的设计 67
3.4.4 正确性检验 67
3.5 混合分片的设计 68
3.6 分片的表示方法 69
3.6.1 图形表示法 69
3.6.2 分片树表示方法 69
3.7 分配设计 70
3.7.1 分配类型 70
3.7.2 分配设计原则 72
3.7.3 分配模型 73
3.8 数据复制技术 74
3.8.1 数据复制的优势 74
3.8.2 数据复制的分类 75
3.8.3 复制的常用方法 75
3.9 Oracle数据库的数据分布设计
案例 76
3.9.1 基于Oracle数据库链的
数据分布设计 76
3.9.2 Oracle集中式数据库的
数据分区技术 80
3.9.3 基于Oracle分片技术的
分布式数据库案例 82
3.10 大数据库的分布设计 86
3.10.1 大数据模型 86
3.10.2 数据分区策略 93
3.11 典型的大数据分布设计案例 97
3.11.1 HBase 97
3.11.2 Spanner 102
3.11.3 OceanBase 105
3.12 本章小结 110
习题 110
参考文献 111
第4章 分布式数据存储 114
4.1 大数据分布式存储类型 114
4.2 分布式文件系统 116
4.2.1 HDFS简介 116
4.2.2 HDFS的关系数据存储
结构 119
4.2.3 基本的SSTable数据存储
结构 125
4.2.4 LSM-Tree存储结构 127
4.3 分布式对象存储技术 130
4.3.1 三种主流的网络存储
结构 131
4.3.2 对象存储系统的体系
结构 131
4.3.3 Ceph 134
4.3.4 Swift 137
4.3.5 主流分布式存储技术的
比较 141
4.4 分布式索引结构 142
4.4.1 布隆过滤器 142
4.4.2 键值二级索引 145
4.4.3 跳跃表 148
4.4.4 分区数据上的索引结构 149
4.5 分布式缓存 151
4.5.1 分布式缓存概述 152
4.5.2 分布式缓存的体系结构 153
4.5.3 典型的分布式缓存系统 154
4.5.4 分布式缓存与存储引擎的
结合使用 160
4.6 Oracle数据库的存储结构 161
4.6.1 Oracle数据库的物理存储
结构 162
4.6.2 Oracle数据库的逻辑存储
结构 163
4.7 大数据库分布存储案例 164
4.7.1 HBase 164
4.7.2 Spanner 168
4.7.3 OceanBase 171
4.8 本章小结 177
习题 178
参考文献 179
第5章 分布式查询处理
与优化 181
5.1 查询处理基础 181
5.1.1 查询处理目标 181
5.1.2 查询优化的意义 183
5.1.3 查询优化的基本概念 186
5.1.4 查询优化的过程 187
5.2 查询处理器 189
5.2.1 查询处理器的特性 190
5.2.2 查询处理层次 192
5.3 查询分解 194
5.3.1 规范化 194
5.3.2 分析 195
5.3.3 约简 196
5.3.4 查询重写 197
5.4 数据局部化 200
5.5 片段查询的优化 202
5.6 Oracle查询计划案例 205
5.7 大数据库的查询处理及优化 207
5.7.1 NoSQL数据库的查询
处理方法 207
5.7.2 基于MapReduce的查询
处理 209
5.7.3 基于Hadoop的查询处理 214
5.7.4 基于Spark的数据分析
处理 217
5.8 大数据库查询处理与优化案例 221
5.8.1 HBase 221
5.8.2 Spanner 222
5.8.3 OceanBase 227
5.9 本章小结 235
习题 235
参考文献 236
第6章 查询存取优化 238
6.1 基本概念 239
6.1.1 分布查询的执行与处理 239
6.1.2 查询存取优化的内容 240
6.2 存取优化的理论基础 242
6.2.1 查询代价模型 242
6.2.2 数据库的特征参数和
统计信息 244
6.2.3 关系运算的特征参数 246
6.3 基于半连接的优化方法 255
6.3.1 半连接操作及相关规则 255
6.3.2 半连接运算的作用 256
6.3.3 使用半连接算法的通信
代价估计 257
6.3.4 半连接算法优化原理 258
6.4 基于枚举法的优化技术 259
6.4.1 嵌套循环连接算法 259
6.4.2 基于排序的连接算法 262
6.4.3 哈希连接算法 264
6.4.4 基于索引的连接算法 264
6.4.5 连接关系的传输方法 265
6.5 集中式系统中的查询优化算法 265
6.5.1 INGRES 265
6.5.2 System R 方法 269
6.5.3 考虑代价的动态规划
方法 270
6.5.4 PostgreSQL的遗传算法 273
6.6 分布式数据库系统中的查询
优化算法 275
6.6.1 分布式INGRES方法 275
6.6.2 System R*方法 281
6.6.3 SDD-1方法 282
6.7 Oracle分布式查询优化案例 292
6.7.1 基于数据链的Oracle
分布式查询优化 292
6.7.2 Oracle分片数据库查询
优化 295
6.8 面向大数据的存取优化方法 299
6.8.1 大数据库的查询存取
框架 299
6.8.2 基于索引的大数据库查询
存取优化方法 300
6.8.3 基于并行的大数据库查询
存取执行计划 304
6.9 大数据库系统的查询存取优化
案例 306
6.9.1 HBase 307
6.9.2 Spanner 308
6.9.3 OceanBase 318
6.10 本章小结 326
习题 326
参考文献 329
第7章 分布式事务管理 331
7.1 事务的基本概念 331
7.1.1 事务的定义 331
7.1.2 事务的基本性质 333
7.1.3 事务的种类 335
7.2 分布式事务 336
7.2.1 分布式事务的定义 336
7.2.2 分布式事务的实现模型 336
7.2.3 分布式事务管理的目标 339
7.3 分布式事务的提交协议 340
7.3.1 协调者和参与者 340
7.3.2 两段提交协议的基本
思想 341
7.3.3 两段提交协议的基本
流程 342
7.4 分布式事务管理的实现 343
7.4.1 LTM与DTM 344
7.4.2 分布式事务执行的控制
模型 344
7.4.3 分布式事务管理的实现
模型 346
7.5 两段提交协议的实现方法 348
7.5.1 集中式方法 348
7.5.2 分布式方法 349
7.5.3 分层式方法 349
7.5.4 线性方法 350
7.6 非阻塞分布式事务提交协议 351
7.6.1 三段提交协议的基本
思想 352
7.6.2 三段提交协议执行的
基本流程 354
7.7 Oracle分布事务管理案例 355
7.8 大数据库的事务管理 359
7.8.1 大数据库的事务管理
问题 359
7.8.2 大数据库系统设计的理论
基础 360
7.8.3 弱事务型与强事务型
大数据库 362
7.8.4 大数据库中的事务特性 364
7.8.5 大数据库的事务实现
方法 367
7.9 大数据库的分布式事务管理
案例 374
7.9.1 HBase 374
7.9.2 Spanner 377
7.9.3 OceanBase 379
7.10 本章小结 382
习题 383
参考文献 384
第8章 分布式恢复管理 386
8.1 分布式恢复概述 386
8.1.1 故障类型 386
8.1.2 恢复模型 389
8.2 集中式数据库的故障恢复 392
8.2.1 局部恢复系统的体系
结构 392
8.2.2 数据更新策略 392
8.3 分布式事务的故障恢复 393
8.3.1 两段提交协议对故障的
恢复 393
8.3.2 三段提交协议对故障的
恢复 396
8.4 分布式可靠性协议 399
8.4.1 可靠性和可用性 399
8.4.2 分布式可靠性协议的
组成 402
8.4.3 两段提交协议的终结
协议 402
8.4.4 两段提交协议的演变 405
8.4.5 三段提交协议的终结
协议 405
8.4.6 三段提交协议的演变 407
8.5 Oracle分布式数据库系统故障
恢复案例 409
8.6 大数据库的恢复管理 412
8.6.1 大数据库的恢复管理
问题 412
8.6.2 大数据库系统中的故障
类型 413
8.6.3 大数据库系统的故障检测
技术 414
8.6.4 基于事务的大数据库容错
技术 416
8.6.5 基于冗余的大数据库容错
技术 416
8.6.6 针对不同更新事务的恢复
方法 421
8.7 大数据库的分布式恢复管理
案例 423
8.7.1 HBase 423
8.7.2 Spanner 425
8.7.3 OceanBase 428
8.8 本章小结 431
习题 431
参考文献 432
第9章 分布式并发控制 435
9.1 分布式并发控制的基本概念 435
9.1.1 并发控制的问题 435
9.1.2 并发控制的定义 437
9.2 并发控制理论基础 437
9.2.1 事务执行过程的形式化
描述 437
9.2.2 集中库的可串行化
问题 438
9.2.3 分布式事务的可串行化
问题 439
9.3 基于锁的并发控制方法 440
9.3.1 锁的类型和相容性 440
9.3.2 封锁规则 440
9.3.3 锁的粒度 441
9.4 两段锁协议 441
9.4.1 基本的两段锁协议 441
9.4.2 严格的两段锁协议 443
9.4.3 可串行性证明 444
9.5 分布式数据库并发控制方法 444
9.5.1 基于锁的并发控制方法的
实现 444
9.5.2 基于时间戳的并发控制
算法 447
9.5.3 乐观的并发控制算法 450
9.6 分布式死锁管理 452
9.6.1 死锁等待图 452
9.6.2 死锁的检测 453
9.6.3 死锁的预防和避免 455
9.7 Oracle数据库并发控制案例 456
9.7.1 Oracle中的锁机制 456
9.7.2 Oracle中的并发控制 457
9.8 大数据库并发控制技术 458
9.8.1 事务读写模式扩展 458
9.8.2 封锁机制扩展 459
9.8.3 基于多版本并发控制
扩展 462
9.9 大数据库的分布式并发控制
案例 464
9.9.1 HBase 464
9.9.2 Spanner 466
9.9.3 OceanBase 470
9.10 本章小结 474
习题 474
参考文献 476
第10章 数据复制与一致性 478
10.1 数据复制的作用 478
10.2 数据复制一致性模型 479
10.3 分布式数据库复制策略 480
10.3.1 数据复制的执行方式 480
10.3.2 数据复制的实现方法 481
10.3.3 数据复制的体系结构 482
10.4 数据复制协议 483
10.4.1 主从复制协议 483
10.4.2 对等复制协议 487
10.5 大数据库一致性协议 488
10.5.1 Paxos协议 488
10.5.2 反熵协议 489
10.5.3 NWR协议 491
10.5.4 向量时钟技术 492
10.6 大数据库复制一致性管理 494
10.6.1 基于Paxos的复制管理
技术 494
10.6.2 基于反熵的复制管理
技术 498
10.6.3 基于NWR的复制管理
技术 499
10.6.4 基于向量时钟的复制
管理技术 501
10.6.5 ZooKeeper的ZAB
协议 502
10.7 Oracle数据库复制技术 504
10.8 大数据库复制与一致性管理
案例 507
10.8.1 HBase 507
10.8.2 Spanner 511
10.8.3 OceanBase 512
10.9 本章小结 515
习题 515
参考文献 515
第11章 区块链分布式数据
管理 517
11.1 区块链系统概述 517
11.1.1 区块链系统的起源 517
11.1.2 区块链系统与传统数据库
系统的对比 519
11.1.3 区块链系统的分类 520
11.1.4 区块链系统的体系结构 523
11.2 区块链的主要数据结构 525
11.2.1 区块链拓扑结构 525
11.2.2 区块数据存储结构 526
11.3 区块链的数据存储 529
11.3.1 区块链数据存储方法 529
11.3.2 区块链系统扩展存储
方法 532
11.4 区块链系统的数据管理 533
11.4.1 区块链的存取优化 533
11.4.2 区块链系统的查询
处理 534
11.5 区块链系统的事务管理 535
11.5.1 共识机制 535
11.5.2 智能合约 537
11.5.3 分布式事务处理 537
11.6 本章小结 539
习题 539
参考文献 539
第12章 AI赋能的数据管理 542
12.1 人工智能相关技术简介 542
12.1.1 决策树 542
12.1.2 聚类 543
12.1.3 人工神经网络 543
12.1.4 强化学习 544
12.2 数据分区 545
12.3 索引构建 546
12.4 查询优化 549
12.4.1 代价模型 549
12.4.2 基数估计 551
12.4.3 连接优化 553
12.5 负载管理与负载预测 556
12.5.1 负载管理 556
12.5.2 负载预测 558
12.6 配置参数调优 559
12.7 AI赋能的自治数据库系统 561
12.8 本章小结 562
习题 562
参考文献 562
第13章 分布式数据库系统
发展与前瞻 567
13.1 云原生数据库系统 567
13.1.1 Aurora数据库系统 568
13.1.2 PolarDB数据库系统 572
13.2 事务与分析混合处理数据库
系统 575
13.2.1 SAP HANA系统 576
13.2.2 TiDB数据库系统 580
13.3 其他类型的分布式大数据库
管理系统 583
13.3.1 NoSQL分布式大数据库
系统 583
13.3.2 面向OLTP的分布式
大数据库系统 584
13.3.3 跨异构处理系统的分布式
大数据库系统 585
13.4 数据库及大数据管理系统的
发展方向 585
13.4.1 数据科学 586
13.4.2 数据治理 586
13.4.3 云数据库服务 587
13.4.4 数据库引擎 589
13.4.5 新型数据库应用 590
13.5 本章小结 592
习题 592
参考文献 592