2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告</b></p><p>  -------學(xué)生信息管理系統(tǒng)</p><p>  軟件學(xué)院軟件工程專業(yè)07級(jí)1班 </p><p>  姓名:*** 學(xué)號(hào):*********** </p><p><b>  目 錄</b></p>

2、<p>  一、系統(tǒng)開發(fā)平臺(tái)1</p><p><b>  二、數(shù)據(jù)庫(kù)規(guī)劃2</b></p><p>  2.1 任務(wù)陳述2</p><p>  2.2 任務(wù)目標(biāo)2</p><p><b>  三、系統(tǒng)定義3</b></p><p>  3.1 系統(tǒng)邊

3、界3</p><p>  3.2 用戶視圖5</p><p><b>  四、需求分析7</b></p><p>  4.1 用戶需求說明8</p><p>  4.1.1 數(shù)據(jù)需求8</p><p>  4.1.2 事務(wù)需求8</p><p>  4.2 系統(tǒng)

4、需求說明11</p><p>  五、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)13</p><p>  5.1 ER圖13</p><p>  5.2 數(shù)據(jù)字典14</p><p>  5.3 關(guān)系表16</p><p>  六、數(shù)據(jù)庫(kù)物理設(shè)計(jì)17</p><p><b>  6.1 索引17&l

5、t;/b></p><p><b>  6.2 視圖17</b></p><p>  6.3 安全機(jī)制18</p><p><b>  6.4 其他18</b></p><p>  七、應(yīng)用程序設(shè)計(jì)19</p><p>  7.1 功能模塊19</p&g

6、t;<p>  7.2 界面設(shè)計(jì)20</p><p>  7.3 事務(wù)設(shè)計(jì)30</p><p>  八、測(cè)試和運(yùn)行58</p><p><b>  九、總結(jié)65</b></p><p>  9.1 系統(tǒng)優(yōu)點(diǎn)65</p><p>  9.2 系統(tǒng)不足65</p>

7、<p>  9.3 系統(tǒng)改進(jìn)65</p><p>  9.4 經(jīng)驗(yàn)與收獲65</p><p>  附. 參考文獻(xiàn)66</p><p><b>  一、系統(tǒng)開發(fā)平臺(tái)</b></p><p>  1.1 題目:學(xué)生信息管理系統(tǒng)</p><p>  學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可

8、缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難。系統(tǒng)采用Eclipse V3.2 JDK 1.6作為開發(fā)工具,Java為開發(fā)語言,采用Microsoft SQL Server 2000建

9、立數(shù)據(jù)庫(kù),先在Microsoft SQL Server 2000中設(shè)計(jì)并制作各部分需要調(diào)用的數(shù)據(jù)庫(kù),并進(jìn)行初始數(shù)據(jù)的輸入,再進(jìn)行界面的設(shè)計(jì)和事件代碼的編寫,在指導(dǎo)老師的幫助下,已經(jīng)基本上成功地實(shí)現(xiàn)了設(shè)計(jì)要求。其中數(shù)據(jù)庫(kù)設(shè)計(jì)和程序設(shè)計(jì)是系統(tǒng)的核心部分。通過對(duì)數(shù)據(jù)庫(kù)的概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)和系統(tǒng)的模塊設(shè)計(jì),使得系統(tǒng)界面簡(jiǎn)潔,功能明確,方便了工作人員的操作。</p><p>  1.2 開發(fā)語言:Java<

10、/p><p>  用Java做設(shè)計(jì)流程清晰、結(jié)構(gòu)合理,有良好的可擴(kuò)充性和耦合性。</p><p>  1.3 開發(fā)工具:Eclipse V3.2 JDK 1.6</p><p>  1.4 數(shù)據(jù)庫(kù):Microsoft SQL Server 2000</p><p>  SQL Server 2000 Enterprise Edition則是一套

11、完整的數(shù)據(jù)庫(kù)和分析產(chǎn)品,具有高度可擴(kuò)展性和可靠性,對(duì)市場(chǎng)的快速反應(yīng)能力強(qiáng),可以快速構(gòu)建各種業(yè)務(wù)方案,且具有高度的安全性保障。</p><p>  1.5 操作系統(tǒng):Microsoft Windows XP</p><p><b>  二、數(shù)據(jù)庫(kù)規(guī)劃</b></p><p><b>  2.1 任務(wù)陳述</b></p&

12、gt;<p>  學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要。隨著學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長(zhǎng)?!?】面對(duì)龐大的信息量需要有學(xué)生管理系統(tǒng)來提高學(xué)生管理工作的效率。一個(gè)完善的學(xué)生信息管理系統(tǒng)能夠極大地提高學(xué)生信息管理的效率,具有檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、更新快、壽命長(zhǎng)、成本低等優(yōu)點(diǎn)。【2】</p><p

13、>  本學(xué)生信息管理系統(tǒng)包括學(xué)籍信息管理、院系信息管理、教師信息管理、課程信息管理、選課信息管理、授課信息管理、成績(jī)信息管理七大模塊。一共設(shè)置了三種用戶身份,分別是Administrator用戶、Teacher用戶和Student用戶。管理員可以擁有完全的權(quán)限管理系統(tǒng),教師用戶擁有修改、查看那自己所授課程和錄入成績(jī)的權(quán)限,而學(xué)生用戶則擁有查詢學(xué)籍信息、查詢課程信息、選課、注銷選課和查詢成績(jī)信息的權(quán)限。</p><

