數(shù)據(jù)庫(kù)課程設(shè)計(jì)---學(xué)籍管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p>  指導(dǎo)教師(簽名): 教研室主任(簽名):</p><p>  2012年 8 月 28 日 2012 年 8 月 31 日</p><p><b>  課程設(shè)計(jì)報(bào)告</b>&l

2、t;/p><p>  課程名稱(chēng) 數(shù)據(jù)庫(kù)原理及應(yīng)用 設(shè)計(jì)題目 學(xué)籍管理系統(tǒng) </p><p>  姓 名 專(zhuān)業(yè)班級(jí) 學(xué)號(hào) </p><p>  指導(dǎo)教師 日期 2012-9-3 ~ 2012-9-14 成績(jī)

3、 </p><p><b>  目 錄</b></p><p>  一、設(shè)計(jì)目的及要求3</p><p>  二、課程設(shè)計(jì)內(nèi)容說(shuō)明4</p><p><b>  (一)概述4</b></p><p>  (二)需求分析5</p><

4、p><b>  1)問(wèn)題陳述5</b></p><p>  2)系統(tǒng)需完成的功能5</p><p><b>  3)數(shù)據(jù)字典6</b></p><p>  (三)概念結(jié)構(gòu)設(shè)計(jì)9</p><p><b>  1.ER圖9</b></p>&

5、lt;p>  (四)邏輯結(jié)構(gòu)設(shè)計(jì)9</p><p>  (五)物理結(jié)構(gòu)設(shè)計(jì)10</p><p>  (六)數(shù)據(jù)庫(kù)的實(shí)施12</p><p>  (七)數(shù)據(jù)庫(kù)的運(yùn)行14</p><p>  (八)數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)15</p><p>  三、結(jié)論及體會(huì)16</p><p&

6、gt;  一、參考文獻(xiàn)17</p><p><b>  二、附錄17</b></p><p><b>  一、設(shè)計(jì)目的及要求</b></p><p>  1、通過(guò)兩周的課程設(shè)計(jì),要求學(xué)生加深對(duì)數(shù)據(jù)庫(kù)技術(shù)相關(guān)理論的理解,增強(qiáng)動(dòng)手能力,掌握使用現(xiàn)行較為流行的數(shù)據(jù)庫(kù)理論和數(shù)據(jù)庫(kù)開(kāi)發(fā)工具進(jìn)行數(shù)據(jù)庫(kù)管理操作(如建庫(kù)、建立完整

7、性約束,對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行查詢(xún),更改等操作)的方法;具體應(yīng)用方面,要求學(xué)生對(duì)SQL語(yǔ)言要有較深入的了解和掌握,對(duì)數(shù)據(jù)庫(kù)的管理(主要是安全性方面)要有一定程度的了解;設(shè)計(jì)的最終結(jié)果為學(xué)生設(shè)計(jì)和完成具有較完善功能和一定規(guī)模的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(后臺(tái))、以及部分前臺(tái)功能,并提交設(shè)計(jì)報(bào)告。</p><p>  2、本次課程設(shè)計(jì)的步驟可按照設(shè)計(jì)內(nèi)容要求,在選擇了設(shè)計(jì)題目之后,先進(jìn)行系統(tǒng)需求分析和E-R圖設(shè)計(jì)及相關(guān)文檔的撰寫(xiě);然

8、后再進(jìn)行關(guān)系模式轉(zhuǎn)換和評(píng)價(jià)、數(shù)據(jù)庫(kù)表的建立等;接下來(lái)進(jìn)行系統(tǒng)功能的實(shí)現(xiàn),即完成后臺(tái)操作的代碼編寫(xiě),以及部分前臺(tái)功能的代碼編寫(xiě);調(diào)試和測(cè)試可基本同步進(jìn)行,最后完成對(duì)系統(tǒng)的評(píng)價(jià)(或得出結(jié)論)和心得體會(huì)等文檔的撰寫(xiě)。</p><p>  本次課程設(shè)計(jì)的重點(diǎn)在于各個(gè)文檔的撰寫(xiě)和系統(tǒng)功能的具體實(shí)現(xiàn)。學(xué)生須以本指導(dǎo)書(shū)中對(duì)設(shè)計(jì)內(nèi)容具體說(shuō)明為設(shè)計(jì)依據(jù),并根據(jù)不同系統(tǒng)的不同要求有側(cè)重地完成任務(wù)。在語(yǔ)言上,須注意使用書(shū)面的、理論的語(yǔ)

