單元2設(shè)計數(shù)據(jù)庫_第1頁
單元2設(shè)計數(shù)據(jù)庫_第2頁
單元2設(shè)計數(shù)據(jù)庫_第3頁
單元2設(shè)計數(shù)據(jù)庫_第4頁
單元2設(shè)計數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單元2設(shè)計數(shù)據(jù)庫引言學(xué)生信息管理是高校學(xué)生管理工作的重要組成部分。學(xué)生信息管理系統(tǒng)涉及學(xué)生從入學(xué)到畢業(yè)離校的整個過程中管理的方方面面,主要包括學(xué)生成績管理、學(xué)生住宿管理、學(xué)生助貸管理、學(xué)生任職管理、學(xué)生考勤管理、學(xué)生獎懲管理、學(xué)生就業(yè)管理等子系統(tǒng)。本教材教學(xué)案例和課堂練習(xí)采用學(xué)生信息管理系統(tǒng)中的學(xué)生成績管理子系統(tǒng),拓展練習(xí)采用學(xué)生住宿管理子系統(tǒng)。為什么需要設(shè)計數(shù)據(jù)庫修建茅屋需要設(shè)計嗎?修建大廈需要設(shè)計嗎?結(jié)論:當(dāng)數(shù)據(jù)庫比較復(fù)雜時我們需要設(shè)計數(shù)據(jù)庫為什么需要設(shè)計數(shù)據(jù)庫良好的數(shù)據(jù)庫設(shè)計節(jié)省數(shù)據(jù)的存儲空間能夠保證數(shù)據(jù)的完整性方便進(jìn)行數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)糟糕的數(shù)據(jù)庫設(shè)計:數(shù)據(jù)冗余、存儲空間浪費內(nèi)存空間浪費數(shù)據(jù)更新和插入的異常【學(xué)習(xí)任務(wù)】任務(wù)1需求分析任務(wù)2設(shè)計數(shù)據(jù)庫任務(wù)3確定表名和屬性名任務(wù)4選取字段數(shù)據(jù)類型【學(xué)習(xí)目標(biāo)】理解學(xué)生成績管理系統(tǒng)和學(xué)生住宿管理系統(tǒng)的需求分析和關(guān)系模型;理解SQLServer支持的常用數(shù)據(jù)類型;能結(jié)合實際需求為表中字段選取合適數(shù)據(jù)類型。任務(wù)1任務(wù)1需求分析【任務(wù)提出】進(jìn)行數(shù)據(jù)庫設(shè)計首先必須明確了解與分析用戶需求(包括數(shù)據(jù)與處理),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實際要求,將直接影響到后面各個階段的設(shè)計,并影響到設(shè)計結(jié)果是否合理和實用。本任務(wù)要求完成學(xué)生成績管理系統(tǒng)和學(xué)生住宿管理系統(tǒng)數(shù)據(jù)庫需求分析?!救蝿?wù)分析】需求分析是整個數(shù)據(jù)庫設(shè)計中最困難一步,對于初學(xué)者較難實施。同時考慮到需求分析的具體介紹會在后續(xù)課程安排,這里略過。并簡單給出學(xué)生成績管理系統(tǒng)和學(xué)生住宿管理系統(tǒng)的數(shù)據(jù)庫需求分析結(jié)果。該任務(wù)要求學(xué)生仔細(xì)閱讀給出的簡單需求分析文檔,并在課后調(diào)查所在學(xué)校的實際學(xué)生管理情況,結(jié)合學(xué)校實際情況分析理解?!鞠嚓P(guān)知識與技能】1.需求分析的主要任務(wù)需求分析的主要任務(wù)是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。2.需求分析的過程需求分析的過程大致分為3步:需求調(diào)查、分析整理、修改完善。【任務(wù)實施】1.學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫需求分析2.學(xué)生住宿管理系統(tǒng)數(shù)據(jù)庫需求分析【任務(wù)總結(jié)】需求分析是整個數(shù)據(jù)庫設(shè)計的第一步,主要任務(wù)是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。考慮到大家是初學(xué)者,以前沒有學(xué)習(xí)過數(shù)據(jù)庫設(shè)計開發(fā)相關(guān)知識,所以設(shè)計的系統(tǒng)案例較簡單,使得大家容易入手。學(xué)習(xí)者可從本校實際學(xué)生管理情況出發(fā)對系統(tǒng)案例進(jìn)行擴(kuò)充。任務(wù)2任務(wù)2設(shè)計數(shù)據(jù)庫【任務(wù)提出】在需求分析階段數(shù)據(jù)庫設(shè)計人員充分調(diào)查并描述了用戶的數(shù)據(jù)和處理需求,但這些需求還是現(xiàn)實世界的具體需求,要某一DBMS實現(xiàn)用戶的這些需求,需進(jìn)行數(shù)據(jù)庫設(shè)計,將現(xiàn)實世界的具體需求抽象為信息世界的結(jié)構(gòu)并轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型。本任務(wù)要求完成學(xué)生成績管理系統(tǒng)和學(xué)生住宿管理系統(tǒng)數(shù)據(jù)庫設(shè)計。【任務(wù)分析】進(jìn)行數(shù)據(jù)庫設(shè)計,須先理解數(shù)據(jù)庫設(shè)計相關(guān)知識及關(guān)系數(shù)據(jù)庫基本概念??紤]到數(shù)據(jù)庫設(shè)計內(nèi)容對于初學(xué)者來說較難理解,這里簡要介紹,具體放在下學(xué)期詳細(xì)講解?!鞠嚓P(guān)知識與技能】1.?dāng)?shù)據(jù)庫設(shè)計階段(1)概念結(jié)構(gòu)設(shè)計階段該階段是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,任務(wù)是通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。表示概念模型最常用的是實體-聯(lián)系方法(E-R方法)。(2)邏輯結(jié)構(gòu)設(shè)計階段該階段的任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化。(3)數(shù)據(jù)庫物理設(shè)計階段該階段的任務(wù)是為邏輯數(shù)據(jù)模型選取一個最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)。【相關(guān)知識與技能】2.?dāng)?shù)據(jù)模型(1)為什么要建立數(shù)據(jù)模型首先,正如蓋大樓的設(shè)計圖一樣,數(shù)據(jù)模型可使所有的項目參與者都有一個共同的數(shù)據(jù)標(biāo)準(zhǔn);其次,數(shù)據(jù)模型可以避免出現(xiàn)問題再解決(邊干邊改的方式);第三,數(shù)據(jù)模型的使用可以及早發(fā)現(xiàn)問題;最后,可以加快開發(fā)速度?!鞠嚓P(guān)知識與技能】(2)數(shù)據(jù)模型的分類1)概念數(shù)據(jù)模型簡稱概念模型,是面向數(shù)據(jù)庫用戶的現(xiàn)實世界的數(shù)據(jù)模型;與具體的DBMS無關(guān)。概念數(shù)據(jù)模型必須轉(zhuǎn)換成邏輯數(shù)據(jù)模型,才能在DBMS中實現(xiàn)。2)邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型是用戶從數(shù)據(jù)庫所看到的數(shù)據(jù)模型,是具體的DBMS所支持的數(shù)據(jù)模型。有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷?。其中出現(xiàn)最早的是層次模型,而關(guān)系模型是目前最重要的一種模型?!鞠嚓P(guān)知識與技能】(3)數(shù)據(jù)模型的三要素數(shù)據(jù)模型的組成要素有數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)完整性約束。(4)關(guān)系模型1)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,稱為關(guān)系,它由行和列組成。2)關(guān)系模型的數(shù)據(jù)操作操作主要包括查詢、插入、刪除、更新(修改)。3)關(guān)系模型的數(shù)據(jù)完整性約束包括實體完整性、參照完整性和用戶定義的完整性?!鞠嚓P(guān)知識與技能】3.關(guān)系數(shù)據(jù)庫基本概念關(guān)系:一個關(guān)系對應(yīng)于一張二維表。字段(屬性):二維表(關(guān)系)的每一列稱為一個字段(屬性),每一列的標(biāo)題稱為字段名(屬性名)。記錄(元組):二維表(關(guān)系)的每一行稱為一條記錄(元組),記錄由若干個相關(guān)屬性值組成?!鞠嚓P(guān)知識與技能】關(guān)系模式:是對關(guān)系的描述。一般表示為:關(guān)系名(屬性1,屬性2,…,屬性n)。如學(xué)生(學(xué)號,姓名,性別,出生年月)。關(guān)系數(shù)據(jù)庫:數(shù)據(jù)以“關(guān)系”的形式即表的形式存儲的數(shù)據(jù)庫。在關(guān)系數(shù)據(jù)庫中,信息存放在二維表(關(guān)系)中,一個關(guān)系數(shù)據(jù)庫可包含多個表。RDBMS:關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的簡稱,目前常用的數(shù)據(jù)庫管理系統(tǒng)如SQLServer2005等都是RDBMS。【相關(guān)知識與技能】4.關(guān)系的性質(zhì)(1)關(guān)系的每一個分量都必須是不分再分的數(shù)據(jù)項(2)關(guān)系中每一列中的值必須是同一類型的(3)不同列中的值可以是同一類型,不同的屬性列應(yīng)有不同的屬性名(4)列的順序無所謂(5)行的順序無所謂(6)任意兩個元組不能完全相同【任務(wù)實施】1.學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫設(shè)計班級(班級編號,班級名稱,所在學(xué)院,所屬專業(yè),入學(xué)年份)學(xué)生(學(xué)號,姓名,性別,出生年月,班級編號)課程(課程編號,課程名稱,課程學(xué)分,課程學(xué)時)成績(學(xué)號,課程編號,平時成績,期末成績)2.學(xué)生住宿管理系統(tǒng)數(shù)據(jù)庫設(shè)計班級(班級編號,班級名稱,所在學(xué)院,所屬專業(yè),入學(xué)年份)學(xué)生(學(xué)號,姓名,性別,出生年月,班級編號)宿舍(宿舍編號,樓棟,樓層,房間號,總床位數(shù),宿舍類別,宿舍電話)入?。▽W(xué)號,宿舍編號,床位號,入住日期,離寢日期)衛(wèi)生檢查(檢查號,宿舍編號,檢查時間,檢查人員,成績,存在問題)【任務(wù)總結(jié)】數(shù)據(jù)庫需求分析階段的主要任務(wù)是確定在數(shù)據(jù)庫中存儲哪些數(shù)據(jù),而數(shù)據(jù)庫設(shè)計階段的主要任務(wù)是將需要的數(shù)據(jù)合理組織存儲到數(shù)據(jù)庫中。任務(wù)3任務(wù)3確定表名和屬性名【任務(wù)提出】數(shù)據(jù)庫各關(guān)系模式確定后,并不能直接進(jìn)行數(shù)據(jù)庫實施,需先根據(jù)命名規(guī)范確定各關(guān)系的表名和屬性名,然后根據(jù)實際需求為各屬性選取合適數(shù)據(jù)類型,根據(jù)數(shù)據(jù)完整性要求定義各關(guān)系的完整性約束。本任務(wù)要求確定學(xué)生成績管理系統(tǒng)和學(xué)生住宿管理系統(tǒng)中各關(guān)系的表名和屬性名?!救蝿?wù)分析】表名和屬性名的命名不能隨心所欲,應(yīng)規(guī)范命名。因為在數(shù)據(jù)庫的開發(fā)和使用過程中涉及很多人員,如果隨意命名,不易溝通而且容易出錯。本任務(wù)先了解常見的命名規(guī)范,然后選擇通用的命名規(guī)范來進(jìn)行命名?!鞠嚓P(guān)知識與技能】1.常見的命名規(guī)范【相關(guān)知識與技能】2.PascalCase(帕斯卡法)在實際應(yīng)用中,常使用PascalCase命名方法,它使用大小寫混合的單詞,將每個單詞的首字母大寫,然后把它們連接在一起,中間不使用分隔符。本書案例的命名規(guī)范采用PascalCase。命名的單詞一般采用英文單詞或英文單詞的縮寫,盡量避免使用拼音命名,英文單詞來自于具體業(yè)務(wù)定義,盡量表達(dá)清楚含義?!救蝿?wù)實施】1.確定學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫的表名和屬性名(1)班級(班級編號,班級名稱,所在學(xué)院,所屬專業(yè),入學(xué)年份)

