分佈式數據庫系統

於戈//申德榮等編著

  • 出版商: 機械工業
  • 出版日期: 2023-05-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 594
  • 裝訂: 平裝
  • ISBN: 7111724704
  • ISBN-13: 9787111724704
  • 相關分類: 區塊鏈 Blockchain資料庫
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

相關主題

商品描述

本書共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數據庫的物理存儲結構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問題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擴展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