版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQLServer2008網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理項(xiàng)目教程高等職業(yè)教育精品示范教材項(xiàng)目一:數(shù)據(jù)庫(kù)概述需求分析概念模型設(shè)計(jì)關(guān)系模型設(shè)計(jì)任務(wù)一任務(wù)二任務(wù)三數(shù)據(jù)庫(kù)概述任務(wù)1:需求分析需求分析數(shù)據(jù)庫(kù)技術(shù)是數(shù)據(jù)管理的核心技術(shù),是計(jì)算機(jī)科學(xué)的重要分支。需求分析是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ),是系統(tǒng)開發(fā)中的一個(gè)關(guān)鍵過程。項(xiàng)目實(shí)例:“學(xué)生信息管理系統(tǒng)”。業(yè)務(wù)需求為:能夠滿足學(xué)校對(duì)院系信息、班級(jí)信息、課程信息、學(xué)生學(xué)籍信息以及學(xué)生成績(jī)信息的管理需求;能夠滿足各用戶對(duì)上述信息的查詢需求;能夠滿足各用戶對(duì)學(xué)生學(xué)籍信息和學(xué)生成績(jī)信息的分類統(tǒng)計(jì)需求。1.1.1任務(wù)分析需求分析了解數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)和數(shù)據(jù)庫(kù)設(shè)計(jì)的基本概念;掌握進(jìn)行需求分析的過程和方法。1.1.2相關(guān)知識(shí)需求分析(1)數(shù)據(jù):是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象,是描述客觀事務(wù)及其活動(dòng)的抽象符號(hào)。(2)數(shù)據(jù)庫(kù):就是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的、統(tǒng)一管理的數(shù)據(jù)集合。(3)數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem):是一種操縱和管理數(shù)據(jù)庫(kù)的系統(tǒng)軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù),簡(jiǎn)稱DBMS。(4)數(shù)據(jù)庫(kù)設(shè)計(jì)(DatabaseDesign):是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)上,設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和建立數(shù)據(jù)庫(kù)的過程。(5)需求分析:它的任務(wù)就是明確用戶的各種需求,并在此基礎(chǔ)上確定所研發(fā)系統(tǒng)的功能。注意:需求分析是否做得充分與準(zhǔn)確,決定了在此基礎(chǔ)上構(gòu)建數(shù)據(jù)庫(kù)大廈的速度與質(zhì)量,具有舉足輕重的地位。1.1.3任務(wù)實(shí)施需求分析畫出“學(xué)生信息管理系統(tǒng)”的業(yè)務(wù)流程圖步驟1:?jiǎn)?dòng)MicrosoftOfficeVisio,單擊主菜單“文件”|“新建”|“流程圖”|“基本流程圖”。步驟2:在左邊的“基本流程圖形狀”窗口上單擊“進(jìn)程”(矩形)標(biāo)簽,并將其拖動(dòng)到繪圖頁(yè)上表示業(yè)務(wù)流程圖的“活動(dòng)”;還可以使用復(fù)制、粘貼的功能繪制相同的形狀;選中要進(jìn)行布局的形狀,單擊主菜單“形狀”|“對(duì)齊形狀”,進(jìn)行形狀的布局。操作圖示操作圖示1.1.3任務(wù)實(shí)施需求分析步驟3:?jiǎn)螕艄ぞ邫谥械摹斑B接線工具”,可以在繪圖頁(yè)上繪制業(yè)務(wù)流程圖的“邏輯關(guān)系線”。點(diǎn)擊工具欄中的“線條粗細(xì)”、“線型”、和“線端”,對(duì)邏輯關(guān)系線進(jìn)行相關(guān)設(shè)置。也可以點(diǎn)擊工具欄中的“繪圖工具”,手動(dòng)繪制矩形、圓形、橢圓形、直線、曲線等形狀。步驟4:?jiǎn)螕衾L圖頁(yè)中的形狀,即可在其中輸入文字,選擇工具欄中的“A文本工具”,可在繪圖頁(yè)上輸入文字,選擇主菜單或快捷菜單的“格式”|“文本”/“線條”/“填充”等進(jìn)行形狀的格式化,如圖1-4所示。操作圖示操作圖示1.1.3任務(wù)實(shí)施需求分析步驟5:最終繪制好“學(xué)生信息管理系統(tǒng)”的業(yè)務(wù)流程圖。2.畫出“學(xué)生信息管理系統(tǒng)”的系統(tǒng)功能結(jié)構(gòu)圖步驟1:?jiǎn)?dòng)MicrosoftOfficeVisio,單擊主菜單“文件”|“新建”|“流程圖”|“基本流程圖”,新建一個(gè)系統(tǒng)功能圖文件。步驟2:在左邊的“基本流程圖形狀”窗口上單擊“進(jìn)程”(矩形)標(biāo)簽,并將其拖動(dòng)到繪圖頁(yè)上表示系統(tǒng)功能結(jié)構(gòu)圖的“功能”;還可以使用復(fù)制、粘貼的功能繪制相同的形狀;選中要進(jìn)行布局的形狀,單擊主菜單“形狀”|“對(duì)齊形狀”,進(jìn)行形狀的布局。操作圖示1.1.3任務(wù)實(shí)施需求分析步驟3:?jiǎn)螕艄ぞ邫谥械摹斑B接線工具”,可以在繪圖頁(yè)上繪制箭頭,表示系統(tǒng)功能結(jié)構(gòu)圖中各功能之間的從屬關(guān)系。點(diǎn)擊工具欄中的“線條粗細(xì)”、“線型”和“線端”,對(duì)箭頭線進(jìn)行相關(guān)設(shè)置。也可以點(diǎn)擊工具欄中的“繪圖工具”,手動(dòng)繪制矩形、圓形、橢圓形、直線和曲線等形狀。步驟4:?jiǎn)螕衾L圖頁(yè)中的形狀,即可在其中輸入文字,選擇工具欄中的”A文本工具”,可在繪圖頁(yè)上輸入文字,選擇主菜單或快捷菜單的“格式”|“文本”/“線條”/“填充”等進(jìn)行形狀的格式化。步驟5:最終繪制好“學(xué)生信息管理系統(tǒng)”的系統(tǒng)功能結(jié)構(gòu)圖。操作圖示1.1.3任務(wù)實(shí)施需求分析3.“學(xué)生信息管理系統(tǒng)”的系統(tǒng)功能分析院系管理功能:用于添加、修改、刪除和查詢?cè)合敌畔?。班?jí)管理功能:用于添加、修改、刪除和查詢班級(jí)信息。課程管理功能:用于添加、修改、刪除和查詢課程信息;用于添加、修改、刪除和查詢班級(jí)排課信息。學(xué)籍管理功能:用于添加、修改、刪除、查詢和分類查詢學(xué)生的學(xué)籍信息。成績(jī)管理功能:用于添加、修改、刪除、查詢和分類統(tǒng)計(jì)學(xué)生的課程考試成績(jī)信息。數(shù)據(jù)管理功能:用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份操作。用戶管理功能:用于添加、刪除和查詢用戶信息,還可以進(jìn)行修改密碼和修改權(quán)限的操作。權(quán)限說(shuō)明:該系統(tǒng)的用戶類別有三個(gè),分別是admin(管理員用戶)、teacher(教師用戶)和student(學(xué)生用戶),不同的用戶具有不同的權(quán)限。任務(wù)2:概念模型設(shè)計(jì)概念模型設(shè)計(jì)將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)(即概念模型)的過程就是概念結(jié)構(gòu)設(shè)計(jì),它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。根據(jù)任務(wù)1的需求分析結(jié)果,設(shè)計(jì)“學(xué)生信息管理系統(tǒng)”的概念模型。1.2.1任務(wù)分析概念模型設(shè)計(jì)掌握實(shí)體、屬性和聯(lián)系等概念模型的基本要素,會(huì)使用實(shí)體聯(lián)系圖(E-R圖)來(lái)描述實(shí)體、屬性和實(shí)體間的聯(lián)系。1.2.2相關(guān)知識(shí)概念模型設(shè)計(jì)1、實(shí)體:指現(xiàn)實(shí)世界中存在并可以相互區(qū)別的事物,可以是人或物等實(shí)際對(duì)象,也可以是一個(gè)具體的概念。
例如:學(xué)生、課程都是現(xiàn)實(shí)世界中客觀存在并可相互區(qū)分的事物,所以學(xué)生、課程都是實(shí)體。2、屬性:實(shí)體或聯(lián)系所具有的某些特征稱之為屬性,一個(gè)實(shí)體或一個(gè)聯(lián)系可以使用許多屬性來(lái)描述。
例如:學(xué)生實(shí)體可以用學(xué)號(hào)、姓名、性別、出生年月、政治面貌、班級(jí)編號(hào)、班級(jí)名稱、家庭住址、郵編和備注等屬性來(lái)描述。3、屬性值:屬性的具體取值,稱之為該屬性的屬性值。
例如:“秦伊諾”就是學(xué)生實(shí)體姓名屬性的具體取值,所以“秦伊諾”就是學(xué)生實(shí)體姓名屬性的屬性值。1.2.2相關(guān)知識(shí)概念模型設(shè)計(jì)4、實(shí)例:實(shí)體表示的是一類事物,其中的一個(gè)具體事物稱之為該實(shí)體的一個(gè)實(shí)例。例如:“01201401001”,“秦伊諾”,“女”,“1995-10-08”,“團(tuán)員”,“01201401”,“14級(jí)計(jì)算機(jī)應(yīng)用技術(shù)”,“河南省信陽(yáng)市平橋區(qū)文喜小區(qū)14棟2單元302”,“464000”,“品學(xué)兼優(yōu)”,則具體表示了一個(gè)學(xué)生,它就是學(xué)生實(shí)體的一個(gè)實(shí)例。5、關(guān)鍵字:能夠唯一標(biāo)識(shí)出實(shí)體或聯(lián)系的屬性或?qū)傩缘慕M合,稱稱之為該實(shí)體或該聯(lián)系的關(guān)鍵字,關(guān)鍵字也稱為碼。
例如:“學(xué)號(hào)”這個(gè)屬性可以唯一標(biāo)識(shí)“學(xué)生”實(shí)體,因此“學(xué)號(hào)”可以作為“學(xué)生”實(shí)體的關(guān)鍵字;由于可能出現(xiàn)的學(xué)生重名現(xiàn)象,導(dǎo)致“姓名”的屬性值不唯一,所以“姓名”這個(gè)屬性不能唯一標(biāo)識(shí)“學(xué)生”實(shí)體,不是“學(xué)生”實(shí)體的關(guān)鍵字。1.2.2相關(guān)知識(shí)概念模型設(shè)計(jì)6、聯(lián)系:實(shí)體之間的關(guān)系稱之為聯(lián)系。實(shí)體之間的聯(lián)系有3種,即一對(duì)一(1:1)、一對(duì)多(1:n)和多對(duì)多(m:n)。
例如:一個(gè)學(xué)生只能屬于一個(gè)班級(jí),而一個(gè)班級(jí)中可以有多個(gè)學(xué)生,所以班級(jí)實(shí)體和學(xué)生實(shí)體的聯(lián)系是一對(duì)多的聯(lián)系,記為1:n。7、E-R圖:通常使用E-R圖(或稱E-R模型)來(lái)描述現(xiàn)實(shí)世界的概念模型,E-R圖提供了表示實(shí)體、屬性和聯(lián)系的方法:(1)實(shí)體:用矩形表示,矩形框內(nèi)寫明實(shí)體名稱。(2)屬性:用橢圓形表示,橢圓框內(nèi)寫明屬性的名稱,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)。(3)聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系的名稱,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1:1,1:n,m:n)。需要注意的是,如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無(wú)向邊與該聯(lián)系連接起來(lái)。1.2.3任務(wù)實(shí)施概念模型設(shè)計(jì)步驟1:?jiǎn)?dòng)MicrosoftOfficeVisio,單擊主菜單“文件”|“新建”|“流程圖”|“基本流程圖”,新建一個(gè)系統(tǒng)E-R圖文件。步驟2:在左邊的“基本流程圖形狀”窗口上單擊“進(jìn)程”(矩形)、“判定”(菱形)標(biāo)簽,并將其拖動(dòng)到繪圖頁(yè)上表示系統(tǒng)E-R圖的“實(shí)體”和“聯(lián)系”;點(diǎn)擊工具欄中的“繪圖工具”,手動(dòng)繪制橢圓形,表示E-R圖的“屬性”。還可以使用復(fù)制、粘貼的功能繪制相同的形狀;選中要進(jìn)行布局的形狀,單擊主菜單“形狀”|“對(duì)齊形狀”,進(jìn)行形狀的布局。步驟3:?jiǎn)螕艄ぞ邫谥械摹斑B接線工具”,可以在繪圖頁(yè)上繪制系統(tǒng)E-R圖的無(wú)向邊。點(diǎn)擊工具欄中的“線條粗細(xì)”和“線型”對(duì)無(wú)向邊進(jìn)行相關(guān)設(shè)置。也可以點(diǎn)擊工具欄中的“繪圖工具”,手動(dòng)繪制矩形、橢圓形和無(wú)向邊等形狀。1.2.3任務(wù)實(shí)施概念模型設(shè)計(jì)步驟4:?jiǎn)螕衾L圖頁(yè)中的形狀,即可在其中輸入文字,選擇工具欄中的“A文本工具”,可在繪圖頁(yè)上輸入文字,選擇主菜單或快捷菜單的“格式”|“文本”/”、“線條”/“填充”等進(jìn)行形狀的格式化。步驟5:畫出該系統(tǒng)“班級(jí)”和“課程”兩個(gè)實(shí)體的II級(jí)E-R圖;以及該系統(tǒng)的I級(jí)E-R圖。操作圖示操作圖示任務(wù)3:關(guān)系模型設(shè)計(jì)關(guān)系模型設(shè)計(jì)關(guān)系模型設(shè)計(jì)的任務(wù)就是把概念模型設(shè)計(jì)階段設(shè)計(jì)好的E-R圖轉(zhuǎn)換為與選用數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。關(guān)系模型是通過二維表來(lái)表示實(shí)體以及實(shí)體之間的聯(lián)系。關(guān)系模型是目前數(shù)據(jù)庫(kù)系統(tǒng)普遍采用的數(shù)據(jù)模型,也是應(yīng)用最廣泛的數(shù)據(jù)模型。將任務(wù)2設(shè)計(jì)的“學(xué)生信息管理系統(tǒng)”的概念模型轉(zhuǎn)換為關(guān)系模型。1.3.1任務(wù)分析關(guān)系模型設(shè)計(jì)掌握元組、屬性、主關(guān)鍵字、外關(guān)鍵字等關(guān)系的相關(guān)術(shù)語(yǔ);會(huì)將E-R圖轉(zhuǎn)換為關(guān)系模型;會(huì)對(duì)關(guān)系模型進(jìn)行規(guī)范化操作;對(duì)數(shù)據(jù)完整性有清晰的認(rèn)識(shí),為以后學(xué)習(xí)實(shí)現(xiàn)數(shù)據(jù)完整性技術(shù)打下基礎(chǔ)。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)1、關(guān)系:關(guān)系模型是通過二維表格來(lái)表示實(shí)體以及實(shí)體之間的聯(lián)系。但并不是所有的二維表格都能稱之為關(guān)系,關(guān)系必須滿足以下特征:(1)列是不可再分的最小數(shù)據(jù)項(xiàng)。(2)每一列表示一個(gè)屬性,且每列的名字不能相同,列的每個(gè)值的類型必須與對(duì)應(yīng)屬性的類型相同。(3)關(guān)系中不存在完全相同的兩行。(4)行的順序無(wú)關(guān)緊要,列的順序也無(wú)關(guān)緊要。例如:判斷表1-1、表1-2和表1-3是否是關(guān)系。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)學(xué)號(hào)姓名性別政治面貌班級(jí)編號(hào)班級(jí)名稱聯(lián)系方式家庭住址郵編01201401001秦伊諾女團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)河南省信陽(yáng)市46400001201401002張航男團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)吉林省長(zhǎng)春市13000001201401003李小飛男黨員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)江西省贛州市34100001201401004趙文婷男團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)福建省福州市350000用戶名密碼用戶類別adminadminadminadminadminadminteacherteacherteacherstudentstudentstudent表1-1學(xué)生表表1-2用戶表1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)表1-3班級(jí)排課表學(xué)期班級(jí)編號(hào)課程編號(hào)課程名稱301201401001網(wǎng)絡(luò)數(shù)據(jù)庫(kù)301201401002網(wǎng)頁(yè)設(shè)計(jì)與制作201201401003Java程序設(shè)計(jì)101201401004高等數(shù)學(xué)分析:表1-1的“聯(lián)系方式”列可以再分為“家庭住址”和“郵編”兩列,不滿足關(guān)系的第一條特征,故表1-1不是關(guān)系。表1-2中的第一行和第二行完全相同,不滿足關(guān)系的第三條特征,故表1-2不是關(guān)系。表1-3完全符合關(guān)系的所有特征,故表1-3是關(guān)系。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)2、關(guān)系的術(shù)語(yǔ)關(guān)系中的有些術(shù)語(yǔ)與概念模型的術(shù)語(yǔ)相同或類似,但請(qǐng)注意它們之間的異同。(1)關(guān)系:滿足上述特征的二維表格稱之為關(guān)系,每個(gè)二維表格稱為一個(gè)關(guān)系,每個(gè)關(guān)系都有一個(gè)關(guān)系名。例如:表1-3是一個(gè)關(guān)系,它的關(guān)系名為班級(jí)排課表。(2)元組:表中的一行,也叫做記錄。例如:表1-3中的3,01201401,001,網(wǎng)絡(luò)數(shù)據(jù)庫(kù)就叫做表1-3的一個(gè)元組,或一條記錄。(3)屬性:表中的各列,給每一個(gè)屬性起一個(gè)名字,叫屬性名,屬性也叫做字段。例如表1-3中的學(xué)期,班級(jí)編號(hào),課程編號(hào),課程名稱都是屬性。(4)屬性值:表中的各列對(duì)應(yīng)的數(shù)據(jù),也叫做字段值。例如表1-3中的網(wǎng)絡(luò)數(shù)據(jù)庫(kù),就是課程名稱這個(gè)屬性的屬性值。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)(5)候選關(guān)鍵字:若表中的某一屬性或?qū)傩缘慕M合能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性或?qū)傩缘慕M合為候選鍵,候選鍵可以有多個(gè)。例如:若把表1-1學(xué)生表規(guī)范為關(guān)系模型,則對(duì)于該表而言,學(xué)號(hào)屬性能夠唯一地標(biāo)識(shí)學(xué)生表的一行,若在學(xué)生表中增加一個(gè)身份證號(hào)碼的屬性,則該屬性也可以唯一地標(biāo)識(shí)學(xué)生表的一行,故學(xué)號(hào)和身份證號(hào)都是學(xué)生表的候選關(guān)鍵字。(6)主關(guān)鍵字:在候選關(guān)鍵字中選擇一個(gè)作為主關(guān)鍵字,主關(guān)鍵字又叫做主碼或主鍵。在一個(gè)表中只能有一個(gè)主關(guān)鍵字,主關(guān)鍵字的值必須唯一,且不允許為空值。通常情況下,選擇屬性值較短的那個(gè)屬性或?qū)傩缘慕M合作為主關(guān)鍵字。例如:對(duì)于規(guī)范為關(guān)系的學(xué)生表,可以選用學(xué)號(hào)作為該表的主關(guān)鍵字;對(duì)于表1-3班級(jí)課程表,可選擇(班級(jí)編號(hào),課程編號(hào))這兩個(gè)屬性的組合作為主關(guān)鍵字。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)(7)外關(guān)鍵字:也叫作外鍵或外碼,它是另一個(gè)表的主關(guān)鍵字。使用主關(guān)鍵字和外關(guān)鍵字建立起表和表之間的聯(lián)系。例如:表1-3班級(jí)排課表里存放的是班級(jí)所選的課程信息,其中班級(jí)編號(hào)屬性是班級(jí)信息表的主關(guān)鍵字,所以班級(jí)編號(hào)屬性是班級(jí)排課表的外關(guān)鍵字;同理課程編號(hào)屬性是課程表的主關(guān)鍵字,所以課程編號(hào)屬性是班級(jí)排課表的外關(guān)鍵字。(8)主屬性:能作為候選關(guān)鍵字的屬性。例如規(guī)范為關(guān)系的學(xué)生表的學(xué)號(hào)就是主屬性。(9)非主屬性:除了主屬性的其他屬性。例如規(guī)范為關(guān)系的學(xué)生表的姓名、性別都是非主屬性。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)3、將E-R圖轉(zhuǎn)換為關(guān)系模型的方法如下:將一個(gè)實(shí)體或聯(lián)系轉(zhuǎn)換為表,將實(shí)體或聯(lián)系的屬性轉(zhuǎn)換為表的列。實(shí)體或聯(lián)系的主關(guān)鍵字轉(zhuǎn)換為表的主關(guān)鍵字,它能唯一地標(biāo)識(shí)表中的每一行。4、關(guān)系模型的規(guī)范化將E-R圖轉(zhuǎn)換為關(guān)系模型后會(huì)經(jīng)常出現(xiàn)如下問題:數(shù)據(jù)冗余:例如學(xué)生姓名,在學(xué)生表中出現(xiàn),在成績(jī)表中也出現(xiàn);課程名稱在課程表中出現(xiàn),在班級(jí)排課表中也出現(xiàn),造成了數(shù)據(jù)的冗余。數(shù)據(jù)可能會(huì)出現(xiàn)不一致的現(xiàn)象:例如學(xué)生姓名、課程名稱的重復(fù)出現(xiàn),容易出現(xiàn)數(shù)據(jù)的不一致。如輸入課程名稱不規(guī)范,有的時(shí)候輸入全稱,有的時(shí)候輸入簡(jiǎn)稱。另外在修改的時(shí)候,可能會(huì)出現(xiàn)遺漏的情況,造成數(shù)據(jù)的不一致。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)數(shù)據(jù)維護(hù)困難:例如若某學(xué)生更改了姓名,那么就要在學(xué)生表和成績(jī)表中都要進(jìn)行修改,否則就會(huì)出現(xiàn)數(shù)據(jù)不一致。因此就會(huì)增加維護(hù)的工作量,造成數(shù)據(jù)的維護(hù)困難。那么如何評(píng)價(jià)數(shù)據(jù)庫(kù)關(guān)系模型設(shè)計(jì)的好壞呢?一般情況下,為了克服上述問題,都要對(duì)數(shù)據(jù)庫(kù)的關(guān)系模型進(jìn)行規(guī)范化,通常要求設(shè)計(jì)符合3范式(3NF)的要求。所謂范式就是組織數(shù)據(jù)的規(guī)則,根據(jù)一個(gè)關(guān)系滿足數(shù)據(jù)依賴的程序,可將范式分為1NF、2NF、3NF、4NF、5NF,后一種范式是建立在前一種范式的基礎(chǔ)上的,也就是若某關(guān)系滿足3NF,那它一定滿足2NF;若某關(guān)系滿足2NF,那它一定滿足1NF。由于4NF和5NF在實(shí)際應(yīng)用中意義不大,因此不再闡述。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)(1)第一范式(1NF)如果一個(gè)關(guān)系中的所有屬性都不可再分,則稱這個(gè)關(guān)系是1NF。其實(shí)若一個(gè)二維表格能稱之為關(guān)系,那么它就符合1NF的要求。這是因?yàn)槟芊Q之為關(guān)系的二維表格必須具備一些特征,其中有一條就是列是不可再分的最小數(shù)據(jù)項(xiàng)。例如表1-1學(xué)生表,聯(lián)系方式屬性可以再分成家庭住址和郵編兩個(gè)屬性,不符合1NF的要求,如何將該表規(guī)范成1NF呢?可以有兩種方法。一種方法是將聯(lián)系方式屬性展開,如表1-4所示。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)表1-4學(xué)生表學(xué)號(hào)姓名性別政治面貌班級(jí)編號(hào)班級(jí)名稱家庭住址郵編01201401001秦伊諾女團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)河南省信陽(yáng)市46400001201401002張航男團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)吉林省長(zhǎng)春市13000001201401003李小飛男黨員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)江西省贛州市34100001201401004趙文婷男團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)福建省福州市3500001.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)另一種方法是將該關(guān)系分解為兩個(gè)關(guān)系,如表1-5和表1-6所示。表1-5學(xué)生表學(xué)號(hào)姓名性別政治面貌班級(jí)編號(hào)班級(jí)名稱01201401001秦伊諾女團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)01201401002張航男團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)01201401003李小飛男黨員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)01201401004趙文婷男團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)表1-6學(xué)生通訊錄表學(xué)號(hào)家庭住址郵編01201401001河南省信陽(yáng)市46400001201401002吉林省長(zhǎng)春市13000001201401003江西省贛州市34100001201401004福建省福州市3500001.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)(2)第二范式(2NF)如果一個(gè)關(guān)系滿足1NF的要求,且所有非主屬性都完全函數(shù)依賴于主關(guān)鍵字,則稱這個(gè)關(guān)系是2NF。例如表1-4學(xué)生表,學(xué)號(hào)能唯一地標(biāo)識(shí)出該表中的每一行,所以學(xué)號(hào)是該表的主關(guān)鍵字。學(xué)號(hào)為“01201401001”的姓名是“秦伊諾”,學(xué)生的姓名完全能由學(xué)生的學(xué)號(hào)來(lái)決定,也就是說(shuō)有一個(gè)學(xué)號(hào)就會(huì)有一個(gè)并且只能有一個(gè)姓名與它對(duì)應(yīng),則稱姓名完全函數(shù)依賴學(xué)號(hào),也可以說(shuō)學(xué)號(hào)決定了姓名。同理,表1-4中的性別、政治面貌、班級(jí)編號(hào)、班級(jí)名稱、家庭住址和郵編等屬性也完全函數(shù)依賴于學(xué)號(hào),故表1-4符合2NF的要求。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)表1-3班級(jí)排課表,(班級(jí)編號(hào),課程編號(hào))能唯一地標(biāo)識(shí)出該表中的每一行,所以(班級(jí)編號(hào),課程編號(hào))是該表的主關(guān)鍵字。而當(dāng)給出課程編號(hào)時(shí)就可以唯一地確定出該課程編號(hào)所對(duì)應(yīng)的課程名稱,所以課程名稱屬性只依賴于主關(guān)鍵字的課程編號(hào),而與主關(guān)鍵字的班級(jí)編號(hào)無(wú)關(guān)。所以課程名稱只依賴于主關(guān)鍵字的一部分,則說(shuō)課程名稱部分函數(shù)依賴主關(guān)鍵字(班級(jí)編號(hào),課程編號(hào))。故表1-3不是2NF,
如何將該表規(guī)范為2NF呢?可將關(guān)系進(jìn)行拆分,將部分函數(shù)據(jù)依賴關(guān)系中的主屬性和非主屬性從關(guān)系中提取出來(lái),單獨(dú)構(gòu)成一個(gè)關(guān)系;將關(guān)系中余下的其他屬性加上主關(guān)鍵字,構(gòu)成關(guān)系。故可將表1-3中存在部分函數(shù)依賴關(guān)系的課程編號(hào)和課程名稱提取出來(lái)單獨(dú)構(gòu)成課程表,而班級(jí)排課表中包含余下的其他屬性和主關(guān)鍵字(班級(jí)編號(hào),課程編號(hào)),如表1-7和1-8所示。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)表1-7課程表表1-8班級(jí)排課表課程編號(hào)課程名稱001網(wǎng)絡(luò)數(shù)據(jù)庫(kù)002網(wǎng)頁(yè)設(shè)計(jì)與制作003Java程序設(shè)計(jì)004高等數(shù)學(xué)班級(jí)編號(hào)課程編號(hào)012014010010120140100201201401003012014010041.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)(3)第三范式(3NF)如果一個(gè)關(guān)系滿足2NF的要求,且關(guān)系中的任何一個(gè)非主屬性都不傳遞函數(shù)依賴主關(guān)鍵字,則稱這個(gè)關(guān)系是3NF。例如表1-4,學(xué)號(hào)可以唯一確定一個(gè)與它對(duì)應(yīng)的班級(jí)編號(hào),而班級(jí)編號(hào)又可以唯一確定一個(gè)與它對(duì)應(yīng)的班級(jí)名稱。也就是說(shuō)班級(jí)名稱是通過班級(jí)編號(hào)的傳遞而完全函數(shù)依賴于學(xué)號(hào)的,則稱學(xué)號(hào)和班級(jí)名稱之間存在著函數(shù)傳遞依賴關(guān)系,故表1-4不是3NF。如何將該表規(guī)范為3NF呢?首先要把存在函數(shù)傳遞依賴關(guān)系的班級(jí)編號(hào)和班級(jí)名稱提取出來(lái)單獨(dú)構(gòu)成一個(gè)班級(jí)表,然后在學(xué)生表中將班級(jí)名稱屬性去掉,如表1-9和表1-10所示。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)表1-9班級(jí)表表1-10學(xué)生表班級(jí)編號(hào)班級(jí)名稱0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)0120140214級(jí)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)0120140314級(jí)圖形圖像制作0120140414級(jí)電子信息技術(shù)學(xué)號(hào)姓名性別政治面貌班級(jí)編號(hào)家庭住址郵編01201401001秦伊諾女團(tuán)員01201401河南省信陽(yáng)市46400001201401002張航男團(tuán)員01201401吉林省長(zhǎng)春市13000001201401003李小飛男黨員01201401江西省贛州市3410001.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)5、數(shù)據(jù)完整性數(shù)據(jù)完整性使得不正確、無(wú)意義和不符合規(guī)范的數(shù)據(jù)不能進(jìn)入數(shù)據(jù)庫(kù),以確保數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的正確性和一致性。關(guān)系模型的數(shù)據(jù)完整性包括域完整性、實(shí)體完整性和參照完整性。(1)域完整性,也叫做列完整性或用戶定義完整性。關(guān)系的列的值域必須滿足某種特定數(shù)據(jù)類型或某種約束,如數(shù)據(jù)類型、格式、值域范圍、默認(rèn)值、是否允許為空等。例如表1-10學(xué)生表,學(xué)號(hào)屬性定義為12個(gè)長(zhǎng)度的字符型,只能輸入12個(gè)字符或6個(gè)漢字,若輸入“1111111111111”(13個(gè)字符),該數(shù)據(jù)不符合對(duì)學(xué)號(hào)屬性的定義,違反了學(xué)號(hào)屬性的域完整性。表1-10的性別屬性定義為2個(gè)長(zhǎng)度的字符型,只能輸入2個(gè)字符或1個(gè)漢字,并規(guī)定該列的取值只能是“男”或是“女”。苦輸入“woman”,該數(shù)據(jù)不符合對(duì)性別屬性的定義,違反了性別屬性的域完整性。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)(2)實(shí)體完整性,也叫做表的完整性。指關(guān)系中必須有一個(gè)主關(guān)鍵字,且主關(guān)鍵字不能取空值,或者說(shuō)關(guān)系中每個(gè)元組的主關(guān)鍵字都不能為空。例如表1-8班級(jí)排課表,(班級(jí)編號(hào),課程編號(hào))是主關(guān)鍵字,則它的取值不能為空,意味著班級(jí)編號(hào)和課程編號(hào)都不能為空,且主關(guān)鍵字的值要唯一,以保證該表的實(shí)體完整性。表1-10學(xué)生表,學(xué)號(hào)為主關(guān)鍵字,則它的取值必須唯一,且不能取空值,以保證該表的實(shí)體完整性。(3)參照完整性,也叫做引用完整性。在關(guān)系模型中,一個(gè)關(guān)系的外關(guān)鍵字關(guān)聯(lián)著另一個(gè)關(guān)系的主關(guān)鍵字。則外關(guān)鍵字和主關(guān)鍵字不但要定義的數(shù)據(jù)類型及長(zhǎng)度相同,而且對(duì)外關(guān)鍵字值進(jìn)行插入或修改時(shí)一定要參照主關(guān)鍵字的值是否存在,對(duì)主關(guān)鍵字進(jìn)行修改或刪除時(shí),也必須參照外關(guān)鍵字的值是否存在。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)例如:表1-7課程表和表1-8班級(jí)排課表,班級(jí)排課表中的課程編號(hào)是課程表的主關(guān)鍵字,是班級(jí)排課表的外關(guān)鍵字,則對(duì)班級(jí)排課表進(jìn)行插入記錄或修改記錄時(shí),插入的課程編號(hào)值或修改后的課程編號(hào)值,一定要在課程表里存在。若將表1-8班級(jí)排課表的第一條記錄的課程編號(hào),由“001”改為“005”,則違反了這兩張表的參照完整性,因?yàn)樵诒?-7中沒有課程編號(hào)為“005”的記錄。如何保證數(shù)據(jù)的參照完整性,要遵循以下規(guī)則:①對(duì)外關(guān)鍵字所在的表進(jìn)行插入操作時(shí),要保證插入的外關(guān)鍵字值要在主關(guān)鍵字所在的表中存在。例如若要向表1-8班級(jí)排課表插入數(shù)據(jù)時(shí),插入的課程編號(hào)值一定要在表1-7課程表中存在。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)②對(duì)外關(guān)鍵字所在的表進(jìn)行修改操作時(shí),要保證修改后的外關(guān)鍵字值要在主關(guān)鍵字所在的表中存在。例如若要修改表1-8班級(jí)排課表的數(shù)據(jù),修改后的課程編號(hào)值一定要在表1-7課程表中存在。③對(duì)主關(guān)鍵字所在的表進(jìn)行修改操作時(shí),首先檢查要修改的主關(guān)鍵字的值在外關(guān)鍵字所在的表中是否存在,如果存在則不允許修改,或者級(jí)聯(lián)修改所有與之相對(duì)應(yīng)的外關(guān)鍵字的值。例如要將表1-7課程表中的“001”課程編號(hào)修改為“005”,而表1-8班級(jí)排課表中存在課程編號(hào)為“001”的數(shù)據(jù),那么此時(shí)或者不允許修改,或者允許修改,但同時(shí)要將表1-8中課程編號(hào)“001”修改為“005”(級(jí)聯(lián)修改)。1.3.2相關(guān)知識(shí)關(guān)系模型設(shè)計(jì)④對(duì)主關(guān)鍵字所在的表進(jìn)行刪除操作時(shí),首先檢查要?jiǎng)h除記錄的主關(guān)鍵字的值在外關(guān)鍵字所在的表中是否存在,如果存在則不允許刪除,或者級(jí)聯(lián)刪除所有與之相對(duì)應(yīng)的外關(guān)鍵字的值所在的那些行。例如要將表1-7課程表中課程編號(hào)為“001”的記錄刪除,而表1-8班級(jí)排課表中存在課程編號(hào)為“001”的數(shù)據(jù),那么此時(shí)或者不允許刪除,或者允許刪除,但同時(shí)要將表1-8中課程編號(hào)為“001”的記錄也刪除(級(jí)聯(lián)刪除)。1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)將“學(xué)生信息管理系統(tǒng)”的E-R圖轉(zhuǎn)換為關(guān)系模型步驟1:根據(jù)“學(xué)生信息管理系統(tǒng)”的E-R圖,將實(shí)體“院系”轉(zhuǎn)換為一個(gè)關(guān)系,關(guān)系名為“院系表”,將該實(shí)體的屬性“院系編號(hào)”、“院系名稱”、“院系主任”轉(zhuǎn)換為關(guān)系的列,將該實(shí)體的主關(guān)鍵字“院系編號(hào)”轉(zhuǎn)換為關(guān)系的主關(guān)鍵字。轉(zhuǎn)換后的關(guān)系如表1-11所示。表1-11院系表院系編號(hào)院系名稱院系主任01計(jì)算機(jī)科學(xué)系張敏02規(guī)劃設(shè)計(jì)系程明亮03外語(yǔ)系蘇晴04管理系李力1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟2:將實(shí)體“班級(jí)”轉(zhuǎn)換為一個(gè)關(guān)系,關(guān)系名為“班級(jí)表”,將該實(shí)體的屬性“班級(jí)編號(hào)”、“班級(jí)名稱”、“院系編號(hào)”轉(zhuǎn)換為關(guān)系的列,將該實(shí)體的主關(guān)鍵字“班級(jí)編號(hào)”轉(zhuǎn)換為關(guān)系的主關(guān)鍵字。轉(zhuǎn)換后的關(guān)系如表1-12所示。表1-12班級(jí)表班級(jí)編號(hào)班級(jí)名稱院系編號(hào)0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)010120140214級(jí)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)010120140314級(jí)圖形圖像制作010120140414級(jí)電子信息技術(shù)011.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟3:將實(shí)體“課程”轉(zhuǎn)換為一個(gè)關(guān)系,關(guān)系名為“課程表”,將該實(shí)體的屬性“課程編號(hào)”、“課程名稱”、“課程類型”、“課程描述”轉(zhuǎn)換為關(guān)系的列,將該實(shí)體的主關(guān)鍵字“課程編號(hào)”轉(zhuǎn)換為關(guān)系的主關(guān)鍵字。轉(zhuǎn)換后的關(guān)系如表1-13所示。表1-13課程表課程編號(hào)課程名稱課程類型課程描述001網(wǎng)絡(luò)數(shù)據(jù)庫(kù)工科講述SQLServer數(shù)據(jù)庫(kù)002網(wǎng)頁(yè)設(shè)計(jì)與制作工科基于ASP.NET的網(wǎng)頁(yè)設(shè)計(jì)與制作003Java程序設(shè)計(jì)工科基本JAVA的應(yīng)用開發(fā)004高等數(shù)學(xué)理科高等數(shù)學(xué)是學(xué)習(xí)計(jì)算機(jī)技術(shù)的基礎(chǔ)1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟4:將聯(lián)系“班級(jí)排課”轉(zhuǎn)換為一個(gè)關(guān)系,關(guān)系名為“班級(jí)排課表”,將該聯(lián)系的屬性“學(xué)期”、“班級(jí)編號(hào)”、“課程編號(hào)”、“課程名稱”轉(zhuǎn)換為關(guān)系的列,將該實(shí)體的主關(guān)鍵字(班級(jí)編號(hào),課程編號(hào))轉(zhuǎn)換為關(guān)系的主關(guān)鍵字。轉(zhuǎn)換后的關(guān)系如表1-14所示。表1-14班級(jí)排課表學(xué)期班級(jí)編號(hào)課程編號(hào)課程名稱301201401001網(wǎng)絡(luò)數(shù)據(jù)庫(kù)301201401002網(wǎng)頁(yè)設(shè)計(jì)與制作201201401003Java程序設(shè)計(jì)101201401004高等數(shù)學(xué)1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟5:將實(shí)體“學(xué)生”轉(zhuǎn)換為一個(gè)關(guān)系,關(guān)系名為“學(xué)生表”,將該實(shí)體的屬性“學(xué)號(hào)”、“姓名”、“性別”、“出生年月”、“政治面貌”、“班級(jí)編號(hào)”、“班級(jí)名稱”、“家庭住址”、“郵編”、“備注”轉(zhuǎn)換為關(guān)系的列,將該實(shí)體的主關(guān)鍵字“學(xué)號(hào)”轉(zhuǎn)換為關(guān)系的主關(guān)鍵字。轉(zhuǎn)換后的關(guān)系如表1-15所示。表1-15學(xué)生表學(xué)號(hào)姓名性別出生年月政治面貌班級(jí)編號(hào)班級(jí)名稱家庭住址郵編備注01201401001秦伊諾女1995-10-08團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)河南省信陽(yáng)市464000品學(xué)兼優(yōu)01201401002張航男1994-05-02團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)吉林省長(zhǎng)春市130000吃苦耐勞01201401003李小飛男1994-10-01黨員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)江西省贛州市341000品學(xué)兼優(yōu)01201401004趙文婷男1995-08-23團(tuán)員0120140114級(jí)計(jì)算機(jī)應(yīng)用技術(shù)福建省福州市350000吃苦耐勞1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟6:將實(shí)體“成績(jī)”轉(zhuǎn)換為一個(gè)關(guān)系,關(guān)系名為“成績(jī)表”,將該實(shí)體的屬性“學(xué)號(hào)”、“姓名”、“課程名稱”、“成績(jī)”轉(zhuǎn)換為關(guān)系的列,將該實(shí)體的主關(guān)鍵字(學(xué)號(hào),課程名稱)轉(zhuǎn)換為關(guān)系的主關(guān)鍵字。轉(zhuǎn)換后的關(guān)系如表1-16所示。表1-16成績(jī)表學(xué)號(hào)姓名課程名稱成績(jī)01201401001秦伊諾網(wǎng)絡(luò)數(shù)據(jù)庫(kù)9001201401001秦伊諾JAVA程序設(shè)計(jì)8901201401002張航網(wǎng)絡(luò)數(shù)據(jù)庫(kù)8501201401002張航JAVA程序設(shè)計(jì)801.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟7:將實(shí)體“用戶”轉(zhuǎn)換為一個(gè)關(guān)系,關(guān)系名為“用戶表”,將該實(shí)體的屬性“用戶名”、“密碼”、“權(quán)限”轉(zhuǎn)換為關(guān)系的列,將該實(shí)體的主關(guān)鍵字“用戶名”轉(zhuǎn)換為關(guān)系的主關(guān)鍵字。轉(zhuǎn)換后的關(guān)系如表1-17所示。表1-17用戶表用戶名密碼權(quán)限adminadminadminteacherteacherteacherstudentstudentstudent0120140100101201401001student1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)2.對(duì)轉(zhuǎn)換后的關(guān)系模型進(jìn)行規(guī)范化處理步驟1:將所有關(guān)系規(guī)范到1NF。表1-11院系表,表1-12班級(jí)表,表1-13課程表,表1-14班級(jí)排課表,表1-15學(xué)生表,表1-16成績(jī)表,表1-17用戶表,這些表的所有屬性都不可再分,故它們均符合1NF的要求。步驟2:將所有關(guān)系規(guī)范到2NF。表1-11院系表,表1-12班級(jí)表,表1-13課程表,表1-15學(xué)生表,表1-17用戶表,這些表的非主屬性都完全函數(shù)依賴主關(guān)鍵字,故它們均符合2NF的要求。1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)表1-14的主關(guān)鍵字是(班級(jí)編號(hào),課程編號(hào)),而課程名稱屬性只依賴于課程編號(hào),和主關(guān)鍵字中的班級(jí)編號(hào)無(wú)關(guān),也就是說(shuō)課程名稱只部分函數(shù)依賴主關(guān)鍵字(班級(jí)編號(hào),課程編號(hào))。故表1-14不符合2NF的要求,需對(duì)其進(jìn)行規(guī)范化處理。首先將有部分函數(shù)依賴關(guān)系的課程編號(hào)和課程名稱分離出來(lái)組成一個(gè)關(guān)系,由于分離出來(lái)的課程編號(hào)和課程名稱在課程表中已存在,所以可刪除由剛分離屬性組成的關(guān)系。在原有的表中去除課程名稱屬性,規(guī)范后的關(guān)系如表1-18所示。1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)表1-18班級(jí)排課表學(xué)期班級(jí)編號(hào)課程編號(hào)301201401001301201401002201201401003101201401004
表1-16成績(jī)表的主關(guān)鍵字是(學(xué)號(hào),課程名稱),而姓名屬性只依賴于學(xué)號(hào),和主關(guān)鍵字中的課程名稱無(wú)關(guān),也就是說(shuō)姓名屬性只部分函數(shù)依賴主關(guān)鍵字(學(xué)號(hào),課程名稱)。故表1-16不符合2NF的要求,需對(duì)其進(jìn)行規(guī)范化處理。
首先將有部分函數(shù)依賴關(guān)系的學(xué)號(hào)、姓名分離出來(lái)組成一個(gè)關(guān)系,由于分離出來(lái)的學(xué)號(hào)和姓名在學(xué)生信息表中已存在,所以可刪除由剛分離屬性組成的關(guān)系。剩余的其他屬性,即成績(jī),再加上主關(guān)鍵字(學(xué)號(hào),課程名稱)構(gòu)成關(guān)系。規(guī)范后的關(guān)系如表1-19。表1-19成績(jī)表學(xué)號(hào)課程名稱成績(jī)01201401001網(wǎng)絡(luò)數(shù)據(jù)庫(kù)9001201401001JAVA程序設(shè)計(jì)8901201401002網(wǎng)絡(luò)數(shù)據(jù)庫(kù)8501201401002JAVA程序設(shè)計(jì)801.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟3:將所有關(guān)系規(guī)范到3NF。
表1-11院系表,表1-12班級(jí)表,表1-13課程表,表1-18班級(jí)排課表,表1-19成績(jī)表,表1-17用戶表,這些表的任何一個(gè)非主屬性都不傳遞函數(shù)依賴主關(guān)鍵字,故它們均符合3NF的要求。表1-15學(xué)生表的主關(guān)鍵字是學(xué)號(hào),學(xué)號(hào)可以唯一確定一個(gè)與它對(duì)應(yīng)的班級(jí)編號(hào),而班級(jí)編號(hào)又可以唯一確定一個(gè)與它對(duì)應(yīng)的班級(jí)名稱。也就是說(shuō)班級(jí)名稱是通過班級(jí)編號(hào)的傳遞而完全函數(shù)依賴于學(xué)號(hào)的,所以學(xué)號(hào)和班級(jí)名稱之間存在著函數(shù)傳遞依賴關(guān)系。故表1-15不是3NF,需對(duì)其進(jìn)行規(guī)范化處理。
首先將具有函數(shù)傳遞依賴關(guān)系的班級(jí)編號(hào)和班級(jí)名稱分離出來(lái)組成一個(gè)關(guān)系,由于分離出來(lái)的班級(jí)編號(hào)和班級(jí)名稱在班級(jí)表中已存在,所以可刪除由剛分離屬性組成的關(guān)系。去除表1-15中的班級(jí)名稱屬性,規(guī)范化后的關(guān)系如表1-20。1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)表1-20學(xué)生表學(xué)號(hào)姓名性別出生年月政治面貌班級(jí)編號(hào)家庭住址郵編備注01201401001秦伊諾女1995-10-08團(tuán)員01201401河南省信陽(yáng)市464000品學(xué)兼優(yōu)01201401002張航男1994-05-02團(tuán)員01201401吉林省長(zhǎng)春市130000吃苦耐勞01201401003李小飛男1994-10-01黨員01201401江西省贛州市341000品學(xué)兼優(yōu)01201401004趙文婷男1995-08-23團(tuán)員01201401福建省福州市350000吃苦耐勞1.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟4:進(jìn)一步規(guī)范。
因?yàn)橛行┤肆?xí)慣用課程的全稱,有些人習(xí)慣用課程的簡(jiǎn)稱,所以對(duì)表1-19學(xué)生成績(jī)表中課程名稱屬性進(jìn)行插入、修改、刪除操作時(shí),容易出現(xiàn)數(shù)據(jù)不一致的情況。而對(duì)于每一個(gè)課程編號(hào)都可以在表1-13課程表中,找到與之對(duì)應(yīng)的課程名稱,所以可將表1-19中的課程名稱改為課程編號(hào),故表1-19的主關(guān)鍵字為(學(xué)號(hào),課程編號(hào)),規(guī)范化后的關(guān)系如表1-21。表1-21成績(jī)表學(xué)號(hào)課程編號(hào)成績(jī)01201401001001900120140100100389012014010020018501201401002003801.3.3任務(wù)實(shí)施關(guān)系模型設(shè)計(jì)步驟5:指出規(guī)范化后的各個(gè)關(guān)系的主關(guān)鍵字和外關(guān)鍵字。表1-11院系表的主關(guān)鍵字是院系編號(hào),該表無(wú)外關(guān)鍵字。表1-12班級(jí)表的主關(guān)鍵字是班級(jí)編號(hào),該表無(wú)外關(guān)鍵字。表1-13課程表的主關(guān)鍵字是課程編號(hào),該表無(wú)外關(guān)鍵字。表1-17用戶表的主關(guān)鍵字是用戶名,該表無(wú)外關(guān)鍵字。表1-18班級(jí)排課表的主關(guān)鍵字是(班級(jí)編號(hào),課程編號(hào)),由于班級(jí)編號(hào)是表1-12班級(jí)表的主關(guān)鍵字,而課程編號(hào)是表1-13課程表的主關(guān)鍵字,故班級(jí)編號(hào)和課程編號(hào)為該表的外關(guān)鍵字。表1-20學(xué)生表的主關(guān)鍵字是學(xué)號(hào),由于班級(jí)編號(hào)是表1-12班級(jí)表的主關(guān)鍵字,故班級(jí)編號(hào)為該表的外關(guān)鍵字。表1-21成績(jī)表的主關(guān)鍵字是(學(xué)號(hào),課程編號(hào)),由于學(xué)號(hào)是表1-20學(xué)生表的主關(guān)鍵字,課程編號(hào)是表1-13課程表的主關(guān)鍵字,故學(xué)號(hào)和課程編號(hào)為該表的外關(guān)鍵字。項(xiàng)目小結(jié)本章簡(jiǎn)要介紹了與數(shù)據(jù)庫(kù)相關(guān)的一些基本概念,并圍繞“學(xué)生信息管理系統(tǒng)”詳細(xì)介紹了進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的一般步驟。講述了如何使用業(yè)務(wù)流程圖、系統(tǒng)功能結(jié)構(gòu)圖和系統(tǒng)功能分析,將需求分析的結(jié)果呈現(xiàn)出來(lái);如何根據(jù)需求分析的結(jié)果繪制E-R圖來(lái)進(jìn)行概念模型設(shè)計(jì);以及如何將概念模型轉(zhuǎn)換為關(guān)系模型,并對(duì)關(guān)系模型進(jìn)行規(guī)范化處理。通過本章的學(xué)習(xí),可以使讀者對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)過程有一個(gè)清晰的認(rèn)識(shí)。
實(shí)訓(xùn)項(xiàng)目綜合實(shí)訓(xùn)1:對(duì)簡(jiǎn)化的“圖書管理系統(tǒng)”進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目實(shí)訓(xùn)目的:掌握業(yè)務(wù)流程圖和系統(tǒng)功能結(jié)構(gòu)圖的畫法,會(huì)進(jìn)行系統(tǒng)功能分析;掌握E-R圖的畫法,會(huì)進(jìn)行概要模型設(shè)計(jì);掌握將概要模型轉(zhuǎn)換為關(guān)系模型的方法,會(huì)對(duì)轉(zhuǎn)換后的關(guān)系進(jìn)行規(guī)范化處理。實(shí)訓(xùn)內(nèi)容:對(duì)簡(jiǎn)化的“圖書管理系統(tǒng)”進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。實(shí)訓(xùn)操作步驟:實(shí)訓(xùn)項(xiàng)目步驟1:繪制“圖書管理系統(tǒng)”的業(yè)務(wù)流程圖。步驟2:繪制“圖書管理系統(tǒng)”的系統(tǒng)功能結(jié)構(gòu)圖。操作圖示步驟3:進(jìn)行“圖書管理系統(tǒng)”的系統(tǒng)功能分析。操作圖示步驟4:繪制E-R圖,進(jìn)行“圖書管理系統(tǒng)”的概要模型設(shè)計(jì)。操作圖示步驟5:將繪制好的E-R圖轉(zhuǎn)換成“圖書管理系統(tǒng)”的關(guān)系模型。實(shí)訓(xùn)操作步驟:實(shí)訓(xùn)項(xiàng)目表1-22圖書信息表圖書編碼圖書名稱作者ISBN出版社是否借出00000001Oracle數(shù)據(jù)庫(kù)應(yīng)用教程朱亞興9787560619781西安電子科技大學(xué)出版社是00000002Web應(yīng)用程序開發(fā)教程唐笑林9787040269710高等教育出版社是00000003SQLServer2005數(shù)據(jù)庫(kù)及應(yīng)用徐人鳳9787040372052高等教育出版社是00000004VisualC#.NET面向?qū)ο蟪绦蛟O(shè)計(jì)教程趙衛(wèi)偉978111187646機(jī)械工業(yè)出版社是表1-23讀者信息表讀者編碼姓名限借數(shù)量已借數(shù)量限借天數(shù)逾期罰款丟失罰款電話號(hào)碼00001秦伊諾1027每天2角2倍書價(jià)1556558990800002張航1007每天2角2倍書價(jià)1583765347000003李小飛1017每天2角2倍書價(jià)1563761678400004趙文婷1017每天2角2倍書訓(xùn)操作步驟:實(shí)訓(xùn)項(xiàng)目表1-24借閱信息表圖書編碼圖書名稱讀者編碼借期還期是否歸還00000001Oracle數(shù)據(jù)庫(kù)應(yīng)用教程000012014-04-152014-04-22是00000002Web應(yīng)用程序開發(fā)教程000032014-04-162014-04-23是00000003SQLServer2005數(shù)據(jù)庫(kù)及應(yīng)用000012014-04-162014-04-23是00000004VisualC#.NET面向?qū)ο蟪绦蛟O(shè)計(jì)教程000042014-04-172014-04-23否表1-25罰款信息表罰款編碼讀者編碼姓名罰款原因罰款金額罰款日期2014042400100001秦伊諾逾期2天還書0.42014-04-242014042800100004趙文婷丟失圖書402014-04-28實(shí)訓(xùn)操作步驟:實(shí)訓(xùn)項(xiàng)目步驟6:對(duì)轉(zhuǎn)換后的關(guān)系模型進(jìn)行規(guī)范化處理。表1-26借閱信息表圖書編碼讀者編碼借期還期是否歸還00000001000012014-04-152014-04-22是00000002000032014-04-162014-04-23是00000003000012014-04-162014-04-23是00000004000042014-04-172014-04-23否表1-27罰款信息表罰款編碼讀者編碼罰款原因罰款金額罰款日期2014042400100001逾期2天還書0.42014-04-242014042800100004丟失圖書402014-04-28實(shí)訓(xùn)操作步驟:實(shí)訓(xùn)項(xiàng)目步驟7:指出規(guī)范化后的各個(gè)關(guān)系的主關(guān)鍵字和外關(guān)鍵字。表1-22圖書信息表的主關(guān)鍵字是圖書編碼,該表無(wú)外關(guān)鍵字。表1-23讀者信息表的主關(guān)鍵字是讀者編碼,該表無(wú)外關(guān)鍵字。表1-26借閱信息表的主關(guān)鍵字是(圖書編碼,讀者編碼),由于圖書編碼是表1-22圖書信息表的主關(guān)鍵字,讀者編碼是表1-23讀者信息表的主關(guān)鍵字,所以圖書編碼和讀者編碼是該表的外關(guān)鍵字。表1-27罰款信息表的主關(guān)鍵字是罰款編碼,由于讀者編碼是表1-23讀者信息表的主關(guān)鍵字,所以讀者編碼是該表的外關(guān)鍵字。SQLServer2008網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理項(xiàng)目教程高等職業(yè)教育精品示范教材主編:李桂香王昌云中國(guó)水利水電出版社項(xiàng)目二SqlServer2008概述創(chuàng)建索引SQLServer2008簡(jiǎn)介及安裝任務(wù)一任務(wù)二任務(wù)三項(xiàng)目2SqlServer2008概述任務(wù)四SQLServer2008啟動(dòng)/關(guān)閉認(rèn)識(shí)SQLServer2008管理工具認(rèn)識(shí)系統(tǒng)數(shù)據(jù)庫(kù)任務(wù)1:SQLServer2008簡(jiǎn)介及安裝2.1.1相關(guān)知識(shí)1.SQLServer的發(fā)展SQLServer是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Microsoft、Sybase和AshtonTate三家公司共同開發(fā)。SQLServer6.0是第一個(gè)完全由Microsoft公司開發(fā)的。1996年,Microsoft公司推出SQLServer6.5版本。1998年,Microsoft公司又推出了7.0版。2000年9月,發(fā)布SQLServer2000。2005年,推出SQLServer2005。2008年第三季度,SQLServer2008正式發(fā)布。SQLServer2008是一個(gè)高效的智能數(shù)據(jù)平臺(tái),開發(fā)人員可以用它開發(fā)強(qiáng)大的下一代數(shù)據(jù)庫(kù)應(yīng)用程序。2.SQLServer的版本版本說(shuō)明適用范圍企業(yè)版EnterpriseEdition一個(gè)全面的數(shù)據(jù)管理和商業(yè)智能平臺(tái),提供企業(yè)級(jí)的可擴(kuò)展性,高可用性和高安全性以運(yùn)行企業(yè)關(guān)鍵業(yè)務(wù)應(yīng)用大規(guī)模聯(lián)機(jī)事務(wù)處理(OLTP)大規(guī)模報(bào)表先進(jìn)的分析
數(shù)據(jù)倉(cāng)庫(kù)標(biāo)準(zhǔn)版StandardEdition一個(gè)完整的數(shù)據(jù)管理和商業(yè)智能平臺(tái),提供最好的易用性和可管理性來(lái)運(yùn)行部門級(jí)應(yīng)用部門級(jí)應(yīng)用中小型規(guī)模OLTP報(bào)表和分析工作組版WorkgroupEdition一個(gè)可信賴的數(shù)據(jù)管理和報(bào)表平臺(tái),提供各分支應(yīng)用程序以安全,遠(yuǎn)程同步和管理功能分支數(shù)據(jù)存儲(chǔ)分支報(bào)表遠(yuǎn)程同步學(xué)習(xí)版ExpressEdition提供學(xué)習(xí)和創(chuàng)建桌面應(yīng)用程序和小型應(yīng)用程序,并可被ISVs重新發(fā)布的免費(fèi)版本入門級(jí)&學(xué)習(xí)免費(fèi)的ISVs重發(fā)豐富的桌面應(yīng)用移動(dòng)版CompactEdition一個(gè)免費(fèi)的嵌入式SQLServer數(shù)據(jù)庫(kù),可創(chuàng)建移動(dòng)設(shè)備,桌面端和Web端獨(dú)立運(yùn)行的和偶爾連接的應(yīng)用程序獨(dú)立嵌入式開發(fā)斷開式連接客戶端2.1.2任務(wù)實(shí)施注意:確保以管理員身份登錄,從而能夠在機(jī)器上創(chuàng)建文件和文件夾,這是成功安裝所必需的。步驟1:如果當(dāng)前沒有安裝Microsoft.NETFramework3.5版,則會(huì)出現(xiàn)如下圖所示的安裝對(duì)話框:圖2-1Microsoft.NETFramework3.5提示框按照安裝向?qū)瓿蒑icrosoft.NETFramework3.5的安裝,完成窗口如下圖所示:圖2-2Microsoft.NETFramework3.5安裝完成提示步驟2:運(yùn)行安裝程序運(yùn)行可執(zhí)行的安裝程序setup.exe,出現(xiàn)如下圖所示的“SQLServer安裝中心”對(duì)話框:
步驟3:安裝中心-安裝頁(yè)單擊左邊的“安裝”條目,然后選擇“全新SQLServer獨(dú)立安裝或向現(xiàn)有安裝添加功能”,開始SQLServer2008的安裝。
步驟4:系統(tǒng)進(jìn)行安裝程序支持規(guī)則檢查步驟5:選擇安裝組件至少需要安裝:數(shù)據(jù)庫(kù)引擎服務(wù)、ReportingServices、客戶端工具、BusinessIntelligenceDevelopmentStudio等步驟6:定義安裝實(shí)例每一個(gè)安裝稱為一個(gè)實(shí)例(instance),每個(gè)實(shí)例必須有屬于它的唯一的名字步驟7:指定SQLServer服務(wù)的登錄賬戶指定啟動(dòng)類型:建議向SQLServer服務(wù)授予它們完成各自任務(wù)所需的最低權(quán)限步驟8:指定登錄數(shù)據(jù)庫(kù)服務(wù)器的賬戶信息設(shè)置Windows身份驗(yàn)證模式選擇“Windows身份驗(yàn)證模式”,用戶一旦登錄到Windows,SQLServer就將使用信任連接。混合模式選擇“混合模式”,即既可以使用Windows身份驗(yàn)證(如前面所述),也可以使用SQLServer身份驗(yàn)證,并且必須為內(nèi)置SQLServer系統(tǒng)管理員賬戶提供一個(gè)強(qiáng)密碼。sa(SystemAdministrator)是默認(rèn)的SQLServer超級(jí)管理員帳戶,對(duì)SQLServer具有完全的管理權(quán)限。如果選擇了“混合模式”身份驗(yàn)證,則必須為sa賬戶設(shè)置強(qiáng)密碼。指定登錄數(shù)據(jù)庫(kù)服務(wù)器的賬戶信息設(shè)置Windows身份驗(yàn)證模式混合模式步驟9:設(shè)置SQLServer的數(shù)據(jù)目錄步驟10:指定將擁有AnalysisServices的管理員權(quán)限的用戶或賬戶,以及數(shù)據(jù)文件夾的位置步驟11:指定創(chuàng)建ReportingServices安裝的類型步驟12:指定要發(fā)送到Microsoft以幫助改善SQLServer的信息。步驟13:在“準(zhǔn)備安裝”頁(yè)顯示在安裝過程中指定的安裝選項(xiàng)的樹視圖,安裝程序再一次對(duì)系統(tǒng)配置進(jìn)行規(guī)則檢查。單擊“安裝”按鈕進(jìn)行安裝。完成后進(jìn)入“完成”頁(yè)任務(wù)2:SQLServer2008啟動(dòng)/關(guān)閉SQLServer數(shù)據(jù)庫(kù)服務(wù)器服務(wù)是整個(gè)SQLServer最核心的服務(wù)。它負(fù)責(zé)管理所有組成數(shù)據(jù)庫(kù)的文件、處理T-SQL語(yǔ)句與執(zhí)行存儲(chǔ)過程等功能。
系統(tǒng)可以通過WindowsServices、SQLServerConfigurationManager、系統(tǒng)命令行來(lái)啟動(dòng)SQLServer2008數(shù)據(jù)庫(kù)服務(wù)器服務(wù)。方法1.利用WindowsServices單擊windows系統(tǒng)的“開始”菜單|“控制面板”|“管理工具”|“服務(wù)”,打開界面如圖2-14所示。在服務(wù)列表中,按照你安裝所用的實(shí)力名,查找SQLServer(實(shí)例名)服務(wù)在服務(wù)名稱上雙擊,通過“屬性”窗口可以控制服務(wù)的狀態(tài)或更改其設(shè)置。若需設(shè)置服務(wù)開機(jī)時(shí)自動(dòng)啟動(dòng),只需在服務(wù)屬性頁(yè)面內(nèi)將啟動(dòng)類型設(shè)置為:自動(dòng)若需要停止SQLServer服務(wù),則在上述屬性頁(yè)面中,點(diǎn)擊“停止”按鈕即可方法2.利用SQLServerConfigurationManager點(diǎn)擊windows“開始”|“程序”|“MicrosoftSQLServer2008”|“配置工具”|“SQLServer配置管理器”,打開SQLServerConfigurationManager管理工具,在SQLServer服務(wù)列表中,找到對(duì)應(yīng)數(shù)據(jù)庫(kù)實(shí)例的服務(wù),在右鍵菜單點(diǎn)擊“啟動(dòng)”命令,即可開啟SQLServer服務(wù)若需要停止SQLServer服務(wù),則在上述服務(wù)列表的右鍵菜單中,點(diǎn)擊“停止”命令即可方法3.利用命令行在命令提示符窗口中使用NET命令,命令格式為:NETSTART服務(wù)名稱。例如,SQLServer服務(wù)名稱為MSSQLSERVER,則操作步驟:⑴
依次選擇“開始”|“程序”|“附件”|“命令提示符”命令,進(jìn)入Windows命令提示符窗口。⑵
在閃爍的光標(biāo)處輸入:NETSTARTMSSQLSERVER(回車)若需關(guān)閉SQLServer服務(wù),則鍵入命令:NETSTOPMSSQLSERVER(回車)。任務(wù)3:認(rèn)識(shí)SQLServer2008管理工具1.商務(wù)智能開發(fā)平臺(tái)商務(wù)智能開發(fā)平臺(tái)用于開發(fā)商務(wù)智能構(gòu)造(如多維數(shù)據(jù)集、數(shù)據(jù)源、報(bào)告和IntegrationServices軟件包),是設(shè)計(jì)和創(chuàng)建SQLServer報(bào)表服務(wù)的主要開發(fā)工具。啟動(dòng)方法:依次選擇“開始”|“程序”|“MicrosoftSQLServer2008”|“SQLServerBusinessIntelligenceDevelopmentStudio”。2.AnalysisServicesSQLServer2008AnalysisServices(SSAS)為商務(wù)智能應(yīng)用程序提供聯(lián)機(jī)分析處理(OLAP)和數(shù)據(jù)挖掘功能。啟動(dòng)方法:依次選擇“開始”|“程序”|“MicrosoftSQLServer2008”|“AnalysisServices”|“DeploymentWizard”。3.SQLServer配置管理器SQLServer配置管理器用于管理與SQLServer相關(guān)聯(lián)的服務(wù)、配置SQLServer使用的網(wǎng)絡(luò)協(xié)議以及從SQLServer客戶端計(jì)算機(jī)管理網(wǎng)絡(luò)連接配置。SQLServer服務(wù)包括SQLServer數(shù)據(jù)庫(kù)服務(wù)器服務(wù)、服務(wù)器代理、全文檢索、報(bào)表服務(wù)和分析服務(wù)等服務(wù)。SQLServer網(wǎng)絡(luò)配置指服務(wù)器端網(wǎng)絡(luò)配置。SQLNativeClient10.0配置是指運(yùn)行客戶端程序的計(jì)算機(jī)網(wǎng)絡(luò)配置,配置過程與服務(wù)器端相似。啟動(dòng)方法:依次選擇“開始”|“程序”|“MicrosoftSQLServer2008”|“配置工具”|“SQLServer配置管理器”。4.SQLServer文檔和教程SQLServer2008提供了大量的聯(lián)機(jī)幫助文檔。啟動(dòng)方法:依次選擇“開始”|“程序”|“MicrosoftSQLServer2008”|“文檔和教程”?;蛘撸赟SMS的“幫助”菜單中選擇“教程”。任務(wù):?jiǎn)?dòng)SQLServerManagementSudio(SSMS)SQLServerManagementSudio(SSMS)是一個(gè)集成的可視化管理環(huán)境。用于訪問、配置、控制和管理所有SQLServer組件,是最常用的管理控制平臺(tái)。首次啟動(dòng)SSMS時(shí)間會(huì)長(zhǎng)點(diǎn)。依次選擇“開始”|“程序”|“MicrosoftSQLServer2008”|“SQLServerManagementStudio”命令,打開登錄界面單擊“選項(xiàng)”按鈕,切換到“連接屬性”選項(xiàng)卡,設(shè)置連接屬性正常連接后的SSMS窗口SSMS窗口的幾項(xiàng)主要工具組件:已注冊(cè)的服務(wù)器顯示“已注冊(cè)的服務(wù)器”窗口新建服務(wù)器注冊(cè)新建服務(wù)器組對(duì)象資源管理器對(duì)象資源管理器中的各個(gè)節(jié)點(diǎn):數(shù)據(jù)庫(kù)、安全性、服務(wù)器對(duì)象、復(fù)制、管理、SQLServer代理?!耙晥D”菜單“工具”菜單SSMS的選項(xiàng)任務(wù)4:認(rèn)識(shí)系統(tǒng)數(shù)據(jù)庫(kù)SQLServer數(shù)據(jù)庫(kù)可分為:系統(tǒng)數(shù)據(jù)庫(kù)、用戶數(shù)據(jù)庫(kù)、示例數(shù)據(jù)庫(kù)。系統(tǒng)數(shù)據(jù)庫(kù):是SQLServer自己使用的、存儲(chǔ)有關(guān)數(shù)據(jù)庫(kù)系統(tǒng)的信息的數(shù)據(jù)庫(kù)。用戶數(shù)據(jù)庫(kù):是由用戶自己建立的數(shù)據(jù)庫(kù),存儲(chǔ)用戶使用的數(shù)據(jù)信息。示例數(shù)據(jù)庫(kù)。(安裝系統(tǒng)時(shí),在默認(rèn)情況下是不安裝的。)其中,SQLServer2008中的系統(tǒng)數(shù)據(jù)庫(kù)主要包括:Master數(shù)據(jù)庫(kù)、TempDB數(shù)據(jù)庫(kù)、Model數(shù)據(jù)庫(kù)、MSDB數(shù)據(jù)庫(kù)、Resource數(shù)據(jù)庫(kù)。SQLServer的任何一個(gè)版本都存在一組系統(tǒng)數(shù)據(jù)庫(kù)。系統(tǒng)數(shù)據(jù)庫(kù)中保存的系統(tǒng)表用于系統(tǒng)的總體控制,包括系統(tǒng)運(yùn)行及對(duì)用戶數(shù)據(jù)的操作等基本信息,系統(tǒng)數(shù)據(jù)庫(kù)分別是master、model、msdb和empdb。這些數(shù)據(jù)庫(kù)的文件存儲(chǔ)在SQLServer的默認(rèn)安裝目錄的MSSQL字目錄Data文件夾中。項(xiàng)目小結(jié)SQLServer2008簡(jiǎn)介SQLServer數(shù)據(jù)庫(kù)的發(fā)展,SQLServer2008版本介紹。SQLServer2008安裝要求:硬件要求:CPU,內(nèi)存,硬盤空間。操作系統(tǒng)要求。SQLServer2008的體系結(jié)構(gòu)。項(xiàng)目小結(jié)SQLServer2008安裝如果當(dāng)前機(jī)器沒有安裝Microsoft.NETFramework,系統(tǒng)會(huì)要求安裝。主要過程:安裝準(zhǔn)備開始安裝選擇要安裝的功能為實(shí)例命名配置設(shè)置配置錯(cuò)誤和使用情況報(bào)告實(shí)施安裝項(xiàng)目小結(jié)SQLServer2008的啟動(dòng)與關(guān)閉SQLServer2008主要管理工具SQLServer2008系統(tǒng)數(shù)據(jù)庫(kù)實(shí)訓(xùn)項(xiàng)目:SQLServer2008安裝實(shí)訓(xùn)目標(biāo):能獨(dú)立安裝SQLServer2008。會(huì)操作SQLServer2008中的主要管理工具。會(huì)查看系統(tǒng)數(shù)據(jù)庫(kù)。實(shí)訓(xùn)要求:下載SQLServer2008安裝SQLServer2008。熟悉SQLServer2008的SSMS工具的使用。SQLServer2008網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理項(xiàng)目教程高等職業(yè)教育精品示范教材主編:李桂香王昌云中國(guó)水利水電出版社項(xiàng)目三:數(shù)據(jù)庫(kù)管理創(chuàng)建Student數(shù)據(jù)庫(kù)修改Student數(shù)據(jù)庫(kù)刪除學(xué)生數(shù)據(jù)庫(kù)任務(wù)一任務(wù)二任務(wù)三數(shù)據(jù)完整性3.1任務(wù)1:創(chuàng)建Student數(shù)據(jù)庫(kù)任務(wù)描述:創(chuàng)建名為Student的數(shù)據(jù)庫(kù),包含一個(gè)主文件和一個(gè)事務(wù)日志文件,主文件的邏輯名為Student,物理文件名為Student.mdf,初始大小為10MB,最大尺寸為無(wú)限大,增長(zhǎng)速度為10%,事務(wù)日志文件的邏輯名為Student_log,物理文件名為Student_log.ldf,初始大小為1MB,最大容量為5MB,每次的增長(zhǎng)量為1MB。3.1.1相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)SQLServer2008將數(shù)據(jù)庫(kù)映射為一組操作系統(tǒng)文件,數(shù)據(jù)和日志信息在不同的文件中,并且各文件僅在一個(gè)數(shù)據(jù)庫(kù)中使用。1.數(shù)據(jù)庫(kù)文件(1)主數(shù)據(jù)文件(PrimaryDataBaseFile)數(shù)據(jù)庫(kù)文件是存放數(shù)據(jù)庫(kù)數(shù)據(jù)和數(shù)據(jù)庫(kù)對(duì)象的文件,每個(gè)數(shù)據(jù)庫(kù)至少包含兩個(gè)相關(guān)聯(lián)的存儲(chǔ)文件,主數(shù)據(jù)文件和事務(wù)日志文件。主數(shù)據(jù)文件主要存儲(chǔ)數(shù)據(jù)庫(kù)的啟動(dòng)信息,并指向數(shù)據(jù)庫(kù)的其它文件,一個(gè)數(shù)據(jù)庫(kù)有且只有一個(gè)主數(shù)據(jù)文件,主數(shù)據(jù)文件的擴(kuò)展名為.mdf。(2)次要數(shù)據(jù)文件(SecondaryDataBaseFile)除了主數(shù)據(jù)文件以外的所有其它數(shù)據(jù)文件稱為次要數(shù)據(jù)文件(輔助數(shù)據(jù)文件),一個(gè)數(shù)據(jù)庫(kù)可以沒有次要數(shù)據(jù)文件,也可以有多個(gè)次要數(shù)據(jù)文件,可以根據(jù)需要建立多個(gè)次要文件,這樣可以實(shí)現(xiàn)將數(shù)據(jù)分散到不同的磁盤中,次要數(shù)據(jù)文件的擴(kuò)展名為.ndf。(3)事務(wù)日志文件(TransactionLogFile)包含用于恢復(fù)數(shù)據(jù)庫(kù)的所有日志信息。每個(gè)數(shù)據(jù)庫(kù)必須至少有一個(gè)事務(wù)日志文件,也可以有多個(gè)。事務(wù)日志文件的擴(kuò)展名為.ldf。相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)(4)邏輯文件名和物理文件名SQLServer文件有兩個(gè)名稱,即邏輯文件名和物理文件名。為了在邏輯結(jié)構(gòu)中引用物理文件,SQLServer在這些物理文件起了邏輯名稱,數(shù)據(jù)庫(kù)創(chuàng)建后,T-SQL命令就是通過引用邏輯名稱來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。默認(rèn)名稱與數(shù)據(jù)庫(kù)名稱相同,也可以修改,但是邏輯名稱是唯一的。物理文件名是文件存儲(chǔ)在磁盤上的文件名,包括文件的具體存放目錄。(5)數(shù)據(jù)庫(kù)文件組(DataBaseFileGroup)為了便于分配和管理,SQLServer允許將多個(gè)文件歸納為一組,并賦予一個(gè)名稱,這就是文件組。文件組分為主文件組和用戶定義文件組,主文件組包含主數(shù)據(jù)文件和任何沒有明確分配給其它文件組的其它文件,系統(tǒng)表的所有頁(yè)均分配在主文件組中。用戶定義文件組是通過在createdatabase或alterdatabase語(yǔ)句中使用filegroup關(guān)鍵字指定的任何文件組。日志文件不包含在文件組內(nèi)。(6)文件大小數(shù)據(jù)庫(kù)文件所占磁盤空間的大小,單位為MB,默認(rèn)大小為3MB,當(dāng)創(chuàng)建數(shù)據(jù)庫(kù)時(shí)可適當(dāng)設(shè)置初始大小,當(dāng)數(shù)據(jù)總量超過最大大小時(shí),可以設(shè)置根據(jù)文件的大小為自動(dòng)增長(zhǎng),也可以設(shè)置數(shù)據(jù)文件的最大值。相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)2.系統(tǒng)數(shù)據(jù)庫(kù)在SQLServer2008中,系統(tǒng)數(shù)據(jù)庫(kù)是SQLServer2008自帶的數(shù)據(jù)庫(kù),分別是master、model、msdb、tempdb和resource五個(gè)系統(tǒng)數(shù)據(jù)庫(kù),在創(chuàng)建任何數(shù)據(jù)庫(kù)之前,利用MicrosoftSQLServerManagementStudio工具,可以看到前四個(gè)系統(tǒng)數(shù)據(jù)庫(kù),resource數(shù)據(jù)庫(kù)不顯示在“對(duì)象資源管理器”中,因?yàn)樗趕ys框架中。(1)master數(shù)據(jù)庫(kù)master數(shù)據(jù)庫(kù)記錄SQLServer2008實(shí)例的所有系統(tǒng)級(jí)信息,master數(shù)據(jù)庫(kù)記錄了SQLServer的初始化信息,記錄了實(shí)例范圍的元數(shù)據(jù)、端點(diǎn)、鏈接服務(wù)器和系統(tǒng)配置設(shè)置,記錄了其它所有數(shù)據(jù)庫(kù)是否存在以及這些數(shù)據(jù)庫(kù)文件的位置等信息,如果master數(shù)據(jù)庫(kù)不可用,會(huì)導(dǎo)致SQLServer無(wú)法啟動(dòng)。(2)model數(shù)據(jù)庫(kù)model數(shù)據(jù)庫(kù)為SQLServer2008實(shí)例上創(chuàng)建的所有數(shù)據(jù)庫(kù)的模板,對(duì)model數(shù)據(jù)庫(kù)的修改將應(yīng)用于此后創(chuàng)建的所有數(shù)據(jù)庫(kù)。當(dāng)創(chuàng)建數(shù)據(jù)庫(kù)時(shí),將通過復(fù)制model數(shù)據(jù)庫(kù)的內(nèi)容來(lái)創(chuàng)建數(shù)據(jù)庫(kù),新創(chuàng)建的數(shù)據(jù)庫(kù)與model數(shù)據(jù)庫(kù)完全一樣。(3)msdb數(shù)據(jù)庫(kù)msdb數(shù)據(jù)庫(kù)用于SQLServer代理計(jì)劃警報(bào)和作業(yè)等。相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)(4)tempdb數(shù)據(jù)庫(kù)tempdb數(shù)據(jù)庫(kù)用于存放所有連接系統(tǒng)的用戶使用的全局資源和SQLServer產(chǎn)生的臨時(shí)表格、臨時(shí)存儲(chǔ)過程等,每次啟動(dòng)SQLServer時(shí)會(huì)重新創(chuàng)建tempdb,在斷開連接時(shí),會(huì)自動(dòng)刪除臨時(shí)表和存儲(chǔ)過程,并且在系統(tǒng)關(guān)閉后沒有活動(dòng)連接。(5)resource數(shù)據(jù)庫(kù)resource數(shù)據(jù)庫(kù)是只讀數(shù)據(jù)庫(kù),包含SQLServer2008中的所有系統(tǒng)對(duì)象。系統(tǒng)對(duì)象在物理上保留在resource數(shù)據(jù)庫(kù)中,但是在邏輯上顯示在每個(gè)數(shù)據(jù)庫(kù)的sys架構(gòu)中。3.數(shù)據(jù)庫(kù)對(duì)象SQLServer2008數(shù)據(jù)庫(kù)中的數(shù)據(jù)在邏輯上被組織成一系列的對(duì)象,當(dāng)用戶連接到數(shù)據(jù)庫(kù)后,看到的是數(shù)據(jù)庫(kù)對(duì)象,而不是數(shù)據(jù)庫(kù)文件。SQLServer2008數(shù)據(jù)庫(kù)的對(duì)象主要包括以下幾種:(1)表:用于存儲(chǔ)數(shù)據(jù),由行和列組成,每一列代表一個(gè)相同類型的數(shù)據(jù)。(2)記錄:表中的一行數(shù)據(jù)就是一條記錄。(3)主鍵:表中一列或多列的組合,它的值能唯一的確定一條記錄。相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)(4)外鍵:表中一列或多列的組合,它同時(shí)存在于兩個(gè)表中,假設(shè)為A表和B表,這一列或者多列的組合是A表的主鍵,但不是B表的主鍵,則稱這一列或者列的組合是B表相對(duì)于A表的外鍵。外鍵主要用于實(shí)現(xiàn)表與表之間的參照完整性約束。(5)視圖:視圖是虛表,是查看一個(gè)或多個(gè)表的一種方式。(6)索引:表中一列或若干列值的集合和相應(yīng)的執(zhí)行表中物理標(biāo)識(shí)的數(shù)據(jù)頁(yè)的邏輯指針列表,使用索引可以加快數(shù)據(jù)的檢索速度。(7)約束:實(shí)現(xiàn)數(shù)據(jù)完整性和一致性的方法。(8)默認(rèn)值:在數(shù)據(jù)表中輸入數(shù)據(jù)時(shí),如果沒有指定具體值的字段,數(shù)據(jù)庫(kù)會(huì)自動(dòng)插入默認(rèn)的數(shù)據(jù)。(9)規(guī)則:用于限制表中列的取值范圍,實(shí)現(xiàn)表中數(shù)據(jù)完整性的一種方式。(10)存儲(chǔ)過程:經(jīng)過編譯的可重復(fù)使用的T-SQL語(yǔ)句的集合,因?yàn)槭墙?jīng)過編譯后存儲(chǔ)到數(shù)據(jù)庫(kù)中,因此運(yùn)行速度比執(zhí)行相同的SQL語(yǔ)句快。(11)觸發(fā)器:是一種特殊的存儲(chǔ)過程,與某種操作關(guān)聯(lián),當(dāng)操作影響到其保護(hù)的數(shù)據(jù)時(shí),會(huì)被觸發(fā),并自動(dòng)執(zhí)行。相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)4.數(shù)據(jù)庫(kù)創(chuàng)建命令CREATEDATABASE使用CREATEDATABASE命令創(chuàng)建數(shù)據(jù)庫(kù),基本語(yǔ)法如下:CREATEDATABASEdatabase_name[ON[<filespec>[,…n]][,<filegroup>[,…n]]][LOGON{<filespec>[,…n]}][COLLATEcollation_name]其中<filespec>定義為:[PRIMARY]([NAME=logical_file_name,]FILENAME=’OS_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=growth_increment])[,...n]其中<filesgroup>定義為:FILEGROUPfilegroup_name<filespec>[,…n]相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)語(yǔ)法中的符號(hào)及參數(shù)說(shuō)明如下:(1)[]:可選語(yǔ)法選項(xiàng),省略時(shí)參數(shù)為默認(rèn)值。(2)[,…n]:前面的內(nèi)容可以重復(fù)多次。(3){}:必選項(xiàng)。(4)<>:在實(shí)際的語(yǔ)句中要用相應(yīng)的內(nèi)容替代。(5)大寫字母:該文字為T-SQL關(guān)鍵字。(6)小寫字母:該文字為用戶提供的T-SQL參數(shù)。(7)database_name:用戶創(chuàng)建的數(shù)據(jù)庫(kù)名稱。(8)ON:指定顯式定義用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù)部分的數(shù)據(jù)文件信息。(9)LOGON:指定日志文件的明確定義。(10)COLLATEcollation_name:指定數(shù)據(jù)庫(kù)默認(rèn)排序規(guī)則。(11)<filespec>:指定文件的屬性。(12)NAMElogical_file_name:數(shù)據(jù)文件的邏輯文件名。(13)FILENAME’OS_file_name’:數(shù)據(jù)文件的物理名稱,包括物理文件的路徑和文件名。相關(guān)知識(shí)創(chuàng)建Student數(shù)據(jù)庫(kù)(14)SIZEsize:文件的初始大小,指定為整數(shù),單位可以使用KB、MB、GB或TB后綴,默認(rèn)值為MB。(15)MAXSIZEmax_size|UNLIMITED:文件可以增長(zhǎng)到
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省考面試題目及答案
- 鋼琴教師編面試題及答案
- 財(cái)務(wù)知識(shí)面試題及答案
- 投資估算師面試題及答案解析
- 財(cái)務(wù)經(jīng)理崗位面試寶典及參考答案
- 特種技工面試題及答案
- 面試題及答案巡察督導(dǎo)員崗位能力評(píng)估
- UI設(shè)計(jì)師面試題及答案詳解
- 2025重慶眾合智行交通科技有限公司招聘10人筆試參考題庫(kù)附帶答案詳解(3卷合一版)
- 2025年P(guān)MP項(xiàng)目管理真題匯編含答案
- 小品劇本《鍘美案》臺(tái)詞完整版遼寧民間藝術(shù)團(tuán)宋小寶
- 電子合同取證流程規(guī)范
- 張家界航空工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 醫(yī)藥代表如何成功拜訪客戶
- 科研倫理與學(xué)術(shù)規(guī)范-課后作業(yè)答案
- 交通銀行跨境人民幣業(yè)務(wù)介紹
- GB/T 33636-2023氣動(dòng)用于塑料管的插入式管接頭
- 旅游地理學(xué) 國(guó)家公園建設(shè)與管理
- JJF(石化)036-2020漆膜附著力測(cè)定儀(劃圈法)校準(zhǔn)規(guī)范
- 診所醫(yī)生聘用合同(3篇)
- JJG 693-2011可燃?xì)怏w檢測(cè)報(bào)警器
評(píng)論
0/150
提交評(píng)論