9、言,不要使用流行語(yǔ)、網(wǎng)絡(luò)語(yǔ)、縮略語(yǔ)等非標(biāo)準(zhǔn)書(shū)面語(yǔ)。敘述注意前后的連貫性、邏輯性。圖表要清晰,層次要分明。另外,如果在技術(shù)上或設(shè)計(jì)思路方面有亮點(diǎn),也可以作為設(shè)計(jì)的一個(gè)重要內(nèi)容。</p><p>  3、根據(jù)以上信息完成如下要求:</p><p>  1、請(qǐng)認(rèn)真作系統(tǒng)需求分析,設(shè)計(jì)出反映本系統(tǒng)的E-R圖(需求分析、概念設(shè)計(jì))。</p><p>  2、寫(xiě)出相應(yīng)已設(shè)計(jì)的E

10、-R圖的關(guān)系模式,根據(jù)設(shè)計(jì)所需也可增加輔助關(guān)系模式,并找出各關(guān)系模式的關(guān)鍵字(邏輯設(shè)計(jì))。</p><p>  3、在已設(shè)計(jì)的關(guān)系模式基礎(chǔ)上開(kāi)發(fā)設(shè)計(jì)功能子系統(tǒng),要求子系統(tǒng)能完成如下功能要求(物理設(shè)計(jì)、設(shè)施與試運(yùn)行):</p><p>  1)在某數(shù)據(jù)庫(kù)管理系統(tǒng)中建立各關(guān)系模式對(duì)應(yīng)的庫(kù)表,并設(shè)計(jì)所需的視圖、索引等。</p><p>  2)能對(duì)各庫(kù)表進(jìn)行輸入、修改、刪

11、除、添加、查詢(xún)、打印等基本操作。</p><p>  3)新生入校登記后可即時(shí)選課,老生每學(xué)期開(kāi)始前可選課或作選課調(diào)整,一般要選共約20學(xué)分的若干門(mén)課程。</p><p>  4)能明細(xì)查詢(xún)某學(xué)生的選課情況及某課程的選修學(xué)生情況。</p><p>  5)能統(tǒng)計(jì)查詢(xún)出某學(xué)生的成績(jī)單(包括總成績(jī)、平均成績(jī)、不及格門(mén)數(shù)等)及某門(mén)課的選課人數(shù)、最高分、最低分、平均成績(jī)等統(tǒng)

12、計(jì)信息。</p><p>  6)能分析出某教師的教學(xué)質(zhì)量情況(可根據(jù)該教師所任所有課優(yōu)良數(shù)平均超過(guò)一定百分比來(lái)粗略評(píng)定)。</p><p>  7)其他你認(rèn)為子系統(tǒng)應(yīng)有的查詢(xún)、統(tǒng)計(jì)功能。</p><p>  8)要求子系統(tǒng)設(shè)計(jì)得界面友好,功能選擇方便合理,并適當(dāng)考慮子系統(tǒng)在其安全性、完整性、備份、恢復(fù)等方面的功能要求。</p><p>  

13、4、子系統(tǒng)設(shè)計(jì)完成后請(qǐng)書(shū)寫(xiě)課程設(shè)計(jì)報(bào)告,設(shè)計(jì)報(bào)告要圍繞數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)設(shè)計(jì)的步驟來(lái)考慮書(shū)寫(xiě),力求清晰流暢。最后根據(jù)所設(shè)計(jì)子系統(tǒng)、書(shū)寫(xiě)報(bào)告及出勤等綜合評(píng)定成績(jī)。</p><p>  二、課程設(shè)計(jì)內(nèi)容說(shuō)明</p><p><b>  概述</b></p><p>  背景:隨著我國(guó)教育體制改革的深入進(jìn)行,教育系統(tǒng)得到了前所未有的發(fā)展。學(xué)生管理正在

14、逐步邁向管理信息現(xiàn)代化。但是我國(guó)的學(xué)生管理信息化水平還處在初級(jí)階段,主要表現(xiàn)在對(duì)學(xué)生的交費(fèi)管理、學(xué)生的檔案管理還是采用原有的人工管理方式。學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長(zhǎng)。由于大學(xué)生類(lèi)別和專(zhuān)業(yè)的設(shè)置的多樣化,大學(xué)生的學(xué)籍管理歷來(lái)是非常繁瑣和復(fù)雜的的工作。面對(duì)龐大的信息量, 這時(shí)的人工管理幾乎無(wú)法實(shí)現(xiàn),在這種情況下用數(shù)據(jù)庫(kù)進(jìn)行管理變的尤為必要,這可以發(fā)揮計(jì)算機(jī)的優(yōu)勢(shì),就需要有學(xué)生信息管理系統(tǒng)來(lái)提高學(xué)生管

