本書系統地講述了數據庫系統的基本概念、基本原理和基本設計方法,并基于目前最流行的大型關系數據庫之一——Oracle 11g,循序漸進地介紹了數據庫的管理、實現及應用。本書注重理論與實踐相結合,以一個讀者耳熟能詳的教學管理系統為例貫穿全書,力求對數據庫理論和應用進行精煉,保留實用的部分,使其更加通俗易懂。使用目前流行的高級程序設計語言C#,介紹了基于Oracle 11g的管理信息系統的開發流程,旨在培養讀者的綜合實踐與創新能力,加強讀者對數據庫基本原理和概念的理解,進而幫助讀者更加具體地理解數據庫管理信息系統的開發流程。各章都安排有大量的例題和習題,便于讀者理解和自測。 本書可作為高等學校計算機專業及其他專業的教學用書,也可供從事相關專業的工程技術人員和科研人員參考。
(1)本書通過目前最流行的數據庫管理系統Oracle 11g的學習掌握數據庫技術的基本原理(而目前大部分數據庫原理的書仍然以Oracle 9i為介紹對象),并且使用目前比較流行的高級程序設計語言C#和Oracle 11g開發C/S體系結構的具體管理系統,而大部分書籍使用VB或VB.NET等作為開發語言。(2)內容有所取舍,配有大量的實例。每章先給出基本原理、最新的技術、應用和發展。
目 錄
第1章 數據庫技術基礎 1
1.1 數據、信息與數據處理 1
1.2 數據管理技術的發展 2
1.2.1 人工管理階段 2
1.2.2 文件系統階段 2
1.2.3 數據庫系統階段 3
1.2.4 高級數據庫系統階段 5
1.3 數據庫系統的組成 6
1.4 數據模型 9
1.4.1 概念模型 10
1.4.2 數據模型 12
1.5 數據庫系統的結構 17
1.5.1 數據庫系統模式的概念 17 目 錄
第1章 數據庫技術基礎 1
1.1 數據、信息與數據處理 1
1.2 數據管理技術的發展 2
1.2.1 人工管理階段 2
1.2.2 文件系統階段 2
1.2.3 數據庫系統階段 3
1.2.4 高級數據庫系統階段 5
1.3 數據庫系統的組成 6
1.4 數據模型 9
1.4.1 概念模型 10
1.4.2 數據模型 12
1.5 數據庫系統的結構 17
1.5.1 數據庫系統模式的概念 17
1.5.2 數據庫系統的三級模式結構 17
1.5.3 數據庫系統的二級映像 19
本章知識點小結 19
習題 20
第2章 關系數據庫的理論基礎 21
2.1 關系的數據結構 21
2.1.1 關系的定義 21
2.1.2 關系的性質 23
2.1.3 關系模式與關系數據庫 23
2.2 關系代數 24
2.2.1 傳統的集合運算 24
2.2.2 專門的關系運算 27
2.3 關系演算 31
2.3.1 元組關系演算 32
2.3.2 域關系演算 36
2.3.3 關系代數、元組關系演算、域關系演算的等價性 40
2.4 查詢優化 40
2.4.1 查詢優化實例 41
2.4.2 查詢優化準則 42
2.4.3 關系代數等價變換規則 42
2.4.4 關系代數表達式優化的算法 44
本章知識點小結 46
習題 47
第3章 Oracle 11g數據庫系統概述 49
3.1 Oracle 11g簡介 49
3.2 Oracle 11g安裝 50
3.3 Oracle 11g卸載 58
3.3.1 停止所有的Oracle服務 58
3.3.2 卸載所有的Oracle組件 59
3.3.3 手動刪除與Oracle相關的遺留內容 59
3.4 Oracle 11g的管理工具 61
3.5 SQL*Plus 62
3.5.1 SQL*Plus的運行環境 62
3.5.2 SQL*Plus命令 62
3.5.3 格式化查詢結果 64
3.5.4 變量 66
3.5.5 SQL*Plus緩存區 70
3.6 數據庫的創建 71
本章知識點小結 79
習題 79
第4章 SQL基礎 80
4.1 SQL的三級模式結構 80
4.2 SQL的數據定義 81
4.2.1 Oracle支持的數據類型 81
4.2.2 基本表的創建 84
4.2.3 基本表的修改與刪除 86
4.3 SQL數據查詢 87
4.3.1 單表無條件查詢 89
4.3.2 單表帶條件查詢 92
4.3.3 分組查詢和排序查詢 94
4.3.4 多表查詢 97
4.3.5 嵌套查詢 99
4.4 SQL的數據操縱 101
4.4.1 插入數據 101
4.4.2 修改數據 102
4.4.3 刪除數據 103
4.5 視圖 103
4.5.1 定義視圖 104
4.5.2 刪除視圖 105
4.5.3 查詢視圖 106
4.5.4 更新視圖 106
4.5.5 視圖的作用 106
4.6 Oracle常用函數 106
4.6.1 字符類函數 107
4.6.2 數字類函數 107
4.6.3 日期類函數 108
4.6.4 轉換類函數 108
4.6.5 聚集類函數 109
本章知識點小結 109
習題 110
第5章 關系數據庫規范化理論 112
5.1 關系規范化的作用 112
5.1.1 問題的提出 112
5.1.2 解決的方法 113
5.1.3 關系模式規范化 115
5.2 函數依賴 115
5.2.1 函數依賴 115
5.2.2 函數依賴的三種基本情形 116
5.2.3 碼的函數依賴 116
5.2.4 函數依賴和碼的唯一性 117
5.3 函數依賴的公理系統 117
5.3.1 函數依賴的邏輯蘊涵 117
5.3.2 函數依賴的推理規則 118
5.3.3 屬性集閉包與F邏輯蘊含的充要條件 119
5.3.4 函數依賴集的等價和覆蓋 121
5.4 關系模式的分解 122
5.4.1 無損分解 123
5.4.2 保持函數依賴 125
5.5 關系模式的規范化 126
5.5.1 第一范式 126
5.5.2 第二范式 127
5.5.3 第三范式 128
5.5.4 BCNF范式 129
5.5.5 多值依賴與第四范式 129
5.6 關系模式規范化步驟 131
本章知識點小結 132
習題 133
第6章 PL/SQL編程基礎 134
6.1 PL/SQL簡介 134
6.1.1 PL/SQL的優點 134
6.1.2 如何編寫和編譯PL/SQL程序塊 135
6.2 PL/SQL程序結構 135
6.2.1 基本塊結構 135
6.2.2 變量定義 136
6.2.3 PL/SQL中的運算符和函數 138
6.3 PL/SQL控制結構 138
6.3.1 條件結構 138
6.3.2 循環結構 142
6.3.3 GOTO語句 144
6.4 異常處理 144
6.4.1 異常處理的語法 144
6.4.2 異常處理的分類 145
6.5 游標 147
6.5.1 顯式游標 148
6.5.2 隱式游標 150
6.5.3 顯式游標與隱式游標的比較 151
6.6 存儲過程 152
6.6.1 創建存儲過程 152
6.6.2 調用存儲過程 153
6.6.3 刪除存儲過程 153
6.7 函數 153
6.7.1 創建函數 153
6.7.2 調用函數 154
6.7.3 刪除函數 154
6.8 觸發器 154
6.8.1 創建觸發器 155
6.8.2 刪除觸發器 157
6.9 程序包 157
6.9.1 創建程序包 157
6.9.2 調用程序包 159
6.9.3 刪除程序包 159
本章知識點小結 159
習題 160
第7章 數據庫設計 162
7.1 數據庫設計概述 162
7.1.1 數據庫設計的任務 162
7.1.2 數據庫設計的特點 163
7.1.3 數據庫設計的方法 163
7.1.4 數據庫設計的步驟 164
7.2 需求分析 165
7.2.1 需求分析的任務 165
7.2.2 需求分析的過程及方法 167
7.2.3 需求分析的結果 168
7.2.4 實例——教學管理系統(需求分析) 169
7.3 概念結構設計 173
7.3.1 概念結構設計概述 173
7.3.2 概念結構設計的方法 173
7.3.3 采用自底向上的概念結構設計 174
7.3.4 實例——教學管理系統(概念模型) 176
7.4 邏輯結構設計 177
7.4.1 概念模型轉換為關系數據模型 178
7.4.2 關系模型的優化 178
7.4.3 設計外模式 179
7.4.4 實例——教學管理系統(關系模型) 181
7.5 物理結構設計 183
7.5.1 物理結構設計概述 183
7.5.2 關系模式的存取方法選擇 183
7.5.3 數據庫存儲結構的確定 184
7.5.4 物理結構設計的評價 184
7.5.5 實例——教學管理系統(物理結構設計) 185
7.6 數據庫的實施 185
7.6.1 建立實際的數據庫結構 185
7.6.2 數據載入 185
7.6.3 編制與調試應用程序 186
7.6.4 數據庫試運行 186
7.7 數據庫的運行與維護 186
本章知識點小結 187
習題 187
第8章 C#與Oracle 11g編程實例 189
8.1 .NET Framework體系結構 189
8.2 ADO.NET概述 190
8.2.1 ADO.NET簡介 190
8.2.2 ADO.NET體系結構 191
8.2.3 ADO.NET對象模型 193
8.3 使用ADO.NET操作Oracle數據庫 194
8.3.1 使用Connection對象連接數據庫 195
8.3.2 使用Command對象操作數據庫 196
8.3.3 使用只讀、向前DataReader對象讀取數據 198
8.3.4 使用DataSet對象讀取數據 199
8.3.5 數據適配器對象DataAdapter 200
8.4 數據庫連接實例 202
8.4.1 實例一:C#中操作Oracle數據庫一般過程 202
8.4.2 實例二:C#中處理Oracle Lob類型數據 204
本章知識點小結 207
習題 207
第9章 Oracle 11g的體系結構 208
9.1 Oracle 11g體系結構概述 208
9.2 邏輯存儲結構 210
9.2.1 表空間 210
9.2.2 段 211
9.2.3 區 212
9.2.4 數據塊 212
9.3 物理存儲結構 212
9.3.1 數據文件 212
9.3.2 控制文件 213
9.3.3 日志文件 213
9.3.4 參數文件 214
9.4 內存結構 214
9.4.1 系統全局區 215
9.4.2 程序全局區 216
9.4.3 軟件代碼區 217
9.5 進程結構 217
9.6 數據字典 219
本章知識點小結 220
習題 221
第10章 用戶權限與安全 222
10.1 用戶和模式 222
10.2 管理用戶 224
10.2.1 數據庫的存取控制 224
10.2.2 創建用戶 225
10.2.3 修改用戶 226
10.2.4 刪除用戶 227
10.2.5 顯示用戶信息 228
10.3 用戶配置文件管理 228
10.3.1 使用用戶配置文件管理口令 228
10.3.2 使用用戶配置文件管理資源 229
10.3.3 創建用戶配置文件 230
10.3.4 修改用戶配置文件 231
10.3.5 刪除用戶配置文件 231
10.3.6 查看配置文件信息 231
10.4 管理權限 232
10.4.1 權限簡介 232
10.4.2 管理系統權限 233
10.4.3 管理對象權限 234
10.5 管理角色 235
10.5.1 角色的概念 235
10.5.2 預定義角色 236
10.5.3 創建角色 236
10.5.4 授予角色 237
10.5.5 管理角色 237
10.5.6 查看角色 239
本章知識點小結 239
習題 239
第11章 數據庫的安全保護 241
11.1 數據庫的安全性 241
11.1.1 數據庫安全性概述 241
11.1.2 數據庫安全性控制的方法和原理 242
11.1.3 Oracle系統的安全措施 244
11.2 數據庫的完整性控制 245
11.2.1 數據庫完整性概述 245
11.2.2 完整性約束條件 245
11.2.3 完整性控制 246
11.2.4 Oracle系統的完整性約束 246
11.3 數據庫的并發性控制 248
11.3.1 事務 249
11.3.2 并發控制的原理和方法 249
11.3.3 封鎖 251
11.3.4 Oracle系統的并發控制技術 253
11.4 數據庫的備份與恢復技術 254
11.4.1 數據恢復的基本原則 254
11.4.2 故障類型和恢復策略 255
11.4.3 需要備份的數據 256
11.4.4 Oracle系統的備份與恢復技術 257
本章知識點小結 261
習題 262
第12章 Oracle模式對象的管理 263
12.1 索引 263
12.1.1 索引類型及其創建 264
12.1.2 修改索引 266
12.1.3 刪除索引 267
12.1.4 顯示索引信息 267
12.2 索引組織表 268
12.3 分區表與分區索引 269
12.3.1 分區的概念 269
12.3.2 建立分區表 270
12.3.3 修改分區表 272
12.3.4 分區索引 274
12.3.5 顯示分區表和分區索引信息 275
12.4 外部表 276
12.4.1 建立外部表 276
12.4.2 處理外部表錯誤 277
12.4.3 修改外部表 278
12.5 臨時表 278
12.6 簇與簇表 279
12.6.1 索引簇 279
12.6.2 Hash簇 280
12.6.3 顯示簇信息 280
12.7 管理視圖 281
12.7.1 創建視圖 281
12.7.2 修改視圖 282
12.7.3 刪除視圖 282
12.7.4 查詢視圖 282
12.7.5 更新視圖 283
12.8 管理序列 283
12.8.1 創建序列 283
12.8.2 使用序列 284
12.8.3 修改序列 284
12.8.4 刪除序列 285
12.9 管理同義詞 285
12.9.1 創建同義詞 285
12.9.2 刪除同義詞 285
本章知識點小結 285
習題 286
參考文獻 287