orcle课程设计.docx
- 文档编号:3927038
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:5
- 大小:19.29KB
orcle课程设计.docx
《orcle课程设计.docx》由会员分享,可在线阅读,更多相关《orcle课程设计.docx(5页珍藏版)》请在冰豆网上搜索。
orcle课程设计
orcle课程设计
学号ORACLE应用期末考查报告题目:
高校学生课程成绩据库设计专业软件工程班级姓名成绩教师《oracle应用》课程考试要求考核拟采用大作业报告形式,将学生的学习成果心得体会以文档的形式提交。
请批准。
本次考核要求每个学生完成的内容如下:
⑴选定某一主题,创建一个oracle数据库,对其进行日常管理及应用(全部用SQL语句实现):
创建数据库实例,数据库表空间,创建管理员,普通用户,并分别授予相应权限;
至少建立5个表,以及表间关系,使用到序列,索引,视图,同义词,约束,每个表至少插入相关信息10条记录;
要求使用sqlplus,pl/sql建立存储过程,触发器和程序包等代码,其中要求用到游标,异常,各种语句等对表中数据进行处理,建立报表;
有实力的同学加入界面,连接数据库;
要有操作截图展示,字数要求4000字左右;
⑵对oracle数据库的认识及心得体会,要求字数1000字以上。
【3】以班级体刻盘,每人以自己的名字命名文件夹;
成绩评定方法:
1、平时成绩占30%,大作业及报告占70%。
ORACLE应用期末考查报告11功能需求分析42概要设计43逻辑设计53.163.263.363.473.573.674实现85测试数据105.1105.2115.3125.4136数据库备份147心得体会148参考资料151功能需求分析高校学生课程成绩管理系统主要实现课程开设,教师授课,学生选课管理。
每学期学校可以开设若干门课程,每门课程可以有多个教学班组成,每个老师可以选择若干个教学班进行授课,每个学生只能参加相同课程的一个教学班选课,但可以选择多个不同课程教学班。
高校学生课程成绩管理系统主要功能如下:
(1)教师管理。
主要实现教师信息的管理,包括课程信息添加,修改,删除和查询等任务。
(2)课程管理。
主要实现按教学计划开设课程的管理。
包括课程信息添加,修改,删除和查询等任务。
(3)学生管理。
主要实现在校学生信息管理。
包括学生信息添加,修改,删除和查询等任务。
(4)课程开设管理。
主要实现每学期的教学任务。
每门课程将分成若干个教学班进行教学。
(5)教师选择教学任务管理。
主要实现教师选择教学班,实现教学任务的分配。
(6)学生选课管理。
主要实现学生选择教学班。
达到学生选课目的。
(7)学生成绩管理。
主要实现学生选修课程成绩录入,修改,删除和查询等功能。
(8)统计管理。
按教师,课程,时间统计教师在一个时间所授课程的平均成绩;
按课程时间统计学校在一个时间该课程所有学生的平均成绩。
2概要设计根据高校学生课程成绩管理系统的功能需求分析,设计4个实体对象分别是:
教师,学生,课程和开设课程。
教师对象描述教师的基本信息,包括教师号,姓名,性别和联系电话;
课程对象描述课程的基本信息,包括课程号,课程名,学分,系别;
学生对象描述学生的基本信息,包括学号,姓名,性别,出生年月,系别和联系电话。
实体之间存在3个关系,分别是讲授,开设和选课。
讲授描述教师和开设课程之间的关系,开设描述课程和开设课程的关系,选课描述学生和开设课程之间的关系。
高校学生课程成绩管理系统E-R图如图
(1)。
教师讲授开设可程选课学生姓名性别教师号联系电话时间成绩姓名性别学号系别出生年月联系电话开设课程系别课程名课程号学分1M1Mn图13逻辑设计根据高校学生课程成绩管理系统概要设计。
设计关系模型数据库。
该系统设计4个实体对象表,1个关系表和2个视图,分别是teacher教师表,student学生表,course课程表,KC开设课程表,SC学科表,avg_v视图和cou_v视图。
3.1teacher教师表包含4个字段。
教师号为主键,性别字段只能为“男”或“女”。
如下表teacher教师表所示.teacher教师表字段名属性类型约束sname姓名Char(20)Notnullsex性别Char
(2)Check(sexin(n男女))tno教师号Char(12)Primarykeytphone联系电话Char(20)Notnull3.2student学生表包含6个字段。
学生对象学号作为主键,性别字段只能为“男”或“女”。
如下表student学生表所示.student学生表字段名属性类型约束sname姓名Char(20)Notnullsex性别Char
(2)Check(sexin(n男女))sno学号Char(12)Primarykeysdept系别Char(12)sphone联系电话Char(11)brithday出生年月Date3.3course课程表包含4个字段。
课程对象用课程号作为主键,且课程名唯一。
如下表course课程表所示。
course课程表字段名属性类型约束cno课程号Number(6)Primarykeycname课程名Char(20)uniquecredit学分Number(2,1)sdept系别Char(12)3.4KC开设课程表包含3个字段。
KC开设课程表用shijian,tno和cno作为主键。
如下表KC开设课程表所示。
KC开设课程表字段名属性类型约束shijian时间char(20)tno教师号foreignkey,referenceteacher(tno)cno课程号foreignkey,referencecourse(cno)3.5SC选课表包含5个字段。
SC开设课程表用sno,tno,cno和shijian作为表的主键。
如下表SC选课表所示。
SC选课表字段名属性类型约束grade成绩number
(2)notnullsno学号foreignkey,referencestudent(cno)tno教师号foreignkey,referenceKC(tno,cnoshijian)cno课程号shijian时间3.6为了实现高校学生课程成绩管理系统的统计管理功能,设计avg_v视图和cou_v视图。
Avg_v视图包含教师名,课程名,时间和平均成绩4个字段,通过查询teacher教师表,course课程表和SC选课,在教师号和课程号字段上等值链接,并且按照教师名,课程名和时间分组,实现教师所授课程的平均成绩。
Cou_v视图包含时间,课程和平均成绩3个字段,通过查询course课程表和SC选课表,在课程号字段上等值链接,并且按照时间和课程名分组,实现统计学习在某个时间课程的平均成绩。
在SC选课表上创建索引,索引建立在SC选课表的学号,课程号,教师号和时间字段上。
课程号和教师号按升序排列,学号和时间按降序排列。
4实现--创建表空间testCREATExxxxACEtestxxxxE‘c:
\app\john\oradata\orcl\test01.dbf’SIZE10M;--创建用户managerCREATEUSERmanagerxxxxIEDBYabc123xxxxxxxxACEtestQUOTA5MONtest;--授权系统权限GRANTCREATExxxx,CREATETABLETOmanager;--用manager账号登陆xxxxmanager/abc123--创建teacher教师表CREATETABLEteacher(tnameCHAR(20)NOTNULL,sexCHAR
(2)CHECK(sexin(‘男’,’女’)),tnoCHAR(12)xxxxKEY,tphoneCHAR(20)NOTNULL);--创建course课程表CREATETABLEcourse(cnameCHAR(20)UNIQUE,cnoNUMBER(6)xxxxKEY,creditNUMBER(2,1)sdeptCHAR(12));--创建student学生表CREATETABLEstudent(snameCHAR(20)NOTNULL,sexCHAR
(2)CHECK(sexin(‘男’,’女’)),snoCHAR(12)xxxxKEY,sdeptCHAR(12),sphoneCHAR(11),birthdayDATA));--创建KC开设课程表CREATETABLEKC(tnoCHAR(12)xxxxCESteacher(tno)ONDELETExxxx,cnoNUMBER
(2)xxxxCEScourse(cno)ONDELETExxxx,shijianCHAR(20)xxxxKEY(shijian,tno,cno));--创建SC表CREATETABLESC(snoNUMBER(12)xxxxCESstudent(sno)ONDELETExxxx,cnoNUMBER(6),tnoCHAR(12),shijianCHAR(20),gradeNUMBER
(2)NOTNULL,xxxxKEY(shijian,tno,cno)xxxxCESKC(shijian,tno,cno)ONDELETExxxx,xxxxKEY(shijian,tno,cno,sno));--创建视图avg_vCREATEVIEWavg_v(tname,cname,shijian,Gavg)ASSELECTtname,cname,shijian,avg(grade)FROMteachera,courseb,SCcWHEREa.tno=c.tnoANDo=oGROUPBY(tname,cname,shijian);--创建视图cou_vCREATEVIEWcou_v(shijian,cname,Gavg)ASSELECTshijian,cname,avg(grade)FROMcoursea,SCbWHEREo=oGROUPBY(shijian,cname);--创建索引CREATEUNIQUEINDEXSCnoonSC(snoDESC,tnoASC,cnoASC,shijianDESC);--用户登录的存储过程createorreplaceproceduredenglu(flagoutnumber,usernamevarchar2,upwdnumber)---登录asivarchar2(20);pnumber;beginflag:
=0;selectt.enameintoifromscott.yonghutwheret.ename=username;ifiisnotnullthenflag:
=1;selectt.enointopfromscott.yonghutwheret.ename=usernameandt.eno=upwd;ifupwdisnotnullthenflag:
=2;----登录成功elseflag:
=1;-----密码不正确endif;elseflag:
=0;------用户不存在endif;commit;exceptionwhenno_data_foundthenrollback;end;5测试数据5.1teacher教师表测试数据如下:
tnamesextnotphone教师一男xxxxxxxx教师二男xxxxxxxx教师三女xxxxxxxx教师四男xxxxxxxx教师五男xxxxxxxx代码如下:
INSERTINTOteacher(tname,sex,tno,tphone)VALUES(‘教师一’,’男’,’xxxx’,’xxxx’);INSERTINTOteacher(tname,sex,tno,tphone)VALUES(‘教师二’,’男’,’xxxx’,’xxxx’);INSERTINTOteacher(tname,sex,tno,tphone)VALUES(‘教师三’,’女’,’xxxx’,’xxxx’);INSERTINTOteacher(tname,sex,tno,tphone)VALUES(‘教师四’,’男’,’xxxx’,’xxxx’);INSERTINTOteacher(tname,sex,tno,tphone)VALUES(‘教师五’,’男’,’xxxx’,’xxxx’);5.2student表测试数据如下:
snamesexsnosdeptsphonebirthday学生一男xxxx计算机xxxx1989-07-15学生二男xxxx网络工程xxxx1990-04-09学生三男xxxx电子信息xxxx1988-10-12学生四男xxxx自动化xxxx1990-07-27学生五男xxxx数学xxxx1990-08-24学生六男xxxx计算机xxxx1988-08-25代码如下:
INSERTINTOstudent(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生一’,’男’,’xxxx’,’计算机’,’xxxx’,to_data(’1989-07-15’,’yyyy-mm-dd’));INSERTINTOstudent(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生二’,’男’,’xxxx’,’网络工程’,’xxxx’,to_data(’1990-04-09’,’yyyy-mm-dd’));INSERTINTOstudent(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生三’,’男’,’xxxx’,’电子信息’,’xxxx’,to_data(’1988-10-12’,’yyyy-mm-dd’));INSERTINTOstudent(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生四’,’男’,’xxxx’,’自动化’,’xxxx’,to_data(’1990-07-27’,’yyyy-mm-dd’));INSERTINTOstudent(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生五’,’男’,’xxxx’,’计算机’,’xxxx’,to_data(’1988-08-25’,’yyyy-mm-dd’));INSERTINTOstudent(sname,sex,sno,sdept,sphone,birthday)VALUES(‘学生一’,’男’,’xxxx’,’计算机’,’xxxx’,to_data(’1989-07-15’,’yyyy-mm-dd’));5.3KC开设课程表数据如下:
tnocnotimexxxxxxxx2011-2012第二学期xxxxxxxx2011-2013第一学期xxxxxxxx2011-2012第二学期xxxxxxxx2011-2013第一学期xxxxxxxx2011-2012第二学期xxxxxxxx2011-2013第一学期xxxxxxxx2012-2013第一学期xxxxxxxx2010-2011第一学期xxxxxxxx2010-2011第一学期xxxxxxxx2011-2012第二学期代码如下:
INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2011-2012第二学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2011-2013第一学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2011-2012第二学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2011-2012第一学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2011-2012第二学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2011-2012第一学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2012-2013第一学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2010-2011第一学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2010-2011第一学期’);INSERTINTOKC(tno,cno,shijian)VALUES(‘xxxx’,’xxxx’,’2011-2012第二学期’);5.4SC选课表中的数据如下:
snocnotnotimegradexxxxxxxxxxxx2012-2013第一学期96xxxxxxxxxxxx2011-2012第二学期98xxxxxxxxxxxx2010-2011第一学期99xxxxxxxxxxxx2012-2013第一学期85xxxxxxxxxxxx2011-2012第二学期92xxxxxxxxxxxx2011-2012第二学期75xxxxxxxxxxxx2012-2013第一学期88xxxxxxxxxxxx2012-2013第一学期82xxxxxxxxxxxx2012-2013第一学期80xxxxxxxxxxxx2012-2013第一学期94xxxxxxxxxxxx2011-2012第二学期68xxxxxxxxxxxx2012-2013第一学期77xxxxxxxxxxxx2011-2012第二学期87xxxxxxxxxxxx2010-2011第一学期89代码如下:
INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2012-2013第一学期’,’96’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2011-2012第二学期’,’98’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2010-2011第一学期’,’95’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2012-2013第一学期’,’85’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2011-2012第二学期’,’92’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2011-2012第二学期’,’75’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2012-2013第一学期’,’88’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2012-2013第一学期’,’82’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2012-2013第一学期’,’80’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2012-2013第一学期’,’94’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2011-2012第二学期’,’68’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2012-2013第一学期’,’77’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2011-2012第二学期’,’87’);INSERTINTOSC(sno,cno,tno,shijian,grade)VALUES(‘xxxx’,’xxxx’,’xxxx’,’2010-2011第一学期’,’89’);6数据库备份altertablespacetestbeginbackup;hostcopyc:
\app\john\oraddta\orcl\test01.dbfc:
\users\john\documents\test01.dbfaltertablespacetestendbackup;7心得体会经过一个星期的设计和开发,对高校学生课程成绩管理系统基本开发完毕。
通过不断地对程序及各模块进行修改、编译、调试、运行。
以及应用了Oracle11g语言,对数据库的创建、修改、删除,我深刻意识到设计的系统必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。
才能做好符合市场需求的系统。
很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。
但是不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有你以前觉得的那样。
通过这次大作业真切地体会到作业的目的并仅仅是自己单纯任务的完成,而在于重新巩固已学过的知识,从而获得新的知识。
设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。
创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。
设计,是一个任重道远的过程,需要我么不断的学习和创新。
整个过程中,从需求分析到设计、编码、测试,我都力求规范化和文档化,努力让自己以前学的知识运用到本系统的开发中,尽量保证整个系统的开发进度和质量,顺利完成这次的课程设计。
不过,在系统开发过程中,好多知识都是随学随用,就增加了很多不必要的麻烦。
虽说这些都会消耗系统开发的时间,但在同学以及自己的不断努力下,不怕麻烦,不怕重复,当克服了这些问题之后,我会感觉到自己的知识在一点一滴地积累,不知不觉中增加。
我相信,只要肯钻研,只要挤时间,一切自己想要的知识都可以掌握。
通过本次课程设计,我对高校学生课程成绩管理系统经典问题有了进一步的了解,尤其是在设计数据库方面有了新的认识。
在这次课程设计中,由于没有掌握好进程同步中的一些关键知识,导致在实际操作中遇到了很多问题,比如说对对数据表的第三范式规划。
此次课程设计使我明白,在程序设计中,我们需要有一个清晰的整体结构,然后针对每个模块逐步实现其功能,在设计中也需要有严谨和认真的态度,才会更好的完成一项任务。
8参考资料[1]尹志宇、郭晴,数据库原理与应用教程—sqlserver,北京:
清华大学出版社,2011.07[2]黄维通、王晓英,SQLServer数据库技术与应用,北京:
清华大学出版社,2011.01[3]庞娅娟、房大伟SQLServer应用与开发范例宝典(第二版),北京:
人民邮电出版社,2009.10[4]王小科、王军、赵会东,C#项目开发案例全程实录(第二版),北京:
清华大学出版社,2011.01[5]孙士保、张瑾,ASP.NET数据库网站设计教程(C#版)北京:
电子工业出版社,2011.02
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- orcle 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)