資料庫系統基礎教程(原書第3版)

資料庫系統基礎教程(原書第3版)

《資料庫系統基礎教程(原書第3版)》是2019年9月機械工業出版社出版的圖書,作者是(美)JeffreyD.Ullman。

基本介紹

  • 書名:資料庫系統基礎教程(原書第3版)
  • 作者:(美)JeffreyD.Ullman
  • ISBN:9787111268284
  • 定價:45.0元
  • 出版社:機械工業出版社
  • 出版時間:2019年9月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書分兩大部分,首先是流行的關係資料庫和關係對象資料庫內容,介紹了關係數據模型、E/R模型、UML模型以及對象模型等高級數據模型。然後介紹了有關半結構化數據組織管理中比較流行的XML等內容。

圖書目錄

出版者的話
譯者序
前言
第1章 資料庫系統世界 1
1.1 資料庫系統的發展 1
1.1.1 早期的資料庫管理系統 1
1.1.2 關係資料庫系統 2
1.1.3 越來越小的系統 2
1.1.4 越來越大的系統 2
1.1.5 信息集成 3
1.2 資料庫管理系統概述 3
1.2.1 數據定義語言命令 3
1.2.2 查詢處理概述 4
1.2.3 存儲器和緩衝區管理器 5
1.2.4 事務處理 5
1.2.5 查詢處理器 6
1.3 本書概述 6
1.4 參考文獻 7
第一部分 關係資料庫模型
第2章 關係數據模型 9
2.1 數據模型概述 9
2.1.1 什麼是數據模型 9
2.1.2 一些重要的數據模型 9
2.1.3 關係模型簡介 10
2.1.4 半結構化模型簡介 10
2.1.5 其他數據模型 11
2.1.6 幾種建模方法的比較 11
2.2 關係模型基礎 12
2.2.1 屬性 12
2.2.2 模式 12
2.2.3 元組 12
2.2.4 域 12
2.2.5 關係的等價描述 13
2.2.6 關係實例 13
2.2.7 關係上的鍵 13
2.2.8 資料庫模式示例 14
2.2.9 習題 15
2.3 在SQL中定義關係模式 16
2.3.1 SQL中的關係 16
2.3.2 數據類型 16
2.3.3 簡單的表定義 17
2.3.4 修改關係模式 18
2.3.5 默認值 18
2.3.6 鍵的聲明 19
2.3.7 習題 20
2.4 代數查詢語言 21
2.4.1 為什麼需要一種專門的查詢語言 21
2.4.2 什麼是代數 21
2.4.3 關係代數概述 21
2.4.4 關係上的集合操作 21
2.4.5 投影 23
2.4.6 選擇 23
2.4.7 笛卡兒積 24
2.4.8 自然連線 24
2.4.9 q連線 25
2.4.10 組合操作構成查詢 26
2.4.11 命名和重命名 27
2.4.12 操作之間的聯繫 27
2.4.13 代數表達式的線性符號 28
2.4.14 習題 29
2.5 關係上的約束 32
2.5.1 作為約束語言的關係代數 32
2.5.2 引用完整性約束 33
2.5.3 鍵約束 33
2.5.4 其他約束舉例 34
2.5.5 習題 35
2.6 小結 35
2.7 參考文獻 36
第3章 關係資料庫設計理論 37
3.1 函式依賴 37
3.1.1 函式依賴的定義 37
3.1.2 關係的鍵 38
3.1.3 超鍵 39
3.1.4 習題 40
3.2 函式依賴的規則 40
3.2.1 函式依賴的推導 40
3.2.2 分解/結合規則 40
3.2.3 平凡函式依賴 41
3.2.4 計算屬性的閉包 42
3.2.5 閉包算法為何有效 43
3.2.6 傳遞規則 44
3.2.7 函式依賴的閉包集合 45
3.2.8 投影函式依賴 45
3.2.9 習題 47
3.3 關係資料庫模式設計 48
3.3.1 異常 48
3.3.2 分解關係 49
3.3.3 Boyce-Codd範式 50
3.3.4 分解為BCNF 50
3.3.5 習題 52
3.4 分解的優劣 53
3.4.1 從分解中恢覆信息 53
3.4.2 無損連線的chase檢驗 55
3.4.3 為什麼chase檢驗有效 56
3.4.4 依賴的保持 57
3.4.5 習題 58
3.5 第三範式 58
3.5.1 第三範式的定義 59
3.5.2 3NF模式綜合算法 59
3.5.3 為什麼3NF綜合算法有效 60
3.5.4 習題 60
3.6 多值依賴 61
3.6.1 屬性獨立及隨之產生的冗餘 61
3.6.2 多值依賴的定義 61
3.6.3 多值依賴的推導 62
3.6.4 第四範式 64
3.6.5 分解為第四範式 64
3.6.6 範式間的聯繫 65
3.6.7 習題 65
3.7 MVD的發現算法 66
3.7.1 閉包和chase 66
3.7.2 將chase擴展到MVD 67
3.7.3 chase為何對MVD有效 69
3.7.4 投影MVD 69
3.7.5 習題 70
3.8 小結 70
3.9 參考文獻 71
第4章 高級資料庫模型 73
4.1 E/R模型 73
4.1.1 實體集 73
4.1.2 屬性 74
4.1.3 聯繫 74
4.1.4 實體-聯繫圖 74
4.1.5 E/R圖實例 75
4.1.6 二元E/R聯繫的多樣性 75
4.1.7 多路聯繫 76
4.1.8 聯繫中的角色 77
4.1.9 聯繫的屬性 78
4.1.10 多路聯繫到二元聯繫的轉換 79
4.1.11 E/R模型中的子類 80
4.1.12 習題 81
4.2 設計原則 82
4.2.1 忠實性 82
4.2.2 避免冗餘 83
4.2.3 簡單性  83
4.2.4 選擇正確的聯繫 83
4.2.5 選擇正確的元素種類 84
4.2.6 習題 86
4.3 E/R模型中的約束 87
4.3.1 E/R模型中的鍵 87
4.3.2 E/R模型中鍵的表示 87
4.3.3 引用完整性 88
4.3.4 度約束 89
4.3.5 習題 89
4.4 弱實體集 89
4.4.1 弱實體集的來源 89
4.4.2 弱實體集的要求 90
4.4.3 弱實體集的符號 91
4.4.4 習題 91
4.5 從E/R圖到關係設計 92
4.5.1 實體集到關係的轉化 92
4.5.2 E/R聯繫到關係的轉化 92
4.5.3 關係組合 94
4.5.4 處理弱實體集 95
4.5.5 習題 96
4.6 子類結構到關係的轉化 97
4.6.1 E/R方式轉化 97
4.6.2 面向對象方法 98
4.6.3 使用空值組合關係 99
4.6.4 各種方法的比較 99
4.6.5 習題 100
4.7 統一建模語言 101
4.7.1 UML類 101
4.7.2 UML類的鍵 101
4.7.3 關聯 101
4.7.4 自關聯 102
4.7.5 關聯類 103
4.7.6 UML中的子類 103
4.7.7 聚集與組合 104
4.7.8 習題 105
4.8 UML圖到關係的轉化 105
4.8.1 UML到關係的基礎知識 105
4.8.2 從UML子類到關係 106
4.8.3 從聚集與組合到關係 106
4.8.4 UML與弱實體集的類比 107
4.8.5 習題 108
4.9 對象定義語言 108
4.9.1 類聲明 108
4.9.2 ODL中的屬性 108
4.9.3 ODL中的聯繫 109
4.9.4 反向聯繫 109
4.9.5 聯繫的多重性 110
4.9.6 ODL中的類型 110
4.9.7 ODL中的子類 112
4.9.8 在ODL中聲明鍵 113
4.9.9 習題 113
4.10 從ODL設計到關係設計 114
4.10.1 從ODL類到關係 114
4.10.2 類中的複雜屬性 114
4.10.3 值集合類型屬性的表示 115
4.10.4 其他類型構建器的表示 116
4.10.5 ODL中聯繫的表示 117
4.10.6 習題 117
4.11 小結 118
4.12 參考文獻 119
第二部分 關係資料庫程式設計
第5章 代數和邏輯查詢語言 121
5.1 包上的關係操作 121
5.1.1 為什麼採用包 121
5.1.2 包的並、交、差 122
5.1.3 包上的投影操作 123
5.1.4 包上的選擇操作 123
5.1.5 包的笛卡兒積 124
5.1.6 包的連線 124
5.1.7 習題 125
5.2 關係代數的擴展操作符 125
5.2.1 消除重複 126
5.2.2 聚集操作符 126
5.2.3 分組 127
5.2.4 分組操作符 127
5.2.5 擴展的投影操作符 128
5.2.6 排序操作符 129
5.2.7 外連線 129
5.2.8 習題 130
5.3 關係邏輯 131
5.3.1 謂詞和原子 131
5.3.2 算術原子 131
5.3.3 Datalog規則和查詢 132
5.3.4 Datalog規則的意義 133
5.3.5 擴展謂詞和內涵謂詞 134
5.3.6 Datalog規則套用於包 135
5.3.7 習題 136
5.4 關係代數與Datalog 136
5.4.1 布爾操作 136
5.4.2 投影 137
5.4.3 選擇 137
5.4.4 積 138
5.4.5 連線 139
5.4.6 用Datalog模擬多重操作 139
5.4.7 Datalog與關係代數的比較 140
5.4.8 習題 141
5.5 小結 141
5.6 參考文獻 142
第6章 資料庫語言SQL 143
6.1 SQL中的簡單查詢 143
6.1.1 SQL中的投影 145
6.1.2 SQL中的選擇 146
6.1.3 字元串比較 147
6.1.4 SQL中的模式匹配 147
6.1.5 日期和時間 148
6.1.6 空值和涉及空值的比較 149
6.1.7 布爾值UNKNOWN 149
6.1.8 輸出排序 151
6.1.9 習題 151
6.2 多關係查詢 152
6.2.1 SQL中的積和連線 153
6.2.2 消除屬性歧義 153
6.2.3 元組變數 154
6.2.4 多關係查詢的解釋 155
6.2.5 查詢的並、交、差 156
6.2.6 習題 157
6.3 子查詢 158
6.3.1 產生標量值的子查詢 159
6.3.2 關係的條件表達式 160
6.3.3 元組的條件表達式 160
6.3.4 關聯子查詢 161
6.3.5 FROM子句中的子查詢 162
6.3.6 SQL的連線表達式 163
6.3.7 自然連線 164
6.3.8 外連線 164
6.3.9 習題 165
6.4 全關係操作 167
6.4.1 消除重複 167
6.4.2 並、交、差中的重複 168
6.4.3 SQL中的分組和聚集 168
6.4.4 聚集操作符 168
6.4.5 分組 169
6.4.6 分組、聚集和空值 170
6.4.7 HAVING子句 171
6.4.8 習題 171
6.5 資料庫更新 172
6.5.1 插入 172
6.5.2 刪除 174
6.5.3 修改 174
6.5.4 習題 175
6.6 SQL中的事務 175
6.6.1 可串列化 175
6.6.2 原子性 177
6.6.3 事務 177
6.6.4 唯讀事務 178
6.6.5 讀髒數據 179
6.6.6 其他隔離層次 180
6.6.7 習題 181
6.7 小結 182
6.8 參考文獻 183
第7章 約束與觸發器 184
7.1 鍵和外鍵 184
7.1.1 外鍵約束聲明 184
7.1.2 維護引用完整性 185
7.1.3 延遲約束檢查 186
7.1.4 習題 188
7.2 屬性和元組上的約束 188
7.2.1 非空值約束 189
7.2.2 基於屬性的CHECK約束 189
7.2.3 基於元組的CHECK約束 190
7.2.4 基於元組和基於屬性的約束的比較 191
7.2.5 習題 191
7.3 修改約束 192
7.3.1 給約束命名 192
7.3.2 修改表上的約束 193
7.3.3 習題 193
7.4 斷言 194
7.4.1 創建斷言 194
7.4.2 使用斷言 194
7.4.3 習題 195
7.5 觸發器 196
7.5.1 SQL中的觸發器 196
7.5.2 觸發器設計的選項 197
7.5.3 習題 199
7.6 小結 200
7.7 參考文獻 201
第8章 視圖與索引 202
8.1 虛擬視圖 202
8.1.1 視圖定義 202
8.1.2 視圖查詢 203
8.1.3 屬性重命名 203
8.1.4 習題 204
8.2 視圖更新 204
8.2.1 視圖刪除 204
8.2.2 可更新視圖 204
8.2.3 視圖中的替換觸發器 206
8.2.4 習題 207
8.3 SQL中的索引 207
8.3.1 建立索引的動機 208
8.3.2 索引的聲明 208
8.3.3 習題 209
8.4 索引的選擇 209
8.4.1 簡單代價模型 209
8.4.2 一些有用的索引 209
8.4.3 計算最佳索引 211
8.4.4 索引的自動選擇 213
8.4.5 習題 213
8.5 物化視圖 214
8.5.1 物化視圖的維護 214
8.5.2 物化視圖的定期維護 215
8.5.3 利用物化視圖重寫查詢 216
8.5.4 物化視圖的自動創建 217
8.5.5 習題 218
8.6 小結 218
8.7 參考文獻 219
第9章 伺服器環境下的SQL 220
9.1 三層體系結構 220
9.1.1 Web伺服器層 220
9.1.2 套用層 221
9.1.3 資料庫層 222
9.2 SQL環境 222
9.2.1 環境 222
9.2.2 模式 223
9.2.3  223
9.2.4 SQL環境中的客戶和伺服器 224
9.2.5 連線 224
9.2.6 會話 225
9.2.7 模組 225
9.3 SQL/宿主語言接口 225
9.3.1 阻抗不匹配問題 226
9.3.2 SQL與宿主語言連線 227
9.3.3 DECLARE節 227
9.3.4 使用共享變數 227
9.3.5 單元組選擇語句 228
9.3.6 游標 229
9.3.7 游標更新 231
9.3.8 避免並發修改 231
9.3.9 動態SQL 232
9.3.10 習題 233
9.4 存儲過程 234
9.4.1 創建PSM函式和過程 234
9.4.2 PSM中的簡單語句格式 234
9.4.3 分支語句 235
9.4.4 PSM中的查詢 236
9.4.5 PSM中的循環 237
9.4.6 for循環 238
9.4.7 PSM中的異常處理 239
9.4.8 使用PSM函式和過程 241
9.4.9 習題 241
9.5 使用調用層接口 242
9.5.1 SQL/CLI簡介 242
9.5.2 進程語句 244
9.5.3 從查詢結果中取數據 244
9.5.4 向查詢傳遞參數 246
9.5.5 習題 247
9.6 JDBC 247
9.6.1 JDBC簡介 247
9.6.2 JDBC中的創建語句 248
9.6.3 JDBC中的游標操作 249
9.6.4 參數傳遞 249
9.6.5 習題 250
9.7 PHP 250
9.7.1 PHP基礎 250
9.7.2 數組 251
9.7.3 PEAR DB庫 251
9.7.4 使用DB創建資料庫連線 251
9.7.5 執行SQL語句 251
9.7.6 PHP中的游標操作 252
9.7.7 PHP中的動態SQL 252
9.7.8 習題 253
9.8 小結 253
9.9 參考文獻 254
第10章 關係資料庫的新課題 255
10.1 SQL中的安全機制和用戶認證 255
10.1.1 許可權 255
10.1.2 創建許可權 256
10.1.3 檢查許可權的過程 257
10.1.4 授權 257
10.1.5 授權圖 258
10.1.6 收權 259
10.1.7 習題 262
10.2 SQL中的遞歸 262
10.2.1 在SQL中定義遞歸關係 262
10.2.2 有問題的遞歸SQL表達式 264
10.2.3 習題 266
10.3 對象關係模型 267
10.3.1 從關係到對象關係 267
10.3.2 嵌套關係 267
10.3.3 引用 268
10.3.4 面向對象與對象關係的比較 269
10.3.5 習題 270
10.4 SQL中的用戶定義類型 270
10.4.1 在SQL中定義類型 270
10.4.2 用戶定義類型中的方法聲明 271
10.4.3 方法定義 272
10.4.4 用UDT聲明關係 272
10.4.5 引用 272
10.4.6 為表生成對象標識符 273
10.4.7 習題 274
10.5 對象關係數據上的操作 274
10.5.1 引用的跟隨 274
10.5.2 訪問UDT類型的元組分量 275
10.5.3 生成器和轉換器函式 276
10.5.4 UDT上聯繫的排序 277
10.5.5 習題 278
10.6 在線上分析處理 279
10.6.1 OLAP和數據倉庫 279
10.6.2 OLAP套用 279
10.6.3 OLAP數據的多維視圖 280
10.6.4 星型模式 280
10.6.5 切片和切塊 281
10.6.6 習題 283
10.7 數據立方體 283
10.7.1 立方體運算元 284
10.7.2 SQL中的立方體運算元 285
10.7.3 習題 286
10.8 小結 286
10.9 參考文獻 287
第三部分 半結構化數據的建模和程式設計
第11章 半結構化數據模型 289
11.1 半結構化數據 289
11.1.1 為何需要半結構化數據模型 289
11.1.2 半結構化數據表示 290
11.1.3 信息集成與半結構化數據 291
11.1.4 習題 292
11.2 XML 292
11.2.1 語義標籤 292
11.2.2 有模式和無模式的XML 292
11.2.3 格式規範的XML 292
11.2.4 屬性 294
11.2.5 連線元素的屬性 294
11.2.6 命名空間 295
11.2.7 XML和資料庫 295
11.2.8 習題 296
11.3 文檔類型定義 296
11.3.1 DTD的格式 296
11.3.2 使用DTD 299
11.3.3 屬性列表 299
11.3.4 標識符和引用 299
11.3.5 習題 300
11.4 XML模式 301
11.4.1 XML模式的格式 301
11.4.2 元素 301
11.4.3 複雜類型 302
11.4.4 屬性 303
11.4.5 受限的簡單類型 304
11.4.6 XML模式中的鍵 305
11.4.7 XML模式中的外鍵 306
11.4.8 習題 308
11.5 小結 308
11.6 參考文獻 309
第12章 XML程式設計語言 310
12.1 XPath 310
12.1.1 XPath數據模型 310
12.1.2 文檔節點 311
12.1.3 路徑表達式 311
12.1.4 相對路徑表達式 312
12.1.5 路徑表達式中的屬性 312
12.1.6 軸 312
12.1.7 表達式的上下文 313
12.1.8 通配符 313
12.1.9 路徑表達式中的條件 314
12.1.10 習題 315
12.2 XQuery 316
12.2.1 XQuery基礎 317
12.2.2 FLWR表達式 318
12.2.3 通過變數的值置換變數 320
12.2.4 XQuery中的連線 321
12.2.5 XQuery比較操作符 322
12.2.6 消除重複 323
12.2.7 XQuery中的量詞 323
12.2.8 聚集 324
12.2.9 XQuery表達式中的分支 324
12.2.10 查詢結果排序 324
12.2.11 習題 325
12.3 擴展樣式表語言 326
12.3.1 XSLT基礎 326
12.3.2 模板 326
12.3.3 從XML數據中獲取值 327
12.3.4 模板的遞歸套用 328
12.3.5 XSLT中的疊代 329
12.3.6 XSLT中的條件 330
12.3.7 習題 331
12.4 小結 332
12.5 參考文獻 332

相關詞條

熱門詞條

聯絡我們