數據庫-教務管理系統(tǒng)-綜合實驗報告_第1頁
數據庫-教務管理系統(tǒng)-綜合實驗報告_第2頁
數據庫-教務管理系統(tǒng)-綜合實驗報告_第3頁
數據庫-教務管理系統(tǒng)-綜合實驗報告_第4頁
數據庫-教務管理系統(tǒng)-綜合實驗報告_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗報告課程名稱數據庫原理及應用教程》課程名稱數據庫原理及應用教程》實驗學期2011至2012學年第2學期學生所在系部計算機學院年級專業(yè)班級學生姓名學號任課教師郭紅實驗成績計算機系制數據庫原理及應用教程》課程綜合性實驗報告開課實驗室:軟件開發(fā)實驗室(一)2012年6月6日實驗題目|《教務成績管理系統(tǒng)》數據庫設計―、實驗目的利用一種DBMS作為設計平臺,理解并應用課程中關于數據庫設計的相關理論,能按照數據庫設計步驟完成完整的數據庫設計,包括需求分析、概念設計、邏輯設計、物理設計和實施。同時能夠正確應用各個階段的典型工具進行表示。二、設備與環(huán)境⑴硬件設備:PC機一臺⑵軟件環(huán)境:安裝Windows操作系統(tǒng),安裝數據庫管理系統(tǒng)SQLServer2008等。三、實驗內容1?需求分析首先,通過調查,教務成績管理系統(tǒng)中主要有四類用戶,即學生用戶,老師用戶,教務管理員和系統(tǒng)管理員。對應這些用戶,其處理要求的主要的功能就是進行一系列的查詢和各類數據的管理及維護。其具體的處理要求如下:1)系統(tǒng)管理:實現系統(tǒng)管理人員對系統(tǒng)的管理,包括添加刪除用戶,更改密碼,數據備份,數據還原,注銷功能。2)教務管理:實現教務管理人員對系統(tǒng)的管理,包括課程安排,成績審核,學生成績管理功能。3)基本信息:實現顯示學生和老師以及課程、班級、系別的基本信息。4)查詢:包括實現學生查詢,老師查詢。學生查詢包括自己的基本信息,自己所修的課程,成績,老師查詢包括查詢自己的信息和自己的所授的課程。5)教師對成績的寫入以及自己信息的查詢與維護。其次,該教務管理系統(tǒng)中,結合以上用戶種類以及其具體的處理功能要求,教務成績管理系統(tǒng)要具備以下信息要求:教務管理系統(tǒng)涉及的實體有:教師一一教師號、姓名、性別、年齡、職稱、系號;學生一一學號、姓名、性別、年齡、系號;授課關系一一教師號、課程號;選課關系一一學號、課程號、成績;系系號、系名、電話;課程一一課程號、課程名、學分。其中,這些實體之間的聯系如下:一個系有若干名學生和老師,但一名學生或一名老師只能屬于一個系。一名教師可以教多門課,一門課可以有幾位老師講授,但不同老師講的同一門課其課程號是不同的,即對于授課教師或課程來說,課程號是唯一的。

一名同學可以選多門課,一門課可被若干同學選中。本單位學生、教師可能有重名,所以教師號、學號才是唯一的。另外,對于教務成績管理系統(tǒng)需求分析的安全性及完整性要求,首先,安全性方面,系統(tǒng)應對不同用戶設置不同的權限,例如,學生用戶不能更改自己的成績信息,從而保障數據庫數據的安全。其次,完整性方面,要求各種信息記錄的完整性,關鍵信息記錄內容不能為空;各種數據間相互的聯系的正確性;相同的數據在不同記錄中的一致性等。2?概念結構設計在概念結構設計中,我采用自底向上設計概念結構的方法。即第一步抽象數據并設計局部視圖,第二步是集成局部視圖,得到全局的概念結構。該教務管理系統(tǒng)中的局部概念模型(E-R該教務管理系統(tǒng)中的局部概念模型(E-R圖)如下:、一個系內的關系模式圖:教師號性別年齡學生-屮「〔屬于>〔性別)教師號性別年齡學生-屮「〔屬于>〔性別)學號教師牌齡姓名職稱