15、理工作的效率.通過(guò)這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速的查詢(xún),從而減少管理方面的工作量和減少人為的錯(cuò)誤。</p><p><b>  編寫(xiě)目的</b></p><p>  完成學(xué)籍管理系統(tǒng)將大大簡(jiǎn)化人工的工作量。</p><p>  開(kāi)發(fā)環(huán)境:Microsoft Visual Studio 2008</p><

16、p>  數(shù)據(jù)庫(kù)管理系統(tǒng):SQL Server 2005</p><p>  運(yùn)行環(huán)境:Windows XP</p><p><b>  前臺(tái)語(yǔ)言:ASP</b></p><p><b>  需求分析</b></p><p><b>  問(wèn)題陳述</b></p>

17、<p>  設(shè)計(jì)本系統(tǒng)模擬學(xué)校學(xué)籍管理內(nèi)容,包括學(xué)生入學(xué)登記、學(xué)生選課、考試成績(jī)登記、補(bǔ)考處理及教師教學(xué)質(zhì)量分析統(tǒng)計(jì)等</p><p><b>  系統(tǒng)需完成的功能</b></p><p><b>  學(xué)生基本信息系統(tǒng)</b></p><p>  學(xué)生:學(xué)號(hào)(xh)、姓名(xm)、性別(xb)、年齡(nl)等

18、。</p><p>  學(xué)生入學(xué)時(shí)新生需錄入登記,登記后即可選課學(xué)習(xí)課程(一學(xué)期約20學(xué)分)。</p><p>  學(xué)生選每門(mén)課有個(gè)成績(jī)(cj),若成績(jī)不及格則補(bǔ)考后還需記錄補(bǔ)考成績(jī)(bkcj)。</p><p><b>  學(xué)籍管理系統(tǒng)</b></p><p><b>  功能如下:</b><

19、;/p><p><b>  教務(wù)處登記學(xué)生成績(jī)</b></p><p><b>  學(xué)生選課</b></p><p>  教師查詢(xún)個(gè)人信息、工資等信息</p><p>  學(xué)生查詢(xún)成績(jī)、所選的課程。</p><p>  計(jì)算各班的總分和平均分,并按照平均分將各班成績(jī)進(jìn)行排序。&l

20、t;/p><p>  統(tǒng)計(jì)不及格考生的信息</p><p>  可以按照特定的信息進(jìn)行查找,并按照特定的要求進(jìn)行排序。</p><p>  可以對(duì)學(xué)生的信息統(tǒng)計(jì)等等</p><p>  系統(tǒng)的功能模塊設(shè)計(jì)圖如圖所示。</p><p><b>  數(shù)據(jù)字典</b></p><p>

21、;  經(jīng)過(guò)可行性分析和初步需求調(diào)查,抽象出該子系統(tǒng)業(yè)務(wù)流程圖,如圖所</p><p>  示。下面,結(jié)合該實(shí)例具體情況,給出教務(wù)處具體需求。</p><p>  學(xué)號(hào)(xh)、姓名(xm)、性別(xb)、年齡(nl)</p><p>  課程代號(hào)(kcdh)、課程名(kcm)、課時(shí)數(shù)(kss)、必修課(bxk)、學(xué)分(xf)。</p><p>

22、;  教師:工號(hào)(gh)、姓名(xm)、性別(xb)、職稱(chēng)(zc)、工齡(gl)、出生年月(csrq)、基本工資(jbgz)等。</p><p><b>  學(xué)生student</b></p><p>  老師teacher </p><p><b>  系 xi</b></p><p><

23、b>  新增的一個(gè)表 </b></p><p><b>  概念結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  ER圖</b></p><p><b>  邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p>  邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選

24、用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。</p><p>  設(shè)計(jì)邏輯結(jié)構(gòu)一般分為3步進(jìn)行:</p><p> ?。?)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;</p><p> ?。?)將轉(zhuǎn)換來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;</p><p> ?。?)對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。</p><

25、;p><b>  關(guān)系模型</b></p><p>  將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要獎(jiǎng)實(shí)體型、實(shí)體的屬性和實(shí)體型之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。對(duì)于實(shí)體型間的聯(lián)系則有以下不同的情況:</p><p> ?。?)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可

26、以與任意一端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的個(gè)實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的侯選碼。如果與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需要在關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。</p><p>  (2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的個(gè)各實(shí)體

27、的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。</p><p> ?。?)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的個(gè)實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成關(guān)系的碼或關(guān)系碼的一部分。</p><p> ?。?)3個(gè)或3個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的

