數(shù)據(jù)庫課程設(shè)計--學生宿舍管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設(shè)計--學生宿舍管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設(shè)計--學生宿舍管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設(shè)計--學生宿舍管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設(shè)計--學生宿舍管理系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學生宿舍管理系統(tǒng)課程設(shè)計摘要:學生宿舍管理系統(tǒng)是應對學生宿舍管理的現(xiàn)代化、網(wǎng)絡(luò)化,逐步擺脫當前學生宿舍管理的人工管理方式,提高學生宿舍管理效率而開發(fā)的,它包括宿舍學生基本信息管理、樓道工人基本信息管理、宿舍樓基本信息管理、宿舍基本信息管理、宿舍事故基本信息管理、宿舍樓物品出入基本信息管理、宿舍樓保衛(wèi)處基本信息管理、宿舍配備物品及處理管理等八大功能模塊,并提供了對各功能模塊的查詢和更新功能,且這兩種功能基本上是通過存儲過程來實現(xiàn)的,其中宿舍學生基本信息管理、宿舍基本信息管理是系統(tǒng)開發(fā)的重點。該系統(tǒng)開發(fā)由系統(tǒng)需求分析、概念設(shè)計、邏輯設(shè)計、數(shù)據(jù)庫實施、系統(tǒng)調(diào)試和測試階段組成。目錄1、概述:12、課程

2、設(shè)計的需求分析12。1、設(shè)計任務:12。1、設(shè)計要求:23、概念結(jié)構(gòu)設(shè)計33.1、概念結(jié)構(gòu)設(shè)計工具(E-R模型)33。2、入住登記子系統(tǒng)(局部)33.2。1、子系統(tǒng)描述33.2。2、分ER圖43。2。3、說明43。3、外出登記子系統(tǒng)43。3。1、子系統(tǒng)描述43.3.2、分ER圖53.3。3、說明53。4、調(diào)整宿舍子系統(tǒng)53。4.1、子系統(tǒng)描述53。4.2、分E-R圖63。4。3、說明63.5、宿舍智能分配子系統(tǒng)63.5。1、子系統(tǒng)描述63.5。2、分ER圖73。5。3、說明73。6、信息查詢子系統(tǒng)73.6。1、子系統(tǒng)描述73。6。2、分E-R圖73。6.3、說明83.7、總體ER圖84、邏輯結(jié)

3、構(gòu)設(shè)計94.1、關(guān)系數(shù)據(jù)模式94.1.1、學生信息(stu_info)94.1。2、宿舍信息(dorm_info)94。1。3、出入信息(inout_info)94。1.4、入住信息(stay_info)104。1.5、調(diào)整信息104。2視圖的設(shè)計104.2.1宿舍信息表視圖105、數(shù)據(jù)庫物理設(shè)計與實施125。1、數(shù)據(jù)庫應用的硬件、軟件環(huán)境介紹125.2、物理結(jié)構(gòu)設(shè)計125。3、索引的設(shè)計125。4、建立數(shù)據(jù)庫135。4。1、創(chuàng)建宿舍信息表135。4.2、創(chuàng)建學生信息表145。4.3、創(chuàng)建出人登記信息表145。4.4、創(chuàng)建入住信息登記表155.4。5、創(chuàng)建宿舍調(diào)整登記表165.5、加載測試數(shù)據(jù)

4、165。5。1、加載住宿信息165。5。2、記載學生信息175。5.3、加載宿舍信息196、數(shù)據(jù)操作與實現(xiàn)206.1、數(shù)據(jù)查詢操作216。2、數(shù)據(jù)更新操作226.3、數(shù)據(jù)維護操作246.3。1同步更新觸發(fā)器246。3。2、按學院分配宿舍存儲過程267、收獲、體會和建議288、主要參考文獻。29備注29任務分配291、概述:舊的手工紀錄的宿舍管理方式已經(jīng)不能適應高速發(fā)展的信息化時代,新的宿舍管理系統(tǒng)開發(fā)出來之后,學校的現(xiàn)有的宿舍信息管理將有很大的改觀,由過去的人工方式轉(zhuǎn)變?yōu)橛嬎銠C方式,由效率低、數(shù)據(jù)冗余、易產(chǎn)生錯誤轉(zhuǎn)變?yōu)闄z索迅速、查找方便、可靠性高、存儲量大。這些優(yōu)點能夠極大地提高效率,也是學校