*姓名4系名系號電話、選課關系與授課關系模式圖:年齡學號性別姓名■*學生N課程教師號年齡學號性別姓名■*學生N課程教師號教師M授課紀姓名

性別

年齡?職稱■課程號課程名學分該教務管理系統(tǒng)中的全局概念模型為:課程號.課程名:N選修年齡課程教師號<教授教師學分學生卜丁'屬于.ALN選修年齡課程教師號<教授教師學分學生卜丁'屬于.AL系別J4學號性別飛姓名.N1擁有性別

年齡

職稱

姓名(系名系號電話3?邏輯結構設計(1)關系模式的設計與優(yōu)化E-R圖向關系模型的轉換:“教師”實體對應的關系模式:教師(教師號,姓名,性別,年齡,職稱)代碼表示為:Teacher(Tno.Tname.Tsex.Tage.Pro)其中,教師號為其主碼,又因為教師與系別之間是n:1的工作關系,經過與系別關系模式的合并后,系別號Dno成為教師關系模式的外碼,存在的關系依賴為Tnof(Tname,Tsex,Tage,Prof,Dno),不存在對候選碼的部分依賴與傳遞依賴,所以滿足BCNF?!皩W生”實體對應的關系模式:學生(學號,姓名,性別,年齡)代碼表示:Student(Sno,Sname,Ssex,Sage)其中,學號為其候選碼,又因為學生與班級之間是n:1的屬于關系,存在的關系依賴為Snof(Sname,Ssex.Sage,Dno),不存在對候選碼的傳遞依賴,所以滿足BCNF.系(系代號,系名,系辦公室電話)代碼表示:Sdept(Dno.Dname,Dphone)系代號為候選碼,存在的函數依賴為Dnof(Dname,Dphone),且不存在部分依賴與傳遞依賴,所以滿足BCNFo“選修”聯系對應的關系模式:選課(學號,課程號,成績)代碼表示:SC(Sno,Cno.Grade.)此為m:n聯系“選修”所對應的關系模式oSno和Cno均為外碼。存在的函數依賴為完全函數依賴(Sno,Cno)fgrade,且不存在部分依賴與傳遞依賴,所以滿足BCNFo“課程”實體對應的關系模式:課程(課程號,課名,學時)代碼表示:Course(Cno,Cname,Credit)“授課”聯系對應的關系模式:授課(課程號,教師號)代碼表示:TC(Tno,Cno.)此為m:n聯系“授課”所對應的關系模式。Tno和Cno均為外碼。(2)設計合適的視圖在將E-R圖向關系模型轉換后,還應根據局部應用的需求,對不同級別的用戶定義不同的視圖,這樣不僅可以在視圖中重新定義某些屬性名,使用戶使用更方便,而且還可以通過視圖保證系統(tǒng)的安全性。在本次的教務成績管理系統(tǒng)數據庫中,我針對使用該數據庫最頻繁的學生和教師用戶建立了相關視圖,其中包括對系別、教師、課程的分配視圖;對學生學號、成績、等相關信息的查詢,教師基信息的查詢兩個視圖,這樣,對這些經常使用的查詢,用戶就可以通過視圖來查詢,大大簡化了用戶的使用。創(chuàng)建的三個視圖的截圖如下:

對象資源管理關7X連按蚩”笑出■r寶教師基信息與學生成績查詢視圖:E對象資源管理關7X連按蚩”笑出■r寶教師基信息與學生成績查詢視圖:E心cO51點蟲_Server1L.01500-cfJ5istuderE)LJ數據庫+二尿卿菇庫十二註超庫快照三I|sride岀口數據庫關系國-LJ表出LJ測克表■;±'.二dLo.courseS_dbo.SCH二sdsptHSidbo.Etuderitffl□dbo.lCS二dho.tA^clinr曰」觀圏QLJ系妊觀國l±l囲dbo.V^studentE因匚disw.V_teacKerm□同義詞田lj可編程性!0iPSarvicc>Brokar-_J仔儲-.i_J主全性L±JI」直全拄?i_i服其據對竦rai.j鼬s)?昔理fflSQL弘fvar代理EQ~(53))*]seLeet*3cLeet*iroitiVstudeELt-InaneProfDname1[李力|救授2王平InaneProfDname1[李力|救授2王平講師信總3講師計算機45張?zhí)mSnoSncrrecnamegrade1程序設計3302pF發(fā)扒虬理48?3s2數據魴枸47Q■I323575s2孫珊程庫設計375E±3孫珊徴機處唱4707Ij3數飪結釉48L8s4專曰十心程睜設計3339s4凈□-d-.'S48510Ps4李思數宇囲顯3e?11s5篙武微攜處理499囚結果二消言該數據庫中每一個關系模式的主碼分別為系統(tǒng)自動設置的索引,如學生關系模式中的學號,教師關系模式中的教師號,系別中的系號等,同時,通過對實際操作的思考,為了查詢某系的老師的方便,我們還需要在Teacher表中建立一個“系號”Dno的索引;又因為查詢操作很多都通過學生姓名查找的,所以還需要在Student表姓名列sname上建立一個索引等,這樣大大簡化查詢操作。5?數據庫的實現(1)創(chuàng)建庫、表在該教務成績管理系統(tǒng)中包括了學生表、教師表、選課表、系別表、授課表、課程表六個表。在此,我以學生表為例進行說明表的創(chuàng)建。一個完整的表必須包括對實體完整性、參照完整性、用戶定義完整性的三種完整性的定義。在學生表中,首先考慮表的實體完整性要求,在該學生表中學號被設為主碼,用PRIMARYKEY定義,且該表含有多個屬性,所以學號就是表級約束條件,從而完成了學生表的實體完整性的定義。其次,對于學生表的參照完整性,系號Dno)是該學生表的外碼,同時它還是班級系別Sdept表的主碼,所以對其用FOREINGKEY短語進行定義,并用REFERENCES短語指明該外碼是參照那些表的主碼,從而完成對表的參照完整性的定義。最后,是表的用戶定義完整性,在該學生表中,結合實際情況我們不難想到應該定義一個姓名Sname為非空的約束條件和性別Ssex只能為“男”或“女”二者選其一的約束條件,其中姓名的非空用NOTNULL定義即可,而性別用CHECK語句定義即可。創(chuàng)建學生表的代碼為:CREATETABLEstudent(SnoCHAR(10)PRIMARYKEY,SnameCHAR20)NOTNULL,

