本書將數據庫基本原理、方法和應用技術相結合,以培養(yǎng)基礎理論扎實、實際動手能力強的數據庫技術人才為目標,從數據庫基本概念到數據庫應用,再到數據庫理論,由淺入深,循序漸進地介紹了數據庫基礎理論和數據庫管理系統(tǒng)SQL Server 2012 的應用。本書特點在于選用學生熟悉的學生成績管理數據庫作為示例數據庫,并將案例貫穿本書始終。其主要內容包括:數據庫的基本概念、SQL Server 2012 的安裝與使用、通用查詢語言 SQL、視圖、索引、T-SQL 程序設計、函數、存儲過程、觸發(fā)器、游標、事務與鎖、數據庫的安全性管理、數據的備份與恢復、關系數據庫規(guī)范化理論、關系數據庫設計理論、數據庫應用程序開發(fā)、數據庫綜合設計案例。
本書可作為普通高等院校計算機科學與技術專業(yè)、信息管理與信息系統(tǒng)、地理信息系統(tǒng)專業(yè)以及其他相關專業(yè)的教材,也可以作為數據庫應用基礎的培訓教材。
《SQL Server 2012數據庫原理與應用》以傳統(tǒng)的章節(jié)式寫法,詳細講述SQL 2012的各個知識點。本書圖文并茂,易學好懂,既兼顧了數據庫課程的理論教授,也滿足了讀者動手實驗的需要。在全書的最后,設置了實驗指導章節(jié),帶領讀者動手操作實驗,幫助讀者即時掌握所學內容。
魯寧,西南林業(yè)大學計算機學院優(yōu)秀教師,長期從事數據庫教學,曾出版《數據庫原理及應用》(ISBN9787564307653)。
CONTENTS
第1 章 數據庫的基礎知識 1
1.1 數據庫概述 1
1.1.1 數據和信息 1
1.1.2 數據處理與數據管理 1
1.1.3 數據庫技術的發(fā)展概況 1
1.2 數據模型 3
1.2.1 數據模型的概念 3
1.2.2 實體聯系模型 3
1.2.3 實體聯系圖 4
1.2.4 三種常見的數據模型 6
第2 章 SQL Server 的基本操作 14
2.1 SQL Server 2012 數據庫管理系統(tǒng) 14
2.1.1 SQL Server 2012 概述 14
2.1.2 SQL Server 2012 版本簡介 14
2.1.3 SQL Server 2012 的安裝 15
2.1.4 SQL Server 2012 服務器啟動 25
2.2 SQL Server Management Studio 的
使用 26
2.2.1 啟動SQL Server Management
Studio 27
第3 章 SQL 的基礎知識 49
3.1 SQL 簡介 49
3.2 SQL 的數據類型 50
3.2.1 整數數據型 50
3.2.2 精確浮點型 50
3.2.3 近似浮點型 50
3.2.4 日期時間型 51
3.2.5 字符型 51
3.2.6 貨幣型 51
3.2.7 Unicode 字符型 52
3.2.8 二進制字符型 52
3.2.9 特殊數據型 52
3.3 標識符 53
3.3.1 標識符概述 53
1.3 數據庫系統(tǒng) 7
1.3.1 數據庫系統(tǒng)的組成 7
1.3.2 數據庫系統(tǒng)的特點 8
1.3.3 數據庫系統(tǒng)的三級模式結構 8
1.4 關系模型 9
1.4.1 關系模型術語 9
1.4.2 關系特點 10
1.4.3 關系運算 10
2.2.2 SQL Server 內置系統(tǒng)數據庫簡介 28
2.2.3 連接遠程數據庫服務器 28
2.2.4 管理數據庫 31
2.2.5 管理數據表 33
2.2.6 編輯數據表記錄 36
2.2.7 查詢功能的使用 38
2.3 SQL Server 與外部數據的交互 39
2.3.1 導入數據 39
2.3.2 導出數據 45
3.3.2 特殊標識符 53
3.4 使用 SQL 語句管理數據庫 54
3.4.1 創(chuàng)建數據庫 54
3.4.2 修改數據庫 55
3.4.3 刪除數據庫 56
3.5 使用 SQL 語句管理表 56
3.5.1 創(chuàng)建表 56
3.5.2 修改表 59
3.5.3 刪除表 60
3.6 使用 SQL 語句維護數據 60
3.6.1 數據插入 60
3.6.2 數據更新 61
3.6.3 數據刪除 62
2
3.6.4 TRUNCATE TABLE 命令 62
3.6.5 記錄操作語句簡化形式 62
3.7 SQL 簡單查詢語句 62
3.7.1 SELECT 查詢語句結構 62
3.7.2 SELECT 子句 64
第4 章 SQL 高級查詢技術 73
4.1 關聯表查詢 73
4.1.1 雙表關聯查詢 73
4.1.2 多表關聯查詢 74
4.1.3 關聯表統(tǒng)計 74
4.2 使用 UNION 子句 74
4.3 子查詢 76
4.3.1 子查詢的概念 76
4.3.2 子查詢的應用 77
4.4 連接查詢 79
4.4.1 內連接查詢 80
4.4.2 外連接查詢 81
4.4.3 交叉連接查詢 81
第5 章 視圖 87
5.1 視圖概述 87
5.1.1 視圖的概念 87
5.1.2 視圖的優(yōu)點 87
5.1.3 視圖的注意事項 87
5.2 創(chuàng)建視圖 88
5.2.1 使用SQL 語句創(chuàng)建視圖 88
5.2.2 使用 SQL Server Management
第6 章 索引 94
6.1 SQL Server 的數據存儲 94
6.1.1 存儲文件類型 94
6.1.2 數據頁面結構 95
6.1.3 對大型行的支持 95
6.1.4 SQL Server 的數據頁緩存 95
6.1.5 存儲分配單位盤區(qū) 96
6.1.6 SQL Server 的數據訪問 96
6.2 索引的概念 97
4.4.4 自連接查詢 82
4.5 其他SQL 子句 83
4.5.1 FOR XML PATH 83
4.5.2 OFFSET 分頁 84
4.5.3 OVER 子句 84
4.6 實用經典 SQL 匯總 85
4.6.1 復制部分表結構 85
4.6.2 批量插入記錄 85
4.6.3 關聯更新表記錄 85
4.6.4 使用MERGE 語句 85
4.6.5 關聯表統(tǒng)計 86
4.6.6 查詢數據庫所有表及列 86
Studio 創(chuàng)建視圖 90
5.3 使用視圖 92
5.4 管理視圖 92
5.4.1 查看修改視圖 92
5.4.2 使用存儲過程檢查視圖 93
5.4.3 刪除視圖 93
6.3 索引的類型 98
6.3.1 聚集索引 98
6.3.2 非聚集索引 100
6.3.3 何時使用聚集索引或非聚集索引 103
6.4 索引的創(chuàng)建和管理方法 104
6.4.1 創(chuàng)建索引 104
6.4.2 使用命令進行索引管理 105
3.7.3 FROM 子句 66
3.7.4 WHERE 子句 66
3.7.5 GROUP BY 子句 70
3.7.6 HAVING 子句 71
3.7.7 ORDER BY 子句 72
3
第 7 章 T-SQL 程序設計 107
7.1 T-SQL 的變量 107
7.1.1 局部變量 107
7.1.2 全局變量 108
7.2 程序流程控制語句 109
7.2.1 BEGIN...END 語句 109
7.2.2 單條件分支語句 110
7.2.3 多條件分支語句 111
7.2.4 循環(huán)語句 113
第8 章 函數 119
8.1 系統(tǒng)內置函數 119
8.1.1 系統(tǒng)函數 119
8.1.2 字符串函數 120
8.1.3 日期函數 122
8.1.4 數學函數 123
8.1.5 CASE 函數 124
8.1.6 系統(tǒng)內置函數應用 125
第9 章 存儲過程、觸發(fā)器和游標 131
9.1 存儲過程 131
9.1.1 存儲過程簡介 131
9.1.2 創(chuàng)建存儲過程 133
9.1.3 使用存儲過程 135
9.1.4 查看存儲過程 137
9.1.5 刪除存儲過程 139
9.2 觸發(fā)器 139
9.2.1 觸發(fā)器簡介 139
9.2.2 使用 SQL 創(chuàng)建觸發(fā)器 140
9.2.3 虛擬表 142
第10 章 事務與鎖 150
10.1 事務 150
10.1.1 事務的概念 150
10.1.2 事務的特征 150
10.1.3 執(zhí)行事務的三種模式 152
10.1.4 事務隔離級別 153
8.2 自定義函數 125
8.2.1 自定義函數簡介 125
8.2.2 創(chuàng)建自定義函數 126
8.2.3 調用自定義函數 127
8.2.4 查看自定義函數 127
8.2.5 刪除自定義函數 128
8.2.6 自定義函數示例 128
9.2.4 使用 SQL 修改觸發(fā)器 143
9.2.5 使用 SQL 刪除觸發(fā)器 143
9.2.6 使用 SQL 查看觸發(fā)器 144
9.2.7 使用 SQL Server Management
Studio 管理觸發(fā)器 144
9.2.8 觸發(fā)器應用舉例 145
9.3 游標 146
9.3.1 游標簡介 146
9.3.2 創(chuàng)建和使用游標 147
9.3.3 游標應用舉例148
7.2.5 WAITFOR 語句 114
7.2.6 RETURN 語句 114
7.2.7 GOTO 語句 115
7.2.8 使用注釋 115
7.2.9 使用批處理 116
7.3 T-SQL 實用示例 117
7.3.1 動態(tài)分頁 117
7.3.2 行列轉置 117
10.1.5 事務保存點的設置與回滾 155
10.1.6 分布式事務 156
10.2 鎖 156
10.2.1 數據不一致問題 156
10.2.2 鎖的概念 158
4
10.2.3 SQL Server 的鎖機制 158
10.2.4 SQL Server 的鎖模式 159
第11 章 SQL Server 的數據庫安全性管理 163
11.1 SQL Server 的安全性機制 163
11.1.1 SQL Server 的驗證模式 163
11.1.2 設置 SQL Server 驗證模式 164
11.2 數據庫登錄管理 165
11.2.1 賬號和角色 165
11.2.2 使用 SQL Server Management
Studio 查看登錄賬號 165
11.2.3 默認登錄賬號 166
11.2.4 使用存儲過程查看登錄賬號 166
11.2.5 使用 SQL Server Management
Studio 管理登錄賬號 166
11.2.6 使用 SQL 管理登錄賬號 168
11.3 數據庫用戶管理 169
11.3.1 用戶概述 169
第12 章 數據的備份與恢復 179
12.1 數據的備份 179
12.1.1 數據庫備份的概念 179
12.1.2 備份設備與備份方式 180
12.1.3 備份數據庫 181
12.2 數據的恢復 187
12.2.1 故障的種類 187
12.2.2 恢復技術 188
12.2.3 恢復策略 188
第13 章 關系數據庫規(guī)范化理論 197
13.1 規(guī)范化問題的提出 197
13.2 數據依賴 197
13.3 函數依賴 201
13.3.1 函數依賴的概念 201
13.3.2 函數依賴的性質 201
13.4 范式理論 202
11.3.2 dbo 和 guest 用戶 169
11.3.3 利用 SQL Server Management
Studio 管理數據庫用戶 170
11.3.4 利用系統(tǒng)過程管理數據庫用戶 172
11.4 角色管理 173
11.4.1 固定服務器角色 173
11.4.2 固定數據庫角色 174
11.5 權限管理 174
11.5.1 對象權限 175
11.5.2 語句權限 175
11.5.3 利用 SQL Server Management
Studio 管理權限 177
12.2.4 數據庫鏡像技術 189
12.3 恢復數據庫示例 189
12.3.1 使用 SQL Server Management
Studio 恢復數據庫 189
12.3.2 使用語句進行數據恢復 191
12.4 包含的數據庫 192
12.4.1 創(chuàng)建包含的數據庫 192
12.4.2 備份及還原包含的數據庫 195
13.4.1 第一范式 203
13.4.2 第二范式 203
13.4.3 第三范式 205
13.4.4 BCNF 范式 207
13.4.5 規(guī)范化總結 209
10.2.5 死鎖問題 160
5
第 14 章 關系數據庫設計理論 210
14.1 需求分析 210
14.1.1 需求分析的任務 210
14.1.2 需求分析的方法 211
14.2 概念設計 214
14.2.1 概念模型的特點 215
14.2.2 概念結構設計的方法與步驟 215
14.3 邏輯設計 220
14.3.1 E-R 圖向關系模型的轉換 221
第15 章 數據庫應用程序設計 226
15.1 數據庫訪問架構介紹 226
15.1.1 ODBC 技術簡介 226
15.1.2 ADO 技術簡介 226
15.1.3 ADO.NET 簡介 227
15.1.4 JDBC 簡介 228
15.2 VB 操作 SQL Server 數據庫 229
15.2.1 使用 ADODC 和 DataGrid 控件
訪問數據庫 229
15.2.2 VB 程序操作 SQL Server 的方法 234
第16 章 數據庫應用綜合實例 247
16.1 需求分析 247
16.1.1 用戶需求分析 247
16.1.2 選課管理系統(tǒng)數據字典 249
16.2 概念設計 250
16.2.1 建立局部E-R 圖 250
16.2.2 建立全局E-R 圖 251
16.3 邏輯設計 251
16.3.1 將E-R 圖轉換為關系模型 251
上機實驗指導 256
練習一 使用 SQL Server Management Studio
維護數據庫和數據表 256
練習二 使用 SQL 語句創(chuàng)建數據表和
操作數據 257
14.3.2 數據模型的優(yōu)化 222
14.3.3 設計用戶子模式 222
14.4 物理設計 223
14.4.1 確定關系模型的存取方法 223
14.4.2 確定數據庫的存儲結構 223
14.4.3 確定系統(tǒng)存儲參數的配置 224
14.5 數據庫的實施 224
14.6 數據庫的運行和維護 225
15.2.3 完全用程序操作 SQL Server
數據表 234
15.3 C#操作 SQL Server 數據庫 236
15.3.1 ADO.NET 訪問 SQL Server
數據庫的方法 236
15.3.2 學生成績管理系統(tǒng)的開發(fā) 239
15.4 Java 操作 SQL Server 數據庫 244
15.4.1 Java 讀取數據庫環(huán)境配置 244
15.4.2 Java 讀取SQL Server 數據表數據 245
16.3.2 模型優(yōu)化 252
16.3.3 數據庫模式定義 252
16.4 物理設計 254
16.5 數據庫實施 254
16.5.1 建立數據庫結構 254
16.5.2 載入實驗數據 254
16.5.3 載入實際數據試運行 254
16.6 數據庫運行與維護 254
練習三 SQL 簡單查詢語句的
使用 260
練習四 SQL 高級查詢的應用 260
練習五 SQL 數據統(tǒng)計處理 261
6
練習六 連接查詢及視圖的使用 262
練習七 使用 T-SQL 流程控制語句 263
練習八 系統(tǒng)函數和自定義函數 265
練習九 存儲過程、觸發(fā)器和游標的
使用 266
練習十 使用 SQL Server 安全性管理
數據庫 267
練習十一 數據庫的備份與恢復 268
練習十二 學生宿舍管理系統(tǒng)設計 269
練習十三 學生成績管理系統(tǒng)開發(fā) 269