14、;p><b>  2.2 任務(wù)目標(biāo)</b></p><p>  本系統(tǒng)主要可以實(shí)現(xiàn)以下任務(wù)目標(biāo):</p><p>  1、系統(tǒng)可以準(zhǔn)確地記錄和查詢學(xué)生信息,包括學(xué)生的姓名、用戶名、密碼、院系、專業(yè)、班級(jí)、入學(xué)時(shí)間、聯(lián)系方式等。</p><p>  2、系統(tǒng)可以對(duì)學(xué)校的院系情況進(jìn)行管理,包括添加修改刪除學(xué)院信息、添加修改刪除某學(xué)院某專業(yè)信息

15、等。</p><p>  3、系統(tǒng)可以準(zhǔn)確地記錄和查詢教師信息,包括教師的姓名、用戶名、密碼、院系、研究方向、入校時(shí)間、聯(lián)系方式等。</p><p>  4、系統(tǒng)可以對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行維護(hù)。</p><p>  5、系統(tǒng)可以對(duì)開設(shè)的課程進(jìn)行管理,包括課程信息的查詢、添加、修改和刪除,每門課程的狀態(tài)分為選課階段、已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)四種狀態(tài)。</p>

16、<p>  6、學(xué)生選課管理,學(xué)生只可以注銷在選課階段的課程,處于已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)的課程不可以注銷。</p><p>  7、成績(jī)信息的錄入和管理,系統(tǒng)可以自動(dòng)計(jì)算每門課程學(xué)生的平均分并且可按照學(xué)生成績(jī)排名。</p><p>  8、系統(tǒng)可以提供強(qiáng)大數(shù)據(jù)統(tǒng)計(jì)、查詢、報(bào)表生成以及打印等功能。</p><p>  9、用戶權(quán)限管理:本系統(tǒng)一共設(shè)置了三

17、種用戶身份,分別是Administrator用戶、Teacher用戶和Student用戶。管理員可以擁有完全的權(quán)限管理系統(tǒng),教師用戶擁有修改、查看那自己所授課程和錄入成績(jī)的權(quán)限,而學(xué)生用戶則擁有查詢學(xué)籍信息、查詢課程信息、選課、注銷選課和查詢成績(jī)信息的權(quán)限。</p><p><b>  10、異常處理。</b></p><p><b>  三、系統(tǒng)定義<

18、;/b></p><p><b>  3.1 系統(tǒng)邊界</b></p><p>  系統(tǒng)邊界描述數(shù)據(jù)庫(kù)系統(tǒng)和企業(yè)信息系統(tǒng)的其他部分的接口,是信息系統(tǒng)內(nèi)部構(gòu)成元素與外部有聯(lián)系實(shí)體之間的信息關(guān)系的描述與分割。它并不需要在它們之間劃一條物理邊界,而只需要弄清它們之間信息輸入與輸出的分割。</p><p>  本數(shù)據(jù)庫(kù)系統(tǒng)共包括學(xué)生信息、教師信息

19、、課程信息、學(xué)院及專業(yè)信息、選課信息、授課信息及成績(jī)信息八個(gè)模塊。該信息系統(tǒng)的其他部分包括學(xué)生專業(yè)選擇、教師配置、學(xué)生選課、學(xué)院設(shè)置、課程要求、具體教學(xué)等。</p><p>  數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部構(gòu)成元素與外部其他部分之間的信息關(guān)系如下圖所示:</p><p><b>  3.2 用戶視圖 </b></p><p>  3.2.1 學(xué)生(Stud

20、ent)用戶視圖</p><p><b>  修改個(gè)人信息。</b></p><p>  按課程名、課程號(hào)、專業(yè)、學(xué)分等信息查詢課程,選課和查詢已選課程。</p><p>  注銷選課(只能注銷選課階段的課程,已公布成績(jī)的課程不可注銷)。</p><p>  成績(jī)查詢(教師公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</

21、p><p>  教師(Teacher)用戶視圖</p><p><b>  修改個(gè)人信息。</b></p><p>  修改所授課程的信息(一名教師可教授多門課程)。</p><p>  查看所授課程的學(xué)生選課情況。</p><p>  錄入、查看成績(jī)(錄入成績(jī)的課程狀態(tài)為“統(tǒng)計(jì)成績(jī)” ,成績(jī)錄入的權(quán)

22、限只有教師用戶有)。</p><p>  公布成績(jī)(公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p>  自動(dòng)計(jì)算所授課程的選課人數(shù)、有成績(jī)?nèi)藬?shù)、平均成績(jī),且按成績(jī)由高到低排序。</p><p>  管理員(Administrator)用戶視圖</p><p><b>  學(xué)生管理:</b></p>

23、<p>  查詢、添加、修改、刪除學(xué)生信息。</p><p><b>  教師管理:</b></p><p>  查詢、添加、修改、刪除教師信息。</p><p><b>  課程管理:</b></p><p>  查詢、添加、修改、刪除課程信息。</p><p>

24、<b>  選課管理:</b></p><p>  查詢選課信息,添加選課信息(修改選課信息權(quán)限只有學(xué)生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)、結(jié)束)。</p><p><b>  授課管理:</b></p><p>  查詢、添加、修改授課信息。</p><p><b&

25、gt;  專業(yè)管理:</b></p><p>  添加、修改、刪除專業(yè)信息。</p><p><b>  學(xué)院管理:</b></p><p>  添加、修改、刪除學(xué)院信息。</p><p><b>  管理員操作:</b></p><p>  查詢、添加、修改、刪