SsexCHAR(2)CHECK(SsexIN('男','女')),SageSMALLINT,DnoCHAR(10),FOREIGNKEY(Dno)REFERENCESSdept(Dno));創(chuàng)建的學生表截圖如下:c051.grais-dba.工jQ*n電工*尸2一雪(53)iTjselect.古至roittstudent<—I結果曲消息232345^SnoSnameSageDno\si;赳亦女17disZ錢爾男18d3孫珊女'20d3舍4李再男21d2s=5周武男19di(2)創(chuàng)建用戶該教務管理系統(tǒng)的主要用戶有學生用戶,老師用戶,教務管理員和系統(tǒng)管理員等四種,所以需要創(chuàng)建這四種類型的用戶,并授予其相應的權限。對于學生用戶就只能授予其查詢學生基本信息student表的權限,老師相關信息視圖V-teacher表的權限,查詢學生成績視圖V_student表的權限,以及查詢教師授課TC表的權限;教師則具有查詢學生基本信息Student表的權限,查詢教師授課TC表的權限,還具有修改自己基本信息teacher表的權限,還有登記插入學生成績信息即修改SC表的權限;教務管理員具有修改本系一切相關信息的權力,包括查詢、刪除、增添、修改,而系統(tǒng)管理員具有創(chuàng)建各種表、視圖、觸發(fā)器及存儲過程并對各個用戶進行相應授權的權力。下面是建立學生(ul)、教師(u2)、教務處(u3)的用戶(登陸名)截圖:onTC學生□O安全性E1onTC學生ngrantseledtonVteacherngrantseledtonVteacher"學生TSJ-3F3ED92r8T7\stTidentNTMT冊RITY\置STEMma—二、—二、1?創(chuàng)建教師用f申createloginu.S使用觸發(fā)器、存儲過程等相關技術。在教務成績管理數據庫中,鑒于存在教師的退休及學生退學或畢業(yè)的情況,所以必然會有刪除這些信息的操作,為了方便起見,所以有必要設計一個“刪除教師信息”觸發(fā)器以及“刪除學生信息”觸發(fā)器。同時教務成績管理系統(tǒng)的數據庫必然涉及到學生選課退課的問題,所以還需要設計一個關于選課退課系統(tǒng)的“選課”觸發(fā)器與“刪除選課”觸發(fā)器?!皠h除教師信息”與“刪除學生信息”觸發(fā)器的過程大致相同,就“刪除教師信息”觸發(fā)器來說,當刪除教師時如果該教師在TC表中有其授課信息,則當刪除該教師后必會引起TC表不可用,所以創(chuàng)建的該觸發(fā)器當所要刪除的教師號存在于TC表里時,系統(tǒng)就應該給出“TC表里有該教師的課程,請先刪除TC表里的記錄!的提示信息;就“刪除學生信息”觸發(fā)器來說,如果該學生退學時在選課表里仍有其選課記錄,則當刪除該學生信息后,

