關(guān)于我們
書單推薦
新書推薦
|
SQL Server數(shù)據(jù)庫技術(shù)實用教程
本書是采用“工作過程導(dǎo)向”模式規(guī)范編寫的教材,共14章,可分為兩大部分:數(shù)據(jù)庫的創(chuàng)建和數(shù)據(jù)庫的管理。本書的內(nèi)容組織以關(guān)系數(shù)據(jù)庫的理論知識為基礎(chǔ),注重操作技能的培養(yǎng)和實際問題的解決,旨在使學(xué)生掌握Microsoft SQL Server 2012的使用和管理。本書以創(chuàng)建“學(xué)生管理系統(tǒng)”數(shù)據(jù)庫為工作任務(wù),具體內(nèi)容包括設(shè)計數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、更新和查詢記錄、T-SQL語言、視圖和索引、用戶自定義函數(shù)、存儲過程、觸發(fā)器、管理數(shù)據(jù)庫安全、備份和還原數(shù)據(jù)庫、導(dǎo)入和導(dǎo)出數(shù)據(jù)庫中的數(shù)據(jù)。最后一章介紹了學(xué)生管理系統(tǒng)應(yīng)用程序的設(shè)計和實施,從而創(chuàng)建一個完整的數(shù)據(jù)庫系統(tǒng)。本書注重實踐,結(jié)構(gòu)合理,內(nèi)容豐富,操作方便。 本書作為Microsoft SQL Server 2012的入門類教材,既可以作為高等職業(yè)教育計算機(jī)及相關(guān)專業(yè)的教材,也可以作為等級考試、職業(yè)資格考試或認(rèn)證考試等各種培訓(xùn)班的培訓(xùn)教材,還可用于讀者自學(xué)。
本書采用*的"工作過程導(dǎo)向"編寫模式,以"工作場景導(dǎo)入"→"知識講解"→"回到工作場景"→"工作實訓(xùn)營"→"習(xí)題"為主線推進(jìn)學(xué)習(xí)進(jìn)程。每章均針對數(shù)據(jù)庫設(shè)計和實施中的一個工作過程環(huán)節(jié)來傳授相關(guān)的課程內(nèi)容,實現(xiàn)實踐技能與理論知識的整合,將工作環(huán)境與學(xué)習(xí)環(huán)境有機(jī)地結(jié)合在一起。本書內(nèi)容簡明扼要,結(jié)構(gòu)清晰,通過工作過程的講解將關(guān)系數(shù)據(jù)庫的理論知識和SQL Server 2012的使用方法有機(jī)地結(jié)合在一起,示例眾多,步驟明確,講解細(xì)致,突出可操作性和實用性,再輔以豐富的實訓(xùn)和課后練習(xí),可以使學(xué)生得到充分的訓(xùn)練,具備使用SQL Server 2012解決實際問題的能力。
前 言
為適應(yīng)高職院校應(yīng)用型人才培養(yǎng)迅速發(fā)展的趨勢,培養(yǎng)以就業(yè)市場為導(dǎo)向的、具備"職業(yè)化"特征的高級應(yīng)用型人才,"任務(wù)驅(qū)動、項目導(dǎo)向"已成為高職院校主流的教學(xué)模式。本書以Microsoft SQL Server 2012(以下一般簡稱為SQL Server 2012)為數(shù)據(jù)庫管理系統(tǒng),通過創(chuàng)建一個完整的學(xué)生管理系統(tǒng),引導(dǎo)學(xué)生掌握SQL Server 2012的使用和管理。 本書不僅將使用的軟件平臺從第一版的Microsoft SQL Server 2008升級為第二版的Microsoft SQL Server 2012,而且對第一版中的錯誤進(jìn)行了修正,對案例和習(xí)題進(jìn)行了優(yōu)化。 本書特色 本書采用最新的"工作過程導(dǎo)向"編寫模式,以"工作場景導(dǎo)入"→"知識講解"→"回到工作場景"→"工作實訓(xùn)營"→"習(xí)題"為主線推進(jìn)學(xué)習(xí)進(jìn)程。每章均針對數(shù)據(jù)庫設(shè)計和實施中的一個工作過程環(huán)節(jié)來傳授相關(guān)的課程內(nèi)容,實現(xiàn)實踐技能與理論知識的整合,將工作環(huán)境與學(xué)習(xí)環(huán)境有機(jī)地結(jié)合在一起。本書內(nèi)容簡明扼要,結(jié)構(gòu)清晰,通過工作過程的講解將關(guān)系數(shù)據(jù)庫的理論知識和SQL Server 2012的使用方法有機(jī)地結(jié)合在一起,示例眾多,步驟明確,講解細(xì)致,突出可操作性和實用性,再輔以豐富的實訓(xùn)和課后練習(xí),可以使學(xué)生得到充分的訓(xùn)練,具備使用SQL Server 2012解決實際問題的能力。 本書是由高職院校的優(yōu)秀教師在其已有教學(xué)成果的基礎(chǔ)上整合編寫而成的,作者擁有豐富的開發(fā)案例和教學(xué)經(jīng)驗。 本書主要內(nèi)容 本書共14章,需要授課60個課時,用一學(xué)期進(jìn)行學(xué)習(xí)。 第 1 章介紹學(xué)生管理數(shù)據(jù)庫的設(shè)計。通過本章任務(wù)的完成,主要學(xué)習(xí)數(shù)據(jù)庫的基本概念、發(fā)展歷史、系統(tǒng)結(jié)構(gòu),數(shù)據(jù)庫的需求分析、概念模型設(shè)計、邏輯模型設(shè)計、物理模型設(shè)計,了解SQL Server 2012組件,為后面使用SQL Server 2012做準(zhǔn)備。 第2章講解如何創(chuàng)建學(xué)生管理數(shù)據(jù)庫。通過本章任務(wù)的完成,主要掌握SQL Server數(shù)據(jù)庫的分類和組成的文件,了解SQL Server數(shù)據(jù)庫中數(shù)據(jù)的存儲方式,掌握創(chuàng)建數(shù)據(jù)庫的方法,掌握文件組的概念、作用和創(chuàng)建的方法。 第3章介紹如何創(chuàng)建學(xué)生管理數(shù)據(jù)庫中的五個表,設(shè)置表的數(shù)據(jù)完整性,并在表中錄入記錄。通過本章任務(wù)的完成,掌握使用SQL Server系統(tǒng)數(shù)據(jù)類型和創(chuàng)建用戶定義數(shù)據(jù)類型的方法,創(chuàng)建、修改、刪除表的方法,在表中錄入記錄的方法,以及數(shù)據(jù)完整性的概念、分類和具體實施方法。 第4章通過在學(xué)生管理數(shù)據(jù)庫的表中使用T-SQL語句插入、更新和刪除記錄,學(xué)習(xí)插入單個記錄和多個記錄的方法、更新記錄(包括根據(jù)子查詢更新記錄)的方法、刪除記錄(包括根據(jù)子查詢刪除記錄)的方法、清空表的方法。 第5章講解如何查詢學(xué)生管理數(shù)據(jù)庫中的記錄,學(xué)習(xí)簡單查詢、多表連接和子查詢。 第6章介紹三個任務(wù),第一個任務(wù)是判斷閏年,講解T-SQL語言的基礎(chǔ)知識,包括T-SQL 語法要素、T-SQL程序;第二個任務(wù)是帶錯誤信息提示的單語句插入記錄操作,介紹T-SQL語言中的錯誤信息處理;第三個任務(wù)是帶錯誤信息提示的多語句更新記錄操作,介紹事務(wù)的概念、屬性、分類和使用。 第7章介紹四個任務(wù),前三個任務(wù)是創(chuàng)建、使用和修改可以查詢所有學(xué)生的姓名、課程名稱和成績的視圖,學(xué)習(xí)視圖的概念、分類、創(chuàng)建和使用;第四個任務(wù)是在學(xué)生表上分別創(chuàng)建兩個索引,學(xué)習(xí)索引的概念、分類、創(chuàng)建、設(shè)計和優(yōu)化。 第8章通過統(tǒng)計學(xué)生的學(xué)期課程門數(shù)及成績,以及各門課程的最高分和最低分,來學(xué)習(xí)用戶自定義函數(shù)的概念、作用、分類和使用。 第9章通過講解創(chuàng)建存儲過程用于重復(fù)的查詢?nèi)蝿?wù),學(xué)習(xí)存儲過程的概念、分類和作用,創(chuàng)建和使用存儲過程的方法,存儲過程中輸入?yún)?shù)和輸出參數(shù)的使用方法。 第10章介紹四個任務(wù),前三個任務(wù)是根據(jù)學(xué)生表的學(xué)生記錄的插入、更新和刪除操作來修改班級表中該班級的人數(shù),第四個任務(wù)是防止數(shù)據(jù)庫中成績表的結(jié)構(gòu)被隨意修改。通過本章任務(wù)的完成,學(xué)習(xí)觸發(fā)器的概念、分類、工作原理、創(chuàng)建和使用。 第11章通過控制數(shù)據(jù)庫管理員、教師用戶、學(xué)生用戶對學(xué)生管理數(shù)據(jù)庫和成績表的操作權(quán)限,來講解SQL Server 2012的安全機(jī)制和驗證模式,介紹登錄、用戶、權(quán)限的創(chuàng)建與管理,角色的概念、分類、創(chuàng)建和使用。 第12章講解學(xué)生管理數(shù)據(jù)庫的備份和還原,包括備份和還原的概念,備份的類型,創(chuàng)建完整數(shù)據(jù)庫備份、事務(wù)日志備份、差異備份和文件或文件組備份的方法,以及還原各種備份的方法。 第13章通過導(dǎo)入和導(dǎo)出學(xué)生管理數(shù)據(jù)庫中學(xué)生的個人信息,學(xué)習(xí)SSIS的作用和工作方式,掌握創(chuàng)建和執(zhí)行SSIS包來導(dǎo)入和導(dǎo)出數(shù)據(jù)庫中數(shù)據(jù)的方法。 第14章設(shè)計并完成基于Windows的學(xué)生管理系統(tǒng)和基于Web的學(xué)生管理系統(tǒng)。通過本章任務(wù)的完成,學(xué)習(xí)Windows應(yīng)用程序的創(chuàng)建方法、Web應(yīng)用程序的創(chuàng)建方法、注冊和登錄頁面的設(shè)計方法,以及學(xué)生信息查詢功能的實現(xiàn)方法。 讀者對象 本書作為Microsoft SQL Server 2012入門類教材,既可以作為高等職業(yè)教育計算機(jī)及相關(guān)專業(yè)的教材,也可以作為等級考試、職業(yè)資格考試或認(rèn)證考試等各種培訓(xùn)班的培訓(xùn)教材,還可用于讀者自學(xué)。 本書讀者 本書由高云(南京信息職業(yè)技術(shù)學(xué)院)任主編,崔艷春(南京信息職業(yè)技術(shù)學(xué)院)任副主編,其中第1~7章由高云編寫,第8~14章由崔艷春編寫,由高云負(fù)責(zé)統(tǒng)稿。全書框架結(jié)構(gòu)由何光明擬定。另外,本書的編寫得到陳海燕、王珊珊、吳濤濤、趙梨花、張伍榮、李海、趙明、吳婷、許勇、姚昌順、戴仕明等同志的大力支持和幫助,在此表示感謝。限于作者水平,書中難免存在不當(dāng)之處,懇請廣大讀者批評指正。 編 者
目 錄
第1章 設(shè)計數(shù)據(jù)庫 1 1.1 工作場景導(dǎo)入 2 1.2 數(shù)據(jù)庫概述 2 1.3 需求分析 4 1.4 概念模型設(shè)計 5 1.5 邏輯模型設(shè)計 7 1.6 物理模型設(shè)計 10 1.7 數(shù)據(jù)庫的實現(xiàn)、運行和維護(hù) 10 1.8 SQL Server 2012簡介 10 1.9 回到工作場景 14 1.10 工作實訓(xùn)營 16 1.11 習(xí)題 16 第2章 創(chuàng)建數(shù)據(jù)庫 19 2.1 工作場景導(dǎo)入 20 2.2 SQL Server數(shù)據(jù)庫 20 2.3 數(shù)據(jù)庫的創(chuàng)建與操作 22 2.4 文件組及其創(chuàng)建與使用 27 2.5 回到工作場景 31 2.6 工作實訓(xùn)營 35 2.7 習(xí)題 36 第3章 創(chuàng)建和管理表 39 3.1 工作場景導(dǎo)入 40 3.2 數(shù)據(jù)類型 41 3.3 表的創(chuàng)建與操作 45 3.4 數(shù)據(jù)完整性 49 3.5 回到工作場景 62 3.6 工作實訓(xùn)營 67 3.7 習(xí)題 68 第4章 插入、更新和刪除記錄 71 4.1 工作場景導(dǎo)入 72 4.2 插入記錄 74 4.3 更新記錄 75 4.4 刪除記錄 76 4.5 回到工作場景 77 4.6 工作實訓(xùn)營 79 4.7 習(xí)題 82 第5章 查詢 87 5.1 工作場景導(dǎo)入 88 5.2 簡單查詢 92 5.3 多表連接 100 5.4 子查詢 105 5.5 回到工作場景 107 5.6 工作實訓(xùn)營 113 5.7 習(xí)題 114 第6章 使用T-SQL語言 117 6.1 工作場景導(dǎo)入 118 6.2 T-SQL 語言 118 6.3 T-SQL語法要素 118 6.4 T-SQL程序 124 6.5 錯誤信息處理 128 6.6 事務(wù) 130 6.7 回到工作場景 132 6.8 工作實訓(xùn)營 134 6.9 習(xí)題 135 第7章 使用視圖和索引優(yōu)化查詢 137 7.1 工作場景導(dǎo)入 138 7.2 視圖 138 7.3 索引 144 7.4 回到工作場景 150 7.5 工作實訓(xùn)營 153 7.6 習(xí)題 154 第8章 用戶自定義函數(shù) 157 8.1 工作場景導(dǎo)入 158 8.2 用戶自定義函數(shù)介紹 158 8.3 創(chuàng)建用戶自定義函數(shù) 159 8.4 使用用戶自定義函數(shù) 163 8.5 修改用戶自定義函數(shù) 166 8.6 刪除用戶自定義函數(shù) 166 8.7 回到工作場景 167 8.8 工作實訓(xùn)營 170 8.9 習(xí)題 171 第9章 存儲過程 173 9.1 工作場景導(dǎo)入 174 9.2 存儲過程介紹 174 9.3 不帶參數(shù)的存儲過程 175 9.4 帶參數(shù)的存儲過程 181 9.5 回到工作場景 184 9.6 工作實訓(xùn)營 186 9.7 習(xí)題 187 第10章 觸發(fā)器 189 10.1 工作場景導(dǎo)入 190 10.2 觸發(fā)器介紹 190 10.3 創(chuàng)建觸發(fā)器 192 10.4 使用觸發(fā)器 196 10.5 修改觸發(fā)器 197 10.6 刪除觸發(fā)器 198 10.7 回到工作場景 200 10.8 工作實訓(xùn)營 203 10.8.1 訓(xùn)練實例 203 10.8.2 工作實踐常見問題解析 204 10.9 習(xí)題 204 第11章 管理數(shù)據(jù)庫安全 207 11.1 工作場景導(dǎo)入 208 11.2 SQL Server 2012的安全機(jī)制 208 11.3 SQL Server 2012的驗證模式 209 11.3.1 Windows身份驗證 209 11.3.2 混合身份驗證 209 11.4 Windows登錄 211 11.4.1 創(chuàng)建Windows登錄 212 11.4.2 創(chuàng)建SQL Server登錄 214 11.4.3 管理登錄名 215 11.5 數(shù)據(jù)庫用戶 217 11.5.1 創(chuàng)建數(shù)據(jù)庫用戶 217 11.5.2 管理數(shù)據(jù)庫用戶 219 11.6 權(quán)限 221 11.6.1 權(quán)限類型 221 11.6.2 設(shè)置用戶權(quán)限 221 11.7 角色 225 11.7.1 角色分類 225 11.7.2 創(chuàng)建角色 226 11.7.3 指派角色 227 11.8 回到工作場景 227 11.9 工作實訓(xùn)營 231 11.9.1 訓(xùn)練實例 231 11.9.2 工作實踐常見問題解析 232 11.10 習(xí)題 232 第12章 備份和還原數(shù)據(jù)庫 233 12.1 工作場景導(dǎo)入 234 12.2 備份和還原 234 12.2.1 備份 234 12.2.2 還原 235 12.3 完整數(shù)據(jù)庫備份 235 12.3.1 創(chuàng)建備份 236 12.3.2 還原備份 239 12.4 事務(wù)日志備份 241 12.4.1 創(chuàng)建備份 241 12.4.2 還原備份 242 12.5 差異備份 244 12.5.1 創(chuàng)建備份 244 12.5.2 還原備份 245 12.6 文件或文件組備份 246 12.6.1 創(chuàng)建備份 246 12.6.2 還原備份 247 12.7 回到工作場景 248 12.8 工作實訓(xùn)營 250 12.8.1 訓(xùn)練實例 250 12.8.2 工作實踐常見問題解析 251 12.9 習(xí)題 251 第13章 導(dǎo)入和導(dǎo)出數(shù)據(jù)庫中的 數(shù)據(jù) 253 13.1 工作場景導(dǎo)入 254 13.2 使用SQL Server導(dǎo)入和導(dǎo)出向?qū)? 254 13.3 SSIS概述 259 13.3.1 SSIS介紹 259 13.3.2 SSIS的工作方式 259 13.4 使用SSIS 260 13.4.1 創(chuàng)建SSIS包 260 13.4.2 執(zhí)行SSIS包 265 13.5 回到工作場景 266 13.6 工作實訓(xùn)營 267 13.6.1 訓(xùn)練實例 267 13.6.2 工作實踐常見問題解析 268 13.7 習(xí)題 268 第14章 學(xué)生管理系統(tǒng)案例 269 14.1 工作場景導(dǎo)入 270 14.2 程序設(shè)計介紹 270 14.2.1 Microsoft Visual Studio 2015 集成環(huán)境 270 14.2.2 C#語言 271 14.2.3 ASP.NET 271 14.3 回到工作場景 272 14.3.1 基于Windows的學(xué)生管理 系統(tǒng) 272 14.3.2 基于Web的學(xué)生管理 系統(tǒng) 276 14.4 工作實訓(xùn)營 282 附錄 各章習(xí)題參考答案 284 參考文獻(xiàn) 298
第1章 設(shè)計數(shù)據(jù)庫
本章要點: 數(shù)據(jù)庫的發(fā)展歷史和數(shù)據(jù)庫的基本概念。 需求分析。 概念模型設(shè)計。 邏輯模型設(shè)計。 物理模型設(shè)計。 數(shù)據(jù)庫的實現(xiàn)、運行和維護(hù)。 SQL Server 2012數(shù)據(jù)庫管理系統(tǒng)。 技能目標(biāo): 掌握數(shù)據(jù)庫的基本概念和數(shù)據(jù)庫的發(fā)展歷史。 了解需求分析的任務(wù)和方法。 掌握概念模型的概念和設(shè)計方法。 掌握邏輯模型的概念和設(shè)計方法。 了解物理模型的概念和設(shè)計方法。 了解數(shù)據(jù)庫的實現(xiàn)、運行和維護(hù)的內(nèi)容。 熟悉SQL Server 2012數(shù)據(jù)庫管理系統(tǒng)的功能和組成部分。 1.1 工作場景導(dǎo)入 【工作場景】 為了提高教務(wù)管理工作水平,達(dá)到學(xué)校日常管理工作信息化、智能化的要求,教務(wù)處要求信息管理員小孫創(chuàng)建一個學(xué)生成績管理系統(tǒng)。學(xué)生成績管理系統(tǒng)所涉及的信息包括校內(nèi)所有的系、班級、學(xué)生、課程和學(xué)生成績。 學(xué)生成績管理系統(tǒng)的具體實施步驟分成兩步。 第一步,創(chuàng)建一個學(xué)生成績數(shù)據(jù)庫,將系統(tǒng)所有的信息存儲在數(shù)據(jù)庫中。 第二步,以學(xué)生成績數(shù)據(jù)庫為基礎(chǔ)創(chuàng)建學(xué)生成績管理系統(tǒng),通過Windows應(yīng)用程序或瀏覽器來完成系統(tǒng)信息的修改和查詢。 【引導(dǎo)問題】 (1) 什么是數(shù)據(jù)庫?數(shù)據(jù)庫的發(fā)展歷史是怎樣的? (2) 怎樣完成需求分析? (3) 怎樣完成概念模型設(shè)計? (4) 怎樣完成邏輯模型設(shè)計? (5) 怎樣完成物理模型設(shè)計? (6) 怎樣完成數(shù)據(jù)庫的實施、運行和維護(hù)? (7) 什么是SQL Server 2012? 1.2 數(shù)據(jù)庫概述 1.2.1 數(shù)據(jù)庫的基本概念 數(shù)據(jù)是描述事物的符號記錄。數(shù)據(jù)包括文字、圖形、圖像、聲音等。 數(shù)據(jù)庫(Database,DB)是一個長期存儲在計算機(jī)內(nèi)的、有組織的、可共享的、統(tǒng)一管理的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)是按照一定的數(shù)據(jù)模型組織、描述和存儲的,有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴(kuò)展性。 數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)是使用和管理數(shù)據(jù)庫的系統(tǒng)軟件,負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制。所有對數(shù)據(jù)庫的操作都交由數(shù)據(jù)庫管理系統(tǒng)完成,這使得數(shù)據(jù)庫的安全性和完整性得以保證。 數(shù)據(jù)庫管理員(Database Administrator,DBA)是專門負(fù)責(zé)管理和維護(hù)數(shù)據(jù)庫服務(wù)器的人。通常,數(shù)據(jù)庫管理員的工作職責(zé)包括安裝和升級數(shù)據(jù)庫服務(wù)器及應(yīng)用程序工具,編制數(shù)據(jù)庫設(shè)計系統(tǒng)存儲方案并制訂未來的存儲需求計劃,根據(jù)應(yīng)用來創(chuàng)建和修改數(shù)據(jù)庫,管理和監(jiān)控數(shù)據(jù)庫的用戶,監(jiān)控和優(yōu)化數(shù)據(jù)庫的性能,制訂數(shù)據(jù)庫備份計劃,定期進(jìn)行數(shù)據(jù)庫備份,在災(zāi)難出現(xiàn)時對數(shù)據(jù)庫信息進(jìn)行恢復(fù)等。在實際工作中,可能一個數(shù)據(jù)庫有一個或多個數(shù)據(jù)庫管理員,也可能一個數(shù)據(jù)庫管理員同時負(fù)責(zé)系統(tǒng)中的多項工作。 數(shù)據(jù)庫系統(tǒng)(Database System,DBS)是由數(shù)據(jù)庫及其相關(guān)應(yīng)用軟件、支撐環(huán)境和使用人員所組成的系統(tǒng),專門用于完成特定的業(yè)務(wù)信息處理。數(shù)據(jù)庫系統(tǒng)通常由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、用戶和應(yīng)用程序組成。 1.2.2 數(shù)據(jù)庫的發(fā)展歷史 數(shù)據(jù)庫的發(fā)展大致可劃分為以下幾個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。 (1) 人工管理階段。20世紀(jì)50年代中期之前,計算機(jī)剛剛出現(xiàn),主要用于科學(xué)計算。硬件存儲設(shè)備只有磁帶、卡片和紙帶;軟件方面還沒有操作系統(tǒng),沒有專門管理數(shù)據(jù)的軟件。因此,程序員在程序中不僅要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu),還要設(shè)計其物理結(jié)構(gòu),包括存儲結(jié)構(gòu)、存取方法、輸入/輸出方式等。數(shù)據(jù)的組織單純面向該應(yīng)用,不同的計算程序之間不能共享數(shù)據(jù),使得不同的應(yīng)用之間存在大量的重復(fù)數(shù)據(jù),數(shù)據(jù)與程序不獨立。數(shù)據(jù)是通過批處理方式進(jìn)行處理的,處理結(jié)果不保存,難以重復(fù)使用。 (2) 文件系統(tǒng)階段。20世紀(jì)50年代中期到60年代中期,隨著計算機(jī)大容量存儲設(shè)備(如硬盤)和操作系統(tǒng)的出現(xiàn),數(shù)據(jù)管理進(jìn)入文件系統(tǒng)階段。在文件系統(tǒng)階段,數(shù)據(jù)以文件為單位存儲在外存,且由操作系統(tǒng)統(tǒng)一管理。用戶通過操作系統(tǒng)的界面管理數(shù)據(jù)文件。文件的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)相對獨立,程序和數(shù)據(jù)分離。用戶的程序與數(shù)據(jù)可分別存放在外存儲器上,各個應(yīng)用程序可以共享一組數(shù)據(jù),通過文件來進(jìn)行數(shù)據(jù)共享。但是,數(shù)據(jù)在文件中的組織方式仍然是由程序決定的,因此必然存在相當(dāng)大的數(shù)據(jù)冗余。數(shù)據(jù)的邏輯結(jié)構(gòu)和應(yīng)用程序相關(guān)聯(lián),一方修改,必然導(dǎo)致另一方也要隨之修改。簡單的數(shù)據(jù)文件不能體現(xiàn)現(xiàn)實世界中數(shù)據(jù)之間的聯(lián)系,只能交由應(yīng)用程序來進(jìn)行處理,缺乏獨立性。 (3) 數(shù)據(jù)庫系統(tǒng)階段。20世紀(jì)60年代后,隨著計算機(jī)在數(shù)據(jù)管理領(lǐng)域的普遍應(yīng)用,數(shù)據(jù)管理開始運用數(shù)據(jù)庫技術(shù),進(jìn)入了數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫技術(shù)以數(shù)據(jù)為中心組織數(shù)據(jù),采用一定的數(shù)據(jù)模型。數(shù)據(jù)模型不僅體現(xiàn)數(shù)據(jù)本身的特征,而且體現(xiàn)數(shù)據(jù)之間的聯(lián)系。形成的數(shù)據(jù)庫數(shù)據(jù)冗余小,易修改,易擴(kuò)充,便于共享,程序和數(shù)據(jù)有較高的獨立性。不同的應(yīng)用程序?qū)?shù)據(jù)庫的操作均由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一執(zhí)行,這就保證了數(shù)據(jù)的安全性、完整性,可有效地完成并發(fā)管理。 1.2.3 數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu) 數(shù)據(jù)庫系統(tǒng)通常采用3級模式結(jié)構(gòu),即數(shù)據(jù)庫系統(tǒng)由模式、外模式和內(nèi)模式3級組成。 * 模式。模式也稱邏輯模式,表示數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)之間的聯(lián)系、安全性和完整性要求,是完整的數(shù)據(jù)視圖。模式所描述的邏輯結(jié)構(gòu)包含整個數(shù)據(jù)庫。 * 外模式。外模式也稱子模式或者用戶模式,表示數(shù)據(jù)庫用戶能夠使用的部分?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)和特征,是用戶的數(shù)據(jù)視圖。外模式面向用戶,用于描述用戶所關(guān)心的數(shù)據(jù)。 * 內(nèi)模式。內(nèi)模式也稱存儲模式,表示數(shù)據(jù)庫中數(shù)據(jù)的物理結(jié)構(gòu)和存儲結(jié)構(gòu)。內(nèi)模式描述了數(shù)據(jù)庫在物理存儲設(shè)備上的存儲方式。 外模式可以有多個,而模式只有一個。每個外模式和模式之間存在外模式與模式映像,是外模式和模式之間的對應(yīng)關(guān)系。當(dāng)模式改變時,外模式與模式的映像隨之改變,使得外模式保持不變,使用外模式的應(yīng)用程序也保持不變,保證了數(shù)據(jù)的邏輯獨立性。邏輯獨立性將數(shù)據(jù)庫的結(jié)構(gòu)與應(yīng)用程序相分離,減少了修改應(yīng)用程序的工作量。 內(nèi)模式和模式一樣,只有一個。模式和內(nèi)模式之間存在模式與內(nèi)模式映像,是模式和內(nèi)模式之間的對應(yīng)關(guān)系。當(dāng)內(nèi)模式改變時,模式與內(nèi)模式的映像隨之改變,使得模式保持不變,保證了數(shù)據(jù)的物理獨立性。 1.3 需求分析 自數(shù)據(jù)庫系統(tǒng)階段至今,人們將軟件工程的理論應(yīng)用于數(shù)據(jù)庫設(shè)計,形成了一個完整的數(shù)據(jù)庫設(shè)計實施方法,整個過程包括需求分析、概念模型設(shè)計、邏輯模型設(shè)計、物理模型設(shè)計及數(shù)據(jù)庫實現(xiàn)、運行和維護(hù)5個階段。 1.3.1 需求分析的任務(wù) 需求分析的內(nèi)容是充分調(diào)查研究,收集基礎(chǔ)數(shù)據(jù),了解系統(tǒng)運行環(huán)境,明確用戶需求,確定新系統(tǒng)的功能,最終得到系統(tǒng)需求分析說明書,作為設(shè)計數(shù)據(jù)庫的依據(jù)。 需求分析所調(diào)查的重點是數(shù)據(jù)和處理,以獲得用戶對數(shù)據(jù)庫的以下要求:用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì);用戶要完成什么處理功能,對處理的響應(yīng)時間有什么要求;安全性和數(shù)據(jù)完整性要求;企業(yè)的環(huán)境特征,包括企業(yè)的規(guī)模與結(jié)構(gòu)、部門的地理分布、主管部門對機(jī)構(gòu)的規(guī)定與要求、對系統(tǒng)費用與利益的限制及未來系統(tǒng)的發(fā)展方向。 1.3.2 需求分析的方法 在做需求分析時,首先要了解用戶單位的組織機(jī)構(gòu)組成,然后調(diào)查用戶單位的日常業(yè)務(wù)活動流程。在此基礎(chǔ)上,明確用戶的信息需求和系統(tǒng)概念需求,明確用戶對系統(tǒng)的性能和成本的要求,確認(rèn)數(shù)據(jù)項,產(chǎn)生系統(tǒng)需求說明書。需求分析的調(diào)查方法包括跟班作業(yè)、開調(diào)查會、請專人調(diào)查、發(fā)放用戶調(diào)查表和查閱原系統(tǒng)有關(guān)記錄。 1.3.3 需求分析的成果 需求分析生成的結(jié)果包括數(shù)據(jù)字典、數(shù)據(jù)流圖、判定表、判定樹等。 (1) 數(shù)據(jù)字典是系統(tǒng)中所有數(shù)據(jù)及其處理的描述信息的集合。數(shù)據(jù)字典由數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲及處理過程組成。 (2) 數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的圖形化工具,描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程。 數(shù)據(jù)流圖包括數(shù)據(jù)流、數(shù)據(jù)源、對數(shù)據(jù)的加工處理和數(shù)據(jù)存儲。數(shù)據(jù)流圖根據(jù)層級不同可分為頂層數(shù)據(jù)流圖、中層數(shù)據(jù)流圖和底層數(shù)據(jù)流圖。頂層數(shù)據(jù)流圖經(jīng)過細(xì)化可以產(chǎn)生中層流圖和底層流圖。 (3) 判定表和判定樹是描述加工的圖形工具,分別是表格和樹狀結(jié)構(gòu),適合描述問題處理中具有多個判斷的結(jié)構(gòu),而且每個決策與若干條件有關(guān)。判定表和判定樹可以給出判定條件和判定決策,以及判定條件的從屬關(guān)系、并列關(guān)系和選擇關(guān)系。 1.4 概念模型設(shè)計 需求分析結(jié)束后,進(jìn)入概念模型設(shè)計階段。 1.4.1 數(shù)據(jù)模型 數(shù)據(jù)模型是用來描述現(xiàn)實世界的數(shù)據(jù)、數(shù)據(jù)之間的聯(lián)系、數(shù)據(jù)的語義和完整性約束的工具。數(shù)據(jù)模型包括概念模型、邏輯模型和物理模型。 1.4.2 概念模型 概念模型要能真實地反映現(xiàn)實世界,包括事物和相互之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求,是表示現(xiàn)實世界的一個真實模型。概念模型是用戶與數(shù)據(jù)庫設(shè)計人員之間進(jìn)行交流的語言。概念模型不依賴于特定的數(shù)據(jù)庫管理系統(tǒng),但可以轉(zhuǎn)換為特定的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。因此,概念模型要易于理解、易于擴(kuò)充和易于向各種類型的邏輯模型轉(zhuǎn)換。 1.4.3 概念模型設(shè)計的任務(wù) 概念模型設(shè)計的任務(wù)是根據(jù)需求分析說明書對現(xiàn)實世界進(jìn)行數(shù)據(jù)抽象,建立概念模型。概念模型的作用是與用戶溝通,確認(rèn)系統(tǒng)的信息和功能,與DBMS無關(guān)。 1.4.4 概念模型設(shè)計的方法 概念模型的設(shè)計方法有4種,分別是自頂向下、自底向上、逐步擴(kuò)張和混合策略。自頂向下是指先設(shè)計概念模型的總體框架,再逐步細(xì)化。自底向上是指先設(shè)計局部概念模型,再合并成總體。逐步擴(kuò)張是指先設(shè)計概念模型的主要部分,再逐步擴(kuò)充;旌喜呗允侵笇⒆皂斚蛳潞妥缘紫蛏舷嘟Y(jié)合,先設(shè)計概念模型的總體框架,再根據(jù)框架來合并各局部概念模型。 1.4.5 概念模型設(shè)計的成果 概念模型有實體-聯(lián)系模型、面向?qū)ο蟮臄?shù)據(jù)模型、二元數(shù)據(jù)模型、語義數(shù)據(jù)模型、函數(shù)數(shù)據(jù)模型等。下面僅介紹常用的實體-聯(lián)系模型。 1.4.6 實體-聯(lián)系模型 實體-聯(lián)系模型是用E-R圖來描述現(xiàn)實世界的概念模型。實體-聯(lián)系模型中的基本概念有以下幾個。 * 實體。實體是現(xiàn)實世界中可區(qū)分的客觀對象或抽象概念,如一個學(xué)生、一門課程。 * 屬性。屬性是實體所具有的特征,如每個學(xué)生都有學(xué)生編號、姓名、性別、班級、出生日期等屬性。 * 實體集。實體集是具有相同屬性描述的實體的集合,如學(xué)生、課程。 * 聯(lián)系。兩個實體集之間存在一對一、一對多和多對多3種聯(lián)系。例如,一個班級只有一個班長,班級和班長之間是一對一的聯(lián)系;一個學(xué)生屬于一個班級,一個班級有多個學(xué)生,班級和學(xué)生之間是一對多的聯(lián)系;一個學(xué)生選修多門課程,一門課程有多個學(xué)生選修,課程和學(xué)生之間是多對多的聯(lián)系。 * 鍵。鍵是可以將實體集中的每個實體進(jìn)行區(qū)分的屬性或?qū)傩约,也稱主屬性。例如,每個學(xué)生的學(xué)生編號絕不相同,學(xué)生編號這個屬性可以作為學(xué)生實體集的鍵。 * 域。域是實體集的各個屬性的取值范圍。例如,學(xué)生的性別屬性取值為"男"或"女"。 E-R圖的內(nèi)容包括實體集、屬性和聯(lián)系。E-R圖中,實體集用矩形表示,內(nèi)有實體集名稱;屬性用橢圓形表示,內(nèi)有屬性名稱,并用直線與所屬實體型相連,作為鍵的屬性用下劃線標(biāo)出;聯(lián)系用菱形表示,內(nèi)有聯(lián)系名稱,并用直線與實體集相連,且在聯(lián)系旁邊注明聯(lián)系的類型(如1∶1、1∶n或者m∶n)。如果聯(lián)系有屬性,那么也要用直線將屬性和聯(lián)系相連,如圖1.1所示。 圖1.1 E-R圖 采用實體-聯(lián)系模型進(jìn)行概念模型設(shè)計的步驟分為如下3步。 (1) 設(shè)計局部實體-聯(lián)系模型。具體任務(wù)是確定局部實體-聯(lián)系模型中的實體集、實體集的屬性、鍵、實體集之間的聯(lián)系和屬性,畫出局部E-R圖。 (2) 設(shè)計全局實體-聯(lián)系模型。具體任務(wù)是合并局部E-R圖,生成全局E-R圖,并消除局部E-R圖合并時產(chǎn)生的沖突。 (3) 優(yōu)化全局E-R模型。具體任務(wù)是修改全局E-R圖,消除冗余屬性和冗余聯(lián)系,得到最終的E-R圖。 1.5 邏輯模型設(shè)計 概念模型設(shè)計結(jié)束后,進(jìn)入邏輯模型設(shè)計階段。 1.5.1 邏輯模型 邏輯模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束組成。其中,數(shù)據(jù)結(jié)構(gòu)是指表示與數(shù)據(jù)類型、內(nèi)容、性質(zhì)等有關(guān)的系統(tǒng)靜態(tài)特性,數(shù)據(jù)操作是數(shù)據(jù)庫檢索和更新操作的含義、規(guī)則和實現(xiàn)的語言,數(shù)據(jù)的約束條件是邏輯模型中數(shù)據(jù)及其聯(lián)系所要遵守的完整性規(guī)則的集合。 邏輯模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。邏輯模型設(shè)計的要求是把概念模型轉(zhuǎn)換成所選用的數(shù)據(jù)庫管理系統(tǒng)所支持的特定類型的邏輯模型。 已有的邏輯模型有層次模型、網(wǎng)狀模型和關(guān)系模型。 (1) 層次模型的總體結(jié)構(gòu)為樹形結(jié)構(gòu),其中節(jié)點表示記錄類型,每個記錄類型包含多個屬性,節(jié)點之間的連線表示記錄類型之間的聯(lián)系,除根節(jié)點外的所有節(jié)點有且只有一個雙親節(jié)點。層次模型的優(yōu)點是簡單,完整性支持良好,適用于層次性聯(lián)系的場合;缺點是插入和刪除操作的限制較多,查詢必須逐級通過雙親節(jié)點。 (2) 網(wǎng)狀模型允許節(jié)點有零個乃至多個雙親,還允許節(jié)點之間有多個聯(lián)系。它較之層次模型更接近現(xiàn)實,存取效率高;但數(shù)據(jù)獨立性復(fù)雜,在存取時要指定路徑。 (3) 關(guān)系模型建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上,是當(dāng)前流行的邏輯模型。關(guān)系模型中以表來表示實體和實體之間的聯(lián)系,以表來存儲記錄,數(shù)據(jù)結(jié)構(gòu)簡單,存取路徑透明,具有良好的數(shù)據(jù)獨立性和安全保密性。 1.5.2 關(guān)系模型的概念 關(guān)系模型中,表是基礎(chǔ)邏輯結(jié)構(gòu),由行和列組成,如表1.1所示。 表1.1 教師信息表 教師工號 姓 名 性 別 出生日期 職 稱 09001 王斌 男 1975-3-26 副教授 09002 李梅 女 1977-6-2 講師 09003 金志明 男 1957-12-15 教授 09004 王思思 女 1981-3-2 助教 關(guān)系模型中的基本概念如下。 * 關(guān)系:表。 * 元組:也稱作記錄,指表中的一行。關(guān)系中的元組不能重復(fù),而且理論上沒有順序。 * 屬性:也稱作字段,指表中的一列。關(guān)系中的屬性值具有原子性,不可分解。 * 碼:表中可以唯一確定一個元組的屬性或者屬性組。 * 候選碼:表中所有可以唯一確定一個元組的屬性或者屬性組。 * 主碼:也稱作鍵,指表中唯一確定一個元組的屬性或者屬性組。 * 外碼:不是表中的碼,而是與另一個表中的主碼相對應(yīng)的屬性或者屬性組。 * 域:屬性的取值范圍。 * 分量:一個元組中的某個屬性值。 * 關(guān)系模式:對關(guān)系的描述,可寫成:關(guān)系名(屬性1,屬性2,...,屬性n)。 * 關(guān)系模型的數(shù)據(jù)操作主要包括查詢、插入、更新和刪除。 * 關(guān)系模型的完整性分為3類,即實體完整性、參照完整性和用戶自定義完整性。其中,實體完整性是指關(guān)系的主碼值不能為空值;參照完整性是指關(guān)系的外碼值必須為空值或者等于所對應(yīng)主碼所在關(guān)系中某個元組的主碼值。 1.5.3 邏輯模型設(shè)計的任務(wù) 邏輯模型設(shè)計的任務(wù)是把概念結(jié)構(gòu)模型轉(zhuǎn)換為所使用的DBMS所支持的邏輯模型。 1.5.4 關(guān)系模型設(shè)計的方法 將實體-聯(lián)系模型轉(zhuǎn)換成關(guān)系模型的步驟分為如下3步。 (1) 將E-R圖轉(zhuǎn)換為關(guān)系模式集合。 在轉(zhuǎn)換時,E-R圖中的一個實體集轉(zhuǎn)換為一個關(guān)系模式,實體集中的屬性轉(zhuǎn)換為關(guān)系模式的屬性,實體集的碼轉(zhuǎn)換為關(guān)系模式的關(guān)鍵字。E-R圖中的聯(lián)系也要進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換方法如下:一對一的聯(lián)系可以轉(zhuǎn)換成單個關(guān)系模式,也可以與任意一端的實體集轉(zhuǎn)換成的關(guān)系模式合并;一對多的聯(lián)系可以轉(zhuǎn)換成單個關(guān)系模式,也可以與多端的實體集轉(zhuǎn)換成的關(guān)系模式合并;多對多、3個及3個以上的聯(lián)系只能轉(zhuǎn)換成單個關(guān)系模式。 (2) 對關(guān)系模式集合進(jìn)行規(guī)范化處理,滿足一定的范式。 范式是符合某一種級別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足不同的范式。目前關(guān)系數(shù)據(jù)庫有6種范式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進(jìn)一步滿足更多要求的稱為第二范式(2NF),其余范式以此類推。一般來說,數(shù)據(jù)庫只需滿足第三范式(3NF)即可。 第一范式是指表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,不能存在兩條記錄具有完全相同的屬性值。在任何一個關(guān)系數(shù)據(jù)庫中,第一范式是對關(guān)系模式的基本要求,不滿足第一范式的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。例如,學(xué)生信息表的屬性包含學(xué)生編號、學(xué)生姓名、班級編號和聯(lián)系方式,其中聯(lián)系方式不能將電話、地址和郵編這3類數(shù)據(jù)合在一列中顯示,解決的方法是在學(xué)生信息表中設(shè)置電話、地址和郵編3列,分別保存這3部分?jǐn)?shù)據(jù)。一個學(xué)生的記錄只能對應(yīng)學(xué)生信息表中的一條記錄,不能有兩條記錄同時對應(yīng)一個學(xué)生。 第二范式建立在第一范式的基礎(chǔ)上,即滿足第二范式必須先滿足第一范式。第二范式要求實體的屬性完全依賴于主碼,即不能存在僅依賴主碼一部分的屬性。如果存在,那么這個屬性和主碼的這一部分應(yīng)該分解形成一個新的實體集,新實體集與原實體集之間是一對多的關(guān)系。第二范式要求實體集的非主屬性不能部分依賴于主碼。例如,成績表的屬性包含學(xué)生編號、課程編號、成績、學(xué)生姓名、班級編號,主碼是學(xué)生編號和課程編號。但是,學(xué)生姓名和班級編號屬性可以由學(xué)生編號屬性推知,因此成績表的結(jié)構(gòu)不符合第二范式。這樣設(shè)計的表在使用中有很多問題,插入一個學(xué)生的所有課程成績將反復(fù)插入該學(xué)生的基本信息,如果刪除該學(xué)生的所有課程成績將導(dǎo)致刪除該學(xué)生的基本信息,如果該學(xué)生的基本信息有變化又需要將其所有的成績記錄進(jìn)行更新。為了解決數(shù)據(jù)冗余和重復(fù)操作的問題,可以將其中的學(xué)生編號、學(xué)生姓名和班級屬性分解出來,形成學(xué)生信息表,原有的成績表保留學(xué)生編號、課程編號和成績屬性。這樣調(diào)整可使得兩個表均滿足第二范式的要求。 第三范式建立在第二范式的基礎(chǔ)上,要求一個數(shù)據(jù)庫表中不包含其他表中已包含的非主碼信息,即第三范式就是屬性不依賴于其他非主屬性,也就是不存在傳遞依賴。例如,班級信息表的屬性包含班級編號、班級名稱、系名稱、系簡介,主碼是班級編號。如果插入同一個系的兩個班級的信息,將產(chǎn)生兩條記錄,其中系名稱和系簡介完全一樣。其實,同一個系的系名稱和系簡介是一樣的。這樣又會產(chǎn)生大量的數(shù)據(jù)冗余。可以添加系信息表,系信息表的屬性包含系編號、系名稱、系簡介,主碼是系編號,在班級信息表中刪除系名稱和系簡介,添加系編號。這樣使得數(shù)據(jù)庫滿足第三范式的要求。 BCNF是指關(guān)系模式的所有屬性都不傳遞依賴于該關(guān)系模式的任何候選碼,或是每個決定因素都包含碼。第一范式到BCNF的4種范式之間有以下關(guān)系:BCNF高于第三范式、高于第二范式、高于第一范式。 綜上所述,規(guī)范化的目的是使結(jié)構(gòu)更合理,消除存儲異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新。在對關(guān)系模式進(jìn)行規(guī)范化時,必須遵從概念單一化原則,即一個關(guān)系模式描述一個實體或?qū)嶓w間的一種聯(lián)系。規(guī)范化的操作方法是將關(guān)系模式分解成兩個或多個關(guān)系模式,分解后的關(guān)系模式集合必須保證不會丟失原有關(guān)系的信息。實際操作時,并不一定要求全部模式都達(dá)到BCNF,有時故意保留部分冗余以便于數(shù)據(jù)查詢。 (3) 優(yōu)化關(guān)系模式,定義數(shù)據(jù)完整性、安全性,評估性能。 1.6 物理模型設(shè)計 1.6.1 物理模型設(shè)計的任務(wù) 物理模型的設(shè)計是要選取一個最適合數(shù)據(jù)庫應(yīng)用環(huán)境的物理結(jié)構(gòu),包括數(shù)據(jù)庫的存儲記錄格式、存儲記錄安排和存取方法,使得數(shù)據(jù)庫具有良好的響應(yīng)速度、足夠的事務(wù)流量和適宜的存儲空間。它與系統(tǒng)硬件環(huán)境、存儲介質(zhì)性能和DBMS有關(guān)。 1.6.2 物理模型設(shè)計的方法 在關(guān)系模型數(shù)據(jù)庫中,物理模型主要包括存儲記錄結(jié)構(gòu)的設(shè)計、數(shù)據(jù)存放位置、存取方法、完整性、安全性和應(yīng)用程序。其中,存儲記錄結(jié)構(gòu)包括記錄的組成、數(shù)據(jù)項的類型和長度以及邏輯記錄到存儲記錄的映像。數(shù)據(jù)存放位置是指是否要把經(jīng)常訪問的數(shù)據(jù)結(jié)合在一起。存取方法是指聚集索引和非聚集索引的使用。完整性和安全性是指對數(shù)據(jù)庫完整性、安全性、有效性、效率等方面進(jìn)行分析并做出配置。物理模型設(shè)計的內(nèi)容包括分析影響數(shù)據(jù)庫物理模型設(shè)計的因素,確定數(shù)據(jù)的存放位置、存取方法、索引和聚集,使空間利用率達(dá)到最大,系統(tǒng)數(shù)據(jù)操作負(fù)荷最小。 1.7 數(shù)據(jù)庫的實現(xiàn)、運行和維護(hù) 數(shù)據(jù)庫實現(xiàn)的內(nèi)容包括使用DBMS創(chuàng)建實際數(shù)據(jù)庫結(jié)構(gòu)、加載初始數(shù)據(jù)、編制和調(diào)試相應(yīng)的數(shù)據(jù)庫系統(tǒng)應(yīng)用程序。數(shù)據(jù)庫的運行內(nèi)容是指使用已加載的初始數(shù)據(jù)對數(shù)據(jù)庫系統(tǒng)進(jìn)行試運行、制訂合理的數(shù)據(jù)備份計劃、調(diào)整數(shù)據(jù)庫的安全性和完整性條件。數(shù)據(jù)庫的維護(hù)內(nèi)容是對系統(tǒng)的運行進(jìn)行監(jiān)督,及時發(fā)現(xiàn)系統(tǒng)的問題,給出解決方案。 1.8 SQL Server 2012簡介 1.8.1 SQL Server 2012產(chǎn)品性能 SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),最初是由Microsoft、Sybase及Ashton-Tate三家公司開發(fā)的,于1988 年推出了第一個OS/2 版本。1992年,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上。后來,Microsoft不斷對SQL Server的功能進(jìn)行擴(kuò)充,推出了更多產(chǎn)品版本,分別是SQL Server 7.0、SQL Server 2000、SQL Server 2005、SQL Server 2008、SQL Server 2012和SQL Server 2014。本書使用的是SQL Server 2012。 SQL Server 2012是一個重要的產(chǎn)品版本。作為新一代的數(shù)據(jù)平臺產(chǎn)品,SQL Server 2012全面支持云技術(shù),并且能夠快速構(gòu)建相應(yīng)的解決方案,實現(xiàn)私有云與公有云之間數(shù)據(jù)的擴(kuò)展與應(yīng)用的遷移。SQL Server 2012的云計算信息平臺可幫助企業(yè)對整個組織有突破性的深入了解,并且能夠快速在內(nèi)部和公共云端重新部署方案和擴(kuò)展數(shù)據(jù),提供對企業(yè)基礎(chǔ)架構(gòu)最高級別的支持。在業(yè)界領(lǐng)先的商業(yè)智能領(lǐng)域,SQL Server 2012 提供了更多更全面的功能以滿足不同人群對數(shù)據(jù)以及信息的需求,包括支持來自不同網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)的交互,全面的自助分析等創(chuàng)新功能。針對大數(shù)據(jù)以及數(shù)據(jù)倉庫,SQL Server 2012 提供從數(shù) TB 到數(shù)百 TB 全面端到端的解決方案。 SQL Server 2012推出了許多新的特性和關(guān)鍵的改進(jìn),包括通過 AlwaysOn 提供所需運行時間和數(shù)據(jù)保護(hù),通過列存儲索引獲得突破性和可預(yù)測的性能,通過用于組的新用戶定義角色和默認(rèn)架構(gòu)來幫助實現(xiàn)安全性和遵從性,通過列存儲索引實現(xiàn)快速數(shù)據(jù)恢復(fù)以便更深入地了解組織,通過SSIS改進(jìn)、用于Excel的 Master Data Services外接程序和新Data Quality Services,確保更加可靠、一致的數(shù)據(jù),通過使用 SQL Azure 和 SQL Server 數(shù)據(jù)工具的數(shù)據(jù)層應(yīng)用程序組件(DAC)奇偶校驗,優(yōu)化服務(wù)器和云間的IT和開發(fā)人員的工作效率,從而在數(shù)據(jù)庫、BI和云功能間實現(xiàn)統(tǒng)一的開發(fā)體驗。 1.8.2 SQL Server 2012產(chǎn)品版本 SQL Server 2012包含企業(yè)版(Enterprise)、商業(yè)智能版(Business Intelligence)、標(biāo)準(zhǔn)版(Standard)、Web版、開發(fā)者版(Developer)和精簡版(Express)。不同的版本具備不同的性能、功能和價格。 (1) 企業(yè)版。SQL Server 2012企業(yè)版是一個全面的數(shù)據(jù)管理和業(yè)務(wù)智能平臺,提供了全面的高端數(shù)據(jù)中心功能,可為關(guān)鍵任務(wù)工作負(fù)荷提供較高服務(wù)級別,支持最終用戶訪問深層數(shù)據(jù)。它的性能極為快捷、虛擬化不受限制,為關(guān)鍵業(yè)務(wù)應(yīng)用提供了企業(yè)級的可擴(kuò)展性、數(shù)據(jù)倉庫、安全、高級分析和報表支持,可以提供更加堅固的服務(wù)器和執(zhí)行大規(guī)模在線事務(wù)處理。 (2) 商業(yè)智能版。SQL Server 2012商業(yè)智能版是一個值得信賴的數(shù)據(jù)管理和報表平臺,可支持組織構(gòu)建和部署安全、可擴(kuò)展且易于管理的商業(yè)智能解決方案。它提供基于瀏覽器的數(shù)據(jù)瀏覽與可見性等卓越功能、功能強(qiáng)大的數(shù)據(jù)集成功能,以及增強(qiáng)的集成管理。 (3) 標(biāo)準(zhǔn)版。SQL Server 2012標(biāo)準(zhǔn)版是一個完整的數(shù)據(jù)管理和業(yè)務(wù)智能平臺,為部門級應(yīng)用提供了最佳的易用性和可管理特性,提供了基本數(shù)據(jù)管理和商業(yè)智能數(shù)據(jù)庫,使部門和小型組織能夠順利運行其應(yīng)用程序,并支持將常用開發(fā)工具用于內(nèi)部部署和云部署,有助于以最少的 IT 資源獲得高效的數(shù)據(jù)庫管理。 (4) Web版。SQL Server 2012 Web版是針對運行于Windows服務(wù)器中要求高可用、面向Internet Web服務(wù)的環(huán)境而設(shè)計的,為實現(xiàn)低成本、大規(guī)模、高可用性的Web應(yīng)用或客戶托管解決方案提供了必要的支持工具。 (5) 開發(fā)者版。SQL Server 2012開發(fā)者版允許開發(fā)人員構(gòu)建和測試基于SQL Server的任意類型應(yīng)用。這一版本擁有所有企業(yè)版的特性,但只限于在開發(fā)、測試和演示中使用,而不能用作生產(chǎn)服務(wù)器。 (6) 精簡版。SQL Server 2012精簡版是SQL Server的一個免費版本,擁有核心的數(shù)據(jù)庫功能,它是為了學(xué)習(xí)、創(chuàng)建桌面應(yīng)用和小型服務(wù)器應(yīng)用而發(fā)布的。 1.8.3 SQL Server 2012管理工具 SQL Server 2012的管理工具介紹如下。 (1) SQL Server Management Studio。SQL Server Management Studio是一套管理工具,用于管理從屬于SQL Server 的組件。SQL Server Management Studio 包含用于編寫和編輯腳本的代碼編輯器,用于查找、修改、編寫、運行腳本或運行SQL Server實例的對象資源管理器,用于查找模板以及為模板編寫腳本的模板資源管理器,用于將相關(guān)腳本組織并存儲為項目一部分的解決方案資源管理器,用于顯示當(dāng)前選定對象屬性的屬性窗口。SQL Server Management Studio提供了用于數(shù)據(jù)庫管理的圖形工具和功能豐富的開發(fā)環(huán)境,使得SQL Server的各組件可以協(xié)同工作,如圖1.2所示。 圖1.2 SQL Server Management Studio (2) SQL Server配置管理器。使用 SQL Server 配置管理器可以配置 SQL Server 服務(wù) 和網(wǎng)絡(luò)連接,如圖1.3所示。SQL Server 配置管理器管理與 SQL Server 相關(guān)的服務(wù),包括啟動、停止和暫停服務(wù),配置服務(wù)啟動方式,禁用服務(wù),修改服務(wù)配置,更改SQL Server服務(wù)所使用的賬戶密碼,使用命令行參數(shù)啟動SQL Server,查看服務(wù)的屬性。SQL Server 配置管理器可以啟用或禁用服務(wù)器SQL Server 網(wǎng)絡(luò)協(xié)議,配置服務(wù)器SQL Server 網(wǎng)絡(luò)協(xié)議。SQL Server配置管理器可以完成客戶端連接到 SQL Server 實例時的協(xié)議順序,配置客戶端連接協(xié)議,創(chuàng)建SQL Server實例的別名,使客戶端能夠使用自定義連接字符串進(jìn)行連接。 圖1.3 SQL Server配置管理器 (3) SQL Server Profiler。SQL Server Profiler是用于監(jiān)視SQL Server 2012數(shù)據(jù)庫引擎和分析服務(wù)的實時監(jiān)視工具,如圖1.4所示。SQL Server Profiler顯示SQL Server的內(nèi)部解析查詢,供用戶監(jiān)視系統(tǒng)和分析查詢性能。SQL Server Profiler可以創(chuàng)建基于可重用模板的跟蹤,在跟蹤運行時監(jiān)視跟蹤結(jié)果,并將跟蹤結(jié)果存儲在表中,根據(jù)需要啟動、停止、暫停和修改跟蹤結(jié)果,重播跟蹤結(jié)果。 圖1.4 SQL Server Profiler (4) 數(shù)據(jù)庫引擎優(yōu)化顧問。數(shù)據(jù)庫引擎優(yōu)化顧問是一種工具,用于分析在一個或多個數(shù)據(jù)庫中運行的工作負(fù)荷的性能效果,并提供修改數(shù)據(jù)庫物理結(jié)構(gòu)的建議,包括添加、修改和刪除聚集索引、非聚集索引、索引視圖和分區(qū),使得查詢處理器能夠用最短的時間執(zhí)行工作負(fù)荷任務(wù),從而幫助用戶優(yōu)化數(shù)據(jù)庫的結(jié)構(gòu),如圖1.5所示。 圖1.5 數(shù)據(jù)庫引擎優(yōu)化顧問 (5) 數(shù)據(jù)質(zhì)量客戶端。數(shù)據(jù)質(zhì)量客戶端提供了一個非常簡單和直觀的圖形用戶界面,用于連接到 DQS 數(shù)據(jù)庫并執(zhí)行數(shù)據(jù)清理操作,可以集中監(jiān)視在數(shù)據(jù)清理操作過程中執(zhí)行的各項活動。 (6) SQL Server數(shù)據(jù)工具。SQL Server 數(shù)據(jù)工具(SSDT)為Analysis Services、Reporting Services 和 Integration Services提供集成環(huán)境并幫助生成解決方案。SSDT 中的數(shù)據(jù)庫項目使得可以在 Visual Studio 內(nèi)為任何 SQL Server 平臺(無論是內(nèi)部還是外部)執(zhí)行其所有數(shù)據(jù)庫設(shè)計工作。 (7) 連接組件。連接組件是客戶端和服務(wù)器之間通信的組件以及用于 DB-Library、ODBC 和 OLE DB 的網(wǎng)絡(luò)庫。 1.9 回到工作場景 通過對1.2~1.8節(jié)內(nèi)容的學(xué)習(xí),已經(jīng)掌握了數(shù)據(jù)庫的基本概念和數(shù)據(jù)庫發(fā)展歷史,了解了需求分析,掌握了概念模型設(shè)計和邏輯模型設(shè)計,了解了物理模型設(shè)計、數(shù)據(jù)庫實現(xiàn)、運行和數(shù)據(jù)庫維護(hù),熟悉了SQL Server 2012的組成,此時足以完成學(xué)生成績數(shù)據(jù)庫的設(shè)計。下面回到前面介紹的工作場景中,完成工作任務(wù)。 【工作過程】 創(chuàng)建一個學(xué)生成績數(shù)據(jù)庫,涉及的信息包括校內(nèi)所有的系、班級、學(xué)生、課程和學(xué)生成績。 本章首先完成學(xué)生成績數(shù)據(jù)庫的設(shè)計,具體數(shù)據(jù)庫的建立在后面章節(jié)中完成。 學(xué)生成績數(shù)據(jù)庫的信息內(nèi)容為:每個系有系編號、系名稱,每個班級有班級編號、班級名稱、專業(yè)、所屬系,每個學(xué)生有學(xué)生編號、姓名、班級編號、生日、性別、住址,每門課程有課程編號、課程名稱、課程類別、學(xué)分。每位學(xué)生屬于一個班級,每個班級屬于一個系,每個學(xué)生修多門課程,每門課程有多個學(xué)生選修,并有課程成績。 先畫出學(xué)生成績數(shù)據(jù)庫的E-R圖,再轉(zhuǎn)換成關(guān)系模型。 由題意可知,學(xué)生成績數(shù)據(jù)庫E-R圖中包含4個實體集:系、班級、學(xué)生和課程。各實體集的屬性設(shè)計為:系(系編號,系名稱),班級(班級編號,班級名稱,專業(yè),系編號),學(xué)生(學(xué)生編號,姓名,班級編號,生日,性別,住址),課程(課程編號,課程名稱,課程類別,學(xué)分)。各實體集之間的聯(lián)系包括:班級與系之間的隸屬關(guān)系;學(xué)生與班級之間的隸屬關(guān)系;學(xué)生選修課程之間的"選修"聯(lián)系,"選修"聯(lián)系應(yīng)有成績屬性。根據(jù)以上分析得到E-R圖,如圖1.6所示。 根據(jù)學(xué)生成績數(shù)據(jù)庫E-R圖,轉(zhuǎn)換得到學(xué)生成績數(shù)據(jù)庫的關(guān)系模式如下。 系(系編號,系名稱)。 班級(班級編號,班級名稱,專業(yè),系編號)。 學(xué)生(學(xué)生編號,姓名,班級編號,生日,性別,住址)。 課程(課程編號,課程名稱,課程類別,學(xué)分)。 成績(學(xué)生編號,課程編號,成績)。 圖1.6 學(xué)生成績數(shù)據(jù)庫E-R圖 1.10 工作實訓(xùn)營 1.10.1 訓(xùn)練實例 1. 訓(xùn)練內(nèi)容 設(shè)計一個商品信息管理數(shù)據(jù)庫,其信息內(nèi)容如下。 每個業(yè)務(wù)員有工號、姓名,每種商品有商品編號、商品名稱、價格、庫存數(shù)量。 每個業(yè)務(wù)員可以銷售多種商品,每種商品可以由多個業(yè)務(wù)員銷售。銷售記錄有銷售編號、商品編號、數(shù)量、銷售日期、工號。 每種商品可以由多個供應(yīng)商供應(yīng),每個供應(yīng)商有供應(yīng)商編號、供應(yīng)商名稱、聯(lián)系電話。 每個供應(yīng)商可以供應(yīng)多種商品,每個供應(yīng)記錄有供應(yīng)編號、商品編號、數(shù)量、價格、供應(yīng)日期、供應(yīng)商編號。 先畫出商品信息管理數(shù)據(jù)庫的E-R圖,再轉(zhuǎn)換成關(guān)系模型。 2. 訓(xùn)練目的 (1) 掌握概念模型設(shè)計。 (2) 掌握邏輯模型設(shè)計。 3. 訓(xùn)練過程 參照1.9節(jié)中的操作步驟。 4. 技術(shù)要點 在畫E-R圖時,要注意E-R圖中各實體間的聯(lián)系及聯(lián)系上的屬性。 1.10.2 工作實踐常見問題解析 【常見問題】如何把握數(shù)據(jù)庫中表的規(guī)范化程度? 【答】所謂規(guī)范化處理,是指使用正規(guī)的方法將數(shù)據(jù)分為多個相關(guān)的表。規(guī)范化數(shù)據(jù)庫中的表列數(shù)少,非規(guī)范化數(shù)據(jù)庫中的表列數(shù)多。規(guī)范化的表排序時速度可以大大提高,使表中的索引使用更少的列,可提高數(shù)據(jù)庫性能。通常,合理的規(guī)范化會提高性能。但隨著規(guī)范化的不斷提高,查詢時常常需要連接查詢和復(fù)雜的查詢語句,這會影響到查詢的性能和速度。因此,在滿足查詢性能要求的條件下,盡量提高數(shù)據(jù)庫的規(guī)范化程度,適當(dāng)?shù)臄?shù)據(jù)冗余對數(shù)據(jù)庫的業(yè)務(wù)處理是必要的,不必簡單追求高規(guī)范化。 1.11 習(xí)題 一、填空題 (1) 數(shù)據(jù)是____________________________________。 (2) 數(shù)據(jù)庫是一個____________________________________的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)是按照一定的____________________________________組織、描述和存儲的,有較小的____________________________________、較高的__________________________________。 (3) 數(shù)據(jù)庫管理系統(tǒng)是使用和管理數(shù)據(jù)庫的____________________________________,負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制。 (4) 數(shù)據(jù)庫管理員是專門負(fù)責(zé)____________________________________的人。 (5) 數(shù)據(jù)庫的發(fā)展大致劃分為以下幾個階段:________________________________、____________________________和_______________________。 (6) 數(shù)據(jù)庫系統(tǒng)通常采用3級模式結(jié)構(gòu),即數(shù)據(jù)庫系統(tǒng)由_________________________、_________________________和_______________________3級組成。 (7) 數(shù)據(jù)庫設(shè)計實施的整個過程包括____________________________________、____________________________________、____________________________________、___________________________________、_________________________________5個階段。 (8) 需求分析生成的結(jié)果包括________________________________________________、____________________________________、____________________________________和____________________________________等。 (9) 實體-聯(lián)系模型屬于____________________________________模型。實體-聯(lián)系模型是用________________________________圖來描述現(xiàn)實世界的概念模型。E-R圖的內(nèi)容包括____________________________________。 (10) 邏輯模型通常由____________________________________________________、____________________________________和___________________________________組成。 (11) 關(guān)系模型的完整性分為3類,即____________________________________、____________________________________和____________________________________。 (12) 兩個實體集之間的聯(lián)系種類分為____________________________________、____________________________________和____________________________________。在轉(zhuǎn)換成關(guān)系模式時,________________________________的聯(lián)系可以轉(zhuǎn)換成單個關(guān)系模式,也可以與任意一端的實體集轉(zhuǎn)換成的關(guān)系模式合并;________________________________的聯(lián)系可以轉(zhuǎn)換成單個關(guān)系模式,也可以與多端的實體集轉(zhuǎn)換成的關(guān)系模式合并;____________________________________的聯(lián)系只能轉(zhuǎn)換成單個關(guān)系模式。 二、操作題 設(shè)計一個圖書管理數(shù)據(jù)庫,信息內(nèi)容如下。 每本圖書屬于一個圖書類別,每個圖書類別有多本圖書。每本圖書有圖書編號、圖書名稱、類別編號。每個圖書類別有類別編號、類別名稱。 每個讀者屬于一個讀者類別,每個讀者類別有多個讀者。每個讀者有讀者編號、讀者姓名、類別編號、生日、性別、住址、郵編、電話、注冊日期、當(dāng)前狀態(tài)、備注。每個讀者類別有類別編號、類別名稱、借書最大數(shù)量、借書期限。 每個讀者可以借閱多本圖書,每本圖書可以被多次借閱。每次借閱記錄有記錄編號、讀者編號、圖書編號、借出日期、還入日期、狀態(tài)。 先畫出圖書管理數(shù)據(jù)庫的E-R圖,再轉(zhuǎn)換成關(guān)系模型。
你還可能感興趣
我要評論
|