26、除管理員信息。</p><p><b>  修改個(gè)人信息。</b></p><p>  數(shù)據(jù)庫(kù)系統(tǒng)多用戶視圖</p><p><b>  四、需求分析</b></p><p>  此學(xué)生管理信息系統(tǒng)的主要功能如下圖所示:</p><p>  4.1 用戶需求說明</p&

27、gt;<p>  4.1.1 數(shù)據(jù)需求</p><p><b>  其中需求數(shù)據(jù)為:</b></p><p><b>  學(xué)生基本信息記錄:</b></p><p>  用戶名、密碼、姓名、院系、專業(yè)、班級(jí)、入學(xué)時(shí)間、手機(jī)號(hào)</p><p><b>  教師基本信息記錄:&l

28、t;/b></p><p>  姓名、用戶名、密碼、院系、研究方向、入校時(shí)間、手機(jī)號(hào)</p><p>  管理員基本信息記錄:</p><p>  用戶名、密碼、姓名、權(quán)限等級(jí)、郵箱、手機(jī)號(hào)、注冊(cè)日期</p><p><b>  課程基本信息記錄:</b></p><p>  課程號(hào)、課程名

29、、所屬專業(yè)、學(xué)分、備注</p><p>  學(xué)院及專業(yè)基本信息記錄:</p><p>  學(xué)院:學(xué)院名稱、地址</p><p>  專業(yè):專業(yè)名稱、所屬學(xué)院</p><p><b>  選課信息管理:</b></p><p>  選課:學(xué)生用戶選定課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息&l

30、t;/p><p>  注銷選課:學(xué)生用戶注銷選課的課程號(hào)、課程名、任課教師、學(xué)分、課程狀態(tài)(只能注銷狀態(tài)為選課階段的課程)</p><p><b>  授課信息管理:</b></p><p>  課程號(hào)、課程名、教師號(hào)、教師姓名、選課人數(shù)</p><p><b>  成績(jī)信息管理:</b></p&

31、gt;<p>  學(xué)生查看:課程號(hào)、課程名、任課教師、學(xué)分、狀態(tài)、成績(jī)</p><p>  教師錄入:所授課程、學(xué)號(hào)、成績(jī)</p><p>  教師查看:名次、學(xué)號(hào)、姓名、學(xué)院、專業(yè)、班級(jí)、入學(xué)年份、成績(jī)、狀態(tài)</p><p>  4.1.2 事務(wù)需求</p><p><b>  數(shù)據(jù)錄入:</b><

32、/p><p>  錄入學(xué)生的基本信息:</p><p>  學(xué)號(hào)、姓名、所屬專業(yè)、班級(jí)、入學(xué)年份</p><p><b>  錄入學(xué)生的選課信息</b></p><p>  錄入教師的基本信息:</p><p>  學(xué)工號(hào)、姓名、院系、研究方向、注冊(cè)年份</p><p>  教

33、師錄入學(xué)生的成績(jī)信息:</p><p>  選擇所授課程后,錄入學(xué)號(hào)、成績(jī)</p><p>  錄入課程的基本信息:</p><p>  課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p><b>  錄入授課信息:</b></p><p><b>  課程號(hào)、教師號(hào)</b&

34、gt;</p><p><b>  錄入專業(yè)信息: </b></p><p><b>  專業(yè)名、所屬學(xué)院</b></p><p><b>  錄入學(xué)院信息:</b></p><p><b>  學(xué)院名、地址</b></p><p>

35、;  錄入新管理員的基本信息:</p><p>  管理員號(hào)、管理員姓名、權(quán)限設(shè)置(輔導(dǎo)員級(jí)、院級(jí)、校級(jí)、全局)</p><p><b>  數(shù)據(jù)更新/刪除:</b></p><p> ?。?) 學(xué)生個(gè)人信息的更新</p><p>  (2) 學(xué)生注銷選課信息</p><p> ?。?) 教師個(gè)人

36、信息的更新</p><p> ?。?) 教師所授課程信息的更新</p><p> ?。?) 教師錄入成績(jī)的更新/ 刪除</p><p> ?。?) 學(xué)生基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 教師基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 課程基本信息的更新/ 刪除(管理

37、員操作)</p><p> ?。?) 選課狀態(tài)的更新:分為選課階段、已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)、結(jié)束(管理員操作)</p><p>  授課信息的更新(管理員操作)</p><p>  專業(yè)基本信息的更新/ 刪除(管理員操作)</p><p>  學(xué)院基本信息的更新/ 刪除(管理員操作)</p><p>  管理員個(gè)人

38、信息的更新(管理員操作)</p><p>  新管理員基本信息的更新/ 刪除(管理員操作)</p><p><b>  數(shù)據(jù)查看:</b></p><p><b>  學(xué)生用戶視圖下:</b></p><p> ?。?) 列出學(xué)生基本信息</p><p> ?。?) 按照課程

39、號(hào)列出課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p> ?。?) 按照課程名列出所有課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p> ?。?) 按照開課專業(yè)列出所有課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p> ?。?) 按照學(xué)分列出所有課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p

40、> ?。?) 列出所選課程的課程號(hào)、課程名、任課教師、學(xué)分、狀態(tài)、成績(jī)</p><p><b>  教師用戶視圖下:</b></p><p>  (1) 列出教師基本信息</p><p>  (2) 列出所授課程的基本信息</p><p> ?。?) 列出所授課程的學(xué)生選課信息:學(xué)號(hào)、姓名、專業(yè)、班級(jí)、入學(xué)年份、聯(lián)