28、碼組成關(guān)系的碼或關(guān)系碼的一部分。</p><p>  (5)具有相同碼的關(guān)系模式可合并。</p><p>  將概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為關(guān)系模型,如下所示:</p><p>  學(xué)生(學(xué)號(hào),專(zhuān)業(yè)號(hào),院系號(hào),姓名,性別)此為學(xué)生實(shí)體對(duì)應(yīng)的關(guān)系模式。</p><p>  教師(教工號(hào),姓名,性別,職稱(chēng),所屬院系),此為老師實(shí)體對(duì)

29、應(yīng)的關(guān)系模式。</p><p>  課程(課程號(hào),課程名,學(xué)分),此為課程實(shí)體對(duì)應(yīng)的關(guān)系模式。</p><p>  院系(院系號(hào),院系名稱(chēng),負(fù)責(zé)人),此為系實(shí)體對(duì)應(yīng)的關(guān)系模式。</p><p>  選修(學(xué)號(hào),課程號(hào),成績(jī)),此為選修關(guān)系對(duì)應(yīng)的關(guān)系模式。</p><p>  授課(課程號(hào),教工號(hào),課時(shí)),此為老師授課關(guān)系對(duì)應(yīng)的關(guān)系模式。<

30、;/p><p><b>  物理結(jié)構(gòu)設(shè)計(jì)</b></p><p>  數(shù)據(jù)庫(kù)的物理設(shè)計(jì)就是為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過(guò)程。物理結(jié)構(gòu)設(shè)計(jì)階段實(shí)現(xiàn)的是數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)模式,它的質(zhì)量直接決定了整個(gè)系統(tǒng)的性能。因此在確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)和存取方法之前,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)所支持的事務(wù)要進(jìn)行仔細(xì)分析,獲得優(yōu)化數(shù)據(jù)庫(kù)物理設(shè)計(jì)的參數(shù)</p><

31、p>  數(shù)據(jù)庫(kù)的物理設(shè)計(jì)通常分為兩步:</p><p> ?。?)確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存取結(jié)構(gòu);</p><p> ?。?)對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率。</p><p>  1. 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)</p><p>  由于本系統(tǒng)的數(shù)據(jù)庫(kù)建立不是很大,所以數(shù)據(jù)存儲(chǔ)采用的是一個(gè)磁盤(pán)的一

32、個(gè)分區(qū)。</p><p>  2.存取方法和優(yōu)化方法</p><p>  存取方法是快速存取數(shù)據(jù)庫(kù)中數(shù)據(jù)的技術(shù)。數(shù)據(jù)庫(kù)管理系統(tǒng)一般都是提供多種存取方法。常用的存取方法有三類(lèi)。第一類(lèi)是索引方法,目前主要是B+樹(shù)索引方法;第二類(lèi)是聚簇方法;第三類(lèi)是HASH方法。數(shù)據(jù)庫(kù)的索引類(lèi)似書(shū)的目錄。在書(shū)中,目錄允許用戶(hù)不必瀏覽全書(shū)就能迅速地找到所需要的位置。在數(shù)據(jù)庫(kù)中,索引也允許應(yīng)用程序迅速找到表中的數(shù)據(jù)

33、,而不必掃描整個(gè)數(shù)據(jù)庫(kù)。在書(shū)中,目錄就是內(nèi)容和相應(yīng)頁(yè)號(hào)的清單。在數(shù)據(jù)庫(kù)中,索引就是表中數(shù)據(jù)和相應(yīng)存儲(chǔ)位置的列表。使用索引可以大大減少數(shù)據(jù)的查詢(xún)時(shí)間。</p><p>  但需要注意的是索引雖然能加速查詢(xún)的速度,但是為數(shù)據(jù)庫(kù)中的每張表都設(shè)置大量的索引并不是一個(gè)明智的做法。這是因?yàn)樵黾铀饕灿衅洳焕囊幻妫菏紫?,每個(gè)索引都將占用一定的存儲(chǔ)空間,如果建立聚簇索引(會(huì)改變數(shù)據(jù)物理存儲(chǔ)位置的一種索引),占用需要的空間就會(huì)更

34、大;其次,當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)地維護(hù),這樣就降低了數(shù)據(jù)的更新速度。</p><p><b>  功能實(shí)現(xiàn)</b></p><p>  完成數(shù)據(jù)庫(kù)的物理設(shè)計(jì)之后,設(shè)計(jì)人員就要用RDBMS提供的數(shù)據(jù)定義語(yǔ)言和其他實(shí)用程序?qū)?shù)據(jù)庫(kù)邏輯設(shè)計(jì)和物理設(shè)計(jì)結(jié)果嚴(yán)格描述出來(lái),成為DBMS可以接受的源代碼,再經(jīng)過(guò)調(diào)試產(chǎn)生目標(biāo)模式。然后就可以組織數(shù)據(jù)入庫(kù)

