oracle课程设计实验

  • 格式:doc
  • 大小:166.00 KB
  • 文档页数:16

武汉理工大学华夏学院ORACLE应用期末考查报告题目:高校学生课程成绩据库设计专业软件工程班级1111姓名成绩教师《oracle应用》课程考试要求考核拟采用大作业报告形式,将学生的学习成果心得体会以文档的形式提交。

请批准。

本次考核要求每个学生完成的内容如下:⑴选定某一主题,创建一个oracle数据库,对其进行日常管理及应用(全部用SQL语句实现):创建数据库实例,数据库表空间,创建管理员,普通用户,并分别授予相应权限;至少建立5个表,以及表间关系,使用到序列,索引,视图,同义词,约束,每个表至少插入相关信息10条记录;要求使用sqlplus,pl/sql建立存储过程,触发器和程序包等代码,其中要求用到游标,异常,各种语句等对表中数据进行处理,建立报表;有实力的同学加入界面,连接数据库;要有操作截图展示,字数要求4000字左右;⑵对 oracle数据库的认识及心得体会,要求字数1000字以上。

【3】以班级体刻盘,每人以自己的名字命名文件夹;成绩评定方法:1、平时成绩占30%,大作业及报告占70%。

ORACLE应用期末考查报告 (1)1 功能需求分析 (4)2概要设计 (4)3逻辑设计 (5)3.1 (6)3.2 (6)3.3 (6)3.4 (7)3.5 (7)3.6 (7)4实现 (8)5测试数据 (10)5.1 (10)5.2 (11)5.3 (12)5.4 (13)6数据库备份 (14)7心得体会 (14)8参考资料 (15)1 功能需求分析高校学生课程成绩管理系统主要实现课程开设,教师授课,学生选课管理。

每学期学校可以开设若干门课程,每门课程可以有多个教学班组成,每个老师可以选择若干个教学班进行授课,每个学生只能参加相同课程的一个教学班选课,但可以选择多个不同课程教学班。

高校学生课程成绩管理系统主要功能如下:(1)教师管理。

主要实现教师信息的管理,包括课程信息添加,修改,删除和查询等任务。

(2)课程管理。

主要实现按教学计划开设课程的管理。

包括课程信息添加,修改,删除和查询等任务。

(3)学生管理。

主要实现在校学生信息管理。

包括学生信息添加,修改,删除和查询等任务。

(4)课程开设管理。

主要实现每学期的教学任务。

每门课程将分成若干个教学班进行教学。

(5)教师选择教学任务管理。

主要实现教师选择教学班,实现教学任务的分配。

(6)学生选课管理。

主要实现学生选择教学班。

达到学生选课目的。

(7)学生成绩管理。

主要实现学生选修课程成绩录入,修改,删除和查询等功能。

(8)统计管理。

按教师,课程,时间统计教师在一个时间所授课程的平均成绩;按课程时间统计学校在一个时间该课程所有学生的平均成绩。

2概要设计根据高校学生课程成绩管理系统的功能需求分析,设计4个实体对象分别是:教师,学生,课程和开设课程。

教师对象描述教师的基本信息,包括教师号,姓名,性别和联系电话;课程对象描述课程的基本信息,包括课程号,课程名,学分,系别;学生对象描述学生的基本信息,包括学号,姓名,性别,出生年月,系别和联系电话。

实体之间存在3个关系,分别是讲授,开设和选课。

讲授描述教师和开设课程之间的关系,开设描述课程和开设课程的关系,选课描述学生和开设课程之间的关系。

高校学生课程成绩管理系统E-R图如图(1)。

图13逻辑设计根据高校学生课程成绩管理系统概要设计。

设计关系模型数据库。

该系统设计4个实体对象表,1个关系表和2个视图,分别是teacher教师表,student学生表,course课程表,KC开设课程表,SC学科表,avg_v视图和cou_v视图。

3.1 teacher教师表包含4个字段。

教师号为主键,性别字段只能为“男”或“女”。

如下表teacher教师表所示.teacher教师表3.2 student学生表包含6个字段。

学生对象学号作为主键,性别字段只能为“男”或“女”。

如下表student学生表所示.student学生表3.3 course课程表包含4个字段。

课程对象用课程号作为主键,且课程名唯一。