41、系方式、成績(jī)、狀態(tài)</p><p> ?。?) 列出已錄入成績(jī)的學(xué)生名次、學(xué)號(hào)、姓名、學(xué)院、專業(yè)、班級(jí)、入學(xué)年份、成績(jī)、狀態(tài),并按照成績(jī)名次排序</p><p><b>  管理員用戶視圖下:</b></p><p>  (1) 按照學(xué)號(hào)列出學(xué)生的學(xué)號(hào)、姓名、學(xué)院、專業(yè)、班級(jí)、入學(xué)年份、聯(lián)系方式</p><p>  (2

42、) 按照姓名列出所有學(xué)生的學(xué)號(hào)、姓名、學(xué)院、專業(yè)、班級(jí)、入學(xué)年份、聯(lián)系方式</p><p>  (3) 按照專業(yè)列出所有學(xué)生的學(xué)號(hào)、姓名、學(xué)院、專業(yè)、班級(jí)、入學(xué)年份、聯(lián)系方式</p><p>  (4) 按照學(xué)院列出所有學(xué)生的學(xué)號(hào)、姓名、學(xué)院、專業(yè)、班級(jí)、入學(xué)年份、聯(lián)系方式</p><p>  (5) 按照學(xué)工號(hào)列出教師的學(xué)工號(hào)、姓名、學(xué)院、方向、注冊(cè)年份、emai

43、l、聯(lián)系方式</p><p> ?。?) 按照姓名列出所有教師的學(xué)工號(hào)、姓名、學(xué)院、方向、注冊(cè)年份、email、聯(lián)系方式</p><p> ?。?) 按照學(xué)院列出所有教師的學(xué)工號(hào)、姓名、學(xué)院、方向、注冊(cè)年份、email、聯(lián)系方式</p><p> ?。?) 按照方向列出所有教師的學(xué)工號(hào)、姓名、學(xué)院、方向、注冊(cè)年份、email、聯(lián)系方式</p><

44、p> ?。?) 按照課程號(hào)列出課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p> ?。?0)按照課程名列出課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p>  (11)按照開課專業(yè)列出課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p> ?。?2)按照學(xué)分列出課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p&g

45、t;<p> ?。?3)按照課程號(hào)列出選課信息:課程號(hào)、課程名、學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、狀態(tài)、成績(jī)</p><p> ?。?4)按照學(xué)生學(xué)號(hào)列出選課信息:課程號(hào)、課程名、學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、狀態(tài)、成績(jī)</p><p> ?。?5)按照教師學(xué)工號(hào)列出選課信息:課程號(hào)、課程名、學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、狀態(tài)、成績(jī)</p><p&

46、gt;  (16)按照課程狀態(tài)列出選課信息:課程號(hào)、課程名、學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、狀態(tài)、成績(jī)</p><p> ?。?7)按照課程號(hào)列出授課信息:課程號(hào)、課程名、教師號(hào)、教師姓名、選課人數(shù)</p><p> ?。?8)按照課程名列出授課信息:課程號(hào)、課程名、教師號(hào)、教師姓名、選課人數(shù)</p><p> ?。?9)按照教師學(xué)工號(hào)列出授課信息:課程號(hào)、課程名

47、、教師號(hào)、教師姓名、選課人數(shù)</p><p> ?。?0)按照管理員號(hào)列出管理員的管理員號(hào)、姓名、權(quán)限、email、聯(lián)系方式、注冊(cè)日期</p><p> ?。?1)按照姓名列出所有管理員的管理員號(hào)、姓名、權(quán)限、email、聯(lián)系方式、注冊(cè)日期</p><p>  4.2 系統(tǒng)需求說明 </p><p>  該學(xué)生信息管理系統(tǒng)需要較強(qiáng)的數(shù)據(jù)處理功

48、能,理論上應(yīng)該能夠容納上萬人的數(shù)據(jù)資料,并且在搜索方面理應(yīng)具有較快的響應(yīng)速度,能夠處理多方面的數(shù)據(jù)請(qǐng)求。權(quán)限設(shè)置清晰明了,能夠有效的防止越權(quán)操作。系統(tǒng)能夠有效的處理各種異常,具有較好的健壯性。</p><p>  4.2.1 初始數(shù)據(jù)庫(kù)大小</p><p> ?。?) 大約有1400門課程,分屬于約40個(gè)學(xué)院中,每個(gè)學(xué)院有10個(gè)以下的專業(yè)。</p><p> ?。?

49、) 大約有2萬名學(xué)生分布在各個(gè)學(xué)院,每個(gè)學(xué)院平均有500名學(xué)生。</p><p> ?。?) 大約有4000名教師分布在各個(gè)學(xué)院,每個(gè)學(xué)院平均有100名教師。</p><p> ?。?) 大約有120名管理員分布在各個(gè)學(xué)院,每個(gè)學(xué)院平均有3名管理員。</p><p> ?。?) 每名學(xué)生一學(xué)期平均選擇5門課程。</p><p> ?。?) 每

50、名教師平均所授課程為2門。</p><p>  4.2.2 網(wǎng)絡(luò)和共享需求</p><p>  (1) 所有學(xué)院必須安全的和總部中央數(shù)據(jù)庫(kù)網(wǎng)絡(luò)互連</p><p> ?。?) 必須能夠支持每個(gè)學(xué)院至少300名用戶同時(shí)訪問,需要考慮這么大數(shù)量并發(fā)訪問的許可需求。</p><p><b>  性能:</b></p>

