第一部分 事務處理的概念
第1章 事務處理的概念與理論簡介 2
1.1 事務處理簡介 2
1.1.1 單用戶系統(tǒng)與多用戶系統(tǒng) 2
1.1.2 事務、讀寫操作和DBMS緩沖區(qū) 3
1.1.3 并發(fā)控制的必要性 4
1.1.4 恢復的必要性 6
1.2 事務和系統(tǒng)概念 6
1.2.1 事務狀態(tài)及附加操作 7
1.2.2 系統(tǒng)日志 7
1.2.3 事務的提交點 8
1.3 事務的描述特性 8
1.4 描述基于可恢復性調度的特征 9
1.4.1 事務的調度(歷史) 9
1.4.2 描述基于可恢復性調度的特征 10
1.5 描述基于可串行性調度的特征 11
1.5.1 串行、非串行和沖突—可串行化調度 11
1.5.2 測試調度的沖突可串行性 14
1.5.3 可串行性的用途 16
1.5.4 視圖等價和視圖可串行性 17
1.5.5 調度等價性的其他類型 18
1.6 SQL中的事務支持 18
小結 19
復習題 20
練習題 20
參考文獻 21
第2章 并發(fā)控制技術 22
2.1 并發(fā)控制的兩階段加鎖技術 22
2.1.1 鎖類型與系統(tǒng)鎖表 22
2.1.2 通過兩階段加鎖保證可串行性 26
2.1.3 死鎖和饑餓處理 27
2.2 基于時間戳順序的并發(fā)控制 29
2.2.1 時間戳 29
2.2.2 時間戳排序算法 30
2.3 多版本并發(fā)控制技術 31
2.3.1 基于時間戳排序的多版本技術 31
2.3.2 使用驗證鎖的多版本兩階段加鎖 32
2.4 確認(樂觀的)并發(fā)控制技術 32
2.5 數據項粒度和多粒度加鎖 33
2.5.1 加鎖的粒度級別考慮 34
2.5.2 多粒度級別加鎖 34
2.6 索引中使用加鎖進行并發(fā)控制 36
2.7 并發(fā)控制的其他問題 37
2.7.1 插入、刪除以及幻像記錄 37
2.7.2 交互式事務 38
2.7.3 鎖存器 38
小結 38
復習題 38
練習題 39
參考文獻 39
第3章 數據庫恢復技術 41
3.1 恢復概念 41
3.1.1 恢復概述和恢復算法的分類 41
3.1.2 磁盤塊的高速緩存(緩沖) 42
3.1.3 先寫日志、潛入/非潛入和強制/非強制 42
3.1.4 系統(tǒng)日志中的檢查點和模糊檢查點 43
3.1.5 事務回滾 44
3.2 基于延遲更新的恢復技術 45
3.2.1 單用戶環(huán)境下使用延遲更新的恢復 46
3.2.2 多用戶環(huán)境下并發(fā)執(zhí)行的延遲更新 46
3.2.3 不影響數據庫的事務活動 48
3.3 基于即時更新的恢復技術 48
3.3.1 單用戶環(huán)境下基于即時更新的UNDO/REDO恢復 49
3.3.2 多用戶環(huán)境下基于即時更新的UNDO/REDO恢復 49
3.4 鏡像分頁 49
3.5 ARIES恢復算法 50
3.6 多數據庫系統(tǒng)中的恢復 53
3.7 數據庫備份和災難性故障恢復 53
小結 54
復習題 54
練習題 55
參考文獻 57
第二部分 對象和對象—關系數據庫
第4章 面向對象數據庫的概念 60
4.1 面向對象的概念 61
4.2 對象標識、對象結構和類型構造器 63
4.2.1 對象標識 63
4.2.2 對象結構 63
4.2.3 類型構造器 66
4.3 操作、方法和持久性的封裝 67
4.3.1 通過類操作指定對象行為 67
4.3.2 通過命名和可達性指定對象的持久性 69
4.4 類型、類層次和繼承 70
4.4.1 類型層次和繼承 70
4.4.2 對應于類型層次的外延約束 72
4.5 復雜對象 72
4.5.1 非結構化復雜對象和類型可擴展性 73
4.5.2 結構化復雜對象 73
4.6 其他面向對象的概念 74
4.6.1 多態(tài)性(操作符重載) 74
4.6.2 多重繼承與選擇性繼承 75
4.6.3 版本和配置 75
小結 76
復習題 76
練習題 77
參考文獻 77
第5章 對象數據庫標準、語言和設計 78
5.1 ODMG對象模型概述 79
5.1.1 對象和文字 79
5.1.2 匯集對象的內置接口 83
5.1.3 原子(用戶定義)對象 85
5.1.4 接口、類和繼承 86
5.1.5 類外延、碼和工廠對象 86
5.2 對象定義語言(ODL) 88
5.3 對象查詢語言(OQL) 92
5.3.1 簡單OQL查詢、數據庫入口點和迭代變量 92
5.3.2 查詢結果和路徑表達式 93
5.3.3 OQL的其他特性 95
5.4 C++語言綁定概述 98
5.5 對象數據庫概念設計 99
5.5.1 ODB與RDB概念設計的區(qū)別 99
5.5.2 EER模式到ODB模式的映射 100
小結 101
復習題 102
練習題 102
參考文獻 102
第6章 對象—關系和擴展—關系系統(tǒng) 104
6.1 SQL及其對象—關系特性概述 104
6.1.1 SQL標準及其組件 104
6.1.2 SQL-99中的對象—關系支持 105
6.1.3 SQL中一些新操作和特性 109
6.2 數據模型的演變和數據庫技術的當前發(fā)展趨勢 109
6.3 Informix Universal Server 110
6.3.1 可擴展數據類型 111
6.3.2 支持用戶定義例程 112
6.3.3 支持繼承 113
6.3.4 支持索引擴展 115
6.3.5 支持外部數據源 115
6.3.6 支持數據刀片應用編程接口 115
6.4 Oracle 8的對象—關系特性 118
6.4.1 Oracle對象—關系特性的一些示例 118
6.4.2 管理大對象以及其他存儲特性 119
6.5 擴展類型系統(tǒng)的實現和相關問題 120
6.6 嵌套關系數據模型 120
小結 122
參考文獻 122
第三部分 高級主題:安全性、高級建模和分布式
第7章 數據庫的安全性 126
7.1 數據庫安全性問題簡介 126
7.1.1 安全性的類型 126
7.1.2 控制措施 127
7.1.3 數據庫安全性和DBA 128
7.1.4 訪問保護、用戶賬戶和數據庫審計 128
7.2 基于授予和收回權限的自主訪問控制 129
7.2.1 自主性權限的類型 129
7.2.2 使用視圖指定權限 130
7.2.3 收回權限 130
7.2.4 使用GRANT OPTION選項傳播權限 130
7.2.5 一個示例 130
7.2.6 指定權限傳播的限定 131
7.3 多級安全性的強制訪問控制和基于角色訪問控制 132
7.3.1 自主訪問控制與強制訪問控制的比較 134
7.3.2 基于角色的訪問控制 134
7.3.3 XML訪問控制 135
7.3.4 電子商務和Web的訪問控制策略 135
7.4 統(tǒng)計數據庫的安全性簡介 136
7.5 流控制簡介 137
7.6 加密和公鑰構架 138
7.6.1 數據加密標準和高級加密標準 138
7.6.2 公鑰加密 138
7.6.3 數字簽名 139
7.7 保密性問題和保護 140
7.8 數據庫安全性所面臨的挑戰(zhàn) 140
7.8.1 數據質量 140
7.8.2 知識產權 140
7.8.3 數據庫生存能力 140
小結 141
復習題 141
練習題 142
參考文獻 142
第8章 面向高級應用的增強數據模型 144
8.1 主動數據庫概念和觸發(fā)器 145
8.1.1 主動數據庫和Oracle觸發(fā)器的一般模型 145
8.1.2 主動數據庫的設計和實現 148
8.1.3 STARBURST系統(tǒng)中使用語句級主動規(guī)則的示例 150
8.1.4 主動數據庫的潛在應用 151
8.1.5 SQL-99中的觸發(fā)器 152
8.2 時態(tài)數據庫概念 152
8.2.1 時間表示法、日歷和時間維 153
8.2.2 使用元組版本化在關系數據庫中加入時間 154
8.2.3 使用屬性版本化在面向對象數據庫中加入時間 159
8.2.4 時態(tài)查詢構造與TSQL2語言 160
8.2.5 時間序列數據 161
8.3 空間和多媒體數據庫 162
8.3.1 空間數據庫概念介紹 162
8.3.2 多媒體數據庫概念介紹 163
8.4 演繹數據庫介紹 164
8.4.1 演繹數據庫概述 164
8.4.2 Prolog/Datalog表示法 165
8.4.3 Datalog表示法 166
8.4.4 子句形式與Horn子句 167
8.4.5 規(guī)則解釋 168
8.4.6 Datalog程序及其安全性 169
8.4.7 關系操作的使用 171
8.4.8 非遞歸Datalog查詢的估算 172
小結 173
復習題 174
練習題 174
參考文獻 177
第9章 分布式數據庫和客戶—服務器體系結構 178
9.1 分布式數據庫概念 178
9.1.1 并行與分布式技術 179
9.1.2 分布式數據庫的優(yōu)勢 180
9.1.3 分布式數據庫的附加功能 181
9.2 分布式數據庫設計的數據分片、復制和分配技術 182
9.2.1 數據分片 182
9.2.2 數據復制和分配 184
9.2.3 分片、分配和復制示例 185
9.3 分布式數據庫系統(tǒng)的類型 187
9.4 分布式數據庫中的查詢處理 189
9.4.1 分布式查詢處理的數據傳輸代價 189
9.4.2 使用半連接的分布式查詢處理 191
9.4.3 查詢和更新分解 191
9.5 分布式數據庫中并發(fā)控制和恢復概述 193
9.5.1 基于識別數據項副本的分布式并發(fā)控制 194
9.5.2 基于投票方法的分布式并發(fā)控制 195
9.5.3 分布式恢復 195
9.6 三層客戶—服務器體系結構概述 195
9.7 Oracle分布式數據庫 197
小結 199
復習題 199
練習題 200
參考文獻 201
第四部分 新 興 技 術
第10章 使用PHP進行Web數據庫程序設計 204
10.1 結構化、半結構化以及非結構化數據 204
10.2 一個簡單的PHP示例 207
10.3 PHP基本特性概述 209
10.3.1 PHP變量、數據類型和程序設計結構 209
10.3.2 PHP數組 210
10.3.3 PHP函數 211
10.3.4 PHP服務器變量和表單 213
10.4 PHP數據庫程序設計概述 214
10.4.1 連接數據庫 214
10.4.2 從表單中匯集數據并插入記錄 215
10.4.3 數據庫表的檢索查詢 216
小結 217
復習題 217
練習題 217
實驗練習題 217
參考文獻 218
第11章 XML:可擴展標記語言 219
11.1 XML層次(樹)數據模型 219
11.2 XML文檔、DTD和XML模式 221
11.2.1 合式、有效XML文檔及XML DTD 221
11.2.2 XML模式 222
11.3 XML文檔和數據庫 226
11.3.1 存儲XML文檔的方法 226
11.3.2 從關系數據庫中抽取XML文檔 227
11.3.3 斷開環(huán)以實現從圖到樹的轉換 230
11.3.4 從數據庫抽取XML文檔的其他步驟 230
11.4 XML查詢 231
11.4.1 XPath:在XML中指路徑表達式 231
11.4.2 XQuery:在XML中指定查詢 232
小結 232
復習題 233
練習題 233
參考文獻 233
第12章 數據挖掘概念 234
12.1 數據挖掘技術概述 234
12.1.1 數據挖掘和數據倉庫 234
12.1.2 數據挖掘是知識發(fā)現過程的一部分 234
12.1.3 數據挖掘和知識發(fā)現的目標 235
12.1.4 數據挖掘期間知識發(fā)現的類型 236
12.2 關聯規(guī)則 237
12.2.1 市場購物籃模型、支持度與可信度 237
12.2.2 Apriori算法 238
12.2.3 采樣算法 239
12.2.4 頻繁模式樹算法 239
12.2.5 分區(qū)算法 241
12.2.6 其他類型的關聯規(guī)則 242
12.2.7 關聯規(guī)則的附加考慮 244
12.3 分類 244
12.4 聚類 246
12.5 其他數據挖掘問題的方法 248
12.5.1 序列模式的發(fā)現 248
12.5.2 時間序列中模式的發(fā)現 248
12.5.3 回歸 249
12.5.4 神經網絡 249
12.5.5 遺傳算法 249
12.6 數據挖掘的應用 250
12.7 商業(yè)化數據挖掘工具 250
12.7.1 用戶界面 251
12.7.2 應用編程接口 251
12.7.3 未來的方向 251
小結 252
復習題 252
練習題 252
參考文獻 254
第13章 數據倉庫和OLAP概述 255
13.1 概述、定義和術語 255
13.2 數據倉庫的特性 256
13.3 數據倉庫的數據模型 257
13.4 構建數據倉庫 261
13.5 數據倉庫的典型功能 263
13.6 數據倉庫和視圖 263
13.7 數據倉庫中的難題和開放問題 264
13.7.1 數據倉庫實現中的困難 264
13.7.2 數據倉庫的開放問題 264
小結 265
復習題 265
參考文獻 265
第14章 新興的數據庫技術及應用 266
14.1 移動數據庫 266
14.1.1 移動計算體系結構 266
14.1.2 移動環(huán)境的特征 269
14.1.3 數據管理問題 270
14.1.4 應用:間歇同步數據庫 270
14.2 多媒體數據庫 271
14.2.1 多媒體數據和應用的特征 271
14.2.2 數據管理問題 272
14.2.3 開放研究問題 273
14.2.4 多媒體數據庫應用 274
14.3 地理信息系統(tǒng)(GIS) 275
14.3.1 GIS系統(tǒng)組件 276
14.3.2 GIS中數據的特征 276
14.3.3 GIS概念數據模型 278
14.3.4 GIS的DBMS增強功能 278
14.3.5 GIS標準和操作 279
14.3.6 GIS應用和軟件 281
14.3.7 GIS未來的工作 282
14.4 基因組數據管理 283
14.4.1 生物科學和遺傳學 283
14.4.2 生物數據的特征 284
14.4.3 人類基因組項目和現有的生物數據庫 286
參考文獻 289
致謝 291
附錄A ER模型的可選圖形表示法 292
附錄B 磁盤參數 294
附錄C QBE語言概述 296