本書是江蘇省精品教材立項建設項目、“十二五”和“十三五”江蘇省高等學校重點教材建設項目成果,以基于數(shù)據(jù)庫的應用能力培養(yǎng)為主要目標,面向應用型教學需求,重點突出基礎性和應用性,兼顧數(shù)據(jù)庫技術的最新進展。按照“理論、實踐、再理論、再實踐”的思想關聯(lián)知識,以一個貫穿全書的商品訂購管理系統(tǒng)示例為主線,將數(shù)據(jù)庫基本原理、技術和應用三者有機結合。全書共8章,內(nèi)容包括數(shù)據(jù)庫概覽、關系數(shù)據(jù)模型、關系數(shù)據(jù)庫語言SQL、數(shù)據(jù)庫設計、關系規(guī)范化理論、數(shù)據(jù)庫應用開發(fā)、數(shù)據(jù)庫保護和數(shù)據(jù)庫新進展。附錄A和附錄B分別是實驗指導和課程設計指導。附錄C是T-SQL常用語句與內(nèi)置函數(shù)。本書免費提供配套電子課件、習題參考解答、示例源程序和視頻資源。本書既可作為計算機科學與技術、軟件工程、網(wǎng)絡工程、信息管理與信息系統(tǒng)及相關專業(yè)的教材,也可作為從事信息系統(tǒng)開發(fā)的專業(yè)人員的參考書和社會培訓教材。
顧韻華,南京信息工程大學教授,教務處現(xiàn)代教育中心、計算機基礎教學實驗中心主任。任中國計算機學會高級會員、江蘇省計算機學會計算機安全專委會常務委員、江蘇省計算機學會教育專委會委員、江蘇省計算機學會網(wǎng)絡與分布式專委會委員、江蘇省高等學校教育技術研究會理事會理事、信息化教學技術專業(yè)委員會委員。承擔國家級項目5項、省部級項目8項,發(fā)表論文70余篇。獲得江蘇省高等教育成果二等獎2項、江蘇省科技進步獎三等獎1項、南京市科技進步獎三等獎1項、江蘇省高校教學管理研究會教學研究工作委員會優(yōu)秀教學論文獎1項、江蘇省高等學校精品教材獎2項、江蘇省教育科技系統(tǒng)"五一巾幗標兵”。指導學生獲得國家級獎項10余項、省級獎項近30項。出版教材多部。
第1章 數(shù)據(jù)庫概覽—示例、概念與認識 1
1.1 數(shù)據(jù)管理技術的發(fā)展 1
1.1.1 數(shù)據(jù)、數(shù)據(jù)處理和數(shù)據(jù)管理 1
1.1.2 人工管理階段 2
1.1.3 文件系統(tǒng)階段 2
1.1.4 數(shù)據(jù)庫系統(tǒng)階段 3
1.2 理解數(shù)據(jù)庫系統(tǒng) 6
1.2.1 示例—商品訂購管理系統(tǒng) 6
1.2.2 數(shù)據(jù)庫系統(tǒng)的概念 8
1.2.3 數(shù)據(jù)庫系統(tǒng)的組成 8
1.3 數(shù)據(jù)庫系統(tǒng)的體系結構 9
1.3.1 數(shù)據(jù)庫系統(tǒng)的三級模式結構 9
1.3.2 數(shù)據(jù)庫系統(tǒng)的二級映像 10
1.3.3 數(shù)據(jù)庫管理系統(tǒng) 11
1.4 數(shù)據(jù)模型 12
1.4.1 數(shù)據(jù)模型的概念 12
1.4.2 概念數(shù)據(jù)模型 13
1.4.3 邏輯數(shù)據(jù)模型 14
本章小結 16
習題1 16
第2章 關系數(shù)據(jù)模型—關系數(shù)據(jù)庫基礎 17
2.1 關系數(shù)據(jù)結構 17
2.1.1 二維表與關系數(shù)據(jù)結構 17
2.1.2 關系數(shù)據(jù)結構的形式化定義 19
2.1.3 關系的性質(zhì) 21
2.1.4 關系模式 21
2.1.5 關系數(shù)據(jù)庫 21
2.1.6 碼 23
2.2 關系操作 24
2.2.1 基本關系操作 24
2.2.2 關系數(shù)據(jù)語言分類 24
2.2.3 關系代數(shù) 24
*2.2.4 關系演算 30
2.3 數(shù)據(jù)完整性 31
2.3.1 實體完整性 32
2.3.2 參照完整性 32
2.3.3 用戶定義完整性 32
本章小結 33
習題2 33
第3章 關系數(shù)據(jù)庫語言SQL—數(shù)據(jù)庫應用基礎 34
3.1 SQL概述 34
3.1.1 SQL的特點 35
3.1.2 SQL的基本概念 35
3.1.3 SQL的組成 36
3.1.4 SQL語句的分類 37
3.2 SQL的數(shù)據(jù)類型 37
3.3 數(shù)據(jù)定義 39
3.3.1 模式定義 39
3.3.2 基本表定義 40
3.3.3 索引定義 43
3.4 數(shù)據(jù)查詢 45
3.4.1 SELECT語句結構 45
3.4.2 單表查詢 45
3.4.3 連接查詢 53
3.4.4 嵌套查詢 57
3.4.5 集合查詢 63
3.5 數(shù)據(jù)更新 64
3.5.1 數(shù)據(jù)插入 64
3.5.2 數(shù)據(jù)修改 65
3.5.3 數(shù)據(jù)刪除 65
3.5.4 更新操作與數(shù)據(jù)完整性 66
3.6 視圖 66
3.6.1 視圖的概念 66
3.6.2 視圖定義 67
3.6.3 視圖查詢 68
3.6.4 視圖更新 70
*3.6.5 物化視圖 71
本章小結 71
習題3 72
第4章 數(shù)據(jù)庫設計—數(shù)據(jù)庫應用系統(tǒng)開發(fā)總論 73
4.1 數(shù)據(jù)庫設計的概述 73
4.1.1 數(shù)據(jù)庫設計的含義 73
4.1.2 數(shù)據(jù)庫設計的特點 74
4.1.3 數(shù)據(jù)庫設計的6個階段 75
4.2 需求分析 76
4.2.1 需求分析的步驟 77
4.2.2 需求分析的描述 77
4.3 概念結構設計 82
4.3.1 概念結構設計的方法 82
4.3.2 ER設計方法 83
*4.3.3 基本E-R模型的擴充 86
*4.3.4 擴展E-R模型 89
*4.3.5 用UML構建數(shù)據(jù)庫概念模型 90
4.4 邏輯結構設計 91
4.4.1 E-R模型轉(zhuǎn)換為關系數(shù)據(jù)模型 92
4.4.2 數(shù)據(jù)模式的優(yōu)化 95
4.4.3 設計用戶外模式 95
*4.4.4 常用數(shù)據(jù)庫建模工具 96
4.5 物理結構設計 97
4.5.1 確定數(shù)據(jù)庫的物理結構 97
4.5.2 性能評價 98
4.6 數(shù)據(jù)庫實施 98
4.6.1 數(shù)據(jù)庫結構定義及數(shù)據(jù)載入 98
4.6.2 應用程序編寫與調(diào)試 99
4.6.3 數(shù)據(jù)庫試運行 99
4.7 數(shù)據(jù)庫運行與維護 100
4.7.1 數(shù)據(jù)庫的轉(zhuǎn)儲和恢復 100
4.7.2 數(shù)據(jù)庫安全性、完整性的控制 100
4.7.3 數(shù)據(jù)庫性能監(jiān)督、分析和改進 100
4.7.4 數(shù)據(jù)庫的重定義、重構和重組 100
本章小結 101
習題4 101
第5章 關系規(guī)范化理論—關系數(shù)據(jù)庫設計理論基礎 103
5.1 數(shù)據(jù)冗余與操作異常問題 103
5.1.1 數(shù)據(jù)冗余與操作異常 104
5.1.2 問題原因分析 104
5.2 函數(shù)依賴 105
5.2.1 函數(shù)依賴的基本概念 105
5.2.2 函數(shù)依賴的分類 105
5.2.3 函數(shù)依賴與數(shù)據(jù)冗余 106
5.3 范式 106
5.3.1 關系模式和碼 107
5.3.2 基于函數(shù)依賴的范式 107
*5.3.3 多值依賴與4NF 111
5.4 數(shù)據(jù)依賴公理系統(tǒng) 113
5.4.1 邏輯蘊涵 113
5.4.2 Armstrong公理系統(tǒng) 113
5.4.3 函數(shù)依賴集的閉包 113
5.4.4 最小依賴集 115
5.5 模式分解 116
5.5.1 無損連接性 116
5.5.2 函數(shù)依賴保持 119
*5.5.3 模式分解算法 120
本章小結 122
習題5 122
第6章 數(shù)據(jù)庫應用開發(fā)—過程、編程與實例 124
6.1 數(shù)據(jù)庫應用開發(fā)概述 124
6.1.1 數(shù)據(jù)庫應用開發(fā)過程 124
6.1.2 數(shù)據(jù)庫應用系統(tǒng)的體系結構 126
6.1.3 常用的關系數(shù)據(jù)庫系統(tǒng) 128
6.1.4 常用數(shù)據(jù)庫應用開發(fā)工具 130
6.2 數(shù)據(jù)庫編程基礎 131
6.2.1 在應用系統(tǒng)中使用SQL 131
6.2.2 過程化SQL 132
6.2.3 T-SQL程序設計基礎 132
6.2.4 函數(shù) 136
6.2.5 游標 139
*6.2.6 SQL語句優(yōu)化和安 全性 140
6.3 存儲過程和觸發(fā)器 141
6.3.1 存儲過程 141
6.3.2 觸發(fā)器 145
6.4 數(shù)據(jù)庫訪問接口 148
6.4.1 開放數(shù)據(jù)庫連接 149
6.4.2 ADO.NET 154
6.4.3 JDBC 156
6.5 C#數(shù)據(jù)庫應用開發(fā) 157
6.5.1 C#程序設計概述 157
6.5.2 ADO.NET數(shù)據(jù)庫應用技術 163
6.5.3 C#數(shù)據(jù)庫應用系統(tǒng)開發(fā)案例—商品訂購管理系統(tǒng) 172
6.6 Java數(shù)據(jù)庫應用開發(fā) 184
6.6.1 JDBC API 184
6.6.2 JDBC數(shù)據(jù)庫訪問流程 185
6.6.3 結果集 191
6.6.4 JDBC數(shù)據(jù)庫編程 192
6.6.5 Java數(shù)據(jù)庫應用系統(tǒng)開發(fā)案例—商品訂購管理系統(tǒng) 203
*6.7 Python數(shù)據(jù)庫訪問 211
本章小結 213
習題6 213
第7章 數(shù)據(jù)庫保護—數(shù)據(jù)庫管理基礎 215
7.1 數(shù)據(jù)庫保護的概述 215
7.2 數(shù)據(jù)庫安全 216
7.2.1 數(shù)據(jù)庫安全保護范圍 216
7.2.2 數(shù)據(jù)庫安全性目標 217
7.2.3 數(shù)據(jù)庫安全控制 217
7.2.4 SQL Server的安全機制 220
7.3 數(shù)據(jù)庫的完整性 225
7.3.1 數(shù)據(jù)完整性概念 225
7.3.2 數(shù)據(jù)完整性控制 226
7.3.3 SQL Server的完整性機制 227
7.4 并發(fā)控制 232
7.4.1 事務 232
7.4.2 事務的并發(fā)執(zhí)行 233
7.4.3 并發(fā)調(diào)度的可串行化 234
7.4.4 封鎖 235
7.4.5 活鎖與死鎖 237
7.4.6 SQL Server的事務處理和鎖機制 237
7.5 數(shù)據(jù)庫恢復 242
7.5.1 故障種類 242
7.5.2 數(shù)據(jù)庫恢復技術 243
7.5.3 SQL Server的恢復技術 245
本章小結 247
習題7 248
第8章 數(shù)據(jù)庫新進展—領域知識 拓展 249
8.1 數(shù)據(jù)庫技術的研究與發(fā)展 249
8.1.1 數(shù)據(jù)庫技術的發(fā)展 249
8.1.2 數(shù)據(jù)庫發(fā)展的特點 250
8.1.3 數(shù)據(jù)庫技術的研究方向 252
8.2 數(shù)據(jù)倉庫與數(shù)據(jù)挖掘 254
8.2.1 數(shù)據(jù)倉庫 255
8.2.2 數(shù)據(jù)挖掘 256
8.2.3 數(shù)據(jù)倉庫和數(shù)據(jù)挖掘 258
8.3 XML數(shù)據(jù)管理 258
8.3.1 XML概述 259
8.3.2 XML數(shù)據(jù)模型 259
8.3.3 XML數(shù)據(jù)查詢 261
8.3.4 XML數(shù)據(jù)庫 262
8.3.5 SQL Server中XML數(shù)據(jù)處理 262
8.4 移動數(shù)據(jù)庫 264
8.4.1 移動數(shù)據(jù)庫概念 265
8.4.2 移動數(shù)據(jù)庫的特點 265
8.4.3 移動數(shù)據(jù)庫的關鍵技術 266
8.5 NoSQL數(shù)據(jù)庫和NewSQL 數(shù)據(jù)庫 267
8.5.1 NoSQL數(shù)據(jù)庫的概念 267
8.5.2 CAP理論 267
8.5.3 BASE原則 268
8.5.4 NoSQL數(shù)據(jù)庫的架構 268
*8.5.5 NoSQL數(shù)據(jù)庫的分類 269
8.5.6 NewSQL數(shù)據(jù)庫 270
*8.5.7 數(shù)據(jù)庫云平臺 271
*8.6 大數(shù)據(jù) 271
8.6.1 大數(shù)據(jù)概念 271
8.6.2 大數(shù)據(jù)處理 272
8.6.3 大數(shù)據(jù)管理面臨的挑戰(zhàn) 274
本章小結 276
習題8 276
附錄A 實驗指導 277
附錄B 課程設計指導 306
附錄C T-SQL常用語句與內(nèi)置函數(shù) 312
參考文獻 317