5、科學化、正規(guī)化管理的重要條件。學生宿舍管理系統(tǒng)采用的是計算機化管理,系統(tǒng)做的盡量人性化,使用者會感到操作非常方便,管理人員需要做的就是將數(shù)據(jù)輸入到系統(tǒng)的數(shù)據(jù)庫中去.由于數(shù)據(jù)庫的存儲容量相當大,而且比較穩(wěn)定,適合較長時間的保存,也不容易丟失。這無疑是為信息存儲量比較大的學校提供了一個方便、快捷的操作方式。2、課程設(shè)計的需求分析2。1、設(shè)計任務:學生宿舍是同學最為熟悉的領(lǐng)域,假定學校有多棟宿舍樓,每棟樓有多層,每層有多個寢室,每個寢室可住多名學生,學生宿舍管理系統(tǒng)對學校的學生宿舍進行規(guī)范管理,其管理的對象如下:·宿舍信息:編號、樓層、床位數(shù)、單價等。·學生:學號、姓名、性別、年

6、齡、所在院系、年級、電話等.每個宿舍最多可以住4位同學,每個同學只能在一個宿舍,不同宿舍的費用標準可以不同。不同院系、年級的同學可以住同一間宿舍.2。1、設(shè)計要求:系統(tǒng)要能夠?qū)λ奚?、學生、住宿信息進行登記、調(diào)整,并能隨時進行各種查詢、統(tǒng)計等處理。包括:·寢室分配:根據(jù)院系、年級分配寢室.·學生管理:實現(xiàn)入住學生信息的登記、維護和查詢功能。·信息查詢:按公寓樓號、學生姓名等查詢住宿信息。·出入登記(可選):對學生進出公寓的情況進行登記、實現(xiàn)基本的出入監(jiān)控功能3、概念結(jié)構(gòu)設(shè)計3。1、概念結(jié)構(gòu)設(shè)計工具(ER模型)3。2、入住登記子系統(tǒng)(局部)3。2.1、子系統(tǒng)

7、描述主要是學生入住的管理,包括學生入住的申請,查詢是否存在該學生,查詢是否有空余的宿舍以及宿舍的分配3.2.2、分ER圖3.2.3、說明可以通過這個系統(tǒng)來解決學生入住的申請和分配等各種問題3。3、外出登記子系統(tǒng)3。3。1、子系統(tǒng)描述主要是學生外出的管理問題,包括學生外出的申請,外出的審核,外出的等級等為題。3。3。2、分E-R圖3.3。3、說明可以通過這個系統(tǒng)解決學生外出的登記的各種問題。3。4、調(diào)整宿舍子系統(tǒng)3。4。1、子系統(tǒng)描述主要是學生宿舍的調(diào)整,宿舍表的更新問題。3。4。2、分ER圖3.4.3、說明可以通過這個系統(tǒng)解決學生宿舍的調(diào)整問題,包括宿舍的申請調(diào)整,調(diào)整原因的判斷以及調(diào)整后宿舍

8、表的更新問題。3.5、宿舍智能分配子系統(tǒng)3。5。1、子系統(tǒng)描述主要是學生宿舍的分配問題。3。5.2、分ER圖3.5.3、說明可以通過這個子系統(tǒng)來分配學生的宿舍,包括按學院分配以及按年級分配。3。6、信息查詢子系統(tǒng)3.6。1、子系統(tǒng)描述主要是查詢學生宿舍的問題。3。6。2、分E-R圖3。6。3、說明可以通過子系統(tǒng)來查詢學生的宿舍包括按公寓查詢以及按學生名字查詢。3。7、總體E-R圖4、邏輯結(jié)構(gòu)設(shè)計4。1、關(guān)系數(shù)據(jù)模式4.1。1、學生信息(stu_info)字段描述數(shù)據(jù)類型數(shù)據(jù)長度NULLPrimarykey 約束Stu_num學號IntNYname姓名varchar12NNsex性別varcha