如下表course课程表所示。

course课程表3.4 KC开设课程表包含3个字段。

KC开设课程表用shijian,tno和cno 作为主键。

如下表KC开设课程表所示。

KC开设课程表3.5 SC选课表包含5个字段。

SC开设课程表用sno,tno,cno和shijian 作为表的主键。

如下表SC选课表所示。

SC选课表3.6为了实现高校学生课程成绩管理系统的统计管理功能,设计avg_v视图和cou_v视图。

Avg_v视图包含教师名,课程名,时间和平均成绩4个字段,通过查询teacher教师表,course课程表和SC选课,在教师号和课程号字段上等值链接,并且按照教师名,课程名和时间分组,实现教师所授课程的平均成绩。

Cou_v视图包含时间,课程和平均成绩3个字段,通过查询course课程表和SC选课表,在课程号字段上等值链接,并且按照时间和课程名分组,实现统计学习在某个时间课程的平均成绩。

在SC选课表上创建索引,索引建立在SC选课表的学号,课程号,教师号和时间字段上。

课程号和教师号按升序排列,学号和时间按降序排列。

4实现--创建表空间testCREATE TABLESPACE test DATAFILE‘c:\app\john\oradata\orcl\test01.dbf’ SIZE 10M;--创建用户managerCREATE USER manager IDENTIFIED BY abc123DEFAULT TABLESPACE testQUOTA 5M ON test;--授权系统权限GRANT CREATE SESSION,CREATE TABLE TO manager;--用manager账号登陆CONNECT manager/abc123--创建teacher教师表CREATE TABLE teacher(tname CHAR(20) NOT NULL,sex CHAR(2) CHECK(sex in (‘男’,’女’)),tno CHAR(12) PRIMARY KEY,tphone CHAR(20) NOT NULL);--创建course课程表CREATE TABLE course (cname CHAR(20) UNIQUE,cno NUMBER(6) PRIMARY KEY,credit NUMBER(2,1)sdept CHAR(12));--创建student学生表CREATE TABLE student (sname CHAR(20) NOT NULL,sex CHAR(2) CHECK(sex in (‘男’,’女’)),sno CHAR(12) PRIMARY KEY,sdept CHAR(12),sphone CHAR(11),birthday DATA));--创建KC开设课程表CREATE TABLE KC (tno CHAR(12) REFERENCES teacher(tno) ON DELETE CASCADE,cno NUMBER(2) REFERENCES course(cno) ON DELETE CASCADE,shijian CHAR(20)PRIMARY KEY(shijian, tno, cno));--创建SC表CREATE TABLE SC (sno NUMBER(12) REFERENCES student(sno) ON DELETE CASCADE,cno NUMBER(6),tno CHAR(12),shijian CHAR(20),grade NUMBER(2) NOT NULL,FOREIGN KEY(shijian, tno, cno) REFERENCES KC(shijian, tno, cno) ON DELETE CASCADE,PRIMARY KEY(shijian, tno, cno,sno));--创建视图avg_vCREATE VIEW avg_v(tname,cname,shijian,Gavg)AS SELECT tname,cname,shijian,avg(grade)FROM teacher a,course b,SC cWHERE a.tno=c.tno AND o=oGROUP BY (tname,cname,shijian);--创建视图cou_vCREATE VIEW cou_v (shijian,cname,Gavg)AS SELECT shijian, cname,avg(grade)FROM course a,SC bWHERE o= oGROUP BY (shijian, cname);--创建索引CREATE UNIQUE INDEX SCno on SC(sno DESC,tno ASC,cno ASC,shijian DESC);--用户登录的存储过程create or replace procedure denglu(flag out number,username varchar2,upwd number)---登录asi varchar2(20);p number;beginflag:=0;select t.ename into i from scott.yonghu t where t.ename=username;if i is not null thenflag:=1;select t.eno into p from scott.yonghu t where t.ename=username and t.eno=upwd;if upwd is not null thenflag := 2;----登录成功elseflag := 1;-----密码不正确end if;elseflag := 0;------用户不存在end if;commit;exception when no_data_found thenrollback;end;5测试数据5.1 teacher教师表测试数据如下:代码如下:INSERT INTO teacher(tname,sex,tno,tphone)VALUES(‘教师一’,’男’,’ 2012112601’,’1310000001’);INSERT INTO teacher(tname,sex,tno,tphone)VALUES(‘教师二’,’男’,’ 2012112602’,’1310000002’);INSERT INTO teacher(tname,sex,tno,tphone)VALUES(‘教师三’,’女’,’ 2012112603’,’1310000003’);INSERT INTO teacher(tname,sex,tno,tphone)VALUES(‘教师四’,’男’,’ 2012112604’,’1310000004’);INSERT INTO teacher(tname,sex,tno,tphone)VALUES(‘教师五’,’男’,’ 2012112605’,’1310000005’);5.2 student表测试数据如下:代码如下:INSERT INTO student(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生一’,’男’,’ 200901010121’,’计算机’,’151000001’, to_data(’1989-07-15’,’yyyy-mm-dd’));INSERT INTO student(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生二’,’男’,’ 200901010148’,’网络工程’,’151000001’,to_data(’1990-04-09’,’yyyy-mm-dd’));INSERT INTO student(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生三’,’男’,’ 200901010114’,’电子信息’,’151000003’, to_data(’1988-10-12’,’yyyy-mm-dd’));INSERT INTO student(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生四’,’男’,’ 200901010141’,’自动化’,’151000004’, to_data(’1990-07-27’,’yyyy-mm-dd’));INSERT INTO student(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生五’,’男’,’ 200901010144’,’计算机’,’151000006’, to_data(’1988-08-25’, ’yyyy-mm-dd’));INSERT INTO student(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生一’,’男’,’ 200901010144’,’计算机’,’151000001’, to_data(’1989-07-15’, ’yyyy-mm-dd’));5.3 KC开设课程表数据如下:INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112601’,’ 112601’,’ 2011-2012第二学期’); INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112601’,’ 112601’,’ 2011-2013第一学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112602’,’ 112602’,’ 2011-2012第二学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112602’,’ 112602’,’ 2011-2012第一学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112603’,’ 112603’,’ 2011-2012第二学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112603’,’ 112603’,’ 2011-2012第一学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112604’,’ 112604’,’ 2012-2013第一学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112604’,’ 112604’,’ 2010-2011第一学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112605’,’ 112605’,’ 2010-2011第一学期’);INSERT INTO KC(tno,cno,shijian)VALUES(‘2012112605’,’ 112605’,’ 2011-2012第二学期’);5.4 SC选课表中的数据如下:代码如下:INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010121’,’ 112601’,’ 2012112601’,’ 2012-2013第一学期’,’ 96’); INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010121’,’ 112602’,’ 2012112602’,’ 2011-2012第二学期’,’ 98’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010121’,’ 112605’,’ 2012112605’,’ 2010-2011第一学期’,’95’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010148’,’ 112601’,’ 2012112601’,’ 2012-2013第一学期’,’85’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010148’,’ 112605’,’ 2012112605’,’ 2011-2012第二学期’,’ 92’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010114’,’ 112602’,’ 2012112602’,’ 2011-2012第二学期’,’75’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010114’,’ 112603’,’ 2012112603’,’ 2012-2013第一学期’,’ 88’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010141’,’ 112603’,’ 2012112603’,’ 2012-2013第一学期’,’ 82’); INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010141’,’ 112604’,’ 2012112604’,’ 2012-2013第一学期’,’80’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010125’,’ 112604’,’ 2012112604’,’ 2012-2013第一学期’,’ 94’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010125’,’ 112601’,’ 2012112601’,’ 2011-2012第二学期’,’ 68’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010144’,’ 112601’,’ 2012112601’,’ 2012-2013第一学期’,’ 77’);INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010144’,’ 112602’,’ 2012112602’,’ 2011-2012第二学期’,’ 87’); INSERT INTO SC(sno,cno,tno,shijian,grade)VALUES(‘200901010144’,’ 112605’,’ 2012112605’,’ 2010-2011第一学期’,’ 89’);6数据库备份alter tablespace test begin backup;host copyc:\app\john\oraddta\orcl\test01.dbfc:\users\john\documents\test01.dbfalter tablespace test end backup;7心得体会经过一个星期的设计和开发,对高校学生课程成绩管理系统基本开发完毕。