內 容 簡 介
這是一本嚴格采用“工作過程導向”模式規范編寫的Microsoft SQL Server 2012的教材。本書內容可分為兩個部分:數據庫的創建和數據庫的管理。本書的內容組織以關系數據庫理論知識為基礎,注重操作技能的培養和實際問題的解決,旨在使學生掌握使用和管理Microsoft SQL Server 2012。本書以創建“學生管理系統”的數據庫為工作任務,具體內容包括設計數據庫、創建數據庫、創建表、更新和查詢記錄、Transact-SQL語言、視圖和索引、用戶定義函數、存儲過程、觸發器、管理數據庫安全、備份和還原數據庫、導入和導出數據庫中的數據。最后的項目18中介紹了學生管理系統應用程序的設計和實施,從而完成了一個完整的數據庫系統。本書貼切實際,結構合理,內容豐富,操作方便。
本書作為Microsoft SQL Server 2012的入門類教材,既可以作為高等職業教育計算機及相關專業的教材,也可作為Microsoft SQL Server 2012的各種培訓班、職業資格等級考試或認證考試的培訓教材,還可用于讀者自學。
前 言
為適應高職院校應用型人才培養迅速發展的趨勢,培養以就業市場為導向的具備“職業化”特征的高級應用型人才,著眼于國家發展和培養造就綜合能力人才的需要,“任務驅動、項目導向”成了主流的教學模式。本書以Microsoft SQL Server 2012為數據庫管理系統,通過完成一個完整的學生管理系統,引導學生掌握Microsoft SQL Server 2012的使用和管理。
本書特色
本書以實際工作任務為背景,將知識的學習、技能的練習與任務相結合,再通過課后練習幫助讀者鞏固所學內容。每一個項目均針對數據庫設計和實施中的一個工作過程環節來傳授相關的課程內容,實現實踐技能與理論知識的整合,將工作環境與學習環境有機地結合在一起。本書內容簡明扼要,結構清晰,通過工作過程的講解將掌握關系數據庫的理論知識和掌握Microsoft SQL Server 2012的使用方法有機結合,示例眾多,步驟明確,講解細致,突出可操作性和實用性。再輔以豐富的實訓題和課后練習,使學生得到充足的訓練,具備使用Microsoft SQL Server 2012解決實際問題的能力。
本書由高職院校的優秀教師編寫,是在其現有教學成果基礎上整合編寫而成的,作者擁有豐富的開發案例和教學經驗。本書共分為18個項目,計劃需要80個課時,需要用一學期進行學習。
本書主要內容
項目1介紹數據庫的設計。通過該項目的學習,主要了解數據庫的基本概念、數據模型、關系代數和數據庫的設計方法與步驟,掌握數據庫的理論知識,為后面使用Microsoft SQL Server 2012做好準備。
項目2介紹安裝SQL Server 2012。通過該項目的學習,了解SQL Server的組成,掌握如何安裝SQL Server 2012。
項目3講解如何創建數據庫。通過該項目的學習,主要掌握SQL Server數據庫的分類和文件組成,掌握創建、修改、刪除和查看數據庫的方法,掌握分離和附加數據庫的方法。
項目4介紹如何創建數據庫中的表,設置表的數據完整性。通過該項目的學習,掌握表的概念,掌握創建、修改、刪除表的方法,掌握數據完整性的概念、分類和具體實施方法。
項目5介紹如何創建索引。通過該項目的學習,掌握索引的概念和分類,掌握創建、修改、刪除索引的方法,了解設計和優化索引的方法。
項目6介紹如何創建視圖。通過該項目的學習,掌握視圖的概念、分類、創建和使用。
項目7介紹了Transact-SQL語言。通過該項目的學習,了解Transact-SQL語言的基礎知識。
項目8講解如何查詢數據庫中的記錄。通過該項目的學習,了解SELECT語句的組成,掌握SELECT語句的書寫。
項目9學習使用Transact-SQL語句插入、更新和刪除記錄。
項目10介紹事務和鎖。通過該項目的學習,掌握事務的概念、屬性、類型和使用,掌握并發控制的概念和類型,掌握隔離級別的類型,掌握鎖定、鎖粒度、鎖模式、鎖兼容性和死鎖的概念。
項目11學習使用游標。通過該項目的學習,掌握游標的概念、類型和使用方法。
項目12講解創建存儲過程。通過該項目的學習,掌握存儲過程的概念、分類和作用,介紹創建、修改、刪除、執行和查看存儲過程的方法。
項目13學習使用用戶定義函數。通過該項目的學習,掌握用戶定義函數的概念、作用和類型,掌握創建、修改、刪除、執行和查看用戶定義函數的方法。
項目14學習使用觸發器。通過該項目的學習,掌握觸發器的概念、分類、工作原理、創建和使用。
項目15講解對數據庫的備份和還原。通過該項目的學習,掌握備份、還原和恢復的概念,掌握備份設備的概念,掌握恢復模式的概念和類型,掌握不同恢復模式下對數據庫備份和還原的方法。
項目16講解導入和導出數據庫中的數據。通過該項目的學習,掌握SQL Server導入和導出向導的使用,學習SSIS的作用和工作方式,掌握創建和執行SSIS包來導入和導出數據庫中的數據。
項目17學習管理數據庫安全。通過該項目的學習,掌握數據庫權限層次結構,掌握身份驗證模式的分類,掌握登錄名、用戶、權限、角色的概念、分類、創建和使用。
項目18設計并完成了基于Windows的學生管理系統和基于Web的學生管理系統。通過本項目的完成,學習Windows應用程序的創建方法,學習Web應用程序的創建方法,學習注冊和登錄頁面的設計方法,學習查詢學生功能的實現方法。
讀者對象
本書作為Microsoft SQL Server 2012的入門類教材,既可以作為高等職業教育計算機及相關專業的教材,也可作為Microsoft SQL Server 2012的各種培訓班、職業資格等級考試或認證考試的培訓教材,還可用于讀者自學。
本書由高云(南京信息職業技術學院教師)任主編,崔艷春(南京信息職業技術學院教師)、夏平(南京信息職業技術學院教師)任副主編,其中項目1、2、3、4、5、6、7、8、9、10由高云編寫,項目11、12、13、14由夏平編寫,項目15、16、17、18由崔艷春編寫,高云負責本書的校對。全書框架結構由何光明擬定,王珊珊、石雅琴、盧振俠、鄭愛琴、楊橙、陳鳳、曹冬梅等參與了部分資料整理工作。
由于作者水平有限,書中難免存在不當之處,懇請廣大讀者批評指正。
編 者
目 錄項目1 設計數據庫 11.1 數據庫的基本概念 21.1.1 數據庫 21.1.2 數據庫管理系統 31.1.3 數據庫系統 31.1.4 數據管理技術的發展 41.1.5 數據庫系統的體系結構 41.2 數據模型 51.2.1 數據模型的概念 51.2.2 數據模型的組成 61.2.3 數據模型的類型 61.2.4 數據庫的規范化 101.3 關系代數 111.3.1 傳統的集合運算 111.3.2 專門的關系運算 121.4 數據庫設計的方法和步驟 141.4.1 數據庫設計的方法 151.4.2 數據庫設計的步驟 151.5 小型案例實訓 17小結 18習題 19項目2 安裝SQL Server 2012 232.1 了解SQL Server 2012 242.1.1 SQL Server 2012簡介 242.1.2 SQL Server 2012的版本 252.1.3 SQL Server 2012的組件 252.1.4 SQL Server 2012管理工具 262.2 安裝SQL Server 2012 292.2.1 硬件和軟件要求 292.2.2 SQL Server的默認實例和命名實例 292.2.3 SQL Server安裝中心 292.3 運行SQL Server 2012 302.4 配置SQL Server 2012 322.5 小型案例實訓 34小結 34習題 35項目3 創建數據庫 373.1 SQL Server數據庫 383.1.1 系統數據庫 383.1.2 數據庫文件和文件組 393.1.3 事務日志 403.2 創建數據庫 403.2.1 創建單個數據文件和日志文件的數據庫 403.2.2 創建多個數據文件和日志文件的數據庫 413.2.3 創建有用戶文件組的數據庫 423.3 修改數據庫 443.3.1 添加數據文件 443.3.2 添加帶有數據文件的文件組 453.3.3 添加日志文件 463.3.4 增加文件大小 473.3.5 收縮文件 473.3.6 收縮數據庫 483.3.7 刪除文件 493.4 刪除數據庫 493.5 查看數據庫信息 503.5.1 查看數據庫的數據和日志空間信息 503.5.2 查看數據庫的屬性 503.6 分離和附加數據庫 513.6.1 分離數據庫 513.6.2 附加數據庫 513.7 小型案例實訓 52小結 55習題 55項目4 創建表 574.1 表 584.1.1 表的概念 584.1.2 表的類型 584.2 創建表 594.2.1 創建表 594.2.2 創建帶計算列的表 614.2.3 創建帶標識列的表 624.3 修改表 634.3.1 重命名列 634.3.2 添加列 644.3.3 修改列 644.3.4 更改列順序 644.3.5 刪除列 644.4 刪除表 654.5 數據完整性 654.5.1 數據完整性的概念 664.5.2 數據完整性的類型 664.5.3 主鍵約束 664.5.4 唯一約束 684.5.5 列默認值 704.5.6 CHECK約束 724.5.7 外鍵約束 744.6 查看表信息 774.6.1 查看表記錄 774.6.2 查看表屬性 774.6.3 查看表的依賴關系 784.7 小型案例實訓 79小結 85習題 85項目5 創建索引 895.1 索引 905.1.1 索引的概念 905.1.2 索引的類型 915.1.3 堆 915.2 創建索引 925.2.1 創建聚集索引 925.2.2 創建非聚集索引 935.2.3 創建唯一索引 945.2.4 創建帶有包含列的索引 955.2.5 創建篩選索引 965.3 修改索引 975.3.1 修改索引列 975.3.2 禁用索引 985.3.3 重新生成索引 995.3.4 重新組織索引 995.3.5 索引填充因子 1005.4 刪除索引 1015.5 設計和優化索引 1025.5.1 索引設計任務 1025.5.2 設計聚集索引 1025.5.3 設計非聚集索引 1035.5.4 設計唯一索引 1035.5.5 設計帶有包含列的索引 1035.5.6 設計篩選索引 1035.6.7 優化索引 1035.6 小型案例實訓 104小結 106習題 107項目6 創建視圖 1096.1 視圖 1106.1.1 視圖的概念 1106.1.2 視圖的類型 1106.2 創建視圖 1116.2.1 創建標準視圖 1116.2.2 創建加密視圖 1126.2.3 創建帶更新限制的視圖 1136.3 修改視圖 1136.4 刪除視圖 1146.5 使用視圖 1146.6 查看視圖 1166.7 小型案例實訓 117小結 118習題 119項目7 Transact-SQL語言 1217.1 Transact-SQL語言 1227.2 標識符 1227.3 數據庫對象名稱 1237.4 數據類型 1237.4.1 系統數據類型 1237.4.2 用戶定義數據類型 1267.5 常量和變量 1277.6 運算符 1277.7 表達式 1287.8 函數 1297.9 注釋 1317.10 Transact-SQL程序要素 1317.10.1 USE 1327.10.2 GO 1327.10.3 PRINT 1337.10.4 RAISERROR()函數 1337.10.5 BEGIN...END 1337.10.6 GOTO 1347.10.7 RETURN 1347.10.8 IF...ELSE 1347.10.9 WHILE 1357.10.10 CONTINUE 1357.10.11 BREAK 1357.10.12 WAITFOR 1367.10.13 TRY...CATCH 1377.10.14 THROW 1387.11 小型案例實訓 138小結 140習題 141項目8 查詢記錄 1438.1 SELECT語句 1448.2 SELECT子句 1448.2.1 查詢列 1448.2.2 列標題和列計算 1458.2.3 避免重復記錄 1468.2.4 限制返回行數 1468.3 FROM子句 1478.3.1 查詢單個表 1478.3.2 多表聯接 1488.3.3 派生表 1528.4 WHERE子句 1528.4.1 簡單比較 1538.4.2 模糊查詢 1548.4.3 比較運算符 1548.4.4 滿足任一條件 1558.4.5 滿足所有條件 1558.4.6 值列表 1568.4.7 值區間 1568.4.8 值為空 1578.5 GROUP BY子句 1588.5.1 按列分組統計 1588.5.2 按表達式結果分組統計 1598.6 HAVING子句 1598.7 ORDER BY子句 1608.7.1 按指定列排序 1608.7.2 按表達式結果排序 1618.7.3 按特定條件列排序 1628.8 INTO子句 1628.9 子查詢 1638.9.1 子查詢用作單個值 1638.9.2 ALL、ANY和SOME 1648.9.3 IN 1668.9.4 EXISTS 1678.10 集運算符 1688.10.1 UNION 1688.10.2 EXCEPT 1698.10.3 INTERSECT 1708.11 小型案例實訓 170小結 174習題 174項目9 插入、更新和刪除記錄 1779.1 插入記錄 1789.1.1 插入單個記錄 1789.1.2 插入多個記錄 1789.1.3 插入列順序任意的記錄 1799.1.4 插入列具有默認值的記錄 1799.1.5 插入含標識列的記錄 1809.1.6 插入來自其他表的記錄 1809.1.7 限制來自其他表的記錄數量 1819.1.8 向視圖插入記錄 1819.2 更新記錄 1819.2.1 更新單個列 1819.2.2 更新多個列 1829.2.3 更新部分記錄 1829.2.4 更新限制數量的記錄 1829.2.5 更新列為計算結果 1829.2.6 更新列為默認值 1839.2.7 更新視圖 1839.2.8 根據其他表的記錄來更新記錄 1839.3 刪除記錄 1849.3.1 刪除所有記錄 1849.3.2 刪除部分記錄 1849.3.3 刪除限制數量的記錄 1859.3.4 根據其他表的記錄來刪除記錄 1859.4 比較記錄 1859.5 小型案例實訓 186小結 189習題 189項目10 使用事務和鎖 19110.1 事務 19210.1.1 事務的概念 19210.1.2 事務的屬性 19210.1.3 事務的類型 19310.1.4 啟動事務 19310.1.5 保存事務 19310.1.6 結束事務 19310.2 并發控制 19510.2.1 并發的負面影響 19510.2.2 并發控制的類型 19510.2.3 數據庫引擎中的隔離級別 19610.2.4 自定義事務隔離級別 19710.3 鎖定 19810.3.1 鎖粒度和層次結構 19810.3.2 鎖模式 19910.3.3 鎖兼容性 20010.3.4 死鎖 20010.4 小型案例實訓 201小結 203習題 203項目11 使用游標 20511.1 游標 20611.1.1 游標的概念 20611.1.2 游標的類型 20611.2 使用游標 20711.2.1 使用簡單游標的方法 20711.2.2 使用嵌套游標 21411.3 小型案例實訓 215小結 216習題 217項目12 創建存儲過程 21912.1 存儲過程 22012.1.1 存儲過程的概念 22012.1.2 存儲過程的作用 22012.1.3 存儲過程的類型 22112.2 創建存儲過程 22112.2.1 創建不帶參數的存儲過程 22112.2.2 創建帶輸入參數的存儲過程 22212.2.3 創建帶有默認值的存儲過程 22312.2.4 創建帶有輸出參數的存儲過程 22412.3 修改存儲過程 22512.4 刪除存儲過程 22612.5 執行存儲過程 22612.5.1 執行不帶參數的存儲過程 22712.5.2 執行帶輸入參數的存儲過程 22712.5.3 執行帶有默認值的存儲過程 22812.5.4 執行帶有輸出參數的存儲過程 22912.5.5 使用存儲過程返回代碼值 22912.6 查看存儲過程 23012.7 小型案例實訓 231小結 235習題 235項目13 創建用戶定義函數 23713.1 用戶定義函數 23813.1.1 用戶定義函數的概念 23813.1.2 用戶定義函數的優點 23813.1.3 用戶定義函數的類型 23813.2 創建用戶定義函數 23913.2.1 創建標量值函數 23913.2.2 創建內聯表值函數 24013.2.3 創建多語句表值函數 24113.3 修改用戶定義函數 24213.4 刪除用戶定義函數 24313.5 執行用戶定義函數 24413.5.1 執行標量值函數 24413.5.2 執行內聯表值函數 24513.5.3 執行多語句表值函數 24613.6 查看用戶定義函數 24613.7 小型案例實訓 247小結 250習題 251項目14 創建觸發器 25314.1 登錄觸發器 25414.2 DDL觸發器 25514.2.1 DDL觸發器的概念 25514.2.2 DDL觸發器的類型 25514.2.3 DDL觸發器的作用域 25614.2.4 創建DDL觸發器 25614.2.5 修改DDL觸發器 25714.3 DML觸發器 25914.3.1 DML觸發器的概念 25914.3.2 DML觸發器的優點 25914.3.3 DML觸發器的類型 25914.4 創建DML觸發器 26014.4.1 inserted表和deleted表 26014.4.2 創建包含提醒消息的DML觸發器 26114.4.3 創建在表之間強制實現業務規則的DML觸發器 26214.5 修改DML觸發器 26414.5.1 修改DML觸發器定義 26414.5.2 指定第一個和最后一個DML觸發器 26514.5.3 禁用DML觸發器 26714.5.4 啟用DML觸發器 26814.6 刪除DML觸發器 26914.7 查看DML觸發器 26914.8 小型案例實訓 270小結 273習題 273項目15 備份和還原數據庫 27515.1 備份 27615.1.1 備份的概念 27615.1.2 備份的作用 27615.1.3 備份的類型 27715.1.4 備份策略 27715.1.5 備份類型的選擇 27715.2 還原和恢復 27815.2.1 還原的概念 27815.2.2 恢復的概念 27815.3 備份設備 27915.3.1 備份設備的概念 27915.3.2 備份磁盤的概念 27915.3.3 介質集的概念 27915.3.4 介質簇的概念 27915.3.5 備份集的概念 27915.3.6 創建備份設備 27915.4 恢復模式 28015.4.1 恢復模式的概念 28015.4.2 恢復模式的類型 28015.5 完整恢復模式下的完整數據庫備份與還原 28215.5.1 完整恢復模式下的完整數據庫備份 28215.5.2 完整恢復模式下的完整數據庫還原 28315.6 完整恢復模式下的差異數據庫備份與還原 28415.6.1 完整恢復模式下的差異數據庫備份 28415.6.2 完整恢復模式下的差異數據庫還原 28415.7 完整恢復模式下的事務日志備份與還原 28515.7.1 完整恢復模式下的事務日志備份 28515.7.2 完整恢復模式下的事務日志還原 28615.7.3 完整恢復模式下的結尾日志備份 28715.8 完整恢復模式下的文件和文件組備份與還原 28815.8.1 完整恢復模式下的文件和文件組備份 28815.8.2 完整恢復模式下的文件和文件組還原 28815.9 簡單恢復模式下的完整數據庫備份與還原 28915.9.1 簡單恢復模式下的完整數據庫備份 28915.9.2 簡單恢復模式下的完整數據庫還原 29015.9.3 簡單恢復模式下的差異數據庫備份 29015.9.4 簡單恢復模式下的差異數據庫還原 29115.10 小型案例實訓 291小結 292習題 293項目16 導入和導出數據庫中的數據 29516.1 使用SQL Server導入和導出向導 29616.1.1 啟動SQL Server導入和導出向導 29616.1.2 SQL Server導入和導出向導界面 29716.2 使用SSIS 30016.2.1 SSIS介紹 30016.2.2 SSIS工作方式 30016.2.3 創建SSIS包 30116.2.4 執行SSIS包 30416.3 小型案例實訓 305小結 307習題 307項目17 管理數據庫安全 30917.1 數據庫權限層次結構 31017.2 身份驗證模式 31117.2.1 Windows身份驗證模式 31117.2.2 混合驗證模式 31117.3 創建登錄名 31217.3.1 創建Windows登錄 31217.3.2 創建SQL Server登錄 31317.3.3 密碼策略 31417.4 服務器級別角色 31517.4.1 服務器級別角色的作用 31517.4.2 固定服務器角色 31617.4.3 創建服務器角色 31617.5 數據庫用戶 31717.5.1 數據庫用戶的作用 31717.5.2 創建數據庫用戶 31717.6 數據庫級別角色 31817.6.1 數據庫級別角色的作用 31817.6.2 固定數據庫角色 31817.6.3 創建數據庫角色 31917.7 權限 32017.7.1 授予權限 32017.7.2 撤銷權限 32217.7.3 拒絕權限 32217.8 小型案例實訓 323小結 325習題 326項目18 學生管理系統案例 32718.1 程序設計介紹 32818.1.1 Microsoft Visual Studio2010集成環境 32818.1.2 C#語言 32818.1.3 ASP.NET 32918.2 小型案例實訓 33018.2.1 基于Windows的學生管理系統 33018.2.2 基于Web的學生管理系統 335小結 341習題 342附錄 各項目習題參考答案 343參考文獻 365