內容簡介
本書涵蓋了資料庫系統的設計、實現和管理3個方面的內容,全書分為資料庫概念、資料庫設計概念、高級資料庫設計與實現、高級資料庫概念、資料庫與Internet、資料庫與管理6大部分共15章,首先從系統的角度介紹資料庫及其設計的概念,接著全面闡述資料庫設計,然後用示例講解了資料庫的具體實現,包括Web資料庫的開發等,最後介紹了資料庫系統的管理,如事務管理與並發控制、分散式資料庫管理、系統資料庫管理與安全、資料庫性能調整與查詢最佳化等內容。
編輯推薦
本書是一本非常有特點的教材,其主要特點如下:
(1)層次結構清晰。本書先講解資料庫的概念,接著介紹資料庫的設計,然後介紹資料庫的具體實現,使讀者從抽象到具體,對資料庫系統有著深刻的理解和掌握。
(2)圖文並茂。為了便於讀者對資料庫基本概念的理解,書中給出了大量形象的圖形描述,此外,對於一些示例的操作過程和結果,都給出了相應的圖形界面,便於讀者理解和掌握。
(3)示例豐富。為了配合SQL語言的講解,書中給出了大量的示例,讓讀者了解每個語句的作用。最為突出的是,本書以一所大學的資料庫管理系統為例,詳盡地介紹了資料庫的設計與實現的步驟。
總之,這是一本既系統又實用的資料庫教材,不僅是高等學校本科生學習資料庫的很好教材,對資料庫設計、開發和管理人員,也非常有參考價值。
前言
譯 者 序
正如本書的書名所指的那樣,本書涵蓋了資料庫系統的設計、實現和管理3個方面的內容,全書分為資料庫概念、資料庫設計概念、高級資料庫設計與實現、高級資料庫概念、資料庫與Internet、資料庫與管理6大部分共15章,首先從系統的角度介紹資料庫及其設計的概念,接著全面闡述資料庫設計,然後用示例講解了資料庫的具體實現,包括Web資料庫的開發等,最後介紹了資料庫系統的管理,如事務管理與並發控制、分散式資料庫管理、系統資料庫管理與安全、資料庫性能調整與查詢最佳化等內容。
本書是一本非常有特點的教材,其主要特點如下:
(1)層次結構清晰。本書先講解資料庫的概念,接著介紹資料庫的設計,然後介紹資料庫的具體實現,使讀者從抽象到具體,對資料庫系統有著深刻的理解和掌握。
(2)圖文並茂。為了便於讀者對資料庫基本概念的理解,書中給出了大量形象的圖形描述,此外,對於一些示例的操作過程和結果,都給出了相應的圖形界面,便於讀者理解和掌握。
(3)示例豐富。為了配合SQL語言的講解,書中給出了大量的示例,讓讀者了解每個語句的作用。最為突出的是,本書以一所大學的資料庫管理系統為例,詳盡地介紹了資料庫的設計與實現的步驟。
總之,這是一本既系統又實用的資料庫教材,不僅是高等學校本科生學習資料庫的很好教材,對資料庫設計、開發和管理人員,也非常有參考價值。
目錄
第1部分 資料庫概念
第1章 資料庫系統 3
1.1 數據與信息 3
1.2 資料庫和資料庫管理系統
簡介 5
1.2.1 DBMS的作用和
優勢 5
1.2.2 資料庫類型 7
1.3 資料庫設計為什麼很
重要 8
1.4 歷史根源:檔案和檔案
系統 9
1.5 檔案系統數據管理存在
的問題 12
1.5.1 結構依賴和數據
依賴 13
1.5.2 欄位定義和命名
規範 13
1.5.3 數據冗餘 15
1.6 資料庫系統 16
1.6.1 資料庫系統環境 17
1.6.2 DBMS功能 19
1.6.3 管理資料庫系統:
焦點轉移 21
本章小結 22
思考題 22
習題 23
第2章 數據模型 25
2.1 數據建模及數據模型 25
2.2 數據模型的重要性 26
2.3 數據模型基本組成 27
2.4 業務規則 28
2.4.1 發現業務規則 29
2.4.2 將業務規則轉化成
數據模型組件 29
2.5 數據模型的發展 30
2.5.1 層次模型 30
2.5.2 網狀模型 31
2.5.3 關係模型 32
2.5.4 實體聯繫模型 34
2.5.5 面向對象模型 35
2.5.6 數據模型合併 37
2.5.7 資料庫模型和
網際網路 38
2.5.8 數據模型:總結 38
2.6 數據抽象程度 41
2.6.1 外模型 41
2.6.2 概念模型 43
2.6.3 內模型 43
2.6.4 物理模型 44
本章總結 45
思考題 45
習題 46
第2部分 資料庫設計概念
第3章 關係資料庫模型 53
3.1 數據的邏輯視圖 53
3.1.1 表及其特性 54
3.2 碼 56
3.3 完整性規則 60
3.4 關係集合操作 62
3.5 數據字典和系統目錄 67
3.6 關係資料庫中的聯繫 68
3.6.1 1︰M聯繫 68
3.6.2 1︰1聯繫 69
3.6.3 M︰N聯繫 71
3.7 再論數據冗餘 74
3.8 索引 76
3.9 Codd的關係資料庫規則 77
本章總結 78
思考題 78
習題 79
第4章 實體聯繫(ER)模型 87
4.1 實體聯繫模型(ERM) 87
4.1.1 實體 88
4.1.2 屬性 88
4.1.3 聯繫 92
4.1.4 互連和基數 93
4.1.5 存在依賴性 93
4.1.6 聯繫強度 94
4.1.7 弱實體 96
4.1.8 聯繫的參與 97
4.1.9 聯繫的度 99
4.1.10 遞歸聯繫 100
4.1.11 聯合(複合)
實體 102
4.2 開發ER圖 104
4.3 資料庫設計挑戰:
衝突目標 110
本章總結 112
思考題 112
習題 114
第5章 資料庫表的規範化 117
5.1 資料庫表和規範化 117
5.2 規範化的需求 118
5.3 規範化處理 120
5.3.1 轉化為第一範式 121
5.3.2 轉化為第二範式 124
5.3.3 轉化為第三範式 125
5.4 改進資料庫設計 126
5.5 代理碼的考慮 130
5.6 高階範式 131
5.6.1 鮑依斯-科得範式
(BCNF) 131
5.6.2 第四範式(4NF) 133
5.7 規範化和資料庫設計 135
5.8 反規範化 138
本章總結 140
思考題 142
習題 143
第6章 高級數據建模 150
6.1 擴展實體關係模型 150
6.1.1 實體超類和實體
子類 150
6.1.2 特殊化層次結構 151
6.1.3 繼承 152
6.1.4 子類辨識器 153
6.1.5 不相交/重疊約束 153
6.1.6 完備性約束 154
6.1.7 特殊化與一般化 155
6.2 實體簇 155
6.3 實體完整性與主碼選擇 156
6.3.1 自然碼與主碼 157
6.3.2 主碼選擇原則 157
6.6.3 什麼時候使用
複合主碼 158
6.3.4 什麼時候使用
代理主碼 159
6.4 設計實例:學習靈活的
資料庫設計 160
6.4.1 設計示例#1:實現
1︰1型聯繫 160
6.4.2 設計示例#2:維護
時變數據的歷史 161
6.4.3 設計示例#3:扇形
陷阱 163
6.4.4 設計示例#4:冗餘
聯繫 164
6.5 數據建模一覽表 165
本章總結 166
思考題 167
習題 167
第3部分 高級資料庫設計與實現
第7章 結構化查詢語言(SQL)
簡介 177
7.1 SQL概述 177
7.2 數據定義命令 179
7.2.1 資料庫模型 180
7.2.2 創建資料庫 181
7.2.3 資料庫模式 182
7.2.4 數據類型 182
7.2.5 創建表結構 185
7.2.6 SQL約束 188
7.2.7 SQL索引 192
7.3 數據操縱命令 193
7.3.1 添加表記錄 193
7.3.2 保存表的修改 195
7.3.3 顯示錶記錄 195
7.3.4 更新表記錄 196
7.3.5 恢復表的內容 197
7.3.6 刪除表記錄 197
7.3.7 用SELECT子查詢
插入表記錄 198
7.4 SELECT查詢 199
7.4.1 條件約束查詢 199
7.4.2 算術運算符:優先權
規則 203
7.4.3 邏輯運算符:AND、
OR和NOT 204
7.4.4 特殊運算符 205
7.5 高級數據定義命令 209
7.5.1 修改欄位的數據
類型 209
7.5.2 修改欄位的數據
特徵 210
7.5.3 增加欄位 210
7.5.4 刪除欄位 210
7.5.5 高級數據更新 211
7.5.6 複製部分表 212
7.5.7 增加主碼和外碼 214
7.5.8 刪除資料庫中的表 215
7.6 高級SELECT查詢 215
7.6.1 查詢結果排序 215
7.6.2 顯示唯一值 217
7.6.3 聚集函式 217
7.6.4 數據分組 221
7.7 虛擬表:創建視圖 223
7.8 資料庫表連線 224
7.8.1 帶別名的表連線 227
7.8.2 遞歸連線 227
7.8.3 外連線 228
本章總結 229
思考題 230
習題 233
第8章 高級SQL 241
8.1 關係集合運算符 241
8.1.1 UNION 242
8.1.2 UNION ALL 243
8.1.3 INTERSECT 244
8.1.4 MINUS 245
8.1.5 語法替換 246
8.2 SQL連線運算符 248
8.2.1 交叉連線 249
8.2.2 自然連線 250
8.2.3 用子句連線 251
8.2.4 在子句中連線 251
8.2.5 外連線 252
8.3 子查詢和關聯查詢 255
8.3.1 WHERE子查詢 256
8.3.2 IN子查詢 257
8.3.3 HAVING子查詢 258
8.3.4 多行子查詢運算符:
ANY和ALL 258
8.3.5 FROM子查詢 260
8.3.6 屬性列表子查詢 261
8.3.7 關聯查詢 263
8.4 SQL函式 265
8.4.1 日期和時間函式 265
8.4.2 數字函式 268
8.4.3 字元串函式 269
8.4.4 轉換函式 270
8.5 Oracle子查詢 272
8.6 可更新的視圖 275
8.7 過程SQL 277
8.7.1 觸發器 281
8.7.2 存儲過程 289
8.7.3 帶游標的PL/SQL
處理 293
8.7.4 PL/SQL存儲函式 295
8.8 嵌入式SQL 295
本章總結 299
思考題 301
習題 302
第9章 資料庫設計 306
9.1 信息系統 306
9.2 信息系統開發生命周期 308
9.2.1 計畫 308
9.2.2 分析 309
9.2.3 詳細的系統設計 310
9.2.4 實現 310
9.2.5 維護 311
9.3 資料庫生命周期 311
9.3.1 資料庫初步研究 311
9.3.2 資料庫設計 315
9.3.3 實現和裝載 328
9.3.4 測試和評價 331
9.3.5 運行 332
9.3.6 維護和演化 332
9.4 資料庫設計策略 333
9.5 集中式和分散式設計的
對比 335
本章總結 336
思考題 336
習題 336
第4部分 高級資料庫概念
第10章 事務管理與並發控制 341
10.1 什麼是事務 341
10.1.1 演化事務結果 343
10.1.2 事務的性質 345
10.1.3 用SQL的事務
管理 346
10.1.4 事務日誌 346
10.2 並發控制 348
10.2.1 更新丟失 348
10.2.2 未提交數據 349
10.2.3 不一致檢索 350
10.2.4 調度器 351
10.3 用鎖方法進行並發控制 352
10.3.1 鎖粒度 353
10.3.2 鎖類型 355
10.3.3 兩階段加鎖 357
10.3.4 死鎖 357
10.4 用時間戳方法進行並發
控制 359
10.4.1 WAIT/DIE和
WOUND/WAIT
調度方案 359
10.5 用最佳化方法進行並發控制 360
10.6 資料庫恢復管理 360
10.6.1 事務恢復 361
本章總結 364
思考題 365
習題 365
第11章 資料庫性能調整與
查詢最佳化器 368
11.1 資料庫性能調整的概念 368
11.1.1 性能調整:客戶和
伺服器 369
11.1.2 DBMS架構 370
11.1.3 資料庫統計 371
11.2 查詢處理 373
11.2.1 SQL分析階段 373
11.2.2 SQL執行階段 375
11.2.3 SQL提取階段 375
11.2.4 查詢處理瓶頸 375
11.3 索引和查詢最佳化 376
11.4 最佳化選擇 378
11.4.1 使用提示影響最佳化
選擇 379
11.5 SQL性能調整 380
11.5.1 索引選擇性 380
11.5.2 條件表達式 381
11.6 查詢制定 383
11.7 DBMS性能調整 384
11.8 查詢最佳化示例 386
本章總結 391
思考題 392
習題 393
第12章 分散式資料庫管理系統 397
12.1 分散式資料庫管理系統
的發展 397
12.2 DDBMS的優點和缺點 399
12.3 分散式處理和分散式
資料庫 400
12.4 分散式資料庫管理系統
的特徵 402
12.5 DDBMS的組成 403
12.6 數據層和分散式處理 404
12.6.1 單點處理與單點
數據 404
12.6.2 多點處理與單點
數據 405
12.6.3 多點處理與多點
數據 406
12.7 分散式資料庫的透明性 407
12.8 分布透明性 408
12.9 事務處理透明性 410
12.9.1 分散式請求和
分散式事務 410
12.9.2 分散式並發控制 413
12.9.3 兩階段提交協定 414
12.10 性能透明性和查詢最佳化 415
12.11 分散式資料庫設計 416
12.11.1 數據分割 416
12.11.2 數據複製 419
12.11.3 數據放置 421
12.12 客戶/伺服器與DDBMS
的比較 421
12.13 C. J. Date關於分散式數
據庫的12條告誡 422
本章總結 423
思考題 424
習題 424
第13章 業務智慧型和數據倉庫 427
13.1 數據分析需求 427
13.2 業務智慧型 428
13.3 業務智慧型架構 429
13.4 決策支持數據 433
13.4.1 運營數據對決策
支持數據 433
13.4.2 決策支持資料庫
需求 435
13.5 數據倉庫 437
13.5.1 12條定義數據
倉庫的規則 440
13.5.2 決策支持架構
風格 441
13.6 在線上分析處理 442
13.6.1 多維數據分析
技術 442
13.6.2 高級資料庫支持 443
13.6.3 易於使用的終端
用戶界面 444
13.6.4 客戶端/伺服器端
架構 444
13.6.5 OLAP架構 445
13.6.6 關係在線上分析
處理 448
13.6.7 多維在線上分析
處理 450
13.6.8 ROLAP對
MOLAP 451
13.7 星形模式 452
13.7.1 事實 452
13.7.2 維度 453
13.7.3 屬性 453
13.7.4 屬性層次結構 455
13.7.5 星形模式表示 456
13.7.6 用於星形模式的
性能提高技術 458
13.8 實現數據倉庫 461
13.8.1 數據倉庫作為
一個積極的決策
支持框架 461
13.8.2 需要用戶參與的
全公司範圍的
努力 461
13.8.3 滿意三部曲:
數據、分析和
用戶 461
13.8.4 套用資料庫
設計過程 462
13.9 數據挖掘 463
13.10 OLAP的SQL擴展 465
13.10.1 ROLLUP擴展 466
13.10.2 CUBE擴展 467
13.10.3 物化視圖 468
本章小結 471
思考題 472
習題 473
第5部分 資料庫與Internet
第14章 資料庫互連和Web技術 479
14.1 資料庫連線 479
14.1.1 本機SQL連線 480
14.1.2 ODBC、DAO和
RDO 481
14.1.3 OLE-DB 483
14.1.4 ADO.NET 485
14.1.5 Java資料庫連線
(JDBC) 488
14.2 網際網路資料庫 489
14.2.1 Web到資料庫
中間件:伺服器
端的擴展 490
14.2.2 Web伺服器接口 491
14.2.3 Web瀏覽器 492
14.2.4 客戶端擴展 494
14.2.5 Web套用伺服器 495
14.3 可擴展標記語言(XML) 495
14.3.1 文檔類型定義
(DTD)與XML
模式 497
14.3.2 XML表示 500
14.3.3 XML應用程式 501
本章小結 503
思考題 504
習題 504
第6部分 資料庫與管理
第15章 資料庫管理和安全 509
15.1 數據是公司資產 509
15.2 機構中資料庫的角色
需求 510
15.3 資料庫引入:特定
考慮 511
15.4 資料庫管理職能開發 512
15.5 資料庫環境中人的構成 515
15.5.1 DBA的管理
角色 517
15.5.2 DBA的技術
角色 522
15.6 安全性 527
15.6.1 安全策略 528
15.6.2 安全漏洞 528
15.6.3 資料庫安全 529
15.7 資料庫管理工具 530
15.7.1 數據字典 531
15.7.2 CASE工具 533
15.8 開發數據管理策略 535
15.9 DBA工作:Oracle數據
庫管理 536
15.9.1 Oracle資料庫
管理工具 537
15.9.2 默認登錄 537
15.9.3 保證RDBMS自動
開始 538
15.9.4 創建表空間和數據
檔案 539
15.9.5 管理資料庫對象:
表、視圖、觸發器和
存儲過程 541
15.9.6 管理用戶和構建
安全性 542
15.9.7 自定義資料庫初
始化參數 543
15.9.8 創建新資料庫 544
本章小結 549
思考題 550
辭彙表 553