本教材第2版是在充分聽取教材使用學(xué)校師生的修改建議后,結(jié)合數(shù)據(jù)庫原理與應(yīng)用技術(shù)的**發(fā)展,重新修訂了相當(dāng)篇幅的內(nèi)容而重新編寫的。全書共分12章,涉及關(guān)系型數(shù)據(jù)庫理論及編程基礎(chǔ)、數(shù)據(jù)庫設(shè)計與應(yīng)用、實例、實驗等幾部分。全書理論性強(qiáng)、體系完整、內(nèi)容新穎、條理清晰、組織合理、強(qiáng)調(diào)實踐。作者團(tuán)隊以認(rèn)真嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度實現(xiàn)了書中的方法,詳盡描述了各種方法的適用環(huán)境及取得的效果。
以工程案例驅(qū)動教學(xué)的講練結(jié)合的編寫原則,于SQLServer2012介紹了關(guān)系型數(shù)據(jù)庫應(yīng)用技術(shù),針對Redis、ElasticSearch、MongoDB等簡介了針對大數(shù)據(jù)的數(shù)據(jù)管理技術(shù)。本書還配有MOOC課程。
第1章 緒論 1
1.1 數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展 1
1.1.1 人工管理數(shù)據(jù)階段 1
1.1.2 文件管理數(shù)據(jù)階段 2
1.1.3 數(shù)據(jù)庫管理階段 3
1.1.4 大數(shù)據(jù)階段 5
1.2 數(shù)據(jù)庫的基本概念 6
1.2.1 數(shù)據(jù)(信息) 6
1.2.2 數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 6
1.2.3 數(shù)據(jù)庫系統(tǒng) 7
1.3 數(shù)據(jù)模型 7
1.3.1 數(shù)據(jù)模型的組成要素 8
1.3.2 數(shù)據(jù)建模 8
1.4 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) 13
1.4.1 三級模式 13
1.4.2 二級映像 14
1.4.3 采用三級模型二級映像結(jié)構(gòu)
的優(yōu)點 14
1.5 數(shù)據(jù)庫管理系統(tǒng)的功能、組成、
工作方式 15
1.5.1 功能 15
1.5.2 組成 15
1.5.3 工作方式 16
1.6 數(shù)據(jù)庫產(chǎn)品及傳統(tǒng)的關(guān)系型數(shù)據(jù)庫
系統(tǒng)面臨的挑戰(zhàn) 17
1.6.1 數(shù)據(jù)庫產(chǎn)品 17
1.6.2 傳統(tǒng)的關(guān)系型數(shù)據(jù)庫系統(tǒng)面臨
的挑戰(zhàn) 19
1.7 小結(jié) 20
習(xí)題1 20
第2章 關(guān)系型數(shù)據(jù)庫基礎(chǔ) 21
2.1 關(guān)系模型的基本概念 21
2.1.1 域、笛卡兒積、關(guān)系、關(guān)系
模式 21
2.1.2 碼 24
2.2 關(guān)系模型的完整性約束 25
2.2.1 實體完整性規(guī)則 26
2.2.2 參照完整性規(guī)則 26
2.2.3 用戶自定義完整性規(guī)則 27
2.3 關(guān)系操作 27
2.3.1 關(guān)系數(shù)據(jù)語言 27
2.3.2 關(guān)系代數(shù) 27
2.4 小結(jié) 36
習(xí)題2 36
第3章 SQL的數(shù)據(jù)定義和完整性約束 38
3.1 SQL概述 38
3.1.1 SQL的發(fā)展歷史 38
3.1.2 SQL的特點 39
3.1.3 SQL數(shù)據(jù)庫的體系結(jié)構(gòu) 40
3.2 SQL Server介紹 40
3.2.1 SQL Server的發(fā)展歷史 41
3.2.2 Transact-SQL 42
3.3 SQL的數(shù)據(jù)定義 46
3.3.1 數(shù)據(jù)庫的定義與刪除 46
3.3.2 基本表的定義、修改和刪除 47
3.3.3 索引的建立和刪除 51
3.4 SQL的數(shù)據(jù)操縱和完整性約束
的作用 52
3.4.1 插入數(shù)據(jù)和完整性約束的作用 52
3.4.2 刪除數(shù)據(jù)和完整性約束的作用 53
3.4.3 修改數(shù)據(jù)和完整性約束的作用 54
3.5 小結(jié) 55
習(xí)題3 55
第4章 SQL的數(shù)據(jù)查詢 56
4.1 SQL的數(shù)據(jù)查詢命令 56
4.2 簡單查詢 57
4.2.1 簡單無條件查詢 57
4.2.2 簡單條件查詢 57
4.2.3 使用BETWEEN… AND…
的查詢 58
4.2.4 字符串匹配查詢 59
4.2.5 空值查詢 60
4.2.6 使用IN的查詢 60
4.2.7 DISTINCT短語的作用 61
4.2.8 存儲查詢結(jié)果 61
4.2.9 查詢結(jié)果的排序 61
4.2.10 TOP短語的作用 62
4.2.11 集合運算 62
4.3 連接查詢 64
4.3.1 一般連接 64
4.3.2 別名和自連接查詢 66
4.3.3 外連接查詢 66
4.4 分組及匯總查詢 67
4.4.1 一般匯總查詢 67
4.4.2 使用GROUP BY的分組匯總
查詢 67
4.4.3 帶明細(xì)的分組匯總查詢 68
4.5 嵌套查詢 69
4.5.1 內(nèi)外層不相關(guān)的嵌套查詢 69
4.5.2 內(nèi)外層互相關(guān)的嵌套查詢 71
4.5.3 使用EXISTS的嵌套查詢 72
4.6 需要查詢支持的數(shù)據(jù)操作 74
4.6.1 插入操作 74
4.6.2 修改操作 75
4.6.3 刪除操作 75
4.7 視圖及其操作 75
4.7.1 視圖的建立和刪除 76
4.7.2 視圖的使用 77
4.7.3 視圖的作用 79
4.8 小結(jié) 79
習(xí)題4 80
第5章 關(guān)系型數(shù)據(jù)庫編程基礎(chǔ) 81
5.1 應(yīng)用程序訪問數(shù)據(jù)庫 81
5.1.1 嵌入式SQL 81
5.1.2 DAO和OLE DB 85
5.1.3 ODBC 86
5.1.4 JDBC 87
5.1.5 ADO和ADO.NET 89
5.2 存儲過程 91
5.2.1 基本概念 91
5.2.2 Transact-SQL基本語法 92
5.2.3 創(chuàng)建和執(zhí)行存儲過程 94
5.2.4 存儲過程的修改和刪除 97
5.2.5 獲得有關(guān)存儲過程的信息 98
5.3 觸發(fā)器 98
5.3.1 基本概念 98
5.3.2 創(chuàng)建觸發(fā)器 99
5.3.3 禁止和啟用觸發(fā)器 101
5.3.4 修改和刪除觸發(fā)器 101
5.4 小結(jié) 102
習(xí)題5 102
第6章 關(guān)系數(shù)據(jù)及其規(guī)范化理論 103
6.1 問題的提出 103
6.1.1 關(guān)系模式中可能存在的問題 103
6.1.2 解決的方法 104
6.2 函數(shù)依賴 104
6.2.1 函數(shù)依賴的基本概念 105
6.2.2 函數(shù)依賴的推理規(guī)則 106
6.2.3 碼的函數(shù)依賴表示 109
6.2.4 最小函數(shù)依賴集 109
6.3 規(guī)范化 111
6.3.1 范式 111
6.3.2 模式分解 115
6.3.3 關(guān)系模式規(guī)范化步驟 120
6.4 小結(jié) 121
習(xí)題6 121
第7章 數(shù)據(jù)庫設(shè)計 122
7.1 數(shù)據(jù)庫設(shè)計概述 122
7.1.1 數(shù)據(jù)庫設(shè)計的任務(wù)和特點 122
7.1.2 數(shù)據(jù)庫設(shè)計方法 123
7.1.3 數(shù)據(jù)庫設(shè)計步驟 123
7.1.4 數(shù)據(jù)庫設(shè)計過程中的各級
模式 125
7.2 需求分析 125
7.2.1 需求分析的任務(wù) 125
7.2.2 需求分析的方法和工具 126
7.2.3 需求分析的結(jié)果 127
7.3 概念結(jié)構(gòu)設(shè)計 127
7.3.1 概念模型及表示方法 127
7.3.2 概念結(jié)構(gòu)設(shè)計的方法 130
7.3.3 概念設(shè)計的步驟 131
7.4 邏輯結(jié)構(gòu)設(shè)計 136
7.4.1 從E-R模型到關(guān)系模式
的轉(zhuǎn)換 136
7.4.2 邏輯結(jié)構(gòu)的優(yōu)化 138
7.4.3 設(shè)計用戶子模式 139
7.5 數(shù)據(jù)庫的物理設(shè)計 140
7.5.1 數(shù)據(jù)庫物理設(shè)計的內(nèi)容
和方法 140
7.5.2 確定數(shù)據(jù)庫的物理結(jié)構(gòu) 140
7.5.3 評價物理結(jié)構(gòu) 141
7.6 數(shù)據(jù)庫的實施和維護(hù) 142
7.6.1 建立數(shù)據(jù)庫和應(yīng)用程序
的調(diào)試 142
7.6.2 數(shù)據(jù)庫的試運行和測試 142
7.6.3 數(shù)據(jù)庫的運行和維護(hù) 143
7.7 數(shù)據(jù)庫設(shè)計實例 144
7.7.1 需求分析 144
7.7.2 概念結(jié)構(gòu)設(shè)計 147
7.7.3 邏輯結(jié)構(gòu)設(shè)計 150
7.7.4 數(shù)據(jù)庫的物理設(shè)計和實施 152
7.8 小結(jié) 154
習(xí)題7 154
第8章 數(shù)據(jù)庫的安全性 155
8.1 數(shù)據(jù)庫安全性概述 155
8.2 用戶標(biāo)識與鑒別 156
8.3 存取控制 157
8.3.1 自主存取控制(DAC)方法 157
8.3.2 強(qiáng)制存取控制(MAC)方法 161
8.3.3 基于角色的存取控制
(RBAC)模型 162
8.4 其他安全控制方法 164
8.4.1 視圖機(jī)制 164
8.4.2 審計 165
8.4.3 數(shù)據(jù)加密 166
8.4.4 統(tǒng)計數(shù)據(jù)庫安全性 166
8.5 常見數(shù)據(jù)庫管理系統(tǒng)的安全控制 167
8.5.1 SQL Server的安全控制 167
8.5.2 Oracle的安全控制 170
8.5 小結(jié) 173
習(xí)題8 173
第9章 數(shù)據(jù)庫恢復(fù)和并發(fā)控制 175
9.1 事務(wù) 175
9.1.1 事務(wù)的基本概念 175
9.1.2 事務(wù)的性質(zhì) 175
9.2 數(shù)據(jù)庫恢復(fù)技術(shù) 176
9.2.1 故障的種類 176
9.2.2 恢復(fù)的實現(xiàn)技術(shù) 177
9.2.3 故障恢復(fù)策略 179
9.3 常見數(shù)據(jù)庫的恢復(fù)技術(shù) 182
9.3.1 SQL Server數(shù)據(jù)庫的恢復(fù)
技術(shù) 182
9.3.2 Oracle數(shù)據(jù)庫的恢復(fù)技術(shù) 183
9.4 并發(fā)控制 185
9.4.1 并發(fā)操作帶來的問題 185
9.4.2 封鎖 186
9.4.3 并發(fā)調(diào)度的可串行性 189
9.4.4 兩段鎖協(xié)議 190
9.4.5 封鎖的粒度 191
9.5 常見數(shù)據(jù)庫的并發(fā)控制技術(shù) 193
9.5.1 SQL Server的封鎖方式 193
9.5.2 Oracle的封鎖方式 193
9.6 小結(jié) 194
習(xí)題9 194
第10章 基于關(guān)系型數(shù)據(jù)庫的Web應(yīng)用 196
10.1 數(shù)據(jù)庫應(yīng)用體系結(jié)構(gòu)概述 196
10.1.1 基于C/S模式的體系結(jié)構(gòu) 196
10.1.2 基于B/S模式的體系結(jié)構(gòu) 197
10.2 常見的Web服務(wù)器簡介 198
10.2.1 IIS 198
10.2.2 Tomcat 199
10.2.3 WebLogic 200
10.3 服務(wù)器端的動態(tài)網(wǎng)頁技術(shù) 200
10.3.1 JSP 200
10.3.2 基于ASP .NET構(gòu)建Web應(yīng)用
程序 204
10.4 客戶端網(wǎng)頁設(shè)計相關(guān)技術(shù)簡介 204
10.4.1 基于CSS+DIV構(gòu)建網(wǎng)頁 205
10.4.2 客戶端腳本語言JavaScript
簡介 206
10.5 基于XML的數(shù)據(jù)庫信息管理 209
10.5.1 XML及其與數(shù)據(jù)庫的互
操作 210
10.5.2 XML的基本規(guī)范和簡單
結(jié)構(gòu) 211
10.5.3 XML數(shù)據(jù)的顯示 211
10.5.4 將數(shù)據(jù)庫信息轉(zhuǎn)換為XML 212
10.6 小結(jié) 214
習(xí)題10 215
第11章 大數(shù)據(jù)應(yīng)用背景下的數(shù)據(jù)管理
技術(shù) 216
11.1 大數(shù)據(jù)及其主要特點 216
11.2 傳統(tǒng)數(shù)據(jù)處理方式面臨的挑戰(zhàn) 217
11.3 大數(shù)據(jù)應(yīng)用背景下的數(shù)據(jù)管理特點
及部分?jǐn)?shù)據(jù)管理產(chǎn)品 218
11.3.1 大數(shù)據(jù)應(yīng)用背景下的數(shù)據(jù)
管理特點 218
11.3.2 基于文檔數(shù)據(jù)模型的數(shù)據(jù)
管理產(chǎn)品 218
11.3.3 基于鍵-值對數(shù)據(jù)模型的數(shù)據(jù)
管理產(chǎn)品 220
11.3.4 分布式緩存數(shù)據(jù)管理
產(chǎn)品MemCached 221
11.3.5 基于倒排索引的數(shù)據(jù)管理產(chǎn)品
及ELK架構(gòu) 224
11.4 小結(jié) 224
習(xí)題11 224
第12章 關(guān)系型數(shù)據(jù)庫應(yīng)用系統(tǒng)案例
分析 225
12.1 系統(tǒng)設(shè)計 225
12.1.1 需求分析 225
12.1.2 概念結(jié)構(gòu)設(shè)計 226
12.1.3 數(shù)據(jù)庫設(shè)計 227
12.2 功能模塊設(shè)計 230
12.2.1 系統(tǒng)功能模塊 230
12.2.2 界面設(shè)計 230
12.3 功能實現(xiàn)步驟 231
12.3.1 數(shù)據(jù)庫創(chuàng)建 231
12.3.2 公用模塊設(shè)計 231
12.3.3 添加app.config文件 236
12.4 管理員端程序設(shè)計步驟 236
12.4.1 用戶管理界面 236
12.4.2 用戶管理信息編輯界面設(shè)計 239
12.4.3 登錄窗體的設(shè)計 242
12.5 系統(tǒng)運行與調(diào)試 244
12.5.1 調(diào)試方法 244
12.5.2 調(diào)試過程 245
12.5.3 排錯 246
12.6 小結(jié) 247
習(xí)題12 247
附錄A 實驗 248
實驗1 初識SQL Server 2012 248
實驗2 數(shù)據(jù)定義和數(shù)據(jù)操縱 250
實驗3 數(shù)據(jù)查詢 252
實驗4 視圖的創(chuàng)建與使用 253
實驗5 存儲過程和觸發(fā)器 255
實驗6 數(shù)據(jù)庫的安全性 255
參考文獻(xiàn) 257
后記 259