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