51、;<p><b>  4.2.3 性能</b></p><p>  高峰期:每年的1月、3月、6月、9月</p><p> ?。?) 單個(gè)記錄查詢時(shí)間少于1秒,高峰期少于5秒</p><p> ?。?) 多個(gè)記錄查詢時(shí)間少于5秒,高峰期少于10秒</p><p>  (3) 更新/保存記錄時(shí)間少于1秒,高峰

52、期少于5秒</p><p><b>  4.2.4 安全性</b></p><p> ?。?) 數(shù)據(jù)庫(kù)必須有口令保護(hù)</p><p>  (2) 每個(gè)用戶分配特定的用戶視圖所應(yīng)有的訪問權(quán)限</p><p> ?。?) 用戶只能在適合他們完成工作需要的窗口中看到需要的數(shù)據(jù)</p><p>  4.2

53、.5 備份和恢復(fù)</p><p><b>  每天24點(diǎn)備份</b></p><p>  4.2.6 用戶界面</p><p><b>  菜單驅(qū)動(dòng),聯(lián)機(jī)幫助</b></p><p>  4.2.7 法律問題</p><p>  對(duì)用戶信息管理,遵守法律</p>

54、<p><b>  五、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)</b></p><p>  5.1 ER圖【3】:</p><p>  本系統(tǒng)的ER圖如下:</p><p>  實(shí)體: 聯(lián)系: 屬性: </p><p>  m m<

55、/p><p>  n n </p><p>  m m </p><p>  1 1</p><p>  1

56、 m</p><p>  該ER圖包括課程、教師、學(xué)生、學(xué)院、專業(yè)五個(gè)實(shí)體和授課、選課、工作于、屬于、包含五個(gè)聯(lián)系。</p><p><b>  5.2 數(shù)據(jù)字典</b></p><p>  5.2.1 從數(shù)據(jù)字典中抽取出來的系統(tǒng)實(shí)體描述:</p><p>  5.2.2 從數(shù)據(jù)字典中抽取出來的聯(lián)系

57、的描述:</p><p><b>  5.3 關(guān)系表</b></p><p>  該數(shù)據(jù)庫(kù)關(guān)系圖如下:</p><p><b>  其中包含的聯(lián)系有:</b></p><p><b>  六、數(shù)據(jù)庫(kù)物理設(shè)計(jì)</b></p><p><b>  

58、6.1 索引</b></p><p>  College數(shù)據(jù)庫(kù)中的索引:</p><p>  在表“學(xué)生”中,對(duì)主鍵學(xué)號(hào)做了索引,作為該表的主索引。每次改變學(xué)號(hào),姓名幾乎都要和其相對(duì)應(yīng),索引把表“學(xué)生”里姓名一列作為“學(xué)生”的二級(jí)索引。索引使“學(xué)生”中的學(xué)號(hào)一列按順序排列,方便查找學(xué)生信息,為實(shí)現(xiàn)以下功能提供了方便:</p><p>  查找學(xué)生基本信息

59、以及修改學(xué)生基本信息;</p><p>  向“學(xué)生”表里添加學(xué)生和刪除學(xué)生信息也可以根據(jù)索引方便找到。</p><p>  另外,在數(shù)據(jù)庫(kù)的其他表中,由于其他表的信息量不如“學(xué)生”這么大,像“教師”、“管理員”等,這樣建索引反而使效率提高不明顯,又浪費(fèi)空間,所以這些表中沒有這樣建索引,只有表“學(xué)生”中用到。</p><p><b>  6.2 視圖<

60、;/b></p><p>  此環(huán)節(jié)設(shè)計(jì)在數(shù)據(jù)庫(kù)應(yīng)用生命周期的需求分析和收集階段標(biāo)識(shí)的用戶視圖。通常,視圖使用SQL或類似QBE的工具創(chuàng)建。例如,對(duì)軟件學(xué)院的管理員:</p><p>  CREATE VIEW Student1_View</p><p>  AS SELECT student_id, name, major, class, enter_ye

61、ar, phone</p><p>  FROM student</p><p>  WHERE college = ‘軟件學(xué)院’;</p><p><b>  6.3 安全機(jī)制</b></p><p>  6.3.1 系統(tǒng)安全</p><p>  1、提供了充足的異常處理機(jī)制,能夠捕獲由各種錯(cuò)誤

62、引發(fā)的異常(如:越權(quán)操作、輸入數(shù)據(jù)類型與數(shù)據(jù)庫(kù)要求類型不一致、查詢過程中出現(xiàn)的錯(cuò)誤等等)。</p><p>  2、系統(tǒng)登錄時(shí)要憑用戶名和口令進(jìn)入,輸入正確時(shí)才可以進(jìn)入系統(tǒng)。用戶需要選擇自己的身份(學(xué)生、教師、管理員),若用戶名和密碼輸入正確,系統(tǒng)可以打開符合該用戶身份的操作界面。其他界面該用戶沒有權(quán)限訪問。</p><p>  6.3.2 數(shù)據(jù)安全</p><p>

