內容簡介
本書系統地介紹了關係資料庫的基本概念、基本原理和設計技術等,內容包括:資料庫系統概論、SQL語言、關係數據模型及其運算基礎、資料庫管理、資料庫設計等。本書根據資料庫發展的趨勢,在介紹資料庫新技術時,重點介紹了面向對象和對象-關係資料庫。
全書共11章,內容豐富,結構合理,通俗易懂。各章都安排有大量的例題,章末附有習題,書末還附有SQL語言的上機實驗指導。
本書可作為大學計算機專業及其他專業的教材,也可作為科技人員學習資料庫的自學教材和套用參考書。
目錄
第1章 資料庫系統概論 1
1.1 資料庫系統的套用 1
1.1.1 資料庫系統的套用領域 1
1.1.2 資料庫套用系統示例 3
1.2 數據管理技術的發展 4
1.2.1 人工管理階段 5
1.2.2 檔案系統階段 5
1.2.3 資料庫系統階段 6
1.3 資料庫系統的構成 8
1.3.1 資料庫系統 8
1.3.2 資料庫管理系統 9
1.3.3 資料庫系統人員的構成 10
1.4 資料庫系統的結構 11
1.4.1 數據的三級模式結構 11
1.4.2 數據獨立性 13
1.4.3 SQL中的三級模式結構 14
1.4.4 面對用戶的資料庫系統體系結構 15
1.4.5 用戶訪問資料庫的過程 16
1.5 資料庫系統研究概述 17
1.6 小結 18
習題1 19
第2章 建立數據模型 20
2.1 現實世界的數據化過程 20
2.2 概念模型 21
2.2.1 概念模型的基本概念 21
2.2.2 E-R圖的基本表示方法 22
2.2.3 聯繫 23
2.2.4 多元聯繫 24
2.2.5 聯繫的屬性 25
2.2.6 自身聯繫 25
2.2.7 弱實體集 26
2.2.8 子類和Is-a層次聯繫 26
2.3 E-R模型的設計方法 27
2.4 數據模型 32
2.5 關係模型 32
2.5.1 關係模型數據結構及基本概念 33
2.5.2 關係模型的數據操作 35
2.5.3 關係的完整性約束 35
2.6 E-R模型向關係模型的轉化 36
*2.7 歷史上有影響的數據模型 37
2.7.1 層次模型 38
2.7.2 網狀模型 39
2.8 數據模型與資料庫系統的發展 40
2.9 小結 41
習題2 42
第3章 SQL語言初步 45
3.1 SQL簡介 45
3.2 基本的數據定義 47
3.2.1 創建基本表——CREATE TABLE 47
3.2.2 表結構的修改——ALTER TABLE 50
3.2.3 刪除基本表——DROP TABLE 51
3.2.4 創建索引——CREATE INDEX 51
3.2.5 刪除索引——DROP INDEX 52
3.3 基本的數據操作 53
3.3.1 表中增加元組——INSERT 53
3.3.2 修改表中數據——UPDATE 53
3.3.3 刪除元組——DELETE 54
3.3.4 更新操作與資料庫的一致性 54
3.4 數據查詢——SELECT 55
3.4.1 無條件單關係查詢 55
3.4.2 帶條件單關係查詢 58
3.4.3 分組查詢 60
3.4.4 排序查詢 61
3.4.5 多關係連線查詢 62
3.4.6 嵌套查詢 65
3.4.7 多個SELECT語句的集合操作 69
3.5 含有子查詢的數據更新 69
3.5.1 INSERT與子查詢的結合 70
3.5.2 UPDATE與子查詢的結合 70
3.5.3 DELETE與子查詢的結合 71
3.6 視圖 71
3.6.1 定義視圖——CREATE VIEW 71
3.6.2 刪除視圖——DROP VIEW 73
3.6.3 視圖的查詢 73
3.6.4 視圖的更新 74
3.6.5 視圖的作用 76
3.7 小結 76
習題3 77
第4章 完整性和安全性 81
4.1 完整性約束的SQL定義 81
4.1.1 實體完整性約束和主碼 81
4.1.2 參照完整性約束和外部碼 82
4.1.3 用戶自定義完整性約束 84
4.1.4 約束的更新 86
4.2 SQL中的觸發器 86
4.2.1 觸發器的組成和類型 87
4.2.2 創建觸發器 87
4.2.3 觸發器創建實例 88
4.3 資料庫安全 90
4.3.1 用戶標識和鑑別 90
4.3.2 訪問控制 91
4.3.3 強制存取控制方法 95
4.3.4 視圖和查詢修改 96
4.3.5 跟蹤審計 96
4.3.6 數據加密 97
4.4 小結 97
習題4 98
第5章 資料庫編程 100
5.1 客戶機/伺服器體系結構 100
5.2 資料庫編程方法 103
5.3 嵌入式SQL的使用 104
5.3.1 嵌入式SQL的一般形式 105
5.3.2 嵌入式SQL與宿主語言之間的信息傳遞 105
5.3.3 游標 108
5.3.4 通過游標的更新和刪除 110
5.3.5 動態SQL介紹 112
5.4 資料庫接口技術 113
5.4.1 開放資料庫互連——ODBC 113
5.4.2 ODBC實例分析 115
5.4.3 Java資料庫連線——JDBC 118
5.5 SQL中的存儲過程 119
5.5.1 存儲過程的定義 120
5.5.2 存儲過程的執行 122
5.6 SQL中的用戶定義函式 123
5.6.1 函式的定義 123
5.6.2 函式的調用和執行 126
5.6.3 函式與存儲過程 127
5.7 小結 127
習題5 128
第6章 關係數據模型及其運算基礎 130
6.1 關係模型的基本概念 130
6.2 關係模式 132
6.3 關係代數 132
6.3.1 基於傳統集合運算的關係運算 133
6.3.2 投影(Projection) 134
6.3.3 選擇(Selection) 135
6.3.4 連線(Join) 135
6.3.5 更名(Rename) 138
6.3.6 除(Division) 138
6.3.7 綜合運算舉例 140
*6.4 包 141
*6.5 擴展關係代數 142
6.5.1 消除重複 142
6.5.2 聚集運算和分組運算 142
6.5.3 排序運算 143
6.5.4 廣義投影運算 144
*6.6 關係演算 145
6.6.1 元組關係演算 145
6.6.2 域關係演算 146
6.7 查詢最佳化 147
6.7.1 查詢處理概述 148
6.7.2 關係代數等價變換規則 149
6.7.3 查詢最佳化的一般策略 150
6.7.4 關係代數表達式的最佳化算法 151
*6.8 關係系統 153
6.8.1 全關係系統的基本準則 153
6.8.2 關係系統的定義 155
6.8.3 關係系統的分類 155
6.9 小結 156
習題6 157
第7章 關係資料庫規範化理論 159
7.1 關係規範化的作用 159
7.2 函式依賴 161
7.2.1 屬性間的聯繫 161
7.2.2 函式依賴 162
7.2.3 碼的定義 163
7.3 關係模式的規範化 164
7.3.1 非規範化的關係 164
7.3.2 第一範式(1NF) 165
7.3.3 第二範式(2NF) 165
7.3.4 第三範式(3NF) 166
7.3.5 改進的3NF——BCNF 167
*7.4 多值依賴和第四範式 169
7.4.1 多值依賴(Multivalued Dependency) 169
7.4.2 第四範式(4NF) 171
7.5 關係的規範化程度 172
*7.6 函式依賴公理系統 173
7.6.1 閉包及其計算 174
7.6.2 最小函式依賴集 175
7.6.3 關係模式的分解 177
7.7 小結 180
習題7 180
第8章 資料庫設計 184
8.1 資料庫設計簡介 185
8.1.1 資料庫設計的一般策略 185
8.1.2 資料庫設計的步驟 185
8.1.3 資料庫設計的主流方法 187
8.2 需求分析 188
8.2.1 需求調查 188
8.2.2 需求分析的方法 189
8.3 概念結構設計 192
8.4 邏輯結構設計 193
8.4.1 模式評價 194
8.4.2 邏輯模式的修正 194
8.4.3 設計用戶外模式 195
8.5 物理結構設計 196
8.5.1 存儲記錄結構設計 196
8.5.2 存儲記錄布局 197
8.5.3 存取方法的設計 197
8.6 資料庫的實施和維護 198
8.6.1 資料庫的實施 199
8.6.2 資料庫的維護 201
*8.7 UML方法規範資料庫設計 202
8.7.1 UML用於資料庫設計 202
8.7.2 各種UML圖 203
*8.8 使用PowerDesigner工具設計 資料庫 207
8.8.1 PowerDesigner簡介 208
8.8.2 概念數據模型 210
8.8.3 物理數據模型 211
8.9 小結 212
習題8 213
第9章 事務管理 216
9.1 事務概述 216
9.1.1 事務的概念 216
9.1.2 事務的特性 218
9.2 並發控制技術 220
9.2.1 並發可能出現的問題 220
9.2.2 封鎖(Locking) 222
9.2.3 三級封鎖協定 222
9.2.4 加鎖請求的選擇策略和活鎖 223
9.2.5 死鎖 224
9.2.6 並發調度的可串列性 225
9.2.7 兩段封鎖協定 226
9.2.8 多粒度封鎖 227
9.2.9 意向鎖 228
9.3 資料庫恢復技術 229
9.3.1 故障的種類 229
9.3.2 故障恢復的手段 230
9.3.3 故障恢復的方法 231
9.4 小結 233
習題9 234
第10章 面向對象和對象-關係 資料庫 236
10.1 面向對象數據模型 236
10.1.1 對象 236
10.1.2 類和實例 237
10.1.3 類的繼承 237
10.2 面向對象資料庫建模 238
10.2.1 ODL的類說明 238
10.2.2 ODL中屬性的說明 238
10.2.3 ODL中的聯繫 239
10.2.4 ODL中類的繼承 240
10.2.5 ODL中方法的說明 241
10.2.6 E-R模型向面向對象數據模型的轉換 242
10.3 對象–關係資料庫 242
10.3.1 基本數據類型的擴充 243
10.3.2 支持複雜對象 244
10.3.3 支持繼承 245
10.3.4 強大、通用的規則系統 246
10.4 小結 246
習題10 247
第11章 資料庫新技術 248
11.1 分散式資料庫 248
11.1.1 分散式資料庫系統的定義 249
11.1.2 分散式資料庫系統的特點 249
11.1.3 分散式資料庫系統的模式結構 250
11.2 並行資料庫 251
11.2.1 並行資料庫系統的體系結構 252
11.2.2 並行處理技術 253
11.3 工程資料庫 254
11.3.1 工程資料庫的特點 254
11.3.2 工程資料庫的系統結構 255
11.3.3 工程資料庫的數據模型 256
11.3.4 版本和版本管理 257
11.4 數據倉庫 258
11.4.1 數據倉庫的定義與特徵 258
11.4.2 數據倉庫系統 259
11.4.3 數據倉庫的資料庫模式 260
11.4.4 數據倉庫的分析工具 262
11.5 小結 263
習題11 263
附錄A 上機實驗指導 264
上機實驗一 安裝和了解SQL Server 2000 264
上機實驗二 創建SQL Server資料庫和表 269
上機實驗三 基本表的建立和修改 273
上機實驗四 SELECT語句基本格式的使用 274
上機實驗五 SELECT語句高級格式和完整格式的使用 275
上機實驗六 SQL的存儲操作 275
上機實驗七 視圖的建立及操作 276
上機實驗八 完整性約束的實現 277
*上機實驗九 安全性的實現 277
*上機實驗十 創建存儲過程和用戶定義函式 278
*附錄B PowerDesigner入門實驗 279
參考文獻 286