在SC表里的相關選課記錄必然成為無效,所以在此設置了一個判斷即將退學的學生是否能刪除的觸發(fā)器,當退學學生在SC表里有該學生的記錄時應該給出“SC表里有該學生的選課課程,請先刪除SC表里的記錄!的信息提示。“刪除教師信息”觸發(fā)器操作演示如下所示:jQiL-2O11£1/3VD.GR^DE-r.hoSCgQLQU町鈉I-2O._dministratnr(55)]"田匕列■:i在SC表里的相關選課記錄必然成為無效,所以在此設置了一個判斷即將退學的學生是否能刪除的觸發(fā)器,當退學學生在SC表里有該學生的記錄時應該給出“SC表里有該學生的選課課程,請先刪除SC表里的記錄!的信息提示?!皠h除教師信息”觸發(fā)器操作演示如下所示:jQiL-2O11£1/3VD.GR^DE-r.hoSCgQLQU町鈉I-2O._dministratnr(55)]"田匕列■:i旳束m二.SSS■)?二至弓IiZdho.SCi二dbo.sdep^〒^3dEKr.siudenttJdha.TC「dbo.teacher十l_J同又詞DiI°屆^住*Servic-?Smoker出lJ曲3iJ寶全性EJ蘭自□nDeachezaazfaxz.BT3selecftcwtiEretno=SElectrxioftomdeleted;&egmy匸好==表里有該戟師的課程,請先嗣除除里的記錄I?rollbackend-蓿亍刊除埶帀喑鳥牡炭器的保作leieter:omreacSeTwheretno='tl'沁恙里有技菽師的課裡,請芫酈亦益烹里的逼!事鉛在龜雄駢結妄。鮒:哩已由止°“選課”與“刪除選課”觸發(fā)器的過程大致相同,就“選課”觸發(fā)器來說當所選課程的課程號存在于課程表里時,系統(tǒng)就會將該條的選課記錄添加到SC表中,并給出“選課成功”的信息提示,同樣刪除選課與此類似,當要刪除的選課的課程號存在于SC表時,系統(tǒng)就會將該條的選課記錄從SC表中刪除,并給出“刪除選課成功”的信息提示。演示執(zhí)行“選課”觸發(fā)器的操作結果截圖如下:4iLJ塞引弔O琳計信忌3二doa.SC3_]doc.sdept3二dba.student-fl□dba.TC刃3dbc.i&ach&r3L觀匿3二同殳詞3O可驛性SIljSeoiceB^oScer■acaw園立蟲全性ibrarysystemUJ|jjReportSeruerhb|jReportServerTempDBO|jjScDreSy'stffm|J學生藪務BLJ盂全性QI[」豈制end-二覆干執(zhí)行"選課■■儺發(fā)器msexLintoSC(sno^.eno}ic31)—查誼選課斂selecr帆fzoni3C4L□結杲li消宜5noCmGrade1siclSO2sic2Z531s11c3NULL4s2c4705s2c557SsJcl751話c270Bs3c485934cl6310c29311s4c3as12sic263—選課觸發(fā)器createtrigger選課onSCforinsertasifexists(selectCnofromcoursewherecno=(selectcnofrominserted))beginprint'選課成功'end