63、;  1、根據(jù)用戶身份,用戶進(jìn)入不同的用戶界面,即享有不同的權(quán)限,只有管理員才可以實(shí)現(xiàn)修改一些重要信息,以確保數(shù)據(jù)庫(kù)不被隨意更改,保證數(shù)據(jù)安全。</p><p>  2、該學(xué)生系統(tǒng)共有三種身份:學(xué)生、教師、管理員。他們相應(yīng)的權(quán)限如下:</p><p>  (1)學(xué)生:查看修改個(gè)人信息、查看課程信息、選課/注銷選課(只有在選課階段的課程才可以注銷)、查看自己所選課程成績(jī)(教師公布成績(jī)后學(xué)生方

64、可查看到自己的成績(jī))。</p><p>  (2)教師:查看修改個(gè)人信息、查看修改所授課程信息(一名教師可教授多門課程)、查看所授課程的學(xué)生選課情況、成績(jī)錄入(錄入成績(jī)的課程狀態(tài)為“統(tǒng)計(jì)成績(jī)” ,成績(jī)錄入的權(quán)限只有教師用戶有)、公布成績(jī)(公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p>  (3)管理員:添加刪除修改查看學(xué)生信息、添加刪除修改查看教師信息、添加刪除修改查看課程信息、添

65、加刪除修改查看學(xué)院信息、添加刪除修改查看專業(yè)信息、添加查看選課信息(修改選課信息權(quán)限只有學(xué)生用戶有)、修改課程狀態(tài)、添加修改查看授課信息、添加刪除修改查看其他管理員信息、查看修改個(gè)人信息。</p><p><b>  6.4 其他</b></p><p>  規(guī)范化產(chǎn)生一個(gè)結(jié)構(gòu)上一致且最小冗余的邏輯數(shù)據(jù)庫(kù)設(shè)計(jì),但是,規(guī)范化的數(shù)據(jù)庫(kù)設(shè)計(jì)有時(shí)不能提供最大的處理效率。所以我

66、們?cè)敢饨邮找?guī)范化設(shè)計(jì)方面的一些損失而實(shí)現(xiàn)更好的性能。在該系統(tǒng)中,表“學(xué)生”中復(fù)制了表“專業(yè)”的“所屬學(xué)院”一列,加快了檢索速度,方便通過列“學(xué)院”來查詢特定學(xué)院的學(xué)生,也方便形成某學(xué)院的視圖。</p><p><b>  七、應(yīng)用程序設(shè)計(jì)</b></p><p><b>  7.1 功能模塊</b></p><p>  該

67、學(xué)生管理信息系統(tǒng)共有三個(gè)角色:學(xué)生、教師、管理員,各個(gè)角色實(shí)現(xiàn)的功能如下:</p><p>  7.1.1 學(xué)生(Student)用戶</p><p>  (1)修改個(gè)人信息。</p><p> ?。?)按課程名、課程號(hào)、專業(yè)、學(xué)分等信息查詢課程,選課和查詢已選課程。</p><p> ?。?)注銷選課(只能注銷選課階段的課程,已公布成績(jī)的課

68、程不可注銷)。</p><p>  (4)成績(jī)查詢(教師公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p>  教師(Teacher)用戶</p><p> ?。?)修改個(gè)人信息。</p><p>  (2)修改所授課程的信息(一名教師可教授多門課程)。</p><p> ?。?)查看所授課程的學(xué)生選課情況。<

69、;/p><p>  (4)錄入、查看成績(jī)(錄入成績(jī)的課程狀態(tài)為“統(tǒng)計(jì)成績(jī)” ,成績(jī)錄入的權(quán)限只有教師用戶有)。</p><p>  (5)公布成績(jī)(公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p> ?。?)自動(dòng)計(jì)算所授課程的選課人數(shù)、有成績(jī)?nèi)藬?shù)、平均成績(jī),且按成績(jī)由高到低排序。</p><p>  管理員(Administrator)用戶

70、</p><p><b> ?。?)學(xué)生管理:</b></p><p>  查詢、添加、修改、刪除學(xué)生信息。</p><p><b>  (2)教師管理:</b></p><p>  查詢、添加、修改、刪除教師信息。</p><p><b> ?。?)課程管理:&l

71、t;/b></p><p>  查詢、添加、修改、刪除課程信息。</p><p><b> ?。?)選課管理:</b></p><p>  查詢選課信息,添加選課信息(修改選課信息權(quán)限只有學(xué)生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)、結(jié)束)。</p><p><b> ?。?)授課管理

72、:</b></p><p>  查詢、添加、修改授課信息。</p><p><b>  (6)專業(yè)管理:</b></p><p>  添加、修改、刪除專業(yè)信息。</p><p><b> ?。?)學(xué)院管理:</b></p><p>  添加、修改、刪除學(xué)院信息。&

73、lt;/p><p><b>  (8)管理員操作:</b></p><p>  查詢、添加、修改、刪除管理員信息。</p><p> ?。?)修改個(gè)人信息。</p><p><b>  7.2 界面設(shè)計(jì)</b></p><p>  7.2.1 登錄界面</p>&l

74、t;p>  用戶在登錄界面可以選擇不同的角色,輸入用戶名和密碼并經(jīng)過系統(tǒng)驗(yàn)證后,可以進(jìn)入相應(yīng)角色的操作界面。</p><p>  7.2.2 學(xué)生用戶操作界面</p><p> ?。?)修改個(gè)人信息的界面。</p><p> ?。?)按課程名、課程號(hào)、專業(yè)、學(xué)分等信息查詢課程,選課。</p><p> ?。?)查詢已選課程及成績(jī)(教師公

75、布成績(jī)后學(xué)生方可查看到自己的成績(jī)),注銷選課(只能注銷選課階段的課程,已公布成績(jī)的課程不可注銷)。</p><p> ?。?)退出系統(tǒng)時(shí)的提示。</p><p>  7.2.3 教師用戶操作界面</p><p>  (1)修改個(gè)人信息。</p><p>  (2)修改所授課程的信息(一名教師可教授多門課程)。下拉框中會(huì)顯示當(dāng)前所授課程,從中選