35、,最后就在此基礎(chǔ)上編寫(xiě)各個(gè)表相關(guān)的觸發(fā)器和存儲(chǔ)過(guò)程。</p><p>  將生成的概念模型通過(guò)單擊PowerDesigner11工具菜單欄上的Tools選項(xiàng),再選擇Generate Physical Data Model選項(xiàng),就可以轉(zhuǎn)換為物理模型,生成的最后結(jié)果具體如下圖所示:</p><p><b>  數(shù)據(jù)庫(kù)的實(shí)施</b></p><p>

36、  1.完成數(shù)據(jù)庫(kù)的物理設(shè)計(jì)之后,設(shè)計(jì)人員就要用RDBMS提供的數(shù)據(jù)定義語(yǔ)言和其他實(shí)用程序?qū)?shù)據(jù)庫(kù)邏輯設(shè)計(jì)和物理設(shè)計(jì)結(jié)果嚴(yán)格描述出來(lái),成為DBMS可以接受的源代碼,再經(jīng)過(guò)調(diào)試產(chǎn)生目標(biāo)模式。然后就可以組織數(shù)據(jù)入庫(kù)了,這就是數(shù)據(jù)庫(kù)實(shí)施階段。</p><p><b>  數(shù)據(jù)庫(kù)的實(shí)施</b></p><p>  數(shù)據(jù)庫(kù)的實(shí)施主要是根據(jù)邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)的結(jié)果,在計(jì)算

37、機(jī)系統(tǒng)上建立實(shí)際的數(shù)據(jù)庫(kù)結(jié)構(gòu)、導(dǎo)入數(shù)據(jù)并進(jìn)行程序的調(diào)試。它相當(dāng)于軟件工程中的代碼編寫(xiě)和程序調(diào)試的階段。</p><p>  當(dāng)在PowerDesigner Trial 11中設(shè)計(jì)好本系統(tǒng)的物理結(jié)構(gòu)之后,就可以向數(shù)據(jù)庫(kù)轉(zhuǎn)換為相應(yīng)的表。先選擇菜單欄中Database的Connect,通過(guò)添加數(shù)據(jù)源,連接數(shù)據(jù)源,輸入用戶(hù)名和密碼進(jìn)行轉(zhuǎn)換,生成相關(guān)的SQL語(yǔ)句,在通過(guò)運(yùn)行之后,最終在SQL Server 2005中生成了

38、如下所示的表。</p><p>  課程信息表(主要描述學(xué)校開(kāi)設(shè)的課程的基本信息):</p><p><b>  中間表</b></p><p><b>  管理員信息表</b></p><p>  學(xué)生基本信息表(主要描述一些學(xué)生入學(xué)前的基本信息):</p><p>  教

39、師基本信息表(主要描述教師的一些基本信息):</p><p>  院系信息表(主要描述學(xué)校中各個(gè)院系的一些基本信息):</p><p><b>  數(shù)據(jù)庫(kù)的運(yùn)行</b></p><p>  通過(guò)SQL語(yǔ)句進(jìn)行簡(jiǎn)單測(cè)試</p><p>  當(dāng)一小部分?jǐn)?shù)據(jù)輸入數(shù)據(jù)庫(kù)后,就可以開(kāi)始對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行聯(lián)合調(diào)試,這一階段要實(shí)際運(yùn)行數(shù)

40、據(jù)庫(kù)應(yīng)用程序,執(zhí)行對(duì)數(shù)據(jù)庫(kù)的各種操作,由于沒(méi)有應(yīng)用程序,所以只有通過(guò)SQL語(yǔ)言直接在數(shù)據(jù)庫(kù)中執(zhí)行對(duì)數(shù)據(jù)庫(kù)的各種操作。</p><p>  通過(guò)在SQL Server 2005的查詢(xún)分析器中輸入相應(yīng)的SQL語(yǔ)句,就可以得到相應(yīng)的結(jié)果,具體如下所示:</p><p><b>  查詢(xún)課程的基本信息</b></p><p><b>  插入