9、r4NN男/女a(chǎn)ge年齡intNN099fac所在學院varchar50NNclass所在班級varchar50NNcelphone電話varchar16NNEntry_date入學日期dateNN4.1.2、宿舍信息(dorm_info)字段描述數(shù)據(jù)類型數(shù)據(jù)長度NULLPrimarykey 約束dorm_num宿舍編號intNYflo所在樓層intNN0-20Bad_amount床位數(shù)IntNN=4Avi_bad可用床位數(shù)IntYN=4unit_price單價floatNN4.1。3、出入信息(inout_info)字段描述數(shù)據(jù)類型數(shù)據(jù)長度NULLPrimarykey 約束stu_num學號

10、intNforeignkeydorm_num所住宿舍intNforeignkeyleft_time離開時間DatetimeNNback_time回來時間DatetimeNNreason離開原因varchar50NNover_time是否晚歸varchar2NN是/否4。1.4、入住信息(stay_info)字段描述數(shù)據(jù)類型數(shù)據(jù)長度NULLPrimarykey 約束dorm_num宿舍編號intNforeignkeystu_num學號intNforeignkeyHave_in已住人數(shù)intNN=4in_date入住日期dateNN4.1。5、調(diào)整信息字段描述數(shù)據(jù)類型數(shù)據(jù)長度NULLPrimary

11、key 約束stu_num學號intNYsrc原宿舍intNNdst調(diào)后宿舍intNNch_date調(diào)整日期dateNNch_reason調(diào)整原因varchar50NN4。2視圖的設(shè)計4。2.1宿舍信息表視圖創(chuàng)建查看宿舍信息表的視圖,其中應該包含宿舍的所有信息。并且應該按可用床位數(shù)遞減createviewview_dormASSELECTtop 100 dorm_num,flo,bad_amount,unit_price,avi_badFROMdorm_infoorderbyavi_baddesc創(chuàng)建按宿舍號查看住宿信息的視圖,其中應包含住宿登記時的所有信息,并且按照宿舍號遞減排列create

12、viewview_stay_bydormASSELECTtop 100 dorm_num,stu_num,have_in,in_dateFROMstay_infoorderbydorm_numdesc創(chuàng)建按學號查看住宿信息的視圖,其中應包含住宿登記時的所有信息,并且按照宿舍號遞減排列createviewview_stay_bystuASSELECTtop 100 dorm_num,stu_num,have_in,in_dateFROMstay_infoorderbystu_numdesc創(chuàng)建查看出入信息的視圖,其中應包含出入登記時的所有信息,并且按照離開時間遞減排列createviewview

13、_io_infoasSELECTtop 100 stu_num,dorm_num,left_time,back_time,reason,over_timeFROMdbo。inout_infoorderbyleft_time5、數(shù)據(jù)庫物理設(shè)計與實施5.1、數(shù)據(jù)庫應用的硬件、軟件環(huán)境介紹電腦配置為AMD Athlon(速龍) II X2 260 雙核 處理器,2G內(nèi)存,Windows XP 專業(yè)版 32位 SP3 ( DirectX 9。0c )操作系統(tǒng),安裝mysql 數(shù)據(jù)庫服務做測試。5。2、物理結(jié)構(gòu)設(shè)計考慮到索引能加快查詢的速度,所以在需要經(jīng)常進行查詢的列創(chuàng)建索引。其中學生信息的學號、宿舍信

14、息的宿舍編號、入住信息中學生的學號和宿舍的編號,這幾個列都需要創(chuàng)建索引.由于前兩項已經(jīng)是主鍵,所以無需額外創(chuàng)建索引?,F(xiàn)在為后兩項創(chuàng)建索引.5。3、索引的設(shè)計為入住信息中學生的學號和宿舍的編號創(chuàng)建索引:createuniqueindex入住信息中學生的學號ix_stay_info1onstay_info(stu_num)createindex宿舍的編號ix_stay_info2onstay_info(dorm_num)5。4、建立數(shù)據(jù)庫首先創(chuàng)建名為sdms的學生宿舍管理數(shù)據(jù)庫 ,createdatabasesdms.5.4。1、創(chuàng)建宿舍信息表usesdmscreatetabledorm_info

