學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫項(xiàng)目設(shè)計(jì)報(bào)告.doc
《學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫項(xiàng)目設(shè)計(jì)報(bào)告.doc》由會員分享,可在線閱讀,更多相關(guān)《學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫項(xiàng)目設(shè)計(jì)報(bào)告.doc(19頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
計(jì)算機(jī)1403 學(xué)生成績管理系統(tǒng) 項(xiàng)目設(shè)計(jì)報(bào)告 作者:…………… 2015/11/23 目 錄 1 項(xiàng)目背景及需求分析 2 1.1項(xiàng)目背景 2 1.2需求分析 2 2 概念結(jié)構(gòu)設(shè)計(jì) 3 2.1抽象出系統(tǒng)實(shí)體 3 2.2局部E-R圖 3 2.3全局E-R圖 6 3 邏輯結(jié)構(gòu)設(shè)計(jì) 6 4 創(chuàng)建數(shù)據(jù)庫及相關(guān)操作 9 4.1 創(chuàng)建數(shù)據(jù)庫 9 4.2建立視圖 10 4.3建立存儲過程 12 4.4建立觸發(fā)器 13 4.5查詢問題及查詢結(jié)果 14 5項(xiàng)目設(shè)計(jì)總結(jié) 17 1 項(xiàng)目背景及需求分析 1.1項(xiàng)目背景 高校是教學(xué)和科研的重要基地,同時(shí)還是培養(yǎng)人才的重要場所。隨著計(jì)算機(jī)技術(shù)的發(fā)展和互聯(lián)網(wǎng)時(shí)代的到來,學(xué)校的教學(xué)管理受到了極大的挑戰(zhàn)。 Internet技術(shù)持續(xù)迅猛的發(fā)展為傳統(tǒng)的教學(xué)管理提出了新的模式。以現(xiàn)在計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的數(shù)字化教學(xué)管理要依靠自身的人才優(yōu)勢,加強(qiáng)對信息資源的開發(fā)和利用,做好學(xué)校信息化的基礎(chǔ)教學(xué)工作,是學(xué)校朝著信息化、網(wǎng)絡(luò)化、現(xiàn)代化的目標(biāo)邁進(jìn)。這種新的管理模式,對于管理極為寶貴的特性,可以為新型管理模式的建構(gòu)提供理想的基礎(chǔ)。 系統(tǒng)由授課教師來完成成績錄入,而學(xué)生可以自行查詢成績。這樣除了減輕教學(xué)管理部門人員的工作負(fù)擔(dān),還可以減少信息錯(cuò)誤的發(fā)生,同時(shí)為其他部門甚至全校教職工提供信息服務(wù)。 開發(fā)的學(xué)生成績管理系統(tǒng)則是以校園網(wǎng)為基礎(chǔ)的管理系統(tǒng),利用網(wǎng)絡(luò)能快速、及時(shí)、準(zhǔn)確的傳遞信息的作用,使部門的“信息孤島”過渡到緊密相關(guān)并在全校范圍內(nèi)都可用的數(shù)據(jù)。通過網(wǎng)絡(luò)可以使管理部門能夠更方便的管理學(xué)生的成績系統(tǒng);也使得教師能夠方便的上傳、校隊(duì)學(xué)生成績;還可以使學(xué)生能夠快速查詢成績。這樣管理部門對信息的管理和控制方式變成雙向的,不但減少管理方面的工作量,而且可以做到信息管理規(guī)范化,從而得到科學(xué)的統(tǒng)計(jì)和快速的查詢。 1.2需求分析 針對河北工程大學(xué)的成績管理工作量大、繁雜,人工處理非常困難。學(xué)生成績管理系統(tǒng)借助于計(jì)算機(jī)強(qiáng)大的處理能力,大大減輕了管理人員的工作量,并提高了處理的準(zhǔn)確性。學(xué)生成績管理系統(tǒng)的開發(fā)運(yùn)用,實(shí)現(xiàn)了學(xué)生成績管理的自動化,不僅把廣大教師從繁重的成績管理工作中解脫出來、把學(xué)校從傳統(tǒng)的成績管理模式中解放出來,而且對學(xué)生成績的判斷和整理更合理、更公正,同時(shí)也給教師提供了一個(gè)準(zhǔn)確、清晰、輕松的成績管理環(huán)境。 2 概念結(jié)構(gòu)設(shè)計(jì) 2.1抽象出系統(tǒng)實(shí)體 課程(課程編號、課程教師編號、課程名稱); 成績(學(xué)號、課程編號、分?jǐn)?shù)); 學(xué)生(班級、姓名、學(xué)號、性別、專業(yè)); 教師(教師號、姓名、所屬專業(yè)、性別)。 2.2局部E-R圖 課程號 課程名 任課教師號 教師號 教師號 課程 教師師 姓名 系別 性別 教師號 授課 m n 班級 姓名 學(xué)生師 學(xué)號 性別 專業(yè) 學(xué)號 教師師 姓名 系別 教師號 性別 教授 教師號 1 n 成績師 學(xué)號 課程編號 分?jǐn)?shù) 課程號 學(xué)號 n 1 考試 學(xué)生師 專業(yè) 學(xué)號 班級 性別 姓名 課程師 課程號 課程名 任課教師號 n m 選修 課程號 成績 學(xué)號 學(xué)生師 專業(yè) 學(xué)號 班級 性別 姓名 2.3全局E-R圖 1 擁有 選修 課程名 成績 學(xué)號 1 n 考試 課程號 學(xué)號 學(xué)號 課程編號 分?jǐn)?shù) n 1 講授 教師號 課程號 課程編號 任課教師號 課程名稱 課程 性別 系別 姓名 教師號 教師 成績 專業(yè) 性別 學(xué)號 姓名 班級 學(xué)生 1 n 教授 教師號 學(xué)號 1 3 邏輯結(jié)構(gòu)設(shè)計(jì) E-R圖向關(guān)系模型轉(zhuǎn)化要解決的問題是如何將實(shí)體型和實(shí)體間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼。 設(shè)計(jì)學(xué)生成績管理數(shù)據(jù)庫,包括課程(course)、學(xué)生(student)、成績(sc)、教師(teacher)四個(gè)關(guān)系, 其關(guān)系模式中對每個(gè)實(shí)體定義的屬性如下: course表:(課程號(cno),教師號(tno),課程名(cname)) 此為聯(lián)系“course表”所對應(yīng)的關(guān)系模式。課程號和教師號為該關(guān)系的候選碼,滿足第三范式。 student表:((學(xué)號(sno),班級(sclass),姓名(sname),性別(ssex),專業(yè)(smajor)) 此為聯(lián)系“student表”所對應(yīng)的關(guān)系模式。學(xué)號為該關(guān)系的候選碼,滿足第三范式。 sc表:(學(xué)號(sno),課程號(cno),成績(degree)) 此為聯(lián)系“sc表”所對應(yīng)的關(guān)系模式。學(xué)號和課程號為該關(guān)系的候選,滿足第三范式。 teacher表:(教師姓名(tname)、性別(tsex)、教師號(tno)、專業(yè)(tmajor)) 此為聯(lián)系“teacher表”所對應(yīng)的關(guān)系模式。教師號為該關(guān)系的候選碼,滿足第三范式。 數(shù)據(jù)庫中包含4個(gè)表,即課程信息(course),學(xué)生信息(student),成績信息(sc),教師信息(teacher)。 course表的表結(jié)構(gòu) 列名 數(shù)據(jù)類型 長度 小數(shù)位數(shù) 是否允許NULL值 說明 cno char 5 否 主碼 cname varchar 20 否 tno char 3 否 student表的表結(jié)構(gòu) 列名 數(shù)據(jù)類型 長度 小數(shù)位數(shù) 是否允許NULL值 說明 sno char 9 否 主碼 sname char 8 是 ssex char 2 是 取值:男或女 smajor char 20 是 sclass char 10 是 sc表的表結(jié)構(gòu) 列名 數(shù)據(jù)類型 長度 小數(shù)位數(shù) 是否允許NULL值 說明 sno char 10 否 組合主碼,外碼 degree decimal 4 1 是 取值1-100 cno char 5 否 組合主碼,外碼 teacher表的表結(jié)構(gòu) 列名 數(shù)據(jù)類型 長度 小數(shù)位數(shù) 是否允許NULL值 說明 tno char 3 否 主碼 tname varchar 8 是 tsex char 2 是 取值:男或女 tdept char 16 是 4 創(chuàng)建數(shù)據(jù)庫及相關(guān)操作 4.1 創(chuàng)建數(shù)據(jù)庫 CREATE database test; /*創(chuàng)建test數(shù)據(jù)庫*/ 4.1.1 創(chuàng)建表 CREATE TABLE course( //創(chuàng)建課程信息表 cno char(5) NOT NULL, cname varchar(20) NOT NULL, tno char(3) NOT NULL, CONSTRAINT C1 PRIMARY KEY(cno) ); CREATE TABLE student( //創(chuàng)建學(xué)生信息表 sno char(9) PRIMARY KEY, sname char(8), ssex char(2), smajor char(20), sclass char(10) ); CREATE TABLE sc( //創(chuàng)建成績表 sno char(10) NOT NULL, degree decimal(4,1) , cno char(5) NOT NULL, CONSTRAINT A1 PRIMARY KEY(sno,cno), CONSTRAINT A2 CHECK(degree>=0 and degree<=100) ); CREATE TABLE teacher( //創(chuàng)建教師表 tno char(3) NOT NULL, tname varchar(8), tsex char(2), tdept char(16), CONSTRAINT C1 PRIMARY KEY(tno) ); 4.1.2 添加記錄 course表添加示例: INSERT INTO course VALUES(’C01’,’科學(xué)導(dǎo)論’,’101’); 為了簡化,其余用Navicat添加 student表添加示例: INSERT INTO student VALUES(’140210316’,’葉何斌’,’男’,’計(jì)算機(jī)科學(xué)與技術(shù)’,’計(jì)算機(jī)1403’); 為了簡化,其余用Navicat添加。 sc表添加示例: INSERT INTO sc VALUES(’140210316’,’87’,’C01’); 為了簡化,其余用Navicat添加 teacher表添加示例: INSERT INTO teacher VALUES(’140210316’,’葉何斌’,’男’,’計(jì)算機(jī)科學(xué)與技術(shù)’,’計(jì)算機(jī)1403’); 為了簡化,其余用Navicat添加 4.2建立視圖 4.2.1 定義視圖v_student,查詢所有選修科學(xué)導(dǎo)論的課程的學(xué)生的學(xué)號(sno),姓名(sname),成績(degree)。 代碼: CREATE VIEW v_student AS SELECT A.sno,sname,degree FROM student A,course B,sc C WHERE A.sno=C.sno AND B.cno=C.cno AND cname=科學(xué)導(dǎo)論; 查詢定義視圖v_student 代碼: SELECT *FROM v_student; 結(jié)果: 4.2.2 利用視圖向表sc中插入一條數(shù)據(jù)。view_sc是創(chuàng)建的視圖 代碼: CREATE VIEW view_sc //創(chuàng)建 AS SELECT sno,degree,cno FROM sc; INSERT INTO view_sc //執(zhí)行 VALUES(140210321,88,C01); SELECT sno,degree,cno //查看結(jié)果 FROM sc; 結(jié)果: 在sc表中已經(jīng)正確插入。 DELETE FROM view_sc WHERE sno=’140210321’; //刪除 結(jié)果: 已經(jīng)正確刪除。 4.2.3 修改視圖view_sc的代碼為:ALTER VIEW view_sc AS SELECT sno,degree,cno; 刪除視圖view_sc的代碼為:DROP VIEW view_sc; 4.3建立存儲過程 4.3.1 創(chuàng)建一個(gè)存儲過程,從student表中檢索出所有班級為“計(jì)算機(jī)1403”的學(xué)生的學(xué)號,姓名。 代碼: DELIMITER // /*將MYSQL的結(jié)束符設(shè)置為//*/ CREATE PROCEDURE proc_stud() READS SQL DATA BEGIN SELECT sno,sname,smajor FROM student WHERE sclass LIKE %計(jì)算機(jī)1403% ORDER BY sno; END // DELIMITER ; /*將結(jié)束符恢復(fù)成分號*/ 執(zhí)行存儲過程:CALL proc_stud; 結(jié)果: 4.3.2 創(chuàng)建一個(gè)num_sc的存儲過程,統(tǒng)計(jì)一個(gè)同學(xué)的課程成績個(gè)數(shù)。 代碼: DELIMITER // /*將MYSQL的結(jié)束符設(shè)置為//*/ CREATE PROCEDURE num_sc(IN tmp_sno char(9), OUT count_num INT) READS SQL DATA BEGIN SELECT COUNT(*) INTO count_num FROM sc WHERE sno=tmp_sno; END // DELIMITER ; /*將結(jié)束符恢復(fù)成分號*/ 4.4建立觸發(fā)器 在數(shù)據(jù)庫的student表中,定義一個(gè)觸發(fā)器,當(dāng)一個(gè)學(xué)生被刪除時(shí),把該學(xué)生的學(xué)號和姓名添加到delstudent表中。 代碼: CREATE TABLE delstudent SELECT sno,sname FROM student WHERE 1=0; //創(chuàng)建一個(gè)空表用于接受刪除后的數(shù)據(jù) CREATE TRIGGER trig_student //創(chuàng)建student表的觸發(fā)器 AFTER DELETE ON student FOR EACH R0W INSERT INTO delstudent(sno,sname) values(old.sno, old.sname); DELETE FROM student WHERE sname=李甜甜; //刪除一個(gè)學(xué)生,驗(yàn)證觸發(fā)器是否觸發(fā)。 select * from delstudent; //查看接受刪除數(shù)據(jù)表 結(jié)果: 觸發(fā)器已經(jīng)觸發(fā)。 4.5查詢問題及查詢結(jié)果 4.5.1 查詢所有學(xué)生的學(xué)號、姓名、性別和專業(yè) 代碼: select sno,sname,ssex,smajor from student; 結(jié)果: 4.5.2 計(jì)算“C01”課程的平均成績。 代碼: SELECT AVG(degree) FROM sc WHERE cno=C01; 結(jié)果: 4.5.3 查詢選修課程名為“高等數(shù)學(xué)”的學(xué)生學(xué)號和姓名。 代碼: SELECT A.sno,sname FROM student A INNER JOIN sc B ON A.sno=B.sno INNER JOIN course C ON B.cno=C.cno WHERE C.cname=高等數(shù)學(xué); 結(jié)果: 4.5.4 查詢“C03”課程不及格的學(xué)生信息 代碼: SELECT A.sno,sname,ssex,smajor,sclass FROM student A INNER JOIN sc B ON A.sno=B.sno INNER JOIN course C ON B.cno=C.cno WHERE C.cno=C03 AND B.degree<60; 結(jié)果: 4.5.5 查詢不講授“C01”課程的教師姓名。 代碼: SELECT tname FROM teacher WHERE tno=ANY(SELECT tno FROM course WHERE cno!=C01 ); 結(jié)果: 4.5.6 插入學(xué)號為“140210322”、姓名為“曾淑亮”、性別為“男”的學(xué)生信息。 代碼: INSERT INTO student (sno,sname,ssex) VALUES (140210322,曾淑亮,男); 結(jié)果: 5項(xiàng)目設(shè)計(jì)總結(jié) 這次學(xué)生成績管理系統(tǒng)設(shè)計(jì),我們主要采用的是命令行,然后Navicat圖形界面輔助操作的方式完成設(shè)計(jì)。通過這次程序設(shè)計(jì),加深了對課程設(shè)計(jì)的理解。在這次課程設(shè)計(jì)中,我們回顧了很多以前的東西,也發(fā)現(xiàn)了很多的問題,以前都沒遇見過的,收獲很大。在對不同的功能代碼是不一定可以完整的執(zhí)行的,不過大概都是一樣的??粗约鹤龅南到y(tǒng),我們自己就會又欣慰又難過,欣慰的是終于把它做出來了,雖然遇到很多困難,難過的是自己知道還有很多的不足,但是由于知識的有限,無法去完善,才知道“書到用時(shí)方恨少”。 此次成績管理系統(tǒng)的設(shè)計(jì)讓我們對Mysql數(shù)據(jù)庫的了解更加深入,在整個(gè)是設(shè)計(jì)過程中,通過對把各個(gè)管理信息連接起來的分析,鍛煉了我們對事情的分析能力,通過怎樣解決過程中出現(xiàn)的問題,提高了我們查找文獻(xiàn)的能力,對網(wǎng)絡(luò)資源的利用能力和與其他同學(xué)的交流溝通能力。而且經(jīng)歷這次課程設(shè)計(jì),我們也學(xué)會了自學(xué)和分工合作。 我們覺得每一次的課程設(shè)計(jì),都是讓我們對原有知識從了解表面到深入本質(zhì),從個(gè)體學(xué)習(xí)到整體把握的跳躍,更是讓我們把課本的知識應(yīng)用到實(shí)際中,讓我們了解了我們的學(xué)習(xí)有什么用,能夠解決什么樣的問題,增加我們的自信和學(xué)習(xí)的動力。 總之,通過這次課程設(shè)計(jì),我們獲益匪淺。也感受到了和同學(xué)合作開發(fā)的樂趣,同時(shí)驗(yàn)證了一句話“團(tuán)結(jié)就是力量”。最后感謝老師的悉心教導(dǎo),為我們的程序開發(fā)之路打下了扎實(shí)的基礎(chǔ)。- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 學(xué)生 成績管理系統(tǒng) 數(shù)據(jù)庫 項(xiàng)目 設(shè)計(jì) 報(bào)告
鏈接地址:http://www.3dchina-expo.com/p-6541602.html