Oracle綜訓(xùn)學(xué)生成績管理系統(tǒng)_第1頁
Oracle綜訓(xùn)學(xué)生成績管理系統(tǒng)_第2頁
Oracle綜訓(xùn)學(xué)生成績管理系統(tǒng)_第3頁
Oracle綜訓(xùn)學(xué)生成績管理系統(tǒng)_第4頁
Oracle綜訓(xùn)學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件學(xué)院綜合訓(xùn)練項目報告書課程名稱Oracle 數(shù)據(jù)庫項目名稱 學(xué)生成績管理系統(tǒng)專業(yè)班級 組別成員任課教師 劉臘梅2015年 6 月目錄 TOC o 1-5 h z HYPERLINK l bookmark3 o Current Document 1.設(shè)計時間 3 HYPERLINK l bookmark5 o Current Document 2,設(shè)計任務(wù) 3 HYPERLINK l bookmark7 o Current Document .設(shè)計內(nèi)容 3 HYPERLINK l bookmark9 o Current Document 系統(tǒng)設(shè)計 3系統(tǒng)功能概述3系統(tǒng)功能模塊設(shè)計數(shù)據(jù)庫設(shè)計

2、5數(shù)據(jù)庫需求分析5數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計9 TOC o 1-5 h z 數(shù)據(jù)庫實現(xiàn) 11創(chuàng)建用戶 11 HYPERLINK l bookmark23 o Current Document 創(chuàng)建表和約束 11創(chuàng)建存儲過程、函數(shù)及觸發(fā)器13 HYPERLINK l bookmark35 o Current Document 測試與分析 16 HYPERLINK l bookmark37 o Current Document 測試 16 HYPERLINK l bookmark46 o Current Document 分析 19 HYPERLINK l bookmark48 o Current Doc

3、ument 代碼 19.總結(jié)與展望 30.參考文獻(xiàn) 311設(shè)計時間2015/6/12015/6/72設(shè)計任務(wù)信息管理系統(tǒng)一學(xué)生成績管理系統(tǒng)掌握ORACLE據(jù)庫的特點,熟悉SQ命令和PL/SQL勺編程特點,運用所學(xué)知識解決現(xiàn) 實問題,完成學(xué)生成績管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計,提高系統(tǒng)性能。在該項目中,不考慮需求分析過程,要求建立以下關(guān)系:院系信息:院系編號、院系名稱、院系主管、地址、院系人數(shù);學(xué)生基本信息:院系編號、學(xué)號、姓名、性別、學(xué)生類型、入學(xué)日期、籍貫、身份證號、詳細(xì)地址、出生日期、所學(xué)專業(yè)、民族、電話 (家)、繳費總計、已修學(xué)分、備注; 課程信息:課程號、課程名稱、開設(shè)年級、學(xué)時數(shù)、學(xué)分;成

4、績單:學(xué)號、課程號、學(xué)期、成績、備注。使用存儲過程統(tǒng)計每個學(xué)生的已修學(xué)分。使用觸發(fā)器實現(xiàn)當(dāng)?shù)怯泴W(xué)生成績(60分以上)時自動統(tǒng)計學(xué)生的已修學(xué)分。使用函數(shù)實現(xiàn)統(tǒng)計各課程的未及格人數(shù),要求輸入?yún)?shù)課程號后,返回各課程的人數(shù) NUM并實現(xiàn)調(diào)用,查數(shù)據(jù)庫系統(tǒng)設(shè)計的未及格人數(shù)。將上實驗中的存儲過程與本實驗中函數(shù)創(chuàng)建包。3設(shè)計內(nèi)容系統(tǒng)設(shè)計系統(tǒng)功能概述系統(tǒng)的功能模塊圖如下:信息查詢模塊信息輸入、修改模塊信息統(tǒng)計模塊圖3-1-1功能模塊圖統(tǒng)計課程未及格人數(shù)院系自2系統(tǒng)功能模塊設(shè)計.信息查詢模塊信息查詢模塊可以查詢院系信息、學(xué)生信息、課程信息以及成績單信息.信息輸入、修改模塊信息輸入、修改模塊以修改院系信息、學(xué)生