41、基本信息</b></p><p><b>  數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)</b></p><p>  數(shù)據(jù)庫(kù)試運(yùn)行合格后,數(shù)據(jù)庫(kù)開(kāi)發(fā)工作就基本完成,即可投入正式運(yùn)行了。但是,由于應(yīng)用環(huán)境在不斷變化,數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中物理存儲(chǔ)也會(huì)不斷變化,對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)進(jìn)行評(píng)價(jià)、調(diào)整、修改等維護(hù)工作是一個(gè)長(zhǎng)期的任務(wù),也是設(shè)計(jì)工作的繼續(xù)和提高。</p><p> 

42、 在數(shù)據(jù)庫(kù)運(yùn)行階段,對(duì)數(shù)據(jù)庫(kù)經(jīng)常性的維護(hù)工作主要是由DBA完成的,包括:</p><p> ?。?)數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)——DBA要針對(duì)不同的應(yīng)用要求制定不同的轉(zhuǎn)儲(chǔ)計(jì)劃,一保證一旦發(fā)生故障能盡快將數(shù)據(jù)庫(kù)恢復(fù)到某種一致的狀態(tài),并盡可能減少對(duì)數(shù)據(jù)庫(kù)的破壞。</p><p>  (2)數(shù)據(jù)庫(kù)的安全性、完整性控制——DBA根據(jù)實(shí)際情況修改原有的安全性控制和數(shù)據(jù)庫(kù)的完整性約束條件,以滿(mǎn)足用戶(hù)要求。&l

43、t;/p><p> ?。?)數(shù)據(jù)庫(kù)性能的監(jiān)督、分析和改造——在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,DBA必須監(jiān)督系統(tǒng)運(yùn)行,對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析,找出改進(jìn)系統(tǒng)性能的方法。</p><p> ?。?)數(shù)據(jù)庫(kù)的重組織與重構(gòu)造——數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間后,由于記錄不斷增、刪、改,會(huì)使數(shù)據(jù)庫(kù)的物理存儲(chǔ)情況變壞,降低了數(shù)據(jù)的存取效率,數(shù)據(jù)庫(kù)性能下降,這時(shí)DBA就要對(duì)數(shù)據(jù)庫(kù)進(jìn)行重組織或部分重組織。</p><p

44、><b>  三、結(jié)論及體會(huì)</b></p><p>  過(guò)兩星期的數(shù)據(jù)庫(kù)程序設(shè)計(jì)實(shí)習(xí),我們從中受益匪淺,并且對(duì)數(shù)據(jù)庫(kù)程序設(shè)計(jì)這一門(mén)課程有了更深一步的認(rèn)識(shí)。在實(shí)習(xí)中,我們接觸到了一門(mén)新的語(yǔ)言——delphi,它提供給我們一個(gè)可視化的操作界面,更能激發(fā)同學(xué)們的興趣愛(ài)好,所以我們學(xué)起來(lái)就有一股熱情。我們把這學(xué)期所學(xué)的理論知識(shí)和實(shí)踐聯(lián)系起來(lái),在所開(kāi)發(fā)的項(xiàng)目中漸漸成長(zhǎng)。雖然我們對(duì)這些新的知識(shí)運(yùn)

45、用得還不是很熟練,但是相信我們也在滴水穿石地成長(zhǎng)起來(lái)。發(fā)現(xiàn)問(wèn)題,提出問(wèn)題,解決問(wèn)題,使我們從不足之處出發(fā),尋找新的學(xué)習(xí)方向。將其中調(diào)用的那些我看不懂的函數(shù)一一查清楚,逐漸弄懂它的設(shè)計(jì)思路,思考它有哪些不足,有哪些地方還須要改進(jìn),有什么更好的方法、更簡(jiǎn)單的方法去實(shí)行。</p><p>  這學(xué)習(xí)使我克服了偷懶的毛病,這在我以后的學(xué)習(xí)和工作中的心理定位與調(diào)節(jié)有很大的幫助。我感受到了做系統(tǒng)是一項(xiàng)非常煩瑣周密的學(xué)習(xí)活動(dòng),

46、它不但需要一個(gè)人周密的思考問(wèn)題的能力,處理問(wèn)題的能力,還需要有足夠的耐心和嚴(yán)謹(jǐn)治學(xué)的作風(fēng),來(lái)不得半點(diǎn)馬虎。在實(shí)習(xí)中,我們?cè)O(shè)計(jì)了一組對(duì)學(xué)生學(xué)籍進(jìn)行管理的系統(tǒng),它基本滿(mǎn)足了界面友好,易于操作的要求,因此更利于用戶(hù)操作方便,運(yùn)行簡(jiǎn)易,從而達(dá)到對(duì)學(xué)生學(xué)籍更加有效系統(tǒng)的管理,并且速度更快內(nèi)容更直接地達(dá)到用戶(hù)所想要的效果。</p><p><b>  參考文獻(xiàn)</b></p><p&