76、擇要修改的課程并輸入新的課程信息。</p><p> ?。?)查看所授課程的學(xué)生選課情況。</p><p> ?。?)錄入、查看成績(jī)(錄入成績(jī)的課程狀態(tài)為“統(tǒng)計(jì)成績(jī)” ,成績(jī)錄入的權(quán)限只有教師用戶有),系統(tǒng)自動(dòng)計(jì)算所授課程的選課人數(shù)、有成績(jī)?nèi)藬?shù)、平均成績(jī),且按成績(jī)由高到低排序。</p><p>  (5)公布成績(jī)(教師公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</

77、p><p>  7.2.4 管理員用戶操作界面</p><p> ?。?)學(xué)生管理:查詢、添加、修改、刪除學(xué)生信息。</p><p>  (2)教師管理:查詢、添加、修改、刪除教師信息。</p><p> ?。?)課程管理:查詢、添加、修改、刪除課程信息。</p><p> ?。?)選課管理:查詢選課信息,添加選課信息(修

78、改選課信息權(quán)限只有學(xué)生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)、結(jié)束)。</p><p> ?。?)授課管理:查詢、添加、修改授課信息。</p><p> ?。?)專業(yè)管理:添加、修改、刪除專業(yè)信息。</p><p>  (7)學(xué)院管理:添加、修改、刪除學(xué)院信息。</p><p> ?。?)管理員操作:查詢、添加、修改、刪

79、除管理員信息。</p><p> ?。?)修改個(gè)人信息。</p><p><b>  7.3 事務(wù)設(shè)計(jì)</b></p><p>  該系統(tǒng)中,所有關(guān)于查詢的事務(wù)基本上都可以由Select語句實(shí)現(xiàn),而更新的事務(wù)則用Update語句,刪除的事務(wù)用Delete語句實(shí)現(xiàn)?!?】7.3.1 管理員事務(wù)</p><p>  有關(guān)管