5、信息、課程信息。.信息統(tǒng)計模塊用于統(tǒng)計學(xué)生已修學(xué)分、課程人數(shù)及課程未及格人數(shù)。系統(tǒng)業(yè)務(wù)流程圖如下:圖3-1-2業(yè)務(wù)流程圖3.2數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫需求分析系統(tǒng)E-R圖如下:表3-2-1實體及其屬性表實體名稱屬性名稱院系信息院系編號、院系名稱、院系主管、地址、院系人數(shù)學(xué)生信息院系編號、學(xué)號、姓名、性別、學(xué)生類型、入學(xué)日期、籍貫、身份證號、詳細(xì)地址、出生日期、所學(xué)專業(yè)、民族、電話(家)、繳費總計、已修學(xué)分、備注課程信息課程號、課程名稱、開設(shè)年級、學(xué)時數(shù)、學(xué)分選修學(xué)號、課程號、學(xué)期、成績、備注圖3-2-4課程實體屬性圖數(shù)據(jù)流圖如下:圖 3-2-5 E-R 圖學(xué)生信息小一_乙* 查詢學(xué)生信息口查詢課程、院

6、系信息,課程、院系信息:管理如刪除學(xué)生信息+1更新學(xué)生信息4查成績一學(xué)生成績川學(xué)生信息數(shù)據(jù)庫4圖3-2-6 0層數(shù)據(jù)流圖更新課程信息-更新院系信息+添加院系、課程管理口員4管理員一圖3-2-7 1層數(shù)據(jù)流圖院系信息3.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計表3-2-8學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)表名稱表信息表述College院系信息表Student學(xué)生信息表Course課程信息表Score成績單表3-2-9院系信息表college描述字段院系編R (主鍵)Cnovarchar2(10)院系名稱Cnamevarchar2(30)院系主管Managervarchar2(10)地址Addressvarchar2(5

7、0)院系人數(shù)Populationnumber(10)表3-2-10學(xué)生信息表student描述字段學(xué)號(主鍵)Snovarchar2(20)院系編號(外鍵)Cnovarchar2(10)姓名Snamevarchar2(10)性別Sexvarchar2(2)學(xué)生類型Typevarchar2(10)入學(xué)日期in_dateDate柿Jiguanvarchar2(10)身份證號Idvarchar2(20)詳細(xì)地址Addressvarchar2(50)出生日期BirthDate所學(xué)專業(yè)Majorvarchar2(10)民族Nationvarchar2(10)電話(家)Televarchar2(11)繳費

8、總計Paymentnumber(10)已修學(xué)分Creditnumber(5)備注Remarkvarchar2(50)表3-2-11 課程信息表course描述字段課程號(主鍵)Cnovarchar2(10)課程名稱Cnamevarchar2(30)開設(shè)年級Gradevarchar2(5)學(xué)時數(shù)study_timenumber(4)學(xué)分Credit表3-2-12成績單scorenumber(4)描述字段回課程號(聯(lián)合主鍵、外鍵)Cnovarchar2(10)學(xué)號(聯(lián)合主鍵、外鍵)Snovarchar2(10)學(xué)期Termnumber(2)成績Scoresnumber(10)備注Remarkvar

9、char2(50)3.3數(shù)據(jù)庫實現(xiàn)3.3.1創(chuàng)建用戶創(chuàng)建admin用戶并授權(quán)。create user admin identified by adminSQL grant create procedure to admin;授權(quán)成功。SQL grant create trigger to admin;授權(quán)成功。3.3.2創(chuàng)建表和約束.創(chuàng)建院系信息表。create table college(cno varchar2(10) primary key,cname varchar2(10),manager varchar2(10),address varchar2(50),population nu

10、mber(10)7* )SQL /表已創(chuàng)建。.創(chuàng)建學(xué)生信息表create table student(sno varchar2(20) primary key,cno varchar2(10),sname varchar2(10),sex varchar2(2),type varchar2(10),in_date date,jiguan varchar2(10),id varchar2(20),address varchar2(50),birth date,major varchar2(10),nation varchar2(10),tele varchar2(11),payment numb

11、er(10),credit number(5),remark varchar2(50),foreign key (cno) references college(cno)19* )SQL /表已創(chuàng)建。.創(chuàng)建課程信息表create table course(cno varchar2(10) primary key,cname varchar2(30),grade varchar2(5),study_time number(4),credit number(4) not null7* )SQL /表已創(chuàng)建。.創(chuàng)建成績單表create table score(cno varchar2(10),sno

12、 varchar2(10),term number(2),scores number(10),remark varchar2(50),primary key (cno,sno),foreign key (cno) references course(cno),foreign key (sno) references student(sno)10* )SQL /表已創(chuàng)建。3.3.3創(chuàng)建存儲過程、函數(shù)及觸發(fā)器.創(chuàng)建存儲過程Statistic_credit ,用于統(tǒng)計每個學(xué)生的已修學(xué)分。create or replace procedure Statistic_creditiscursor c1is