47、gt;  1.《數(shù)據(jù)庫(kù)原理及應(yīng)用》 錢(qián)雪忠主編 北京郵電大學(xué)出版社 2010,6, 第三版</p><p>  2.ASP基礎(chǔ)教程 作者:魏雪英 </p><p>  3.《C#教程》作 者:鄭阿奇 出版社: 電子工業(yè)出版社</p><p>  4. Kimball R等.數(shù)據(jù)倉(cāng)庫(kù)工具箱.北京. 電子工業(yè)出版社,2003.</p><

48、p>  5.Imhoff C等.數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì). 北京. 機(jī)械工業(yè)出版社,2004.</p><p>  6.ttison R.Web倉(cāng)庫(kù)工程與知識(shí)管理.北京.清華大學(xué)出版社,2003.</p><p>  7.in T等.SQL Server 2000數(shù)據(jù)倉(cāng)庫(kù)與Analysis Services.北京.中國(guó)電力出版社,2003.</p><p>  8.楊樹(shù)青

49、、楊玉順.?dāng)?shù)據(jù)庫(kù)應(yīng)用實(shí)例.北京:人民郵電出版社.2006.</p><p><b>  附錄</b></p><p><b>  核心代碼</b></p><p><b>  選課模塊</b></p><p>  namespace Xueji</p><p

50、><b>  {</b></p><p>  public partial class Xuanke : System.Web.UI.Page</p><p><b>  {</b></p><p>  protected void Page_Load(object sender, EventArgs e)</

51、p><p><b>  {</b></p><p>  if (Session["username"] != null && Session["username"].ToString()!="admin"&&Session["biao"]!="teac

52、her")</p><p>  { //顯示course表中的數(shù)據(jù)</p><p><b>  //連接數(shù)據(jù)庫(kù) </b></p><p>  SqlConnection conn = new SqlConnection(); </p><p>  conn.ConnectionString = &

53、quot;Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\xueji.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";</p><p>  SqlDataAdapter sda = new SqlDataAdapter();</p><p>  s

54、da.SelectCommand = new SqlCommand("select * from course", conn);</p><p>  DataSet ds = new DataSet();</p><p>  sda.Fill(ds);</p><p>  GridView1.DataSource = ds.Tables[0].D

55、efaultView;</p><p>  GridView1.DataBind();</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.R

56、edirect("Denglu.aspx");</p><p><b>  }</b></p><p><b>  }</b></p><p>  protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)</

57、p><p><b>  {</b></p><p>  SqlConnection conn = new SqlConnection();</p><p>  conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\xueji.mdf;Integrat

58、ed Security=True;Connect Timeout=30;User Instance=True";</p><p>  conn.Open();</p><p>  int x = GridView1.SelectedIndex + 1;//獲得選擇的課程的課程代號(hào)</p><p>  //通過(guò)課程代號(hào)取得course表中的其他信息</

59、p><p>  string sqlString = "select * from course where kcdh=" + "'" + x + "'";</p><p>  SqlDataAdapter sda = new SqlDataAdapter(sqlString,conn);</p><

60、;p>  DataSet ds = new DataSet();</p><p>  sda.Fill(ds);</p><p>  string tongji_lesson = ds.Tables[0].Rows[0]["kcdh"].ToString();</p><p>  string tongji_teacher = ds.Tab

61、les[0].Rows[0]["shouke_teacher"].ToString();</p><p>  string tongji_student = Session["username"].ToString();</p><p>  string tongji_l_score = ds.Tables[0].Rows[0]["xf&q

62、uot;].ToString();</p><p>  //檢查該名同學(xué)是否已經(jīng)選了該課</p><p>  string newsqlString = "select count(*) from le_te where lesson="+"'"+tongji_lesson+"'"+"and studen

63、t="+"'"+tongji_student+"'"; </p><p>  SqlCommand cm = new SqlCommand(newsqlString, conn);</p><p>  //檢查該名同學(xué)是否超過(guò)20學(xué)分上限</p><p>  string newsql

64、String1 = "select sum(l_score) as sum_score from le_te where student="+"'"+tongji_student+"'"+"group by l_score";</p><p>  SqlCommand cm1 = new SqlCommand(news

65、qlString1,conn);</p><p>  //檢查該門(mén)課是否超過(guò)了30人</p><p>  string newsqlString3 = "select count(lesson) from le_te where lesson="+"'"+tongji_lesson+"'";</p>

66、<p>  SqlCommand cm3 = new SqlCommand(newsqlString3,conn);</p><p>  ////方便后續(xù)使用</p><p>  //int renshu=(int.Parse)(cm3.ExecuteScalar().ToString());</p><p>  if ((int.Parse)(cm3.E

67、xecuteScalar().ToString()) <= 1)//該門(mén)課程人數(shù)是否超過(guò)30人,數(shù)字1 為測(cè)試(滿(mǎn)兩個(gè)人 開(kāi)課 )</p><p><b>  { </b></p><p>  if ((cm.ExecuteScalar().ToString() == "1"))//已經(jīng)選了該課</p><p>&