Class(ClassNo,ClassName,College,Specialty,EnterYear)(2)學(xué)生(學(xué)號,姓名,性別,出生年月,班級編號)

Student(Sno,Sname,Sex,Birth,ClassNo)(3)課程(課程編號,課程名稱,課程學(xué)分,課程學(xué)時)

Course(Cno,Cname,Credit,ClassHour)(4)成績(學(xué)號,課程編號,平時成績,期末成績)

Score(Sno,Cno,Uscore,EndScore)【任務(wù)實施】2.確定學(xué)生住宿管理系統(tǒng)數(shù)據(jù)庫的表名和屬性名(1)班級(班級編號,班級名稱,所在學(xué)院,所屬專業(yè),入學(xué)年份)Class(ClassNo,ClassName,College,Specialty,EnterYear)(2)學(xué)生(學(xué)號,姓名,性別,出生年月,班級編號)Student(Sno,Sname,Sex,Birth,ClassNo)(3)宿舍(宿舍編號,樓棟,樓層,房間號,總床位數(shù),宿舍類別,宿舍電話)Dorm(DormNo,Build,Storey,RoomNo,BedsNum,DormType,Tel)(4)入?。▽W(xué)號,宿舍編號,床位號,入住日期,離寢日期)Live(Sno,DormNo,BedNo,InDate,OutDate)(5)衛(wèi)生檢查(檢查號,宿舍編號,檢查時間,檢查人員,成績,存在問題)CheckHealth(CheckNo,DormNo,CheckDate,CheckMan,Score,Problem)【任務(wù)總結(jié)】表名和屬性名必須按照命名規(guī)范來命名,切忌使用中文漢字命名。任務(wù)4任務(wù)4選取字段數(shù)據(jù)類型【任務(wù)提出】關(guān)系模型設(shè)計好后,接下來的工作是要根據(jù)實際采用的DBMS為各關(guān)系中的屬性(字段)選取合適數(shù)據(jù)類型,以保證數(shù)據(jù)能存儲到各關(guān)系中。本任務(wù)要求為學(xué)生成績管理系統(tǒng)和學(xué)生住宿管理系統(tǒng)的各關(guān)系中的屬性選取合適數(shù)據(jù)類型?!救蝿?wù)分析】不同的DBMS所支持的數(shù)據(jù)類型并不完全相同,而且與標(biāo)準(zhǔn)的SQL也有一定差異。本書采用的DBMS為SQLServer2005。為字段選取數(shù)據(jù)類型須先理解SQLServer2005支持的常用數(shù)據(jù)類型,然后根據(jù)實際需求為各關(guān)系字段選取合適數(shù)據(jù)類型。【相關(guān)知識與技能】1.?dāng)?shù)值型數(shù)據(jù)類型數(shù)值型數(shù)據(jù)包括整型、定點小數(shù)型和浮點型。定點小數(shù)型能精確指定小數(shù)點兩邊的位數(shù),而浮點型只能近似地表示?!鞠嚓P(guān)知識與技能】【相關(guān)知識與技能】2.字符型數(shù)據(jù)類型【相關(guān)知識與技能】3.日期時間型數(shù)據(jù)類型4.貨幣型數(shù)據(jù)類型有money數(shù)據(jù)類型和smallmoney數(shù)據(jù)類型。money和smallmoney被限定到小數(shù)點后4位。在實際應(yīng)用中,經(jīng)常采用decimal數(shù)據(jù)類型代替貨幣數(shù)據(jù)類型。【任務(wù)實施】1.為學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫中的字段選取合適數(shù)據(jù)類型【例1】為Class表中的字段選取數(shù)據(jù)類型?!救蝿?wù)實施】【練習(xí)1】為Student表中的字段選取數(shù)據(jù)類型。Student(Sno,Sname,Sex,Birth,ClassNo)【練習(xí)2】為Course表中的字段選取數(shù)據(jù)類型。Course(Cno,Cname,Credit,ClassHour)【練習(xí)3】為Score表中的字段選取數(shù)據(jù)類型。Score(Sno,Cno,Uscore,EndScore)【任務(wù)總結(jié)】字段數(shù)據(jù)類型的選取非常關(guān)鍵,關(guān)系到實際使用中的數(shù)據(jù)能否存儲到數(shù)據(jù)庫表中,所以必須考慮全面,應(yīng)遵循存儲空間夠用但不浪費的原則,同時要考慮到不同系統(tǒng)之間的數(shù)據(jù)轉(zhuǎn)換,字符數(shù)據(jù)盡量使用Unicode數(shù)據(jù)類型?!就卣怪R】1.二進(jìn)制數(shù)據(jù)類型【拓展知識】2.標(biāo)識列標(biāo)識列自動為表生成行號。列數(shù)據(jù)類型為bigbit、int、smallint、tinyint、numeric和decimal能夠成為標(biāo)識列,一個表只能創(chuàng)建一個標(biāo)識列。須同時指定標(biāo)識增量和標(biāo)識種子,或者兩者都不指定。默認(rèn)值(1,1)?!就卣怪R】3.特殊數(shù)據(jù)類型Uniqueidentifier標(biāo)識列自動為表生成行號,但不同表的標(biāo)識列可以生成相同的行號。如果應(yīng)用程序需要生成在整個數(shù)據(jù)庫或

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論