人民郵電出版社教材
書 名 Oracle資料庫管理、開發與實踐(1DVD)叢 書 名 普通高等學校計算機教育“十二五”規劃教材
標準書號 ISBN 978-7-115-30061-4
作 者 楊永健 劉尚毅 主編
責任編輯 劉博
開 本 16 開
印 張 23.25
字 數 623 千字
頁 數 360 頁
裝 幀 平裝
版 次 第1版第1次
初版時間 2012年12月
本 印 次 2012年12月
首 印 數 -- 冊
定 價 52.00 元
內容提要
本書系統全面地介紹了有關Oracle開發所涉及的各類知識。全書共分16章,內容包括資料庫概念、Oracle 11g體系結構、Oracle資料庫的安裝與配置、SQL Plus命令、SQL語言基礎及調優、PL\SQL編程、過程、函式、觸發器和包、數據表對象、視圖、索引、序列、同義詞、管理表空間和數據檔案、控制檔案和日誌檔案、表分區與索引分區、用戶管理與許可權分配、數據導出和導入、Oracle閃回技術與系統調優、綜合案例——企業人事管理系統。全書每章內容都與實例緊密結合,有助於學生理解知識、套用知識,達到學以致用的目的。本書附有配套DVD光碟,光碟中提供有本書所有實例、綜合實例、實驗、綜合案例和課程設計的原始碼、製作精良的電子課件PPT及教學錄像、體驗版學習軟體。其中,原始碼全部經過精心測試,能夠在Windows XP、Windows 2003、Windows 7系統下編譯和運行。
本書可作為本科計算機專業、軟體學院、高職軟體專業及相關專業的教材,同時也適合Oracle愛好者、初、中級的Web程式開發人員參考使用。
目錄
第1章 資料庫概念 11.1 什麼是資料庫 1
1.1.1 資料庫的發展史 1
1.1.2 數據模型 2
1.1.3 資料庫系統的體系結構 3
1.1.4 資料庫系統的組成 3
1.2 關係型資料庫的基本理論 4
1.2.1 關係型資料庫概述 4
1.2.2 關係型資料庫的E-R模型 5
1.2.3 關係型資料庫的設計範式 7
知識點提煉 9
習題 9
第2章 Oracle 11g體系結構 10
2.1 Oracle 11g體系結構概述 10
2.2 邏輯存儲結構 10
2.2.1 數據塊 11
2.2.2 數據區 12
2.2.3 段 12
2.2.4 表空間 13
2.3 物理存儲結構 14
2.3.1 數據檔案 15
2.3.2 控制檔案 16
2.3.3 日誌檔案 17
2.3.4 伺服器參數檔案 19
2.3.5 密碼檔案、警告檔案和跟蹤檔案 20
2.4 Oracle 11g伺服器結構 22
2.4.1 系統全局區 22
2.4.2 程式全局區(PGA) 25
2.4.3 前台進程 25
2.4.4 後台進程 26
2.5 數據字典 29
2.5.1 Oracle數據字典命名規則 29
2.5.2 Oracle常用數據字典 29
知識點提煉 31
習題 31
第3章 Oracle資料庫的安裝與配置 32
3.1 Oracle 11g的安裝與卸載 32
3.1.1 Oracle 11g的安裝 32
3.1.2 Oracle 11g的卸載 38
3.2 Oracle 11g的管理工具 41
3.2.1 SQL* Plus工具 41
3.2.2 Oracle企業管理器 42
3.2.3 資料庫配置助手 43
3.3 啟動與關閉資料庫實例 44
3.3.1 啟動資料庫實例 44
3.3.2 關閉資料庫實例 46
3.4 綜合實例——安裝Oracle 11g資料庫 47
知識點提煉 47
習題 48
實驗:使用ABORT方式關閉資料庫 48
實驗目的 48
實驗內容 48
實驗步驟 48
第4章 SQL* Plus命令 49
4.1 設定SQL* Plus運行環境 49
4.1.1 SET命令基本語法 49
4.1.2 使用SET命令設定運行環境 51
4.2 常用SQL* Plus命令 55
4.2.1 HELP命令 55
4.2.2 DESCRIBE命令 56
4.2.3 SPOOL命令 58
4.2.4 其他常用命令 58
4.3 格式化查詢結果 60
4.3.1 COLUMN命令 61
4.3.2 TTITLE和BTITLE命令 63
4.4 綜合實例——設定空白行數為4 64
知識點提煉 65
習題 65
實驗:套用指定字元替換表中的null值 65
實驗目的 65
實驗內容 65
實驗步驟 65
第5章 SQL語言基礎及調優 66
5.1 SQL語言簡介 66
5.1.1 SQL語言的特點 67
5.1.2 SQL語言的分類 67
5.1.3 SQL語言的編寫規則 68
5.2 用戶模式 69
5.2.1 模式與模式對象 69
5.2.2 示例模式SCOTT 69
5.3 檢索數據 70
5.3.1 簡單查詢 70
5.3.2 篩選查詢 73
5.3.3 分組查詢 77
5.3.4 排序查詢 78
5.3.5 多表關聯查詢 78
5.4 Oracle常用系統函式 82
5.4.1 字元類函式 82
5.4.2 數字類函式 85
5.4.3 日期和時間類函式 86
5.4.4 轉換類函式 87
5.4.5 聚合類函式 88
5.5 子查詢的用法 88
5.5.1 什麼是子查詢 89
5.5.2 單行子查詢 89
5.5.3 多行子查詢 90
5.5.4 關聯子查詢 91
5.6 運算元據庫 91
5.6.1 插入數據(INSERT語句) 91
5.6.2 更新數據(UPDATE語句) 92
5.6.3 刪除數據(DELETE語句和TRUNCATE語句) 93
5.7 事務處理 94
5.7.1 事務概述 94
5.7.2 操作事務 95
5.8 常規SQL語句最佳化 96
5.8.1 建議不用“*”來代替所有列名 97
5.8.2 用TRUNCATE代替DELETE 97
5.8.3 在確保完整性的情況下多用COMMIT語句 97
5.8.4 儘量減少表的查詢次數 98
5.8.5 用[NOT] EXISTS代替[NOT] IN 98
5.9 表連線最佳化 98
5.9.1 驅動表的選擇 98
5.9.2 WHERE子句的連線順序 99
5.10 合理使用索引 99
5.10.1 何時使用索引 99
5.10.2 索引列和表達式的選擇 99
5.10.3 選擇複合索引主列 100
5.10.4 避免全表掃描大表 100
5.10.5 監視索引是否被使用 100
5.11 最佳化器的使用 101
5.11.1 最佳化器的概念 101
5.11.2 運行EXPLAIN PLAN 102
5.11.3 Oracle 11g中SQL執行計畫的管理 102
5.12 資料庫和SQL重演 102
5.12.1 資料庫重演 102
5.12.2 SQL重演 103
5.13 Oracle的性能顧問 103
5.13.1 SQL調優顧問 104
5.13.2 SQL訪問顧問 104
5.14 綜合實例——查詢工資不小於WARD的員工信息 104
知識點提煉 105
習題 105
實驗:更新表中數據 106
實驗目的 106
實驗內容 106
實驗步驟 106
第6章 PL/SQL編程 107
6.1 PL/SQL簡介 107
6.1.1 PL/SQL塊結構 107
6.1.2 代碼注釋和標識符 109
6.2 數據類型、變數和常量 110
6.2.1 基本數據類型 110
6.2.2 特殊數據類型 111
6.2.3 定義變數和常量 113
6.3 流程控制語句 114
6.3.1 選擇語句 114
6.3.2 循環語句 118
6.4 PL/SQL游標 120
6.4.1 顯式游標 120
6.4.2 游標屬性 123
6.4.3 隱式游標 124
6.4.4 通過for語句循環遊標 125
6.5 PL/SQL異常處理 126
6.5.1 預定義異常 126
6.5.2 自定義異常 128
6.6 綜合實例——使用游標查詢工資小於1000元的員工工資 129
知識點提煉 130
習題 130
實驗:游標提取比指定員工工資少的員工信息 131
實驗目的 131
實驗內容 131
實驗步驟 131
第7章 過程、函式、觸發器和包 132
7.1 存儲過程 132
7.1.1 創建存儲過程 132
7.1.2 存儲過程的參數 134
7.1.3 IN參數的默認值 139
7.2 函式 140
7.2.1 創建函式 140
7.2.2 調用函式 141
7.2.3 刪除函式 141
7.3 觸發器 141
7.3.1 觸發器簡介 142
7.3.2 語句級觸發器 143
7.3.3 行級別觸發器 145
7.3.4 替換觸發器 146
7.3.5 用戶事件觸發器 148
7.4 程式包 150
7.4.1 程式包的規範 150
7.4.2 程式包的主體 151
7.5 綜合實例——創建帶參數的存儲過程 153
知識點提煉 153
習題 154
實驗:通過觸發器實現當emp表中刪除數據時bonus表中對應數據也刪除 154
實驗目的 154
實驗內容 154
實驗步驟 154
第8章 數據表對象 155
8.1 數據表概述 155
8.2 創建數據表 156
8.2.1 數據表的邏輯結構 156
8.2.2 創建數據表 157
8.2.3 數據表的特性 158
8.3 維護數據表 163
8.3.1 增加和刪除欄位 163
8.3.2 修改欄位 164
8.3.3 重命名表 165
8.3.4 改變表空間和存儲參數 165
8.3.5 刪除表 166
8.3.6 修改表的狀態 167
8.4 數據完整性和約束性 168
8.4.1 非空約束 168
8.4.2 主鍵約束 169
8.4.3 唯一性約束 171
8.4.4 外鍵約束 172
8.4.5 禁用和激活約束 173
8.4.6 刪除約束 175
8.5 綜合實例——創建用戶表並添加唯一性約束 175
知識點提煉 176
習題 176
實驗:關聯表之間的級聯刪除 176
實驗目的 176
實驗內容 177
實驗步驟 177
第9章 視圖、索引、序列、同義詞 178
9.1 視圖對象 178
9.1.1 創建視圖 178
9.1.2 管理視圖 181
9.2 索引 182
9.2.1 索引概述 182
9.2.2 創建索引 183
9.2.3 修改索引 187
9.2.4 刪除索引 188
9.2.5 顯示索引信息 188
9.3 序列 190
9.3.1 創建序列 190
9.3.2 管理序列 192
9.4 同義詞 192
9.5 綜合實例——創建多表連線視圖 194
知識點提煉 194
習題 194
實驗:為用戶表創建索引 195
實驗目的 195
實驗內容 195
實驗步驟 195
第10章 管理表空間和數據檔案 196
10.1 表空間與數據檔案的關係 196
10.2 Oracle 11g的默認表空間 197
10.2.1 SYSTEM表空間 198
10.2.2 SYSAUX表空間 198
10.3 創建表空間 198
10.3.1 創建表空間的語法 199
10.3.2 通過本地化管理方式創建表空間 200
10.3.3 通過段空間管理方式創建表空間 200
10.3.4 創建非標準塊表空間 201
10.3.5 建立大檔案表空間 202
10.4 維護表空間與數據檔案 203
10.4.1 設定默認表空間 203
10.4.2 更改表空間的狀態 203
10.4.3 重命名表空間 204
10.4.4 刪除表空間 204
10.4.5 維護表空間中的數據檔案 205
10.5 管理撤銷表空間 206
10.5.1 撤銷表空間的作用 206
10.5.2 撤銷表空間的初始化參數 207
10.5.3 撤銷表空間的基本操作 208
10.6 管理臨時表空間 211
10.6.1 簡介臨時表空間 211
10.6.2 創建臨時表空間 211
10.6.3 查詢臨時表空間的信息 211
10.6.4 關於臨時表空間組 212
10.7 綜合實例——在新建的表空間中創建數據表 214
知識點提煉 214
習題 214
實驗:新建表空間並將其設定為默認表空間 215
實驗目的 215
實驗內容 215
實驗步驟 215
第11章 控制檔案和日誌檔案 216
11.1 管理控制檔案 216
11.1.1 簡介控制檔案 216
11.1.2 控制檔案的多路復用 217
11.1.3 創建控制檔案 218
11.1.4 備份和恢復控制檔案 221
11.1.5 刪除控制檔案 223
11.1.6 查詢控制檔案的信息 223
11.2 管理重做日誌檔案 224
11.2.1 重做日誌檔案概述 224
11.2.2 增加日誌組及其成員 225
11.2.3 刪除重做日誌 227
11.2.4 更改重做日誌的位置或名稱 228
11.2.5 查看重做日誌信息 229
11.3 管理歸檔日誌檔案 229
11.3.1 日誌模式分類 229
11.3.2 管理歸檔操作 230
11.3.3 設定歸檔檔案位置 232
11.3.4 查看歸檔日誌信息 234
11.4 綜合實例——向資料庫中添加包含3個檔案的重做日誌檔案組 235
知識點提煉 235
習題 235
實驗:查看並切換日誌模式 236
實驗目的 236
實驗內容 236
實驗步驟 236
第12章 表分區與索引分區 237
12.1 分區技術簡介 237
12.2 創建表分區 238
12.2.1 範圍分區 238
12.2.2 散列分區 239
12.2.3 列表分區 241
12.2.4 組合分區 242
12.2.5 Interval分區 243
12.3 表分區策略 243
12.4 管理表分區 244
12.4.1 添加表分區 244
12.4.2 合併分區 244
12.4.3 刪除分區 245
12.4.4 併入分區 246
12.5 創建索引分區 247
12.5.1 索引分區概述 247
12.5.2 本地索引分區 248
12.5.3 全局索引分區 249
12.6 管理索引分區 249
12.6.1 索引分區管理的操作列表 250
12.6.2 索引分區管理的實際操作 250
12.7 綜合實例——創建圖書表,並按圖書編號創建表分區 251
知識點提煉 251
習題 252
實驗:為工作表創建索引分區 252
實驗目的 252
實驗內容 252
實驗步驟 252
第13章 用戶管理與許可權分配 253
13.1 用戶與模式的關係 253
13.2 創建與管理用戶 254
13.2.1 身份驗證 254
13.2.2 創建用戶 255
13.2.3 修改用戶 256
13.2.4 刪除用戶 257
13.3 用戶許可權管理 258
13.3.1 許可權簡介 258
13.3.2 授權操作 258
13.3.3 回收系統許可權 259
13.3.4 對象授權 260
13.3.5 回收對象許可權 261
13.3.6 查詢用戶與許可權 261
13.4 角色管理 262
13.4.1 角色簡介 262
13.4.2 預定義角色 262
13.4.3 創建角色與授權 264
13.4.4 管理角色 265
13.4.5 角色與許可權查詢 266
13.5 資源配置PROFILE 267
13.5.1 PROFILE簡介 267
13.5.2 使用PROFILE管理密碼 268
13.5.3 使用PROFILE管理資源 270
13.5.4 維護PROFILE檔案 271
13.5.5 顯示PROFILE信息 272
13.6 綜合實例——創建開發者角色 272
知識點提煉 275
習題 275
實驗:創建開發者用戶 276
實驗目的 276
實驗內容 276
實驗步驟 276
第14章 數據導出和導入 279
14.1 EXPDP和IMPDP概述 279
14.2 EXPDP導出數據 280
14.2.1 執行EXPDP命令 280
14.2.2 EXPDP命令參數 283
14.3 IMPDP導入數據 284
14.3.1 執行IMPDP命令 284
14.3.2 IMPDP命令參數 286
14.4 SQL* Loader工具 287
14.4.1 SQL* Loader概述 287
14.4.2 載入數據 288
14.5 綜合實例——使用EXPDP工具導出HR模式中的employees表 290
知識點提煉 291
習題 291
實驗:導入數據表 291
實驗目的 291
實驗內容 291
實驗步驟 291
第15章 Oracle閃回技術與系統調優 293
15.1 閃回技術簡介 293
15.2 閃回資料庫 294
15.2.1 閃回恢復區配置 294
15.2.2 閃回資料庫配置 294
15.2.3 閃回資料庫技術套用 296
15.3 閃回表 297
15.3.1 閃回表命令的語法 297
15.3.2 閃回表的套用 297
15.4 閃回丟棄 298
15.4.1 資源回收筒簡介 298
15.4.2 資源回收筒的套用 299
15.5 其他閃回技術 300
15.5.1 閃回版本查詢 300
15.5.2 閃回事務查詢 300
15.5.3 閃回數據歸檔 301
15.6 調整初始化參數 301
15.6.1 Oracle初始化參數分類 301
15.6.2 主要系統調優參數介紹 302
15.7 系統全局區(SGA)最佳化 304
15.7.1 理解記憶體分配 304
15.7.2 調整日誌緩衝區 304
15.7.3 調整共享池 306
15.7.4 調整資料庫緩衝區 308
15.7.5 SGA調優建議 308
15.8 排序區最佳化 309
15.8.1 排序區與其他記憶體區的關係 309
15.8.2 理解排序活動 309
15.8.3 專用模式下排序區的調整 310
15.8.4 共享模式下排序區的調整 312
15.9 綜合實例——使用閃回丟棄還原表 313
知識點提煉 314
習題 314
實驗:清除插入的記錄 315
實驗目的 315
實驗內容 315
實驗步驟 315
第16章 綜合案例——企業人事管理系統 316
16.1 需求分析 316
16.2 總體設計 316
16.2.1 系統目標 316
16.2.2 構建開發環境 317
16.2.3 系統功能結構 324
16.2.4 業務流程圖 325
16.3 資料庫設計 326
16.3.1 資料庫概要說明 326
16.3.2 資料庫E-R圖 327
16.3.3 數據表結構 328
16.4 公共模組設計 328
16.4.1 編寫Hibernate配置檔案 329
16.4.2 編寫Hibernate持久化類和映射檔案 330
16.4.3 編寫通過Hibernate操作持久化對象的常用方法 330
16.4.4 創建用於特殊效果的部門樹對話框 332
16.4.5 創建通過部門樹選取員工的面板和對話框 333
16.5 系統主要模組開發 335
16.5.1 主窗體設計 335
16.5.2 人事管理模組設計 341
16.5.3 待遇管理模組設計 347
16.5.4 系統維護模組設計 353
16.6 程式打包與安裝 358
16.6.1 打包 358
16.6.2 安裝 360