68、lt;b>  {</b></p><p>  Response.Write("你已經(jīng)選了該課");</p><p><b>  }</b></p><p>  else//未選該課,則查看是否學(xué)分已經(jīng)達(dá)到上限</p><p><b>  {</b></p&

69、gt;<p>  if (cm1.ExecuteScalar() == null&&((int.Parse)(tongji_l_score))<20)//表示該名同學(xué)沒(méi)有選過(guò)任何課程 ,數(shù)據(jù)庫(kù)中還沒(méi)有數(shù)據(jù),必須另寫(xiě)判斷</p><p><b>  {</b></p><p>  //將取得的值放入te_le表中</p>

70、<p>  string newsqlString2 = "insert into le_te (student,lesson,teacher,l_score) values('" + tongji_student + "'" + "," + "'" + tongji_lesson + "'"

71、+ "," + "'" + tongji_teacher + "'" + "," + "'" + tongji_l_score + "')";</p><p>  SqlCommand cm2 = new SqlCommand(newsqlString2, con

72、n);</p><p>  if ((cm2.ExecuteNonQuery()) == 1)</p><p><b>  {</b></p><p>  Response.Write("<script language='javascript'>alert('選課成功');</scr

73、ipt>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if ((in

74、t.Parse)(cm1.ExecuteScalar().ToString()) < (20 - (int.Parse)(tongji_l_score)))//學(xué)分未達(dá)上限,需要減去即將選擇的該門(mén)課程的學(xué)分</p><p><b>  {</b></p><p>  //將取得的值放入te_le表中</p><p>  string ne

75、wsqlString2 = "insert into le_te (student,lesson,teacher,l_score) values('" + tongji_student + "'" + "," + "'" + tongji_lesson + "'" + "," + &qu

76、ot;'" + tongji_teacher + "'" + "," + "'" + tongji_l_score + "')";</p><p>  SqlCommand cm2 = new SqlCommand(newsqlString2, conn);</p><p&

77、gt;  if ((cm2.ExecuteNonQuery()) == 1)</p><p><b>  {</b></p><p>  Response.Write("<script language='javascript'>alert('選課成功');</script>");</p

78、><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("學(xué)分已經(jīng)達(dá)到上

79、限");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else<

80、;/b></p><p><b>  { </b></p><p>  ////更新是否開(kāi)課</p><p>  //string newsqlString6 = "update course set kaike=" + "'開(kāi)課'";</p><p>  

81、//SqlCommand cm6 = new SqlCommand(newsqlString6, conn);</p><p>  //cm6.ExecuteNonQuery();</p><p>  Response.Write("該門(mén)課已經(jīng)達(dá)到上限");</p><p><b>  }</b></p>&l

82、t;p>  //以下為更新course表</p><p>  //string newsqlString4 = "";</p><p>  string newsqlString4 = "update course set yixuanrenshu=" + "'" + (int.Parse)(cm3.ExecuteS

83、calar().ToString()) + "'" + "where kcdh=" + "'" + tongji_lesson + "'";</p><p>  SqlCommand cm4 = new SqlCommand(newsqlString4,conn);</p><p>  

84、cm4.ExecuteNonQuery();</p><p>  //更新是否開(kāi)課信息,滿(mǎn)30人開(kāi)課 </p><p>  string newsqlString5 = "select yixuanrenshu from course where kcdh= "+"'"+tongji_lesson+"'";

85、 </p><p>  SqlDataAdapter sda2 = new SqlDataAdapter(newsqlString5, conn);</p><p>  DataSet ds2 = new DataSet();</p><p>  sda2.Fill(ds2);</p><p>  if ((int.Parse)(

86、ds2.Tables[0].Rows[0]["yixuanrenshu"].ToString()) >= 2)</p><p><b>  {</b></p><p>  string newsqlString6 = "update course set kaike=" + "'開(kāi)'"+

87、"where kcdh="+"'"+tongji_lesson+"'";</p><p>  SqlCommand cm6 = new SqlCommand(newsqlString6, conn);</p><p>  cm6.ExecuteNonQuery();</p><p><

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論