80、理員的事務(wù)包括管理員的添加、查詢、刪除、修改及身份驗(yàn)證等。具體實(shí)現(xiàn)代碼如下:</p><p>  public ResultSet search(String target, String method) {</p><p>  if (method.equals("id"))</p><p>  return searchByID(target

81、);</p><p><b>  else</b></p><p>  return searchByName(target);</p><p><b>  }</b></p><p>  public ResultSet searchLeisure() {</p><p>

82、  sql = "select * from student where student_id not in(select student_id from selection)";</p><p>  ResultSet rst = db.select(sql);</p><p>  return rst;</p><p><b>  

83、}</b></p><p>  public boolean add(Admin a) {</p><p>  sql = "insert into admin values(?,?,?,?,?,?,?)";</p><p><b>  try {</b></p><p>  Prepar

84、edStatement ps = db.getConnection().prepareStatement(sql);</p><p>  ps.setString(1, a.getAdminID());</p><p>  ps.setString(2, a.getPassword());</p><p>  ps.setString(3, a.getName())

85、;</p><p>  ps.setInt(4, a.getAuthority());</p><p>  ps.setString(5, a.getEmail());</p><p>  ps.setString(6, a.getPhone());</p><p>  ps.setString(7, a.getRegisterDate())

86、;</p><p>  ps.executeUpdate();</p><p>  return true;</p><p>  } catch (SQLException e) {</p><p>  return false;</p><p><b>  }</b></p>&l

87、t;p><b>  }</b></p><p>  public boolean delete(String id) {</p><p>  sql = "delete from admin where admin_id=?";</p><p><b>  try {</b></p>

88、<p>  PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p>  ps.setString(1, id);</p><p>  ps.executeUpdate();</p><p>  return true;</p><p>  }

89、 catch (SQLException e) {</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public boolean update(Admin a, String id) {</p&

90、gt;<p>  sql = "update admin set admin_id=?, name=?, auth=? where admin_id=?";</p><p><b>  try {</b></p><p>  PreparedStatement ps = db.getConnection().prepareStatem

91、ent(sql);</p><p>  ps.setString(1, a.getAdminID());</p><p>  ps.setString(2, a.getName());</p><p>  ps.setInt(3, a.getAuthority());</p><p>  ps.executeUpdate();</p&g

92、t;<p>  return true;</p><p>  } catch (SQLException e) {</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p> 

93、 public boolean modify(String id, String email, String phone) {</p><p>  sql = "update admin set email=?, phone=? where admin_id=?";</p><p><b>  try {</b></p><p&

94、gt;  PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p>  ps.setString(1, email);</p><p>  ps.setString(2, phone);</p><p>  ps.setString(3, id);</p><

95、p>  ps.executeUpdate();</p><p>  return true;</p><p>  } catch (SQLException e) {</p><p>  return false;</p><p><b>  }</b></p><p><b> 

96、 }</b></p><p>  public boolean changePass(String id, String pass) {</p><p>  sql = "update admin set password=? where admin_id=?";</p><p><b>  try {</b>&

97、lt;/p><p>  PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p>  ps.setString(1, pass);</p><p>  ps.setString(2, id);</p><p>  ps.executeUpdate();<

98、/p><p>  return true;</p><p>  } catch (SQLException e) {</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p&

99、gt;  public Admin getAdminByID(String id) {</p><p>  Admin admin = new Admin();</p><p>  sql = "select * from admin where admin_id='" + id + "'";</p><p>

100、  ResultSet rst = db.select(sql);</p><p><b>  try {</b></p><p>  if (rst.next()) {</p><p>  admin.setAdminID(rst.getString(1));</p><p>  admin.setPassword(r

101、st.getString(2));</p><p>  admin.setName(rst.getString(3));</p><p>  admin.setAuthority(rst.getInt(4));</p><p>  admin.setEmail(rst.getString(5));</p><p>  admin.setPho

102、ne(rst.getString(6));</p><p>  admin.setRegisterDate(rst.getString(7));</p><p>  db.close();</p><p>  return admin;</p><p><b>  } else</b></p><p&

103、gt;  return null;</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  return null;</p><p><b>  }</b></p><p><b>  }

104、</b></p><p>  public boolean check(String id, String pass) {</p><p>  sql = "select * from admin where admin_id='" + id + "' and password='"</p><

105、p>  + pass + "'";</p><p>  ResultSet rst = db.select(sql);</p><p><b>  try {</b></p><p>  if (rst.next()) {</p><p>  db.close();</p>

106、<p>  return true;</p><p><b>  } else</b></p><p>  return false;</p><p>  } catch (SQLException e) {</p><p>  return false;</p><p><b&

107、gt;  }</b></p><p><b>  }</b></p><p>  public String authorityToString(int autho) {</p><p>  switch (autho) {</p><p><b>  case 0:</b></p

108、><p>  return "未知";</p><p><b>  case 4:</b></p><p>  return "全局";</p><p><b>  case 3:</b></p><p>  return "校級(jí)

109、";</p><p><b>  case 2:</b></p><p>  return "院級(jí)";</p><p><b>  case 1:</b></p><p>  return "輔導(dǎo)員級(jí)";</p><p>&l

110、t;b>  }</b></p><p>  return "";</p><p><b>  }</b></p><p>  private ResultSet searchByID(String target) {</p><p>  sql = "select * fr

111、om admin where admin_id='" + target + "'";</p><p>  ResultSet rst = db.select(sql);</p><p>  return rst;</p><p><b>  }</b></p><p>  p

112、rivate ResultSet searchByName(String target) {</p><p>  sql = "select * from admin where name='" + target + "'";</p><p>  ResultSet rst = db.select(sql);</p>&

113、lt;p>  return rst;</p><p><b>  }</b></p><p>  7.3.2 學(xué)生事務(wù)</p><p>  有關(guān)學(xué)生的事務(wù)包括根據(jù)學(xué)號(hào)/姓名/學(xué)院/專業(yè)/所選課程狀態(tài)等信息分別添加、刪除、修改、查詢學(xué)生信息及身份驗(yàn)證等。具體實(shí)現(xiàn)代碼如下:</p><p>  public Resul

114、tSet search(String target, String method) {</p><p>  if (method.equals("id"))</p><p>  return searchByID(target);</p><p>  else if (method.equals("name"))</p&

115、gt;<p>  return searchByName(target);</p><p>  else if (method.equals("major"))</p><p>  return searchByMajor(target);</p><p><b>  else</b></p>&

116、lt;p>  return searchByCollege(target);</p><p><b>  }</b></p><p>  public ResultSet searchLeisure() {</p><p>  sql = "select * from student where student_id not i

117、n(select student_id from selection)";</p><p>  ResultSet rst = db.select(sql);</p><p>  return rst;</p><p><b>  }</b></p><p>  public boolean add(Stude

118、nt s) {</p><p>  sql = "insert into student values(?,?,?,?,?,?,?,?)";</p><p><b>  try {</b></p><p>  PreparedStatement ps = db.getConnection().prepareStatement

119、(sql);</p><p>  ps.setString(1, s.getStudentID());</p><p>  ps.setString(2, s.getPassword());</p><p>  ps.setString(3, s.getName());</p><p>  ps.setString(4, s.getColle

120、ge());</p><p>  ps.setString(5, s.getMajor());</p><p>  ps.setString(6, s.getClassInfo());</p><p>  ps.setString(7, s.getEnterYear());</p><p>  ps.setString(8, s.getPho

121、ne());</p><p>  ps.executeUpdate();</p><p>  return true;</p><p>  } catch (SQLException e) {</p><p>  return false;</p><p><b>  }</b></p>

122、;<p><b>  }</b></p><p>  public boolean delete(String id) {</p><p>  sql = "delete from student where student_id=?";</p><p><b>  try {</b>&l

123、t;/p><p>  PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p>  ps.setString(1, id);</p><p>  ps.executeUpdate();</p><p>  sql = "delete from sel

124、ection where student_id=?";</p><p>  PreparedStatement ps2 = db.getConnection().prepareStatement(sql);</p><p>  ps2.setString(1, id);</p><p>  ps2.executeUpdate();</p>&

125、lt;p>  return true;</p><p>  } catch (SQLException e) {</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  publ

126、ic boolean update(Student s, String id) {</p><p>  sql = "update student set student_id=?, name=?, college=?, major=?, class=?, enter_year=? where student_id=?";</p><p><b>  try

127、{</b></p><p>  PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p>  ps.setString(1, s.getStudentID());</p><p>  ps.setString(2, s.getName());</p>&

128、lt;p>  ps.setString(3, s.getCollege());</p><p>  ps.setString(4, s.getMajor());</p><p>  ps.setString(5, s.getClassInfo());</p><p>  ps.setString(6, s.getEnterYear());</p>

129、<p>  ps.setString(7, id);</p><p>  ps.executeUpdate();</p><p>  sql = "update selection set student_id=? where student_id='" + id</p><p><b>  + "'

130、;";</b></p><p>  PreparedStatement ps2 = db.getConnection().prepareStatement(sql);</p><p>  ps2.setString(1, s.getStudentID());</p><p>  ps2.executeUpdate();</p>&

溫馨提示

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

評(píng)論

0/150

提交評(píng)論