資料庫管理系統原理與設計(第3版)

資料庫管理系統原理與設計(第3版)

《資料庫管理系統原理與設計(第3版)》是2012年清華大學出版社出版的圖書,作者是羅摩克里希納 (Raghu Ramakrishnan、格爾基 (Johannes Gehrke)。

基本介紹

  • 書名:資料庫管理系統原理與設計(第3版)
  • 作者:羅摩克里希納 (Raghu Ramakrishnan、格爾基 (Johannes Gehrke)
  • 出版社:清華大學出版社
  • 出版時間:2012年03月22日
  • 定價:69.00
  • 裝幀:平裝
  • ISBN:9787302079392
內容簡介,編輯推薦,作者簡介,目錄,

內容簡介

本書由於內容全面,實踐性強,已經成為了資料庫課程旋棄閥的首選教材。全書分為資料庫基礎,應用程式開發、存儲與索引、查詢評估、事務管理、資料庫設計與調整、高級主題等七大部分,達慨疊微對資料庫的設計與使用、資料庫管理系統基本原理與實現技術,以及資料庫研究的新進展做了詳細論述。

編輯推薦

《資料庫管理系統原理與設計》(第3版)可作為高等院校計算機專業本科生、研究生和教師的教材和教學參考,對於從事資料庫系統研究以及學習資料庫系統技術的人也很有參考價值。

作者簡介

作者:(美國)羅摩克里希納 (Raghu Ramakrishnan) (美國)格爾基 (Johannes Gehrke) 譯者:周立柱 張志強 李超 王煜

目錄

第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.3UNION、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.1GROUPBY和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.7SQL中的複雜完整性約束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.2JDBC簡介146
6.2.1JDBC體系結構147
6.3JDBC類和接口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.4SQLJ154
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.2Internet的一些概念167
7.2.1統一資源標識符167
7.3HTML文檔170
7.4XML文檔171
7.4.1XML簡介172
7.4.2XMLDTD174
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.3B+樹:一種動態索引結構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.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.6SystemR最佳化器377
15.7查詢最佳化的其他方法377
15.8複習題378
第五部分事務管理
第16章事務管理概述389
16.1ACID屬性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.12PL、可串列性和可恢復性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.1ARIES算法簡介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.12DBMS評測基準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.5Internet套用的安全性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.7ORDBMS的資料庫設計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.9OODBMS594
23.9.1ODMG數據模型和ODL594
23.9.2OQL596
23.10RDBMS與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.2OLAP:多維數據模型627
25.2.1多維資料庫設計629
25.3多維聚集查詢630
25.3.1SQL∶1999中的ROLLUP和CUBE631
25.4SQL∶1999中的WINDOW查詢633
25.4.1構造視窗635
25.4.2新的聚集函式635
25.5快速得到查詢結果635
25.5.1得到前N個結果的查詢636
25.5.2在線上聚集637
25.6OLAP實現技術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.4Web搜尋引擎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.7XQuery:查詢XML數據695
27.7.1路徑表達式696
27.7.2FLWR表達式696
27.7.3元素的排序697
27.7.4分組以及集合值的生成698
27.8XML查詢的有效求值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.6R樹:點和區域數據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.6地理信息系統733
29.7時態資料庫734
29.8生物資料庫734
29.9信息可視化734
29.10小結735
第30章MINIBASE教學輔助軟體736
30.1可用內容736
30.2MINIBASE作業概述736
30.3致謝737
參考文獻738
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.3UNION、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.1GROUPBY和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.7SQL中的複雜完整性約束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.2JDBC簡介146
6.2.1JDBC體系結構147
6.3JDBC類和接口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.4SQLJ154
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.2Internet的一些概念167
7.2.1統一資源標識符167
7.3HTML文檔170
7.4XML文檔171
7.4.1XML簡介172
7.4.2XMLDTD174
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.3B+樹:一種動態索引結構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.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.6SystemR最佳化器377
15.7查詢最佳化的其他方法377
15.8複習題378
第五部分事務管理
第16章事務管理概述389
16.1ACID屬性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.12PL、可串列性和可恢復性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.1ARIES算法簡介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.12DBMS評測基準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.5Internet套用的安全性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.7ORDBMS的資料庫設計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.9OODBMS594
23.9.1ODMG數據模型和ODL594
23.9.2OQL596
23.10RDBMS與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.2OLAP:多維數據模型627
25.2.1多維資料庫設計629
25.3多維聚集查詢630
25.3.1SQL∶1999中的ROLLUP和CUBE631
25.4SQL∶1999中的WINDOW查詢633
25.4.1構造視窗635
25.4.2新的聚集函式635
25.5快速得到查詢結果635
25.5.1得到前N個結果的查詢636
25.5.2在線上聚集637
25.6OLAP實現技術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.4Web搜尋引擎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.7XQuery:查詢XML數據695
27.7.1路徑表達式696
27.7.2FLWR表達式696
27.7.3元素的排序697
27.7.4分組以及集合值的生成698
27.8XML查詢的有效求值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.6R樹:點和區域數據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.6地理信息系統733
29.7時態資料庫734
29.8生物資料庫734
29.9信息可視化734
29.10小結735
第30章MINIBASE教學輔助軟體736
30.1可用內容736
30.2MINIBASE作業概述736
30.3致謝737
參考文獻738

相關詞條

熱門詞條

聯絡我們