這樣在進行這些相關數據的處理時就可以通過觸發(fā)器來控制,如果觸發(fā)動作體執(zhí)行失敗,激活觸發(fā)器的事件就會終止執(zhí)行,觸發(fā)器的目標表或觸發(fā)器可能影響的其他對象不發(fā)生變化。除了創(chuàng)建相應觸發(fā)器外,教務成績管理系統(tǒng)中還用到了數據庫的存儲過程,在本數據庫中我建立了關于指定某個學號的“學生成績查詢”的存儲過程,這樣學生只需要輸入自己的學號就可以查詢出自己所選的科目以及其相應的成績,存儲過程的編譯及其實現過程如下截圖所示:鶴晉埋墨〒11N昕郭窘-y如下截圖所示:鶴晉埋墨〒11N昕郭窘-yE■+lJI二dbo.cour5s迅L_j列+_i塔王LJ粧底器+」疾引±一|翅計啟旦T口dbo.SC土_]dbo.sdept+.Hdba.studentZ3dbo.TC王口Jbo.teac.her£QLQucry2xqlSOi^dminiitratGr(55))*—査詢成績的存儲過理asaelactstudent.sno,anaiDerci-air.aCieditrgradafromst^d=nt.coursepSCwhmizmstudent.sn.D=3C-sno=nduq口Q=ae.enoandstudent_anQ=?3i.43結果二消息—査響學號詢-3"的學生成績亡匸查詢成績1日3>anasnanecnameCredngrade131赳亦哩序設計35D2s1趙亦刪處理4&51_闔[總亦3NULL其實,觸發(fā)器就是一種特殊的存儲過程,這樣創(chuàng)建完成這些常用功能的存儲過程后它們被編譯后就能保存在數據庫中,它們就像函數一樣可以被反復調用,提高運行速度。四、實驗結果及分析這次實驗報告我選擇的是設計“教務成績管理系統(tǒng)”的數據庫。通過本次自己獨立的設計一個數據庫,我更清楚了設計數據庫的方法和步驟。通過一步步的分析、實施、操作,我將理論聯系于實際,并把課本上所學的和老師所講的知識綜合的運用起來,這樣不僅使我加深了對SQL語句的理解,而且提高了對所學知識的熟練運用程度。在實驗過程中,我了解到創(chuàng)建表時也需要注意一些我們常常容易忽略的問題。例如:建表中的元組順序問題,還有一些表格中的屬性列的完整性要求是在另一些表的屬性列的基礎上創(chuàng)建的,所以,這就存在創(chuàng)建表是的一些的順序問題,如果不按照這個順序建表,貝y建表必然會失敗。另外,在創(chuàng)建表的同時還得注意每個屬性的數據類型,這個細節(jié)問題也是我們常常忽略的問題,對每個屬性列都要根據實際情況確定相應的數據類型,并定義一定的長度大小,以提高空間利用率。我在本次作業(yè)中的另一收獲是明確了觸發(fā)器中rollback語句的正確用法,當觸發(fā)器所設定的操作能正確執(zhí)行時就不需要添加rollback語句,而當觸發(fā)器所設定的操作不能完成時需要用rollback語句回滾,并給出相應的提示信息。這次大作業(yè)中,我也看出了我還存在的許多問題,在一些步驟中思考的不夠縝密,對某些方面也有些疏漏之處。所以,這就要求我們查詢更多的信息,理論充分聯系實際,多多參與在實際數據庫的創(chuàng)建中去,在實踐中積累經驗,不斷學習,才能提高自己在數據庫方面的能力。

