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