內容簡介
本書對資料庫理論知識與資料庫技術實踐內容的介紹兩者並重。全書由5篇組成,第Ⅰ篇介紹資料庫基礎知識,主要包括數據管理的發展及資料庫系統的組成結構、關係代數及關係資料庫、SQL語言基礎及數據定義功能、數據操作語句、視圖和索引等;第Ⅱ篇介紹與資料庫設計相關的內容,主要包括關係規範化理論,實體-聯繫模型和資料庫設計;第Ⅲ篇介紹資料庫管理系統內部提供的一些功能,主要包括事務與並發控制、資料庫恢復技術以及查詢最佳化技術;第Ⅳ篇介紹了資料庫的發展以及資料庫技術套用的發展;第Ⅴ篇側重於資料庫實踐內容的介紹,該部分以SQL Server 2005為實踐平台,介紹了資料庫技術的具體實現。
本書可作為高等院校計算機專業以及信息管理專業本科生的資料庫教材,也可供相關人員學習資料庫的參考書。
作品目錄
第Ⅰ篇 基礎篇
第1章 資料庫概述 3
1.1 概述 3
1.2 一些基本概念 3
1.3 數據管理技術的發展 5
1.3.1 檔案管理 5
1.3.2 資料庫管理 8
1.4 數據獨立性 11
1.5 資料庫系統的組成 12
小結 13
習題 13
第2章 數據模型與資料庫結構 15
2.1 數據和數據模型 15
2.1.1 數據與信息 15
2.1.2 數據模型 16
2.2 概念層數據模型 17
2.2.1 基本概念 17
2.2.2 實體-聯繫模型 18
2.3 組織層數據模型 20
2.3.1 層次數據模型 21
2.3.2 網狀數據模型 22
2.3.3 關係數據模型 23
2.4 面向對象數據模型 25
2.5 資料庫結構 25
2.5.1 模式的基本概念 26
2.5.2 三級模式結構 26
2.5.3 模式映像與數據獨立性 28
小結 29
習題 30
第3章 關係資料庫 31
3.1 關係數據模型 31
3.1.1 數據結構 31
3.1.2 數據操作 32
3.1.3 數據完整性約束 33
3.2 關係模型的基本術語與形式化定義 34
3.2.1 基本術語 34
3.2.2 形式化定義 36
3.3 完整性約束 38
3.3.1 實體完整性 38
3.3.2 參照完整性 40
3.3.3 用戶定義的完整性 41
3.4 關係代數 41
3.4.1 傳統的集合運算 43
3.4.2 專門的關係運算 44
3.4.3 關係代數操作小結 53
3.5* 關係演算 54
3.5.1 元組關係演算 54
3.5.2 元組關係演算語言Alpha 56
3.5.3 域關係演算 59
3.5.4 域關係演算語言QBE 59
小結 61
習題 61
第4章 SQL語言基礎及數據定義功能 63
4.1 SQL語言概述 63
4.1.1 SQL語言的發展 63
4.1.2 SQL語言特點 64
4.1.3 SQL語言功能概述 64
4.2 SQL語言支持的數據類型 65
4.2.1 數值型 65
4.2.2 字元串型 66
4.2.3 日期時間類型 67
4.2.4 貨幣類型 67
4.3 數據定義功能 68
4.3.1 架構的定義與刪除 68
4.3.2 基本表 70
小結 73
習題 73
第5章 數據操作語句 75
5.1 數據查詢語句 75
5.1.1 查詢語句的基本結構 76
5.1.2 單表查詢 77
5.1.3 多表連線查詢 100
5.1.4 使用TOP限制結果集行數 111
5.1.5 子查詢 113
5.2 數據更改功能 122
5.2.1 插入數據 123
5.2.2 更新數據 123
5.2.3 刪除數據 124
小結 126
習題 127
第6章 高級查詢 128
6.1 CASE函式 128
6.1.1 CASE函式介紹 128
6.1.2 CASE 函式套用示例 130
6.2 將查詢結果保存到新表 133
6.3 子查詢 137
6.3.1 ANY、SOME和ALL謂詞 137
6.3.2 帶EXISTS謂詞的子查詢 140
6.4 查詢結果的並、交、差運算 145
6.4.1 並運算 145
6.4.2 交運算 148
6.4.3 差運算 150
小結 151
習題 152
第7章 索引和視圖 154
7.1 索引 154
7.1.1 索引基本概念 154
7.1.2 索引的存儲結構及分類 155
7.1.3 創建和刪除索引 160
7.2 視圖 161
7.2.1 基本概念 161
7.2.2 定義視圖 162
7.2.3 通過視圖查詢數據 164
7.2.4 修改和刪除視圖 167
7.2.5 視圖的作用 167
7.3 物化視圖 168
小結 169
習題 169
第8章 數據完整性約束 171
8.1 數據完整性的概念 171
8.1.1 完整性約束條件的作用對象 171
8.1.2 實現數據完整性的方法 172
8.2 實現數據完整性 172
8.2.1 實體完整性約束 173
8.2.2 唯一值約束 173
8.2.3 參照完整性 175
8.2.4 默認值約束 176
8.2.5 列取值範圍約束 176
8.3 系統對完整性約束的檢查 178
8.4 刪除約束 179
8.5 觸發器 180
8.5.1 創建觸發器 180
8.5.2 後觸髮型觸發器 181
8.5.3 前觸髮型觸發器 182
8.5.4 刪除觸發器 182
小結 182
習題 183
第Ⅱ篇 設計篇
第9章 關係規範化理論 186
9.1 函式依賴 186
9.1.1 基本概念 186
9.1.2 一些術語和符號 187
9.1.3 為什麼討論函式依賴 188
9.1.4 函式依賴的推理規則 189
9.1.5 最小函式依賴集 190
9.2 關係規範化中的一些基本概念 191
9.2.1 關係模式中的鍵 191
9.2.2 候選鍵 191
9.2.3 外鍵 192
9.3 範式 192
9.3.1 第一範式 192
9.3.2 第二範式 194
9.3.3 第三範式 196
9.3.4 Boyce-Codd範式 196
9.3.5 多值依賴與第四範式 199
9.3.6 連線依賴與第五範式 201
9.3.7 規範化小結 205
9.4 關係模式的分解準則 206
小結 208
習題 209
第10章 實體-聯繫(E-R)模型 211
10.1 E-R模型的基本概念 211
10.1.1 實體 211
10.1.2 聯繫 212
10.1.3 屬性 215
10.1.4 約束 217
10.2 E-R模型存在的問題 218
10.2.1 扇形陷阱 218
10.2.2 深坑陷阱 219
10.3 E-R圖符號 221
小結 222
習題 222
第11章 資料庫設計 225
11.1 資料庫設計概述 225
11.1.1 資料庫設計的特點 226
11.1.2 資料庫設計方法概述 226
11.1.3 資料庫設計的基本步驟 227
11.2 資料庫需求分析 228
11.2.1 需求分析的任務 228
11.2.2 需求分析的方法 229
11.3 資料庫結構設計 230
11.3.1 概念結構設計 230
11.3.2 邏輯結構設計 233
11.3.3 物理結構設計 238
11.4 資料庫行為設計 240
11.4.1 功能分析 240
11.4.2 功能設計 241
11.4.3 事務設計 241
11.5 資料庫實施 242
11.6 資料庫的運行和維護 243
小結 243
習題 244
第Ⅲ篇 系統篇
第12章 事務與並發控制 246
12.1 事務 246
12.1.1 事務的基本概念 246
12.1.2 事務執行和問題 247
12.1.3 事務的特性 248
12.1.4 事務處理模型 249
12.1.5 事務日誌 250
12.2 並發控制 251
12.2.1 並發控制概述 252
12.2.2 一致性的級別 254
12.2.3 可交換的活動 254
12.2.4 調度 255
12.2.5 可串列化調度 255
12.3 並發控制中的加鎖方法 256
12.3.1 鎖的粒度 257
12.3.2 封鎖協定 258
12.3.3 活鎖和死鎖 260
12.3.4 兩階段鎖 262
12.4 並發控制中的時間戳方法 264
12.4.1 粒度時間戳 264
12.4.2 時間戳排序 265
12.4.3 解決時間戳中的衝突 265
12.4.4 時間戳的缺點 265
12.5 樂觀的並發控制方法 266
12.5.1 樂觀並發控制方法中的3個階段 266
12.5.2 樂觀的並發控制方法的優缺點 266
小結 267
習題 267
第13章 資料庫恢復技術 269
13.1 恢復的基本概念 269
13.2 資料庫故障的種類 270
13.3 資料庫恢復的類型 271
13.3.1 向前恢復(或重做) 271
13.3.2 向後恢復(或撤銷) 272
13.3.3 介質故障恢復 275
13.4 恢復技術 275
13.4.1 延遲更新技術 275
13.4.2 立即更新技術 277
13.4.3 鏡像頁技術 279
13.4.4 檢查點技術 280
13.5 緩衝區管理 281
小結 282
習題 282
第14章 查詢處理與最佳化 284
14.1 概述 284
14.2 關係資料庫的查詢處理 284
14.2.1 查詢處理步驟 285
14.2.2 最佳化的一個簡單示例 285
14.3 代數最佳化 287
14.3.1 轉換規則 287
14.3.2 啟發式規則 289
14.4 物理最佳化 292
14.4.1 選擇操作的實現和最佳化 292
14.4.2 連線操作的實現和最佳化 293
14.4.3 投影操作的實現 296
14.4.4 集合操作的實現 297
14.4.5 組合操作 297
小結 298
習題 298
第Ⅳ篇 發展篇
第15章 資料庫技術的發展 300
15.1 資料庫技術的發展 300
15.1.1 傳統資料庫技術的發展歷程 300
15.1.2 新一代資料庫管理系統 302
15.2 面向對象技術與資料庫技術的結合 302
15.2.1 新的資料庫套用和新的數據類型 302
15.2.2 面向對象數據模型 303
15.2.3 面向對象資料庫的優點 306
15.2.4 對象關係資料庫與對象資料庫 307
15.3 資料庫技術面臨的挑戰 307
15.4 資料庫技術的研究方向 309
15.4.1 分散式資料庫系統 309
15.4.2 面向對象的資料庫管理系統 310
15.4.3 多媒體資料庫 310
15.4.4 資料庫中的知識發現 310
15.4.5 專用資料庫系統 311
小結 311
第16章 數據倉庫與數據挖掘 312
16.1 數據倉庫技術 312
16.1.1 數據倉庫的概念及特點 313
16.1.2 數據倉庫體系結構 314
16.1.3 數據倉庫的分類 315
16.1.4 數據倉庫的開發 315
16.1.5 數據倉庫的數據模式 316
16.2 在線上分析處理 317
16.3 數據挖掘 321
16.3.1 數據挖掘過程 321
16.3.2 數據挖掘知識發現 322
16.3.3 數據挖掘的常用技術和目標 324
16.3.4 數據挖掘工具 324
16.3.5 數據挖掘套用 325
16.3.6 數據挖掘的前景 326
小結 328
第Ⅴ篇 套用篇
第17章 SQL Server 2005基礎 330
17.1 SQL Server 2005平台構成 330
17.2 安裝SQL Server 2005 331
17.2.1 SQL Server 2005的版本 331
17.2.2 安裝SQL Server 2005所需要的軟硬體環境 333
17.2.3 實例 334
17.2.4 安裝及安裝選項 335
17.3 配置SQL Server 2005 345
17.4 SQL Server Management Studio工具 348
17.4.1 連線到資料庫伺服器 348
17.4.2 查詢編輯器 350
小結 351
習題 352
上機練習 352
第18章 資料庫及對象的創建與管理 354
18.1 SQL Server資料庫概述 354
18.1.1 系統資料庫 354
18.1.2 SQL Server資料庫的組成 355
18.1.3 數據檔案和日誌檔案 356
18.1.4 資料庫檔案的屬性 356
18.2 創建資料庫 357
18.2.1 用圖形化方法創建資料庫 357
18.2.2 用T-SQL語句創建資料庫 360
18.3 基本表的創建與管理 364
18.3.1 創建表 364
18.3.2 定義完整性約束 366
18.3.3 修改表 374
18.3.4 刪除表 374
18.4 索引的創建與管理 376
18.4.1 創建索引 376
18.4.2 查看和刪除索引 377
18.5 視圖的創建與管理 378
18.5.1 創建視圖 378
18.5.2 查看和修改視圖 382
小結 382
習題 383
上機練習 383
第19章 存儲過程和游標 386
19.1 存儲過程 386
19.1.1 存儲過程概念 386
19.1.2 創建和執行存儲過程 387
19.1.3 查看和修改存儲過程 391
19.2 游標 392
19.2.1 游標概念 392
19.2.2 使用游標 393
19.2.3 游標示例 396
小結 399
習題 400
上機練習 400
第20章 安全管理 401
20.1 安全控制概述 401
20.1.1 資料庫安全控制的目標 401
20.1.2 資料庫安全的威脅 402
20.1.3 資料庫完全問題的類型 402
20.1.4 安全控制模型 402
20.1.5 授權和認證 403
20.2 存取控制 404
20.2.1 自主存取控制 404
20.2.2 強制存取控制 406
20.3 審計跟蹤 408
20.4 防火牆 408
20.5 統計資料庫的安全性 409
20.6 數據加密 410
20.7 SQL Server安全控制過程 411
20.8 登錄名 411
20.8.1 身份驗證模式 411
20.8.2 建立登錄名 413
20.8.3 刪除登錄名 417
20.9 資料庫用戶 418
20.9.1 建立資料庫用戶 418
20.9.2 刪除資料庫用戶 420
20.10 許可權管理 421
小結 430
習題 430
上機練習 431
第21章 資料庫設計工具——PowerDesigner 433
21.1 建立概念數據模型 433
21.1.1 概述 433
21.1.2 創建CDM檔案 433
21.1.3 創建實體 435
21.1.4 指定實體的屬性 436
21.1.5 建立實體間的聯繫 439
21.1.6 建立實體間的關聯 442
21.2 建立物理數據模型 444
21.2.1 概述 444
21.2.2 由CDM生成PDM 446
21.2.3 生成SQL腳本 447
小結 449
習題 450
上機練習 450
作者簡介
何玉潔,北京信息科技大學信息學院教授,長期從事資料庫課程的教學和科研工作,著有《資料庫原理及套用》暢銷書,何老師編寫的資料庫教材,通俗易懂,實戰性強,深受廣大高校師生的喜愛。