教師評價評定項目ABCD評定項目ABCD需求分析清楚安全性設計概念結構符合需求游標或存儲過程的使用邏輯結構設計操作熟練索引設計文字流暢完整性設計報告規(guī)范其他:評價教師簽名:年月曰--一、創(chuàng)建表--建立系別表CREATETABLEsdept(DnoCHAR(10)PRIMARYKEY,DnameCHAR(20)UNIQUE,DphoneCHAR(20),);--建立教師表createtableteacher(TnoCHAR(10)PRIMARYKEY,TnameCHAR(20)notnull,TsexCHAR(2)CHECK(TsexIN('男','女'))ProfCHAR(4),TageSMALLINT,DnoCHAR(10),FOREIGNKEY(Dno)REFERENCESSdept(Dno));--建立學生表CREATETABLEstudent(SnoCHAR(10)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR(2)CHECK(SsexIN('男','女')),SageSMALLINT,DnoCHAR(10),FOREIGNKEY(Dno)REFERENCESSdept(Dno));--建立課程表CREATETABLEcourse(CnoCHAR(10)PRIMARYKEY,CnameCHAR(20)UNIQUE,CreditSMALLINT,);--建立授課表CREATETABLETC(CnoCHAR(10),TnoCHAR(10),);--建立選課表CREATETABLESC(SnoCHAR(10),CnoCHAR(10),GradeSMALLINTCHECK(Grade>=0ANDGrade<=100),PRIMARYKEY(Sno,Cno),);--學生的學號、成績等信息查詢的視圖createviewV_studentasselectstudent.Sno,Sname,cname,Credit,gradefromstudent,SC,coursewherestudent.Sno=SC.Snoandcourse.Cno=SC.Cno--教師基本信息查詢的視圖createviewV_teacherasselectTname,Prof,Dnamefromteacher,sdeptwhereteacher.Dno=sdept.Dno--在教師表中系代號列上建立索引createuniqueindexteadnoonteacher(Tno,Dno);--在學生表姓名列上建立索引createuniqueindexstusnameonstudent(Sno,sname);--創(chuàng)建學生用戶createloginu1withpassword='111useGRADEcreateuser學生forloginu1--對學生用戶進行授權grantselectonstudentto學生grantselectonV_studentto學生grantselectonSCto學生grantselectonTCto學生grantselectonV_teacherto學生--創(chuàng)建教師用戶createloginu2withpassword='111'useGRADEcreateuser教師forloginu2--對教師用戶進行授權grantselectonstudentto教師grantselectonTCto教師grantselect,updateonteacherto教師grantselect,insert,update(grade)onSCto教師--創(chuàng)建教務管理員用戶createloginu3withpassword='111'useGRADEcreateuser教務處forloginu3--對教務管理員用戶進行授權grantselect,update,insert,deleteonteacherto教務處grantselect,update,insert,deleteonstudentto教務處grantselect,update,insert,deleteonsdeptto教務處grantselect,update,insert,deleteoncourseto教務處grantselect,update,insert,deleteonsdeptto教務處grantselect,update,insert,deleteoncourseto教務

溫馨提示

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

評論

0/150

提交評論