SQL Server 2016數據庫案例教程(第2版)在設計上采用大型案例,一案到底的思路,以SQL Server 2016數據庫管理系統為平臺,選用學生選課系統為案例貫穿始終。全書以學生選課系統的數據庫設計與管理為主線,詳細介紹了SQL Server 2016中實現該系統數據庫的應用與維護,主要內容包括數據庫建模、數據庫對象創建、數據查詢、查詢優化、面向數據庫編程、模塊化編程、數據庫的高可靠性和安全性等。
本書可以作為計算機、電子商務和信息管理等相關專業的教學用書,也可以作為相關領域的培訓教材,適合各個層次的數據庫學習人員和廣大程序員閱讀。
SQL Server 2016數據庫案例教程(第2版)在設計上采用大型案例,一案到底的思路,以SQL Server 2016數據庫管理系統為平臺,,選用學生選課系統為案例貫穿始終。詳細介紹了SQL Server 2016中實現該系統數據庫的應用與維護,以作為計算機、電子商務和信息管理等相關專業的教學用書,也可以作為相關領域的培訓教材,適合各個層次的數據庫學習人員和廣大程序員閱讀。
數據庫技術是計算機領域中應用最為廣泛的技術之一,是現代信息系統的基礎和核心。隨著計算機應用技術在各領域的不斷滲透,人們對管理信息系統中數據資源共享、數據的集中處理與分布式處理也提出了更高的要求。SQL Server作為微軟公司的旗艦產品,是一種面向企業應用級的關系型數據庫管理系統,在各行業信息系統開發中都得到了廣泛應用。SQL Server 2016作為Microsoft發布的新一代數據庫產品,延續了原數據庫平臺的強大功能,并在性能優化、安全性和簡化數據分析方面進行了有效的改善,是當前企業級數據庫產品開發的首選對象。
本書第1版《SQL Server 2008 數據庫案例教程》,自出版以來受到廣大讀者及各用書學校的青睞,并多次重印。本書是對它的修訂和升級,在編寫過程中廣泛收集了老師和學生的合理建議,并融入本書中。本書在設計上以學生選課系統數據庫的設計與管理為主線串起全書知識點,圍繞該系統數據庫的管理與維護,將全書分為9個項目。其中項目1實現了學生選課系統的系統建模,詳細闡述了關系型數據庫的設計過程;項目2介紹了SQL Server 2016的安裝、配置及管理工具的使用;項目3實現了系統數據庫和數據表的創建、約束的建立與管理;項目4實現了系統數據的檢索、維護及事務控制;項目5闡述了使用索引和視圖優化數據查詢;項目6介紹了使用函數和游標實現數據庫中復雜的處理邏輯;項目7介紹了使用存儲過程和觸發器實現數據庫模塊化編程;項目8介紹了使用登錄、權限、角色和加密實現系統安全管理;項目9介紹了使用備份、數據轉移、快照等技術實現系統的高可用性。為了加強學習效果,在每個項目后都配備有相應思考題和項目實訓,使讀者能夠運用所學知識完成實際的工作任務,達到學以致用的目的。
本書結構緊湊、形式新穎、示例豐富,注重理論聯系實踐,語言淺顯易懂,具有較強的實用性和可操作性。
本書是全國高等院校計算機基礎教育研究會課題(2018-AFCEC-017)的研究成果,由李錫輝、王櫻和趙莉老師編著,參與編寫的老師有黃睿、楊麗、朱清妍、石玉明等。在編寫過程中,清華大學出版社鄧艷老師提出了許多寶貴意見,在此表示感謝。
項目1 系統數據庫建模 1
【任務1】理解系統需求 1
1.1.1 學生選課系統介紹 1
1.1.2 學生選課系統功能 2
【任務2】建立系統數據模型 4
1.2.1 數據庫的基本概念 4
1.2.2 關系型數據庫 5
1.2.3 關系數據模型 6
1.2.4 實體和關系 8
1.2.5 建立E-R模型 10
1.2.6 邏輯結構設計 14
1.2.7 范式 14
【任務3】使用PowerDesigner建立系統模型 17
1.3.1 PowerDesigner簡介 18
1.3.2 PowerDesigner支持的模型 18
1.3.3 建立概念數據模型 19
1.3.4 建立物理數據模型 23
1.3.5 物理數據模型與數據庫的正逆向工程 24
思考題 25
項目實訓 25
項目2 安裝與配置SQL Server 2016 27
【任務1】安裝SQL Server 2016 27
2.1.1 SQL Server 2016簡介 27
2.1.2 安裝SQL Server 2016數據庫工具 30
2.1.3 安裝SQL Server管理工具 34
【任務2】管理和使用SQL Server 2016 34
2.2.1 SQL Server 2016常用工具 35
2.2.2 使用SSMS 35
2.2.3 使用配置管理器配置數據庫 38
2.2.4 配置SQL Server 2016服務器屬性 40
2.2.5 SQL Server 2016產品文檔 44
思考題 45
項目實訓 45
項目3 創建數據庫與數據表 47
【任務1】創建和管理數據庫 47
3.1.1 SQL Server數據庫的組成 47
3.1.2 創建數據庫 51
3.1.3 管理數據庫 52
3.1.4 創建文件組 55
3.1.5 數據庫規劃 57
【任務2】使用T-SQL操作數據庫 59
3.2.1 T-SQL語言基礎 59
3.2.2 T-SQL語法要素 60
3.2.3 使用T-SQL創建、修改和刪除數據庫 68
【任務3】操作數據表 71
3.3.1 創建數據表 72
3.3.2 創建用戶自定義數據類型 75
3.3.3 修改表 77
3.3.4 刪除表 78
【任務4】實現數據的完整性 79
3.4.1 數據完整性概述 79
3.4.2 PRIMARY KEY約束 79
3.4.3 NOT NULL約束 82
3.4.4 DEFAULT約束 82
3.4.5 UNIQUE約束 84
3.4.6 CHECK約束 86
3.4.7 FOREIGN KEY約束 88
3.4.8 禁用約束 92
思考題 93
項目實訓 93
項目4 查詢數據 95
【任務1】查詢單表數據 95
4.1.1 選擇列 95
4.1.2 過濾查詢結果集 99
4.1.3 選擇行 100
4.1.4 數據排序 105
4.1.5 數據分組與匯總 108
4.1.6 INTO子句 113
【任務2】連接查詢多表數據 113
4.2.1 連接查詢簡介 114
4.2.2 內連接 114
4.2.3 外連接 117
4.2.4 交叉連接 118
4.2.5 聯合查詢多表數據 119
【任務3】嵌套查詢多表數據 120
4.3.1 嵌套查詢簡介 120
4.3.2 子查詢用作派生表 121
4.3.3 子查詢用作表達式 122
4.3.4 使用子查詢關聯數據 124
【任務4】修改系統數據 127
4.4.1 插入數據 127
4.4.2 修改數據 131
4.4.3 刪除數據 134
4.4.4 合并數據 137
4.4.5 事務 139
思考題 140
項目實訓 141
項目5 數據查詢優化 144
【任務1】創建索引 144
5.1.1 索引的定義與分類 144
5.1.2 使用T-SQL命令和SSMS創建索引 146
5.1.3 管理和優化索引 151
【任務2】使用視圖優化系統查詢性能 156
5.2.1 視圖簡介 157
5.2.2 創建和管理視圖 158
5.2.3 視圖加密 162
5.2.4 可更新視圖 163
5.2.5 索引視圖 166
5.2.6 分區視圖 169
思考題 169
項目實訓 169
項目6 面向數據庫編程 171
【任務1】T-SQL的流程控制 171
6.1.1 流程控制語句簡介 171
6.1.2 使用流程控制語句 172
【任務2】使用系統函數訪問數據 180
6.2.1 T-SQL的函數類型 180
6.2.2 數學函數 181
6.2.3 字符串函數 182
6.2.4 日期時間函數 183
6.2.5 類型轉換函數 184
6.2.6 格式化函數 185
6.2.7 邏輯函數 188
6.2.8 元數據函數 189
【任務3】SQL Server操縱JSON格式數據 190
6.3.1 JSON與SQL Server 190
6.3.2 查詢語句輸出JSON格式數據 191
6.3.3 解析JSON格式數據到數據表 194
【任務4】使用游標操作數據 196
6.4.1 游標簡介 196
6.4.2 游標的基本操作 197
思考題 202
項目實訓 202
項目7 數據庫模塊化程序設計 204
【任務1】使用自定義函數實現數據訪問 204
7.1.1 用戶自定義函數分類 204
7.1.2 用戶自定義標量值函數 205
7.1.3 用戶自定義內聯表值函數 207
7.1.4 用戶自定義多語句表值函數 208
【任務2】使用存儲過程實現數據訪問 210
7.2.1 存儲過程概述 210
7.2.2 創建用戶自定義存儲過程 212
7.2.3 參數化存儲過程 215
7.2.4 修改和刪除用戶自定義存儲過程 220
【任務3】使用觸發器實現自動任務 222
7.3.1 觸發器簡介 222
7.3.2 DML觸發器 222
7.3.3 DDL觸發器 228
7.3.4 啟用和禁用觸發器 230
思考題 231
項目實訓 231
項目8 維護數據的安全性 233
【任務1】系統數據庫賬號管理 233
8.1.1 SQL Server 2016的安全機制和安全主體 233
8.1.2 SQL Server身份驗證 235
8.1.3 數據庫登錄名管理 237
【任務2】系統數據庫用戶權限管理 242
8.2.1 用戶管理 242
8.2.2 用戶權限管理 246
【任務3】數據庫角色管理 252
8.3.1 應用角色的好處 252
8.3.2 固定服務器角色 253
8.3.3 數據庫角色 255
【任務4】實現數據加密 262
8.4.1 數據的加密和解密 263
8.4.2 使用透明數據加密 269
思考題 271
項目實訓 271
項目9 維持數據庫的高可用性 273
【任務1】備份和恢復數據庫 273
9.1.1 備份與恢復 273
9.1.2 備份設備 276
9.1.3 數據庫備份 278
9.1.4 數據庫恢復 285
9.1.5 數據庫備份的注意事項 291
【任務2】數據文件的轉移 293
9.2.1 分離數據庫 293
9.2.2 附加數據庫 294
【任務3】從數據庫快照恢復數據 296
9.3.1 數據庫快照的工作方式 296
9.3.2 建立數據庫快照 298
9.3.3 管理數據庫快照 299
【任務4】建立數據庫備份的維護計劃 301
9.4.1 SQL Server代理 301
9.4.2 創建和配置維護計劃 302
思考題 307
項目實訓 307
參考文獻 308
附錄A 學生選課系統數據表 309
附錄B 數據庫設計說明書格式 312