oracle课程设计111.docx
- 文档编号:6038572
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:14
- 大小:126.42KB
oracle课程设计111.docx
《oracle课程设计111.docx》由会员分享,可在线阅读,更多相关《oracle课程设计111.docx(14页珍藏版)》请在冰豆网上搜索。
oracle课程设计111
2013-2014学年第二学期课程设计
《大型数据库技术》
课题名称:
《学生成绩管理系统》
班级:
12级移动(4)班
学号:
1215115593
姓名:
袁亚飞
指导老师:
杨晶
成绩:
完成日期:
2014/6/13
目录
一.系统需求…………………………………………………3
1.1需求分析………………………………………………3
1.2功能模块图……………………………………………3
1.3数据流程图……………………………………………4
1.4数据字典………………………………………………5
二.数据库设计……………………………………………6
2.1数据库的规划…………………………………………6
2.2表空间的设计…………………………………………6
2.3安全性设置……………………………………………7
2.4表的设计………………………………………………8
2.5创建索引………………………………………………8
三.PL/SQL完成功能模块…………………………………12
3.1查询成绩………………………………………………11
3.2查询学生信息…………………………………………11
3.3查询学生姓名是否相同………………………………11
3.4同班学生个数函数……………………………………11
3.5输入学号输出该名学生的姓名………………………11
三.结束语…………………………………………………13
1.系统需求
该学生成绩管理系统采用pl/sql作为编程语言,oracle作为数据存储。
在完成用户需求同时,完成分页,条件查询等功能。
针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。
它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶
1.1需求分析
系统设计主要包括五个主要功能模块:
(1)基本数据管理:
包括院系管理,专业管理(设置院系下面的专业),班级管理(设置专业下面的班级),课程管理(设置相应专业下面的课程)
(2)学生信息管理:
包括基本信息录入、基本信息修改
(3)学生成绩管理:
包括学生成绩录入、学生成绩修改
(4)信息查询:
包括基本信息查询、成绩信息查询、学校人数统计
(5)系统管理:
用户管理和系统帮助
1.2功能模块图
1.3数据流程图
(1)每位学生可以学习多门课程,每门课程可供多位学生学习。
由上述分析可得到系统的E—R图:
1.4数据字典
数据库表名
关系模式名称
备注
Student
学生
学生表
Course
课程
课程表
Score
成绩
成绩表
Teacher
教师
教师表
学生表:
属性名
存储代码
类型
长度
备注
学号
Sno
char
20
学生学号
姓名
Sname
char
20
学生姓名
性别
Ssex
char
4
学生性别
系别
Sdept
char
40
学生专业
年龄
Age
char
8
学生年龄
班级
Sclass
char
8
学生所在的班级
课程表:
字段名
字段类型
约束控制
说明
字段名
course_cno
char
主键(primarykey)
课程号
course_cno
course_cname
char
notnull
课程名称
course_cname
course_hour
int
notnull
课时
course_hour
course_score
numeric(2,1)
notnull
学分
course_score
字段名
字段类型
约束控制
说明
字段名
教师表:
属性名
存储代码
类型
长度
备注
教师号
Tno
char
20
教师号
姓名
Tname
char
20
教师姓名
性别
Tsex
char
4
教师性别
年龄
Age
char
8
教师年龄
课程名
Cname
char
20
所教课程
成绩表:
属性名
存储代码
类型
长度
备注
学号
Sno
char
20
学生学号
课程名
Cno
char
20
学生所选的课程
成绩
Sgrad
char
8
学生所选的课程所得成绩
课程表:
属性名
存储代码
类型
长度
备注
课程号
Cno
char
20
课程的代号
课程名
Cname
char
40
课程的名称
学时
Hour
char
8
课程的学习时间
1.5逻辑结构设计
Class:
(课程号,课程名,教师号,学分,学时)
学生信息表
Student1:
(学号,姓名,性别,年龄,专业,系别)
成绩表
Score:
(学号号,课程名,成绩)
教师表
Teacher1:
(教师号,教师名,教师性别,教师系别)
2.数据库设计
2.1表空间的规划:
完成了对系统的需求分析之后,接下去就是数据库的设计阶段。
这个阶段包括数据库的规划,表空间的设计,安全性设置,表的设计,索引和存储过程的建立。
可以看做是实现数据库的具体设计和对之前分析结果的细化。
2.2表空间的设计
ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。
一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。
表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
a)新建一个用户表空间MYTBS,要求大小为500M。
MYTBS表空间下有两个数据文件MYTBS1.DBF和MyTBS2.DBF,文件分别放在E和F两个不同的磁盘分区。
.
createtablespaceMYTBS
datafile‘E:
\yuanyafei\MYTBS1.dbf’size250M,
‘E:
\yuanyafei\MYTBS2.dbf’size250M;
b)在Oracle环境下创建一个新帐号,帐号名为本人姓名的拼音首字母,密码为学号。
createuseryyfidentifiedby1215115593
defaulttablespaceMYTBS;
c)创建用户配置文件,要求密码的生存周期为30天,允许输入错误的密码不得超过5次,超过5次密码锁2天。
createprofilelock_countlimit
password_life_time30
failed_login_attempts5
password_lock_time2;
d)为新帐号分配适当的权限、设置默认表空间为MYTBS。
系统所有对象必须建立在该帐号下,所有对象必须存储在MYTBS表空间中。
createuseryyfidentifiedby1215115593
defaulttablespaceMYTBS;
grantconnect,resourcetoyyf;
2.3安全性设置
(1)创建用户
createuserzrridentifiedby1215115593;
(2)修改用户配置文件
alteruserzrrprofilezrr1215115593;
(3)赋予用户权限
grantconnect,resourcetoyyf;
(4)设置用户默认表空间
alteruseryyfdefaulttablespacemytbs;
(5)赋予用户建立索引的权限
grantcreateanyindextoyyf;
2.4基本表实现
2.4.1学生表的实现
(1)表的功能概述。
记录学生的信息
(2)表的实现代码
createtablestudent
(
Snochar(20)primarykey,
Snamechar(20)notnull,
Ssexchar(4)notnull,
Sdeptchar(40)notnull,
Sclasschar(8)notnull
Agechar(4)notnull
)
2.4.2成绩表的实现
(1)表的功能概述。
记录学生成绩信息
(2)表的实现代码
createtablescore
(
Snochar(20)notnull,
Cnochar(40)notnull,
Sgradchar(8)notnull
)
2.4.3课程表的实现
(1)表的功能概述。
记录课程信息
(2)表的实现代码
createtablecourse
(
Cnochar(20)primarykey,
Cnamechar(40)notnull,
Hourchar(8)notnull
)
2.4.4教师表的实现
(1)表的功能概述。
记录教师信息
(2)表的实现代码
createtableteacher
(
Tnochar(20)primarykey,
Tnamechar(20)notnull,
Cnamechar(40)notnull,
Tsexchar(4)notnull,
Agechar(4)notnull
)
2.5索引表的实现
创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是所以的最主要原因。
第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义。
第四,在使用ORDERBY和GROUPBY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。
A.创建索引:
(1)在class表的cno列上创建非聚集索引。
CreateindexclassrnameONclass(cno)
(2)在student1表的sno列上创建非聚集索引。
Createuniqueindexstudent1noONStudent1(sno)
(3)在Student1表的sno列创建一个非聚集索引,要求索引键值按sno升序排列。
Createindexstudent1noONstudent1(snoASC)
B.删除索引:
(1)删除student1表中的student1no索引。
Dropindexstudent1no
3.PL/SQL语句功能模块
3.1查询成绩
(1)功能简介
显示成绩表中的课程号在课程表中并且所任教师性别为男、所在部门是计算机系的成绩表中的列
(2)实现代码
createorreplaceprocedurestudent_11(innameint)
is
ttnovarchar(20);
ttnamevarchar(20);
ttcnamevarchar(20);
ttsexvarchar(20);
ttagevarchar(20);
begin
selecttno,tname,cname,tsex,ageintottno,ttname,ttcname,ttsex,ttage
fromteacherwheretname=inname;
Dbms_output.put_line('tnois'||ttno);
end;
3.2查询学生信息
(1)功能简介
调用存储过程,给出一个学生名,显示出此学生的学号,姓名,所学课程号,课程名称和对应的成绩
(2)实现代码
createorreplaceprocedurestudent_name(nameininvarchar2)
is
v_snovarchar(20);
v_snamevarchar(20);
v_cnovarchar(20);
v_sgradvarchar(20);
cursorname_cursoris
selectscore.snoscoresno,snamestudentname,oscorecno,ameame,score.sgradscoregrade
fromstudent,course,score
wherestudent.sno=score.snoando=oandsname='李忠祥';
begin
forrinname_cursor
loop
dbms_output.put_line(r.sname||'');
endloop;
end;
3.3查询学生姓名是否相同
(1)功能简介
创建一个触发器来检查学生的姓名是否相同,如果相同,输出'insertingfail',并且回滚事务;如果不相同,则插入成功。
(2)实现代码
createtriggerstudentinsert
onstudent
afterinsert
as
if(selectsemailfrominsertedwheresemailin(selectsemailfromstudent))isnotnull
begin
print'insertingfail'
rollbacktransaction
end
else
print'inseringsucceed'
3.4同班学生个数函数
(1)功能简介
创建一个用户自定义函数,输出与指定的学生同班的学生个数
(2)实现代码
createorreplacefunctionstudentcount(noinstudent.sno%type)
returnint
as
numint;
begin
selectcount(*)intonum
fromstudent
wheresclass=(selectsclassfromstudentwheresno=no);
returnnum;
end;
3.5输入学号输出该名学生的姓名函数
(1)功能简介
创建一个用户自定义函数,输入学号,输出该名学生的姓名
(2)实现代码
createorreplacefunctionstudentname(noinstudent.sno%type)
returnstudent.sname%type
as
namestudent.sname%type;
begin
selectsnameintonamefromstudentwheresno=no;
returnname;
end;
4.结束语
进一步深入理解数据库设计的整个过程,该学生选课系统的需求分析、数据库概念结构设计有关内容等。
掌握使用pl/sql和oracle结合设计
C/S结构的管理信息系统。
综合练习了oracle的使用和数据库得管理技术。
综合熟悉并练习了SQL语言在编程中的使用。
综合训练编程能力。
认识系统,取得系统需求分析,更重要得是在编程方面提高了实现目标代码得能力及调试代码得能力
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 课程设计 111