




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、學習-好資料、實驗題目學生證管理系統(tǒng)數(shù)據(jù)庫的設計與實現(xiàn)描述:設計一個學生證管理系統(tǒng)。實現(xiàn)下列功能:1 .錄入某位學生的學生證信息2 .給定學號,查詢某位學生的學生證信息;3 .給定班號,顯示該班所有學生的學生證信息;4 .給定學號,修改該學生的學生證信息;5 .給定學號,刪除該學生的學生證信息;三、實驗目的數(shù)據(jù)庫課程設計課程實驗是對學生的一種全面綜合訓練,是與課堂聽講、自學和練習相輔相成的必不可少的一個教學環(huán)節(jié),通過實驗達到深化理解和靈活學握教學內(nèi)容的目的,以及提高學生分析問題、解決問題的應用能力。同時,使學生的工作規(guī)范和科學作風得到培養(yǎng)。通過該課程的學習,要求學生能獨立分析問題,設計算法,實
2、現(xiàn)程序的各項功能,得到正確的可執(zhí)行程序,學會調(diào)試程序,對設計過程進行系統(tǒng)的總結。本實踐課的主要目的:6 、掌握運用數(shù)據(jù)庫原理進行系統(tǒng)分析和設計的方法;7 、掌握關系數(shù)據(jù)庫的設計方法;8 、掌握利用SQLServer2005技術;9 、熟悉各種SQL語句及對數(shù)據(jù)庫的訪問方法。四、實驗要求1 .對各個系統(tǒng)進行系統(tǒng)功能需求分析2 .數(shù)據(jù)庫設計分析階段,進行詳細的數(shù)據(jù)庫需求分析,進行概念數(shù)據(jù)庫的設計,畫出數(shù)據(jù)庫的E-R圖(局部和整體E-R圖)3 .設計出詳細的邏輯數(shù)據(jù)庫結構,將各個實體和聯(lián)系轉化為相應的二維表即關系模式,指定各個關系的主關鍵字和外部關鍵字,并對各個關系的約束加以限定4 .通過企業(yè)管理器
3、或是查詢分析器實現(xiàn)各個二維關系(建議最好用SQL代碼實現(xiàn)),要求建立相關的索引5 .根據(jù)系統(tǒng)功能需求設計相應的查詢視圖6 .要求根據(jù)系統(tǒng)功能需求建立存儲過程7 .根據(jù)功能需求建立相應的觸發(fā)器以保證數(shù)據(jù)的一致性8 .通過建立用戶和權限分配實現(xiàn)數(shù)據(jù)庫一定的安全性,考慮數(shù)據(jù)庫的備份與恢復五、實現(xiàn)思路(一)系統(tǒng)需求分析需求分析師整個數(shù)據(jù)庫設計過程的基礎,要收集數(shù)據(jù)庫所有用戶的信息內(nèi)容和處理要求,并加以規(guī)格化分析。這是最費時、最復雜的一步,但是也是最重要的一步,相當于待構建的數(shù)據(jù)庫大廈的地基,它決定了以后各步設計的速度和質(zhì)量。需求分析做的不好,可能會導致整個數(shù)據(jù)庫設計返工重做。在分析用戶需求時,要確保用
4、戶目標的一致性。需求分析的任務是:對現(xiàn)實世界要處理的對象(組織、部門、企業(yè))等進行詳細的調(diào)查,通過對原系統(tǒng)的了解,收集支持新系統(tǒng)的基礎數(shù)據(jù)并對其進行處理,在此基礎上確定新系統(tǒng)的功能。具體地說,需求分析階段的任務包括下述三項。1 .調(diào)查分析用戶活動2 .收集和分析需求數(shù)據(jù),確定系統(tǒng)邊界3 .編寫系統(tǒng)分析報告在本課程設計中,是對學生證的信息進行管理,學生證的信息不僅包括學生本身信息,也包括系別的信息及注冊學生證的相關注冊信息,因此本課程設計中要用到三個表,即學生信息表、系別信息表和學生證注冊表。對學生證信息的處理包括信息的錄入、查詢、修改及刪除。1 .數(shù)據(jù)流圖:2 .數(shù)據(jù)字典:數(shù)據(jù)字典是對系統(tǒng)中數(shù)
5、據(jù)的詳細描述,是各類數(shù)據(jù)結構和屬性的清單。任何字典最主要的用途都是供人查閱不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設計過程中給人提供關于數(shù)據(jù)的描述信息。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。只有數(shù)據(jù)流圖和對數(shù)據(jù)流圖精確的定義放在一起,才能共同構成系統(tǒng)的規(guī)格說明。我們采用卡片形式書寫數(shù)據(jù)字典,每張卡片上保存描述一個數(shù)據(jù)元素的信息。這種做法較好的實現(xiàn)了上述要求,特別是更新修改起來很方便,能夠單獨處理每個數(shù)據(jù)元素的信息。每張卡片上包含的信息有:名字,描述,定義,位置。(1)對學生信息的管理編P1名稱學生信息管理簡述
6、維護學生信息的完整性輸入學生姓名、學號、班級號、出生年月、性別、民族、籍貫處理1 .新增學生信息的錄入2 .修改學生信息3 .刪除學生信息記錄4 .查詢個人學生信息及班級學生信息輸出學生信息表(2)對系別信息的管理編p2名稱系別信息管理簡述維護系別信息的完整性輸入系別名,班級號等處理1 .新增系別信息的錄入2 .修改系別信息3 .刪除系別信息記錄4 .查詢系別信息輸出系別信息表(3)對學生證注冊信息的管理更多精品文檔好資制號3名稱學生證注冊信息管理簡述維護學生證注冊信息的完整性輸入學號,注冊日期,截止日期處理1 .新增注冊信息的錄入2 .修改注冊信息3 .刪除注冊信息記錄4 .查詢注冊信息輸出
7、注冊信息表(二)概念結構設計概念結構設計就是將需求分析得到的用戶需求抽象為信息結構,即概念模型。概念模型作為概念結構設計的表達工具,為數(shù)據(jù)庫提供一個說明性結構,是設計數(shù)據(jù)庫邏輯結構即邏輯模型的基礎。因此,概念模型必須具備以下特點:(1)語意表達能力豐富。(2)易于交流和理解。(3)易于修改和擴充。(4)易于向各種數(shù)據(jù)模型轉換。1.局部E-R圖:學生信息表:系別信息表:注冊信息表:注冊信息更多精品文檔學習-好資料更多精品文檔(三)邏輯結構設計數(shù)據(jù)庫邏輯設計的任務是將概念模型轉換成特定DBM新支持的數(shù)據(jù)模型的過程。在本課程設計中,存在三個實體(學生,系別,學生證),兩個聯(lián)系(包含,注冊),在學生實
8、體中,學號作為其關鍵字;在系別實體中,系別名作為其關鍵字;而學生證的信息是由學生信息、系別信息及注冊信息組成。因此得到下列關系模式:實體關系模式:學生(學生姓名,性別,出生年月,籍貫,民族)系別(系別名,班級號)聯(lián)系關系模式:擁有(系別名,注冊(學匕注冊日期,截止日期)(四)物理結構設計數(shù)據(jù)庫物理設計的任務是為上一階段得到的數(shù)據(jù)庫邏輯模式,即數(shù)據(jù)庫的邏存儲路徑的設計,記錄集簇的設輯結構選擇合適的應用環(huán)境的物理結構,既確定有效地實現(xiàn)邏輯結構模式的數(shù)據(jù)庫存儲模式,確定在物理設備上所采用的存儲結構和存取方法,然后對該存儲模式進行性能評價、修改設計,經(jīng)過多次反復,最后得到一個性能較好的存儲模式。數(shù)據(jù)庫
9、物理設計內(nèi)容包括記錄存儲結構的設計,計。確定數(shù)據(jù)存放位置:一臺裝有Windows系統(tǒng)的計算機的C盤確定存儲結構:確定關系、索引、聚簇。六、實現(xiàn)過程(一)建表在企業(yè)管理器中,新建數(shù)據(jù)庫,并設置名為student。在該數(shù)據(jù)庫中創(chuàng)建三個表,即學生信息表、系別信息表和注冊信息表,分別命名為S,D,Co首先設計學生信息表S,包括以下屬性,及各屬性的數(shù)據(jù)類型和長度:系 別信 息表 D:含義標識數(shù)據(jù)類型長度約束姓名stu_namevarchar30Not null學號stu_nocharr ioNot null,primary key班級號class_nochar:6Not null性別stu_sexcha
10、r12出生年月stu_birthdaydatetime8民族stu_nativecharr ioDefault 漢籍貫stu_birthdayvarchar30含義標識數(shù)據(jù)類型長度約束系別名deptvarchar30Notnull班級號class_nochar6注冊信息表C:含義標識數(shù):幅類型長度約束學號stu_nochar10Notnull,primarykey注冊日期login_datedatetime8Notnull截止日期validitydatedatetime8Notnull在設計表后即可向表中添加數(shù)據(jù),在添加時要注意各項的約束條件及數(shù)據(jù)長度限制。(二)設置安全性及用戶權限1 .在企
11、業(yè)管理器中,安全性一項中,新建登錄。(1)設置登錄名為ll,并設置SQLserver身份驗證密碼,及默認登錄的數(shù)據(jù)庫為student。(2)設置該登錄用戶的服務器角色為:SystemAdministrators。(3)設置該登錄用戶均可訪問所有數(shù)據(jù)庫。2 .編輯SQLserver注冊屬性。(1)選擇使用SQLServer身份驗證。(2)設置登錄名ll及密碼。(3)選擇總是提示輸入登錄名和密碼。3 .在student數(shù)據(jù)庫中,為用戶設置權限。(1)設置用戶ll的數(shù)據(jù)庫角色為:public和db_owner。(2)設置ll的用戶權限,即對S,D,C三個表均能夠Select,Update,Delet
12、e,Insert和DRI。(三)創(chuàng)建學生證視圖創(chuàng)建學生證信息的視圖,從三個表中選擇學生證所需信息,以便對視圖以外的數(shù)據(jù)進行保密,簡化了查詢操作,并保證了數(shù)據(jù)的邏輯獨立性。以下創(chuàng)建視圖Stu_card,連接D表,C表和S表,選擇所需數(shù)據(jù)項組成視圖。CreateviewStu_card(Dept,SName,SNo,ClassNo,Sex,Birthday,Native,Birthplace,LoginDate,ValidityDate)ASSELECTdept,S.*,login_date,validity_dateFROMD,C,SWHERED.class_no=S.class_noandC.
13、stu_no=S.stu_no(四)實現(xiàn)對學生證的各操作功能1 .錄入學生證信息(1)對某學生的學生證信息錄入之前,需先判斷該學生的學生證信息是否存在,如已經(jīng)存在就不能再錄入了;如果不存在,還需判斷該學生的學生信息是否存在,因為如果該學生已存在學生信息,但沒有注冊學生證,則該學生也不存在學生證信息。在判斷之后再根據(jù)不同情況進行學生證信息的錄入。創(chuàng)建存儲過程InsertIf,判斷是否錄入學生證信息:createprocedureInsertIf-判斷是否錄入(snovarchar(10)-設置參數(shù),通過學號查詢該學生的學生證信息使否存在asbegindeclarecantvarchar(50)d
14、eclareselvarchar(50)declareaavarchar(70)declarebbvarchar(70)setcant=信息已存在,不能錄入setsel=無此學生證信息,請錄入setaa=有此學生信息,但未注冊,請注冊(執(zhí)行InsertC)!setbb=無此學生信息,請錄入學生信息并為其注冊(執(zhí)行Inserts和InsertC)!ifexists(select*fromStu_cardwhereSNo=sno)-如果存在該學生printcant-的學生證信息就打印出來elsebeginprintselifexists(select*fromSwhereStu_no=sno)-如
15、果不存在printaa-該學生證信值,但存在學生信息,說明為注冊elseprintbb-不存在學生信息,可以錄入該學生信息并注冊endend(2)判斷后,如不存在學生證信息但存在學生信息,則需注冊。創(chuàng)建存儲過程InsertC,對學生進行注冊createprocedureInsertC-注冊,向表C中添加學生證注冊信息(snochar(10),logindatedatetime,validatedatetime)asinsertintoCvalues(sno,logindate,validate)(3)判斷后,如不存在學生信息,則需錄入該學生信息,并進行學生證注冊創(chuàng)建存儲過程Inserts,錄入
16、學生信息:createprocedureInserts/向S表中添加學生信息(snamevarchar(30),snochar(10),classnochar(6),sexchar(2),birthdaydatetime,nativechar(2),birthplacevarchar(30)asinsertintoSvalues(sname,sno,classno,sex,birthday,native,birthplace)在錄入學生證信息時,先添加學生信息,再執(zhí)行存儲過程InsertC,注冊學生證,才完整的錄入一條學生證信息。2 .查詢學生證信息(1)給定學號,查詢某位學生的學生證信息由于
17、學生證信息是在視圖中體現(xiàn)的,因此通過查詢視圖,可以查看學生的學生證信息.創(chuàng)建存儲過程QureyInfor,傳遞參數(shù)sno,通過給定學號,判斷該學生的學生證信息是否存在,如不存在,則告知不存在該學生證信息;如存在,則顯示出該學生的學生證信息.createprocedureQureyInfor(snochar(10)asbegindeclarecantvarchar(50)setcant=信息不存在ifexists(select*fromStu_cardwhereSNo=sno)select*fromStu_cardwhereSNo=snoelseprintcantend(2)給定班號,查詢該班所
18、有學生的學生證信息該查詢與前一查t方法是相同的,通過查詢視圖,查看信息。創(chuàng)建存儲過程DisplayInfor,傳遞參數(shù)classno,通過給定班級號,判斷該班學生的學生證信息是否存在,如不存在,則告知”不存在該班學生證信息”;如存在,則顯示出該班全部學生的學生證信息。createprocedureDisplayInfor(classnochar(6)asbegindeclarecantvarchar(50)setcant=無相關信息ifexists(select*fromStu_cardwhereClassNo=classno)select*fromStu_cardwhereClassNo=c
19、lassnoelseprintcantend3 .修改學生證信息學生證信息的修改,雖然是對視圖進行修改,但實質(zhì)是對各表的修改。對于學生證信息的修改,是先通過給定學生學號,先判斷該學生的學生證信息是否存在,如存在,再通過添加表信息來添加學生證信息。(1)首先創(chuàng)建存儲過程ModIf,用來判斷需修改的學生證信息是否存在,如不存在,則告知”不存在該學生證信息”;如存在,則將該學生證原本信息顯示出來,表明可以進行修改。createprocedureModIf(snochar(10)asbegindeclarecantvarchar(50)setcant=無此學生證信息,不能修改ifexists(sele
20、ct*fromStu_cardwhereSNo=sno)beginselect*fromStu_cardwhereSNo=snoendelseprintcantend(2)再創(chuàng)建存儲過程ModS,ModC&ModD通過更新操作update對表進彳T修改,以修改學生證信息。createprocedureModS/更新S表中學生信息(snamevarchar(30),snochar(10),classnochar(6),sexchar(2),birthdaydatetime,nativechar(2),birthplacevarchar(30)asupdateSSetstu_name=sname,
21、stu_no=sno,class_no=classno,stu_sexsex,stu_birthday=birthday,stu_native=native,stu_birthplace=birthplacecreateprocedureModD/更新D表中學生信息(deptvarchar(30),classnochar(6),)asupdateSSetdept=dept,class_no=classnocreateprocedureModC-修改表C中信息(snochar(10),logindatedatetime,validatedatetime)asupdateCsetstu_no=sn
22、o,login_date=logindate,validity_date=validate4.刪除春生證信息一一在刪除學生證信息時,并不是將學生證中的學生信息及相關系別信息也相應刪除,而只是刪除該學生證的注冊信息。應保證在刪除學生證信息同時保留該學生的學生信息及相關的系別信息。(1)判斷該學生證信息是否存在創(chuàng)建存儲過程,給定學號參數(shù),判斷是否存在該學生的學生證信息,如不存在,則告知”不存在該學生證信息”,即無法刪除;如存在,則告知“存在信息”,并顯示出該條信息。該操作同樣可以使用存儲過程ModIf來完成,因此不需再重新創(chuàng)建。刪除信息創(chuàng)建存儲過程DelInfor,給出要刪除的學生學號,通過del
23、ete操作刪除注冊信息表C中的該條記錄,即完成學生證信息的刪除工作。createprocedureDelInfor(snochar(6)asdeletefromCwherestu_no=sno顯示向后信息在刪除完成后,通過顯示剩余全部學生證信息,確認要刪除的學生證信息是否刪除成功。創(chuàng)建觸發(fā)器DisplayAll,完成刪除工作的檢驗工作,當對表C進行delete操作時,通過查詢視圖,顯示剩余全部學生證信息。createtriggerDisplayAllonCfordeleteasselect*fromStu_card七、實驗總結通過一周的課程設計,完成了一個簡單的學生證管理系統(tǒng),并成功實現(xiàn)了各要求所需功能。首先,在設計方面,考慮到數(shù)據(jù)的冗余及沖突等問題,將學生證信息分別存儲到三個表中,考慮了系別信息數(shù)據(jù),學生信息數(shù)據(jù)及學生證注冊信息數(shù)據(jù)的獨立性問題。其次,在設計表時,注意了數(shù)據(jù)的數(shù)據(jù)類型及長度的選擇,考慮各種數(shù)據(jù)的添加情況,如漢族非少數(shù)民族,在添加該項時將“漢”設置為默認情況,同時還要保證不浪費數(shù)據(jù)的存儲空間。第三,使用了視圖view,實現(xiàn)數(shù)據(jù)的保密性,將學生證所需信息以視圖方式存放,在數(shù)據(jù)查詢時使用視圖查詢。第四,對于各功能的實現(xiàn),均使用了存儲過程procedure,通過傳遞參數(shù)得到想要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- hdpe雙壁纏繞管施工方案
- 風化巖施工方案
- 出售電動車合同范例
- 保潔維護托管合同范例
- 產(chǎn)品定制協(xié)議合同范例
- 流體多物理耦合系統(tǒng)的Robin型區(qū)域分解算法研究
- 河南汝州方言詞匯調(diào)查研究
- 專利轉讓許可合同范例
- 加固砂漿采購合同范例
- 兔子買賣銷售合同范例
- 醫(yī)院消防安全培訓課件(完美版)
- 《單片機項目化教程(C語言版)(第2版)》全套教學課件
- 2024-2030年中國換電柜行業(yè)發(fā)展環(huán)境與競爭格局分析研究報告
- 部編版(統(tǒng)編版)五年級語文下冊語文書電子版(可下載打印)
- 2024年中北大學招考聘用博士研究生(高頻重點復習提升訓練)共500題附帶答案詳解
- 村衛(wèi)生室靜脈輸液規(guī)范和安全管理制度
- 研究大腦可塑性與學習記憶機制
- 供應商大會總結報告
- 外研版英語四年級下冊閱讀理解練習(含答案)
- JGJ127-2000 看守所建筑設計規(guī)范
- 名著閱讀(解析版)-2024年中考語文真題(江蘇專用)
評論
0/150
提交評論