13、 select * from student ;stu_info student%rowtype;beginopen c1;fetch cl into stu_info;while c1%foundloopdbms_output.put_line(stu_info.sno|stu_info.sname|stu_info.credit);fetch c1 into stu_info;end loop;close c1;15* end;SQL /過程已創(chuàng)建。.創(chuàng)建觸發(fā)器t1 ,實現(xiàn)當(dāng)?shù)怯泴W(xué)生成績(60分以上)時自動統(tǒng)計學(xué)生的已修學(xué)分。create or replace trigger t1afte

14、r insert or update of scores on scorefor each rowbeginif :new.scores=60 thenupdate student set student.credit=student.credit+(select credit from course where o=:o)where student.sno=:new.sno;end if;* end;SQL /觸發(fā)器已創(chuàng)建.創(chuàng)建函數(shù)statistc_num ,使用函數(shù)實現(xiàn)統(tǒng)計各課程的未及格人數(shù),要求輸入?yún)?shù)課 程號后,返回各課程的人數(shù)NUMcreate or replace function

15、 statistc_num(cno in o%type)return numberisnum number:=0;beginselect count(*) into num from scorewhere o=cno and scores /函數(shù)已創(chuàng)建。.創(chuàng)建存儲過程db_num調(diào)用statistc_num函數(shù)來查數(shù)據(jù)庫系統(tǒng)設(shè)計的未及格人 數(shù)。create or replace procedure db_numisnum number(4);v_cno o%type;beginselect cno into v_cno from coursewhere cname=數(shù)據(jù)庫系統(tǒng)設(shè)計;num:=s

16、tatistic_num(v_cno);dbms_output.put_line( 未及格人數(shù):|num);exceptionwhen no_data_found thendbms_output.put_line(沒有這門課程!);13* end;SQL /過程已創(chuàng)建。3.4測試與分析測試現(xiàn)在向college表格中插入數(shù)據(jù)SQL insert into college(cno,cname) values(&c,&n);輸入c的值:1輸入n的值:軟件學(xué)院原值 1: insert into college(cno,cname) values(&c,&n)新值 1: insert into coll

17、ege(cno,cname) values(1,軟件學(xué)院)已創(chuàng)建1行。此時的college表:SQL select * from college;CNO CNAME MANAGER ADDRESSPOPULATIONIM IM i.B tB iMIiMIiH iMiiMi MB Mk Mh * iMi-1軟件學(xué)院圖3-4-1運行截圖現(xiàn)在向college表格中插入數(shù)據(jù)SQLnsertinto student(cno,sno,sname,credit)values( 1,1220010311,0);SQLnsertintostudent(cno,sno,sname,credit)values( 1

18、,1220010315,劉暢,0);SQLnsertintostudent(cno,sno,sname,credit)values( 1,122001031g ,馬明,0);SQLnsertintostudent(cno,sno,sname,credit)values( 1,1120010325,邢少強,0);SQL select FromstudentiSNDCNDSNANESE TYPEIN_DATEJIGUANIDADDRESSBIRTHMAJORNATIONTELEPAYMENTCREDITREMARK12200103191馬明e112G01O3251邢少強o122G0103111胡芳

19、霞e12200103151劉暢o圖3-4-2 運行截圖向course表中添加學(xué)生所需要修的課程信息SQL insert into course(cno,cname,credit) values(1, oracle 數(shù)據(jù)庫管理與應(yīng)用,3);SQL insert into course(cno,cname,credit) values(2,編譯原理,4)SQLnsert into course(cno,cname,credit) values(3,數(shù)據(jù)庫系統(tǒng)設(shè)計,2)SQL insert into course(cno,cname,credit) values(4,日語,4)SQL select