15、(dorm_numintnotnullprimarykey,flointnotnull,bad_amountintnotnull,avi_badintnull,unit_pricefloatnotnull)并且創(chuàng)建約束,使床位數(shù)和可用床位數(shù)不能大于4個,因為一個宿舍最多能住四個人,并且樓層數(shù)在020之間。altertabledorm_infoaddconstraintck_badcheck(bad_amount=4)altertabledorm_infoaddconstraintck_avicheck(avi_bad=4)altertabledorm_infoaddconstraintck_f

16、locheck(flo=0 andflo=20)5。4.2、創(chuàng)建學生信息表createtablestu_info(stu_numintnotnullprimarykey,namevarchar(12)notnull,sexvarchar(4)notnull,age int not null,facvarchar(50)notnull,class varchar(50) not null,celphone varchar(16) not null,entry_date date not null)創(chuàng)建約束,性別只能是男或女 ,并且年齡只能在099之間altertablestu_infoaddco

17、nstraintch_sexcheck(sexin(男',女))ALTERTABLEstu_infoADDconstraintck_agecheck(age>=0 andage=99)5。4。3、創(chuàng)建出人登記信息表createtableinout_info(stu_numintnotnullreferencesstu_info(stu_num),dorm_numintnotnullreferencesdorm_info(dorm_num),left_timedatetimenotnull,back_timedatetimenotnull,reasonvarchar(50)notn

18、ull,over_timevarchar(2)notnull)創(chuàng)建約束,是否晚歸字段這能選擇是或者否.altertableinout_infoaddconstraintck_otcheck(over_timein(是,'否)5。4。4、創(chuàng)建入住信息登記表createtablestay_info(dorm_numintnotnullreferencesdorm_info(dorm_num),stu_numintnotnullreferencesstu_info(stu_num),have_inintnotnull,in_datedate)創(chuàng)建約束,已住人數(shù)不能超過4個。altertabl

19、estay_infoaddconstraintck_incheck(have_in<=4)5.4。5、創(chuàng)建宿舍調(diào)整登記表createtablechange_info(stu_numintnotnullprimarykey,srcintnotnull,dstintnotnull,ch_datedatenotnull,ch_reasonvarchar(50)notnull)5。5、加載測試數(shù)據(jù)5.5。1、加載住宿信息創(chuàng)建一個存儲過程用于錄入住宿信息。USEsdmsGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDUREdbo。ins

20、ert_stay_infodorm_numint,stu_numint,have_inintASBEGINSETNOCOUNTON;insertintostay_infovalues(dorm_num,stu_num,have_in,GETDATE())END其中包括要住宿的宿舍號,要住宿的學生學號,該宿舍應經(jīng)住了多少人。如圖所示:單擊確定后數(shù)據(jù)成功的錄入到數(shù)據(jù)庫的住宿信息表中,如圖:學號為1104402302的學號已經(jīng)插入到住宿信息表中.5.5。2、記載學生信息創(chuàng)建一個存儲過程用于錄入學生信息.USEsdmsGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONG

21、OCREATEPROCEDUREdbo。insert_stu_infostu_numint,namevarchar(12),sexvarchar(4),facvarchar(50),classvarchar(50),celphonevarchar(16),ageintASBEGINSETNOCOUNTON;insertintostu_infovalues(stu_num,name,sex,fac,class,celphone,GETDATE(),age)END其中包括要住宿的學號、姓名、性別、所在學院、班級、電話、年齡.如圖所示:單擊確定后數(shù)據(jù)成功的錄入到數(shù)據(jù)庫的學生信息表中,如圖:學號為11

22、04402304的學生已經(jīng)成功錄入到學生信息表中.5.5。3、加載宿舍信息創(chuàng)建一個存儲過程用于錄入宿舍信息.SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDUREinsert_dorm_infodorm_numint,floint,bad_amountint,unit_pricefloat,avi_badintASBEGINSETNOCOUNTON;insertintodorm_infovalues(dorm_num,flo,bad_amount,unit_price,avi_bad)ENDGO其中包括要住宿的宿舍號、所在樓層、床位位數(shù)

23、、單價、空余床位。如圖所示:擊確定后數(shù)據(jù)成功的錄入到數(shù)據(jù)庫的宿舍信息表中,如圖:6、數(shù)據(jù)操作與實現(xiàn)根據(jù)需求中給出的數(shù)據(jù)處理要求,設(shè)計訪問數(shù)據(jù)庫的具體要求,并用SQL語言加以實現(xiàn)。運行SQL語句進行測試。6.1、數(shù)據(jù)查詢操作創(chuàng)建存儲過程view_dorm_bydrom,實現(xiàn)按公寓查找宿舍的住宿信息。CREATEPROCEDUREview_dorm_bydromdorm_numint /定義變量用于等待用戶輸入宿舍號 ASBEGINSETNOCOUNTON;SELECT*fromdorm_infowheredorm_num=dorm_num /查詢出與輸入宿舍號相符的結(jié)果END結(jié)果如圖:單擊確定后

24、:創(chuàng)建存儲過程view_dorm_bystu,實現(xiàn)按學號查詢學生的住宿信息。CREATEPROCEDUREview_dorm_bystustu_numintASBEGINSETNOCOUNTON;SELECTfromstay_infowherestu_num=stu_numEND執(zhí)行存儲過程結(jié)果如圖所示:單擊“確定”,顯示出學生在哪個宿舍住,該宿舍住著幾個人,什么時候入住6。2、數(shù)據(jù)更新操作宿舍調(diào)整登記。創(chuàng)建一個存儲過程用于登記個別學生調(diào)整宿舍的記錄。同時跟新原來的住宿信息表,使得調(diào)整后學生的宿舍信息表能同步進行。這里避免創(chuàng)建觸發(fā)器的繁雜,只使用了更新的語句.CREATEPROCEDUREch

25、ange_dormstu_numint,dst_dormint,reasonvarchar(50)ASBEGINSETNOCOUNTON;declarecur1cursorforSELECTdorm_numfromstay_infowherestu_num=stu_num 查詢需要調(diào)整的人員的原來住的宿舍opencur1declaresrcint 聲明游標以獲取查詢結(jié)果fetchcur1intosrcinsertintochange_info(stu_num,src,dst,ch_date,ch_reason)values(stu_num,src,dst_dorm,GETDATE(),reas

26、on)updatestay_infosetdorm_num=dst_dormwherestu_num=stu_num-將調(diào)整的信息插入到調(diào)整登記信息表中closecur1END執(zhí)行存儲過程如下:需要登記的信息成功錄入到調(diào)整信息表中原住宿信息表數(shù)據(jù)。調(diào)整宿舍后:6。3、數(shù)據(jù)維護操作6。3。1同步更新觸發(fā)器是系統(tǒng)使用過程中,需要使用一個觸發(fā)器來同步信息。例如當有學生要住宿時,該宿舍已住人數(shù)要增加1,而宿舍信息中的相應空余床位數(shù)要減1.所以在住宿登記表中使用以下觸發(fā)器。SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETRIGGERtri1ONstay_i

27、nfoAFTERINSERTASBEGINSETNOCOUNTON;declaredorm_numint,have_inintdeclarecur2cursorforselectdorm_num,have_infromstay_infoopencur2fetchcur2while(FETCH_STATUS<>-1)beginfetchnextfromcur2intodorm_num,have_inupdatestay_infosethave_in=(have_in+1)wheredorm_num=dorm_num 更新相應宿舍的已住人數(shù),增加1. updatedorm_infose

28、tavi_bad=(selectavi_badfromdorm_infowheredorm_num=dorm_num)1)wheredorm_num=dorm_num 更新宿舍信息表中的可用床位數(shù)(空余床位數(shù))endclosecur2ENDGO執(zhí)行登記住宿信息表的存儲過程插入前:插入后:6。3.2、按學院分配宿舍存儲過程創(chuàng)建一個存儲過程,用于按學院分配宿舍.使得能按同學院的學生能盡量的在同一宿舍住。USEsdmsGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDUREdbo。allowdorm_byfacfacvarchar(20)ASBEGINdeclareoffsetint,bad_amountint,sumintsetoffset=1setbad_amount=1setsum=(selectdistinct(stu_num)fromstu_infowher

溫馨提示

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

評論

0/150

提交評論