數據庫管理系統原理與設計(第3版) 內容簡介
《數據庫管理系統原理與設計》(第3版)由于內容全面,實踐性強,已經成為了數據庫課程的首選教材。全書分為數據庫基礎,應用程序開發、存儲與索引、查詢評估、事務管理、數據庫設計與調整、高級主題等七大部分,對數據庫的設計與使用、數據庫管理系統基本原理與實現技術,以及數據庫研究的新進展做了詳細論述。《數據庫管理系統原理與設計》以一個網上書店的完整設計為例,介紹了數據庫 系統的具體實現過程。第3版保留了前兩版的傳統優點,并且加入了許多關于數據庫最新研究和發展的內容,每章后面精選的復習題和練習使《數據庫管理系統原理與設計》更加吸引人,可讀性更強。
數據庫管理系統原理與設計(第3版) 目錄
第一部分 數據庫基礎
第1章 數據庫系統概述3
1.1 管理數據4
1.2 歷史回顧5
1.3 文件系統和數據庫管理系統6
1.4 數據庫管理系統的優點7
1.5 數據庫管理系統中數據的描述和存儲8
1.5.1關系模型8
1.5.2數據庫管理系統的抽象級別9
1.5.3數據獨立性11
1.6 數據庫管理系統中的查詢11
1.7 事務管理12
1.7.1事務的并發執行13
1.7.2未完成的事務和系統崩潰13
1.7.3注意要點14
1.8 數據庫管理系統的結構14
1.9 與數據庫打交道的人15
1.10復習題16
第2章 實體聯系模型19
2.1 數據庫設計與ER圖20
2.1.1其他步驟20
2.2 實體、屬性和實體集21
2.3 聯系和聯系集22
2.4ER模型的其他特征24
2.4.1碼約束24
2.4.2參與約束25
2.4.3弱實體25
2.4.4類層次27
2.4.5聚合29
2.5 用ER模型進行概念數據庫設計29
2.5.1實體對屬性30
2.5.2實體與聯系31
2.5.3二元與三元聯系32
2.5.4聚合與三元聯系33
2.6 大型企業的概念數據庫設計34
2.7 統一建模語言34
2.8 案例研究:網上書店35
2.8.1需求分析36
2.8.2概念設計36
2.9 復習題37
第3章 關系模型42
3.1 關系模型簡介43
3.1.1使用SQL創建和修改關系45
3.2 關系的完整性約束46
3.2.1碼約束47
3.2.2外碼約束48
3.2.3一般約束50
3.3 完整性約束的強制執行50
3.3. 1事務與約束52
3.4 查詢關系數據53
3.5 邏輯數據庫設計:從ER模型到關系模型55
3.5.1從實體集到關系表55
3.5.2從聯系集(不包括約束)到關系表56
3.5.3轉換帶碼約束的聯系集57
3.5.4轉換帶有參與約束的聯系集58
3.5.5轉換弱實體集60
3.5.6轉換類層次60
3.5.7轉換帶聚合的ER圖61
3.5.8ER模型到關系模型:更多的示例62
3.6 視圖簡介63
3.6.1視圖、數據獨立性和安全64
3.6.2視圖的更新64
3.7 刪除/修改關系表和視圖67
3.8 案例研究:網上書店67
3.9 復習題69
第4章 關系代數和演算74
4.1 預備知識74
4.2 關系代數75
4.2.1選擇和投影75
4.2.2集合操作76
4.2.3重命名78
4.2.4連接78
4.2.5除80
4.2.6關系代數查詢的其他示例81
4.3 關系演算85
4.3.1元組關系演算86
4.3.2域關系演算89
4.4 代數與演算的表達能力91
4.5 復習題92
第5章 SQL:查詢、約束與觸發器96
5.1 概述97
5.1.1章節組織97
5.2 基本SQL查詢的形式99
5.2.1基本SQL查詢的示例102
5.2.2SELECT命令中的表達式和字符串103
5.3 UNION、INTERSECT和EXCEPT104
5.4 嵌套查詢107
5.4.1嵌套查詢簡介107
5.4.2相關嵌套查詢109
5.4.3集合比較操作109
5.4.4有關嵌套查詢的其他示例110
5.5 聚集操作符111
5.5.1GROUP BY和HAVING子句114
5.5.2聚集查詢的其他示例117
5.6 空值120
5.6.1使用空值的比較121
5.6.2邏輯連接運算AND、OR和NOT121
5.6.3SQL構造符的作用121
5.6.4外連接122
5.6.5禁止使用空值122
5.7 SQL中的復雜完整性約束123
5.7.1單個表上的約束123
5.7.2域約束與DISTINCT類型123
5.7.3斷言:多個表上的完整性約束124
5.8 觸發器和主動數據庫125
5.8.1SQL的觸發器示例125
5.9 設計主動數據庫127
5.9.1為什么觸發器難以理解127
5.9.2約束和觸發器127
5.9.3觸發器的其他用途128
5.10 復習題128
第二部分 應用程序開發
第6章 數據庫應用開發139
6.1 從應用程序中訪問數據庫140
6.1.1嵌入式SQL140
6.1.2游標142
6.1.3動態SQL145
6.2 JDBC簡介146
6.2.1JDBC體系結構147
6.3 JDBC類和接口148
6.3.1JDBC驅動器管理148
6.3.2連接到數據源148
6.3.3執行SQL語句150
6.3.4結果集151
6.3.5異常和警告152
6.3.6檢查數據庫元數據153
6.4 SQLJ154
6.4.1編寫SQLJ代碼155
6.5 存儲過程157
6.5.1創建一個簡單的存儲過程157
6.5.2調用存儲過程158
6.5.3SQL/PSM159
6.6 案例研究:網上書店160
6.7 復習題163
第7章 Internet應用166
7.1 引言166
7.2 Internet的一些概念167
7.2.1統一資源標識符167
7.2.2超文本傳輸協議HTTP168
7.3 HTML文檔170
7.4 XML文檔171
7.4.1XML簡介172
7.4.2XML DTD174
7.4.3特定領域的DTD177
7.5 三層應用體系結構178
7.5.1單層和客戶服務器體系結構178
7.5.2三層體系結構180
7.5.3三層體系結構的優點181
7.6 展示層182
7.6.1HTML表單182
7.6.2JavaScript184
7.6.3樣式表185
7.7 中間層188
7.7.1CGI:通用網關接口188
7.7.2應用服務器189
7.7.3Servlet190
7.7.4JSP192
7.7.5維護狀態193
7.8 案例研究:網上書店195
7.9 復習題197
第三部分 存儲與索引
第8章 存儲與索引概述207
8.1 外部存儲上的數據208
8.2 文件組織與索引208
8.2.1聚簇索引209
8.2.2主索引和次索引210
8.3 索引數據結構210
8.3.1基于哈希的索引211
8.3.2基于樹的索引212
8.4 不同文件組織的比較213
8.4.1代價模型214
8.4.2堆文件214
8.4.3排序文件215
8.4.4聚簇文件216
8.4.5具有非聚簇樹索引的堆文件217
8.4.6具有非聚簇哈希索引的堆文件218
8.4.7I/O代價的比較219
8.5 索引和性能調整219
8.5.1工作負載的影響220
8.5.2聚簇索引組織220
8.5.3復合搜索碼222
8.5.4SQL∶1999中的索引規范225
8.6 復習題225
第9章 存儲數據:磁盤和文件230
9.1 存儲層次230
9.1.1磁盤231
9.1.2磁盤結構對性能的影響233
9.2 廉價冗余磁盤陣列(RAID)233
9.2.1數據劃分234
9.2.2冗余234
9.2.3冗余的層次235
9.2.4RAID級別的選擇238
9.3 磁盤空間管理238
9.3.1跟蹤空閑塊238
9.3.2使用操作系統的文件系統來管理磁盤空間238
9.4 緩沖區管理器239
9.4.1緩沖區替換策略241
9.4.2數據庫管理系統和操作系統的緩沖區管理241
9.5 記錄文件243
9.5.1堆文件的實現243
9.6 頁格式245
9.6.1定長記錄245
9.6.2變長記錄246
9.7 記錄格式247
9.7.1定長記錄248
9.7.2變長記錄248
9.8 復習題249
第10章 樹結構索引253
10.1 樹索引介紹254
10.2 索引順序存取方法255
10.2.1溢出頁與加鎖考慮257
10.3 B+樹:一種動態索引結構257
10.3.1節點格式258
10.4 搜索259
10.5 插入260
10.6 刪除262
10.7 重復266
10.8 實際的B+樹267
10.8.1碼壓縮267
10.8.2塊加載B+樹268
10.8.3秩的概念270
10.8.4rid上插入和刪除的影響271
10.9 復習題271
第11章 基于哈希的索引277
11.1 靜態哈希278
11.1.1記號與約定279
11.2 可擴展哈希279
11.3 線性哈希283
11.4 可擴展哈希與線性哈希的關系288
11.5 復習題288
第四部分 查 詢 評 估
第12章 查詢求解概述295
12.1 系統目錄296
12.1.1目錄中的信息296
12.2 操作符求解概述298
12.2.1三種常用技術298
12.2.2訪問路徑298
12.3 關系型操作的算法300
12.3.1選擇300
12.3.2投影301
12.3.3連接301
12.3.4其他操作302
12.4 查詢優化概述303
12.4.1查詢求解計劃303
12.4.2多處理器查詢:流水線求解304
12.4.3迭代操作的接口305
12.5 可選計劃:研究這一問題動機的示例306
12.5.1下推選擇306
12.5.2使用索引307
12.6 一個典型的優化器做些什么310
12.6.1考慮不同的查詢計劃310
12.6.2估算計劃的代價311
12.7 復習題312
第13章 外排序315
13.1 什么時候DBMS需要對數據進行排序315
13.2 簡單的兩路歸并排序算法316
13.3外歸并排序318
13.3.1段數的最小化320
13.4 最小化I/O開銷和I/O的次數321
13.4.1塊I/O321
13.4.2雙緩沖323
13.5 使用B+樹來排序323
13.5.1聚簇索引324
13.5.2非聚簇索引324
13.6 復習題326
第14章 關系操作求解328
14.1 選擇操作329
14.1.1無索引、未排序的數據329
14.1.2無索引、排序的數據330
14.1.3B+樹索引330
14.1.4哈希排序、等價選擇331
14.2 一般的選擇條件331
14.2.1CNF和索引匹配332
14.2.2求解無析取的選擇332
14.2.3求解有析取的選擇333
14.3 投影操作334
14.3.1基于排序的投影334
14.3.2基于哈希函數的投影335
14.3.3用于投影的排序和哈希336
14.3.4用于投影的索引使用337
14.4 連接操作337
14.4.1嵌套循環連接算法338
14.4.2排序歸并連接算法341
14.4.3哈希連接345
14.4.4一般的連接條件348
14.5 集合操作349
14.5.1用于并和差的排序349
14.5.2用于并和差的哈希349
14.6 聚集操作350
14.6.1使用索引實現聚集351
14.7 緩沖的影響351
14.8 復習題352
第15章 典型的關系查詢優化器357
15.1 將SQL查詢轉換成關系代數表達式358
15.1.1將SQL查詢分解成塊358
15.1.2把查詢塊表示成關系代數表達式359
15.2 估算執行計劃的開銷360
15.2.1估計結果的大小360
15.3 關系代數的等價364
15.3.1選擇364
15.3.2投影364
15.3.3叉積和連接364
15.3.4選擇、投影和連接365
15.3.5其他的等價366
15.4 列舉可選的執行計劃366
15.4.1單關系查詢367
15.4.2多關系查詢370
15.5 嵌套子查詢375
15.6 System R優化器377
15.7 查詢優化的其他方法377
15.8 復習題378
第五部分 事 務 管 理
第16章 事務管理概述389
16.1 ACID屬性390
16.1.1一致性和隔離性390
16.1.2原子性和持久性391
16.2 事務和調度391
16.3 事務的并發執行392
16.3.1并發執行的動機392
16.3.2可串行化392
16.3.3交叉執行帶來的異常394
16.3.4包括中止事務的調度396
16.4 基于加鎖的并發控制397
16.4.1嚴格的兩階段加鎖397
16.4.2死鎖398
16.5 加鎖的性能399
16.6SQL對事務的支持399
16.6.1創建和結束事務399
16.6.2應該鎖住什么400
16.6.3SQL中事務的特性401
16.7 崩潰恢復簡介403
16.7.1偷幀和強制寫頁403
16.7.2正常執行時與恢復相關的執行步驟404
16.7.3ARIES簡介405
16.7.4原子性:實現回滾405
16.8 復習題405
第17章 并發控制409
17.1 2PL、可串行性和可恢復性410
17.1.1觀測可串行化411
17.2 加鎖管理簡介412
17.2.1實現加鎖和解鎖請求412
17.3 鎖轉換413
17.4 死鎖處理414
17.4.1死鎖預防415
17.5 特殊的加鎖技術416
17.5.1動態數據庫和幻影問題416
17.5.2B+樹的并發控制417
17.5.3多粒度鎖419
17.6 不加鎖的并發控制420
17.6.1樂觀的并發控制420
17.6.2基于時間戳的并發控制422
17.6.3多版本并發控制424
17.7 復習題425
第18章 崩潰恢復431
18.1 ARIES算法簡介432
18.2 日志433
18.3 與恢復相關的其他數據結構435
18.4 寫優先日志協議435
18.5 檢查點436
18.6 從系統崩潰中恢復436
18.6.1分析階段437
18.6.2重做階段438
18.6.3反做階段439
18.7 介質恢復442
18.8 其他算法以及與并發控制的交互作用442
18.9 復習題443
第六部分 數據庫設計與調整
第19章 模式求精與范式451
19.1 模式求精簡介452
19.1.1冗余導致的問題452
19.1.2模式分解453
19.1.3模式分解中的一些問題454
19.2 函數依賴455
19.3 函數依賴推理456
19.3.1函數依賴集的閉包456
19.3.2屬性閉包457
19.4 范式458
19.4.1鮑依斯柯德范式458
19.4.2第三范式459
19.5 分解的特性461
19.5.1無損連接分解461
19.5.2保持依賴分解462
19.6 規范化463
19.6.1分解為BCNF463
19.6.2分解為3NF464
19.7 數據庫設計中的模式求精467
19.7.1一個實體集上的約束467
19.7.2一個聯系集上的約束468
19.7.3識別實體的屬性468
19.7.4識別實體集469
19.8 其他類型的依賴470
19.8.1多值依賴470
19.8.2第四范式472
19.8.3連接依賴473
19.8.4第五范式473
19.8.5包含依賴473
19.9 案例研究:網上書店474
19.10 復習題475
第20章 物理數據庫設計和調整482
20.1 物理數據庫設計簡介483
20.1.1數據庫負載483
20.1.2物理設計與調整決策484
20.1.3數據庫調整的必要性484
20.2 索引選擇的指導方針485
20.3 索引選擇的基本示例486
20.4 聚簇和索引488
20.4.1兩個關系的協同聚簇489
20.5 使只需索引的計劃成為可能的索引490
20.6 用于確定索引的輔助工具491
20.6.1自動的索引選擇491
20.6.2索引調整向導如何工作492
20.7 數據庫調整簡介494
20.7.1調整索引494
20.7.2調整概念模式495
20.7.3調整查詢和視圖496
20.8 調整概念模式時的選擇496
20.8.1設置一個弱范式497
20.8.2非規范化497
20.8.3分解的選擇497
20.8.4BCNF關系的垂直分解498
20.8.5水平分解499
20.9 調整查詢和視圖中的選擇499
20.10 并發控制的影響501
20.10.1減少鎖的保持時間501
20.10.2減少熱點502
20.11 案例研究:網上書店503
20.11.1數據庫的調整504
20.12 DBMS評測基準504
20.12.1著名的DBMS評測基準505
20.12.2評測基準的使用505
20.13 復習題506
第21章 安全與認證512
21.1 數據庫安全簡介513
21.2 訪問控制513
21.3 任意訪問控制514
21.3.1授予和回收視圖的訪問控制和完整性約束520
21.4 強制性訪問控制522
21.4.1多級關系和多實例化523
21.4.2轉換通道,DoD安全級別524
21.5 Internet應用的安全性525
21.5.1加密525
21.5.2認證服務器:SSL協議526
21.5.3數字簽名527
21.6 有關安全的其他問題528
21.6.1數據庫管理員的任務528
21.6.2統計數據庫的安全529
21.7 案例研究:網上書店530
21.8 復習題531
第七部分 高 級 主 題
第22章 并行與分布式數據庫537
22.1 簡介537
22.2 并行數據庫系統的可用結構538
22.3 并行查詢處理539
22.3.1數據劃分540
22.3.2并行化順序數據操作處理程序541
22.4 數據操作的并行化541
22.4.1批量載入和掃描541
22.4.2排序541
22.4.3連接542
22.5 并行查詢優化544
22.6 分布式數據庫簡介544
22.6.1分布式數據庫系統的類型545
22.7分布式DBMS的體系結構545
22.7.1客戶/服務器系統545
22.7.2協同服務器系統546
22.7.3中間件系統546
22.8 分布式DBMS的數據存儲546
22.8.1劃分547
22.8.2復制547
22.9 分布式目錄管理548
22.9.1命名對象548
22.9.2目錄結構548
22.9.3分布數據的獨立性549
22.10 分布式查詢處理549
22.10.1分布式DBMS中無連接的查詢550
22.10.2分布式DBMS中的連接操作550
22.10.3基于代價的查詢優化553
22.11 分布式數據的更新554
22.11.1同步復制554
22.11.2異步復制555
22.12 分布式事務557
22.13 分布式并發控制557
22.13.1分布式死鎖558
22.14 分布式事務恢復559
22.14.1事務正常執行和提交協議559
22.14.2發生故障后進行恢復560
22.14.3重新討論兩階段提交561
22.14.4三階段提交562
22.15 復習題563
第23章 對象數據庫系統571
23.1 研究動機示例572
23.1.1新的數據類型573
23.1.2操縱新類型數據574
23.2 結構化數據類型576
23.2.1集合類型576
23.3 結構化類型的數據操縱577
23.3.1行操作577
23.3.2數組操作577
23.3.3其他集合類型的操作578
23.3.4涉及嵌套集合的查詢示例578
23.4 封裝和抽象數據類型579
23.4.1定義方法580
23.5 繼承581
23.5.1定義帶有繼承的類型582
23.5.2方法聯編582
23.5.3集合層次583
23.6對象、對象標識符和引用類型583
23.6.1相等的概念584
23.6.2引用類型的解除584
23.6.3SQL∶1999中的URL和oid584
23.7 ORDBMS的數據庫設計585
23.7.1集合類型和ADTs585
23.7.2對象標識符587
23.7.3擴展ER模型588
23.7.4使用嵌套集合589
23.8 實現ORDBMS的挑戰590
23.8.1存儲和訪問方法590
23.8.2查詢處理591
23.8.3查詢優化593
23.9 OODBMS594
23.9.1ODMG數據模型和ODL594
23.9.2OQL596
23.10 RDBMS與OODBMS和ORDBMS的比較597
23.10.1RDBMS和ORDBMS597
23.10.2OODBMS和ORDBMS的相似點597
23.10.3OODBMS和ORDBMS的不同點597
23.11 復習題598
第24章 演繹數據庫604
24.1 遞歸查詢簡介605
24.1.1Datalog605
24.2 理論基礎607
24.2.1最小模型語義608
24.2.2不動點操作符609
24.2.3安全的Datalog程序610
24.2.4最小模型=最小不動點610
24.3 帶有否定的遞歸查詢611
24.3.1分層612
24.4 從Datalog到SQL614
24.5 遞歸查詢的求解616
24.5.1無重復推理的不動點求解616
24.5.2下移選擇操作來避免不相關的推理618
24.5.3魔集算法619
24.6 復習題621
第25章 數據倉庫與決策支持625
25.1 決策支持簡介626
25.2 OLAP:多維數據模型627
25.2.1多維數據庫設計629
25.3 多維聚集查詢630
25.3.1SQL∶1999中的ROLLUP和CUBE631
25.4 SQL∶1999中的WINDOW查詢633
25.4.1構造窗口635
25.4.2新的聚集函數635
25.5 快速得到查詢結果635
25.5.1得到前N個結果的查詢636
25.5.2聯機聚集637
25.6 OLAP實現技術638
25.6.1位圖索引638
25.6.2連接索引640
25.6.3文件組織640
25.7 數據倉庫641
25.7.1創建和維護數據倉庫641
25.8 視圖和決策支持642
25.8.1視圖、OLAP和數據倉庫642
25.8.2視圖上的查詢643
25.9 視圖實體化643
25.9.1視圖實體化的問題644
25.10 實體化視圖的維護645
25.10.1視圖的增量維護645
25.10.2維護數據倉庫視圖647
25.10.3進行視圖同步的時機648
25.11 復習題649
第26章 數據挖掘655
26.1 數據挖掘簡介655
26.1.1知識發現的過程656
26.2 關聯計數657
26.2.1頻繁項集657
26.2.2冰山式查詢659
26.3 規則挖掘660
26.3.1關聯規則660
26.3.2找出關聯規則的算法661
26.3.3關聯規則和ISA層次661
26.3.4通用化關聯規則662
26.3.5順序模式663
26.3.6使用關聯規則進行預測664
26.3.7貝葉斯網絡664
26.3.8分類和回歸規則665
26.4 樹結構規則666
26.4.1決策樹667
26.4.2建立決策樹的算法668
26.5 聚簇670
26.5.1一個聚簇算法671
26.6 在序列上的相似搜索671
26.6.1找出相似序列的算法673
26.7 增量挖掘和數據流673
26.7.1頻繁項集的增量維護674
26.8 其他的數據挖掘任務675
26.9 復習題676
第27章 信息檢索和XML數據681
27.1 沖突的世界:數據庫、IR和XML682
27.1.1DBMS與IR系統682
27.2 信息檢索介紹683
27.2.1向量空間模型683
27.2.2詞的TF/IDF權重684
27.2.3文檔相似性排序685
27.2.4對成功的衡量:查準率和查全率686
27.3 為文本搜索建立索引686
27.3.1倒排索引686
27.3.2簽名文件688
27.4 Web搜索引擎689
27.4.1搜索引擎體系結構689
27.4.2使用鏈接信息690
27.5 管理DBMS中的文本693
27.5.1松耦合的倒排索引693
27.6 一個XML的數據模型693
27.6.1松散結構的動機694
27.6.2圖模型694
27.7 XQuery:查詢XML數據695
27.7.1路徑表達式696
27.7.2FLWR表達式696
27.7.3元素的排序697
27.7.4分組以及集合值的生成698
27.8 XML查詢的有效求值698
27.8.1在RDBMS中存儲XML699
27.8.2對XML庫進行索引701
27.9 復習題704
第28章 空間數據管理712
28.1 空間數據和查詢類型713
28.2 涉及空間數據的應用714
28.3 空間索引簡介715
28.3.1已提出的索引結構概述716
28.4 基于空間填充曲線的索引717
28.4.1區域四叉樹和Z排序區域數據718
28.4.2使用Z排序的空間查詢719
28.5 網格文件719
28.5.1使用網格文件來處理區域721
28.6 R樹:點和區域數據721
28.6.1查詢722
28.6.2插入和刪除操作723
28.6.3并發控制724
28.6.4通用化搜索樹725
28.7 高維索引問題726
28.8 復習題726
第29章 其他專題729
29.1 高級事務處理729
29.1.1事務處理監視程序729
29.1.2新的事務模型730
29.1.3實時DBMS730
29.2 數據集成730
29.3 移動數據庫731
29.4 主存數據庫732
29.5 多媒體數據庫732
29.6 地理信息系統733
29.7 時態數據庫734
29.8 生物數據庫734
29.9 信息可視化734
29.10 小結735
第30章 MINIBASE教學輔助軟件736
30.1 可用內容736
30.2 MINIBASE作業概述736
30.3 致謝737
參考文獻
- 我的微信
- 掃一掃加好友
-
- 微信公眾號
- 掃一掃關注
-
2019年7月9日 下午4:41 1F
很好的一本書
2019年9月1日 下午8:44 2F
不錯
2020年10月22日 下午3:04 3F
希望能看到書,謝謝樓主分享了,真的很需要
2020年10月27日 上午10:40 4F
這本書非常棒!