20、、 from course;CNO CNAMEGRADE STUDV TIMECREDIT3 4 12計 段 統(tǒng) 系 庫 據(jù)語 數(shù)日圖3-4-3 運行截圖向成績表中錄入成績1220010311 , 1 ,90);SQL insert into score(sno,cno,scores) values(SQL insert into score(sno,cno,scores) values(1220010319 , 3 ,59);SQL select x from score;CNO $N0TERM SCORES REMARK112200103119031220O1Q31959圖3-4-4 運行

21、截圖插入90分的成績后,自動更新已選修學(xué)分:SQL 3010ct m from student;SNOCN。SHAME SE TYPE IN_DATEJIGUPNIDADDRESSBIRTHMAJOR NATION TELEPAYMENT CREDIT REMARK122QQ1O3191馬明11290103251邢少強012200103111胡芳霞12290103151劉暢圖3-4-5 運行截圖前面有插入一條59的成績:SQL execute db_num;未及格人數(shù):1PL/SQL過程已成功完成,圖3-4-6 運行截圖3.4.2分析在開始的時候,總會遇到這樣或那樣的問題,在做的過程中,慢慢摸

22、索和研究,把其 中的一個個問題逐個解決。為了更好地完成課程設(shè)計,我利用了軟件工程的思想,對系統(tǒng) 進(jìn)行需求分析,系統(tǒng)設(shè)計,數(shù)據(jù)庫設(shè)計等。使程序設(shè)計的過程更加合理化、系統(tǒng)化,同時 也提高了我的編程思想和應(yīng)用能力。對于這一次課程設(shè)計,我們小組分工完成。課程設(shè)計時間我們不是很充裕,這個過程 是艱苦的,但我從這個過程中,學(xué)到了很多的東西,更加鞏固我的 Oracle數(shù)據(jù)庫應(yīng)用方 面的知識。提高了自己動手實踐的能力,把書本的知識轉(zhuǎn)化為實際應(yīng)用中去,豐富了自己 的實踐經(jīng)驗。3.5代碼create table college(cno varchar2(10) primary key,cname varchar2

23、(10),manager varchar2(10),address varchar2(50),population number(10)* )SQL /表已創(chuàng)建。create table student(sno varchar2(20) primary key,cno varchar2(10),sname varchar2(10),sex varchar2(2),type varchar2(10),in_date date,jiguan varchar2(10),id varchar2(20),address varchar2(50),birth date,major varchar2(10)

24、,nation varchar2(10),tele varchar2(11),payment number(10),credit number(5),remark varchar2(50),foreign key (cno) references college(cno)19* )SQL /表已創(chuàng)建。create table course(cno varchar2(10) primary key,cname varchar2(30),grade varchar2(5),study_time number(4),credit number(4) not null* )SQL /表已創(chuàng)建。crea

25、te table score(cno varchar2(10),sno varchar2(10),term number(2),scores number(10),remark varchar2(50),primary key (cno,sno),foreign key (cno) references course(cno),foreign key (sno) references student(sno)10* )SQL /表已創(chuàng)建。SQL conn sys/admin as sysdba;已連接。SQL grant create procedure to admin;授權(quán)成功。SQL g

26、rant create trigger to admin;授權(quán)成功。SQL conn admin/admin;已連接。create or replace procedure Statistic_creditiscursor c1is select * from student ;stu_info student%rowtype;beginopen c1;fetch cl into stu_info;while c1%foundloopdbms_output.put_line(stu_info.sno|stu_info.sname|stu_info.credit);fetch c1 into s

27、tu_info;end loop;close c1;* end;SQL /過程已創(chuàng)建。create or replace trigger t1after insert or update of scores on scorefor each rowbeginif :new.scores=60 thenupdate student set student.credit=student.credit+(select credit from course where o=:o)where student.sno=:new.sno;end if;9* end;SQL /觸發(fā)器已創(chuàng)建SQL conn s

28、ys as sysdba;已連接。SQL grant unlimited tablespace to admin;授權(quán)成功。SQL conn admin/admin;已連接。SQL insert into college(cno,cname) values(&c,&n);輸入c的值:1輸入n的值:軟件學(xué)院原值 1: insert into college(cno,cname) values(&c,&n)新值 1: insert into college(cno,cname) values(1,軟件學(xué)院)已創(chuàng)建1行。SQLinsertintostudent(cno,sno,sname,credi

29、t)values(&cno,&sno,&sname,&credit);輸入cno的值:1輸入 sno 的值:1220010311輸入sname的值:胡芳霞輸入credit 的值:0原 值1: insert into student(cno,sno,sname,credit)values(&cno,&sno,&sname,&credit)新值 1: insert into student(cno,sno,sname,credit) values(1,1220010311,胡芳霞,0)已創(chuàng)建1行。SQLinsertintostudent(cno,sno,sname,credit)values(&c

30、no,&sno,&sname,&credit); 輸入cno的值:1 輸入 sno 的值:1220010315 輸入sname的值:劉暢 輸入credit 的值:0 原 值1: insert into student(cno,sno,sname,credit)values(&cno,&sno,&sname,&credit)新值 1: insert into student(cno,sno,sname,credit) values(1,1220010315, 劉暢,0)已創(chuàng)建1行。SQL insert into course(cno,cname,credit) values(&cno,&cnam

31、e,&credit);輸入cno的值:001輸入cname的值:oracle數(shù)據(jù)庫管理與應(yīng)用輸入credit 的值:3原值 1: insert into course(cno,cname,credit) values(&cno,&cname,&credit) 新值 1: insert into course(cno,cname,credit) values(001,oracle數(shù)據(jù)庫管理與應(yīng)用,3)已創(chuàng)建1行。SQL insert into course(cno,cname,credit) values(&cno,&cname,&credit);輸入cno的值:002輸入cname的值:編譯原

32、理輸入credit 的值:4原值 1: insert into course(cno,cname,credit) values(&cno,&cname,&credit) 新值 1: insert into course(cno,cname,credit) values(002,編譯原理,4)已創(chuàng)建1行。SQL insert into score(sno,cno,scores) values(&sno,&cno,&scores);輸入 sno 的值:1220010311輸入cno的值:001輸入scores 的值:90原值 1: insert into score(sno,cno,scores)

33、 values(&sno,&cno,&scores)新值 1: insert into score(sno,cno,scores) values(1220010311,001,90)已創(chuàng)建1行。SQL set serveroutput on;SQL select sno,credit from student;SNOCREDIT1220010311312200103150SQL execute statistic_credit;1220010311 胡芳霞 31220010315 劉暢 0create or replace function statistc_num(cno in o%type

34、)return numberisnum number:=0;beginselect count(*) into num from scorewhere o=cno and scores /函數(shù)已創(chuàng)建。create or replace procedure db_numisnum number(4);v_cno o%type;beginselect cno into v_cno from coursewhere cname=數(shù)據(jù)庫系統(tǒng)設(shè)計;num:=statistic_num(v_cno);dbms_output.put_line(未及格人數(shù):|num);exceptionwhen no_dat

35、a_found thendbms_output.put_line(沒有這門課程!);* end;SQL /過程已創(chuàng)建。SQL execute db_num;沒有這門課程!SQL ed已寫入 file afiedt.bufcreate or replace package mypackageasprocedure Statistic_credit;function statistic_num(cno in o%type) return number;procedure db_num;6* end mypackage;SQL /程序包已創(chuàng)建。SQLinsertintostudent(sno,sna

36、me,cno,credit)values(&sno,&sname,&cno,&credit);輸入 sno 的值:1220010319輸入sname的值:馬明輸入cno的值:1輸入credit 的值:0原 值1: insert into student(sno,sname,cno,credit)values(&sno,&sname,&cno,&credit)新值 1: insert into student(sno,sname,cno,credit) values(1220010319,馬明,1,0)已創(chuàng)建1行。SQLinsertintostudent(sno,sname,cno,credit

37、)values(&sno,&sname,&cno,&credit);輸入 sno 的值:1120010325輸入sname的值:邢少強輸入cno的值:1輸入credit 的值:0原 值1: insert into student(sno,sname,cno,credit)values(&sno,&sname,&cno,&credit)新值 1: insert into student(sno,sname,cno,credit) values(1120010325,開B少強,1,0)已創(chuàng)建1行。1* insert into course(cno,cname,credit) values(&cno

38、,&cname,&credit)SQL /輸入cno的值:003輸入cname的值:數(shù)據(jù)庫系統(tǒng)設(shè)計輸入credit 的值:2原值 1: insert into course(cno,cname,credit) values(&cno,&cname,&credit)新值 1: insert into course(cno,cname,credit) values(003,數(shù)據(jù)庫系統(tǒng)設(shè)計,2)已創(chuàng)建1行。1* insert into course(cno,cname,credit) values(&cno,&cname,&credit)SQL /輸入cno的值:004輸入cname的值:日語輸入c

39、redit 的值:4原值 1: insert into course(cno,cname,credit) values(&cno,&cname,&credit)新值 1: insert into course(cno,cname,credit) values(004,日語,4)已創(chuàng)建1行。1* insert into score(cno,sno,scores) values(&cno,&sno,&scores)SQL /輸入cno的值:002輸入 sno 的值:1220010319輸入scores 的值:59原值 1: insert into score(cno,sno,scores) val

40、ues(&cno,&sno,&scores)新值 1: insert into score(cno,sno,scores) values(002,1220010319,59)已創(chuàng)建1行。1* insert into score(cno,sno,scores) values(&cno,&sno,&scores)SQL /輸入cno的值:004輸入 sno 的值:1220010315輸入scores 的值:100原值 1: insert into score(cno,sno,scores) values(&cno,&sno,&scores)新值 1: insert into score(cno,sno,scores) values(004,1220010315,100)已創(chuàng)建1行。SQL select sname,credit from student ;SNAME CREDIT TOC o 1-5 h z 胡芳霞3劉暢4馬明0邢少強0SQL execute db_num;未及格人數(shù):1SQL execute statistic_credit;1220010311 胡芳霞 31220010315 劉暢 41220010319 馬明 0112

溫馨提示

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

評論

0/150

提交評論