完整word版Oracle11g学生成绩管理系统.docx
- 文档编号:18484049
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:26
- 大小:170.83KB
完整word版Oracle11g学生成绩管理系统.docx
《完整word版Oracle11g学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《完整word版Oracle11g学生成绩管理系统.docx(26页珍藏版)》请在冰点文库上搜索。
完整word版Oracle11g学生成绩管理系统
Oracle数据库应用开发综合设计实验
系统名称:
学生成绩管理系统
专业:
计算机科学与技术
姓名:
沈倩竹
班级:
14计算机2班
学号:
1430110311
指导教师:
王岩
成绩:
完成日期:
2016年6月17日
1系统分析
1。
1需求分析
学生成绩管理系统是高校不可缺少的一部分,对于学校教师而言,他们应该能够对系统的不同部分有各自不同的权限,对于学生而言,学生可以查询自己的成绩,对于管理员而言,系统应实现查询,记录学生成绩,对成绩进行各种操作的权限。
本系统提供了学生成绩管理,课程信息管理,学生基本信息管理,教师基本信息管理,班级信息管理,以及系统的管理等功能.要求系统具备以下特点:
(1)操作简单、易用.
(2)数据存储可靠,具备较高的处理效率。
(3)系统安全、稳定。
(4)开发技术先进、功能完善、扩展性强。
1。
2功能分析
系统功能描述。
系统功能模块图如图1.1所示。
图1。
1系统功能模块图
1。
2。
1成绩管理模块
本模块实现有关成绩基本信息的录入、修改、查询与删除.同时能够实现按照课程代码或者学生学号进行查询并且当登陆身份为学生时,只能查询自己的成绩,当身份为教师时,可以录入学生成绩和查询成绩的功能,但是不可以修改和删除学生成绩。
1.2.2课程管理模块
对各专业课程信息进行添加、删除、修改同时能够实现按照课程编号、课程名称进行查询.并且当登陆用户身份为学生或者任课教师时,只能进行查询课程信息操作。
1。
2。
3班级管理模块
对班级信息进行添加、删除和修改,并且当登陆用户身份是学生或这任课教师时,只能进行查询班级信息的操作。
1.2。
4学生管理模块
有关学生基本信息的录入、修改查询和删除。
同时能够实现按照学生的学号、姓名等条件进行查询,并且登陆用户身份是学生或者任课教师时只能进行学生信息查询。
1。
2。
5专业管理模块
有关专业基本信息的录入、修改查询和删除。
同时能够实现按照专业代码或专业名称进行查询,并且登陆身份是学生或者任课教师时,只能进行查询操作。
1.2。
6教师管理模块
有关教师基本信息的录入、修改查询和删除。
同时能够实现按照教师号、姓名等信息进行查询,并且登陆用户为学生时不能对此模块进行任何操作。
1。
2。
7系统管理模块
有系统管理员身份的用户可以登陆,负责用户管理。
对用户进行添加修改、查询和删除功能。
2数据库设计
2.1概念结构设计
列出系统E-R图,包括局部E—R图和总E-R图。
系统E-R图如图2。
1所示:
图2.1学生成绩管理系统E-R图
学生基本信息实体图如图2。
2所示:
图2。
2学生基本信息实体图
教师基本信息实体图如图2.3所示:
图2.3教师基本信息实体图
课程基本信息实体图如图2.4所示:
图2.4课程基本信息实体图
专业信息实体图如图2。
5所示:
图2.5专业信息实体图
班级信息实体图如图2.6所示:
图2.6班级信息实体图
用户类别信息实体图如图2.7所示:
图2.7用户类别信息实体图
用户信息实体图如图2。
8所示:
图2。
8用户信息实体图
成绩信息实体图如图2。
9所示:
图2.9成绩信息实体图
2。
2逻辑结构设计
阐述什么是逻辑结构,需要做哪些工作。
1、学生实体集可以转换为关系:
Student(sno,sname,sex,classid,majorid),sno表示学生学号,sname表示学生姓名,sname表示学生性别,classid表示班级号,majid表示专业号。
2、教师实体集可以转换为关系:
Teacher(tno,tname,sex,majid),tno表示教师编号,tname表示教师姓名,sex表示教师性别,majid表示教师所在专业。
3、专业实体集可以转换为关系:
Major(majid,majname),majid表示专业号,majname表示专业名。
4、班级实体集可以转换为关系:
Class(classid,classname,majid),classid表示班级编号,classname表示班级名,majid表示班级所在专业。
5、课程实体集可以转换为关系:
Course(cno,cname,credit),cno表示课程编号,cname表示课程名,credit表示课程的学分。
6、成绩实体集可以转换为关系:
Grade(sno,sname,cno,cname,grade,credit,tno),sno表示学生学号,sname表示学生姓名,cno表示课程编号,cname表示课程名称,grade表示分数,credit表示学分,tno表示授课教师编号。
7、用户实体集可以转换为关系:
Users(userid,uname,pwd,typeid),userid表示登陆账号,uname表示用户名,pwd表示密码,typeid表示用户类别编号.
8、用户类别实体集可以转换为关系:
Usertype(typeid,typename),typeid表示类别号,typename表示类别名称。
2.3物理结构设计
在数据库中创建名为studentspace的表空间,然后在表空间中根据关系模式创建表,其中表结构如下:
学生信息表,如表2.1所示。
表2。
1学生信息表(Student)
字段名
数据类型
长度
是否为空
名称
Sno
NUMBER
10
否
学号
Sname
VARCHAR2
4
否
学生姓名
Sex
CHAR
2
否
性别
Classid
NUMBER
10
否
班级号
Majorid
NUMBER
10
否
专业号
教师信息表,如表2.2所示。
表2。
2教师信息表(Teacher)
字段名
数据类型
长度
是否为空
名称
Tno
NUMBER
10
否
教师编号
Tname
VARCHAR2
4
否
教师姓名
Sex
CHAR
2
否
性别
Majorid
NUMBER
10
否
专业号
专业信息表,如表2.3所示。
表2.3专业信息表(Major)
字段名
数据类型
长度
是否为空
名称
Majorid
NUMBER
10
否
专业号
Majorname
VARCHAR2
20
否
专业名
班级信息表,如表2.4所示。
表2。
4班级信息表(Class)
字段名
数据类型
长度
是否为空
名称
Classid
NUMBER
10
否
班级号
Classname
VARCHAR2
10
否
班级名
Majorid
NUMBER
10
否
所在专业
课程信息表,如表2.5所示.
表2.5课程信息表(Course)
字段名
数据类型
长度
是否为空
名称
Cno
NUMBER
10
否
课程编号
Cname
VARCHAR2
10
否
课程名称
Credit
NUMBER
10
否
学分
成绩信息表,如表2。
6所示。
表2。
6成绩信息表(Grade)
字段名
数据类型
长度
是否为空
名称
Sno
NUMBER
10
否
学号
Sname
VARCHAR2
10
否
学生姓名
Cno
NUMBER
10
否
课程编号
Cname
VARCHAR2
20
否
课程名称
Grade
NUMBER
3
否
成绩
Credit
NUMBER
3
否
学分
用户信息表,如表2.7所示.
表2。
7用户信息表(Users)
字段名
数据类型
长度
是否为空
名称
Userid
VARCHAR2
10
否
登陆账号
Uname
VARCHAR2
10
否
用户名
Pwd
VARCHAR2
20
否
密码
Typeid
NUMBER
10
否
用户类别
用户类别信息表,如表2.8所示。
表2.8用户类别信息表(Type)
字段名
数据类型
长度
是否为空
名称
Typeid
NUMBER
10
否
类别编号
Typename
VARCHAR2
10
否
类别名称
3表空间管理
3。
1表空间分析与设计
通过需求分析,首先为学生成绩管理系统创建永久表空间studentspace,存储学生成绩管理系统的数据信息.
其次为学生成绩管理系统创建临时表空间studenttemp,存储学生成绩管理系统中排序或汇总过程中产生的临时数据。
最后为学生成绩管理系统创建撤销表空间studentundo,存储学生成绩管理系统中修改前的数据,如果用户需要对数据进行恢复,就会使用到撤销表空间中存储的撤销数据。
3.2创建表空间
3.2.1永久表空间的创建
SQL>createtablespacestudentspace
2datafile'E:
\xuexi\oracle\shiyan\studentspace.dbf’
3size50m
4autoextendon
5next5m
6maxsize100m;
3.2.2临时表空间的创建
SQL>createtemporarytablespacestudenttemp
2tempfile'E:
\xuexi\oracle\shiyan\studenttemp.dbf’
3size10m
4autoextendon
5next2m
6maxsize20m;
3。
2.3撤销表空间的创建
SQL>createundotablespacestudentundo
2datafile’E:
\xuexi\oracle\shiyan\studentundo.dbf’
3size50m
4autoextendon
5next5m
6maxsize100m;
3.3修改表空间
3.3.1通过数据字典dba_data_file查看studentspace表空间的数据文件信息
SQL〉selecttablespace_name,file_name,bytes
2fromdba_data_files
3wheretablespace_name='STUDENTSPACE';
TABLESPACE_NAME
—-—--—-———-——-—————---—--—---—
FILE_NAME
—-—-—-—-——--——----——---—-—---—-——--—--——-———---———
BYTES
-——-----—-
STUDENTSPACE
E:
\XUEXI\ORACLE\SHIYAN\STUDENTSPACE。
DBF
52428800
3.3.2修改studentspace表空间对应的数据文件的大小
SQL〉alterdatabase
2datafile'E:
\XUEXI\ORACLE\SHIYAN\STUDENTSPACE。
DBF’
3resize40m;
3。
3。
3为studentspace表空间添加一个新的数据文件
SQL>altertablespacestudentspace
2adddatafile
3’E:
\XUEXI\ORACLE\SHIYAN\STUDENTSPACE1。
DBF'
4size10m
5autoextendonnext5mmaxsize40m;
3。
3.4删除新建的数据文件
SQL>altertablespacestudentspace
2dropdatafile’E:
\XUEXI\ORACLE\SHIYAN\STUDENTSPACE1。
DBF';
4表的使用
4。
1表的创建
4.1.1创建用户类别表,语句如下:
SQL〉createtabletype(
2typeidnumber(10)primarykey,
3typenamevarchar2(10)notnull
4)tablespacestudentspace;
表已创建.
4。
1。
2创建用户信息表,语句如下:
SQL〉createtableusers(
2useridvarchar2(10)primarykey,
3unamevarchar2(10)notnull,
4pwdvarchar2(20)notnull,
5typeidnumber(10)notnull,
6constraintusers_typeforeignkey(typeid)
7referencestype(typeid)
8)tablespacestudentspace;
表已创建.
4.1。
3创建专业信息表,语句如下:
SQL>createtablemajor(
2majoridnumber(10)primarykey,
3majornamevarchar(20)notnull)
4tablespacestudentspace;
表已创建。
4.1.4创建班级信息表,语句如下:
SQL>createtableclass(
2classidnumber(10)primarykey,
3classnamevarchar2(10)notnull,
4majoridnumber(10)notnull,
5constraintclass_majorforeignkey(majorid)
6referencesmajor(majorid)
7)tablespacestudentspace;
表已创建。
4.1.5创建学生信息表,语句如下:
SQL>createtablestudent(
2snonumber(10)primarykey,
3snamevarchar2(4)notnull,
4sexchar
(2)notnull
5check(sexin(’男',’女')),
6classidnumber(10)notnull,
7majoridnumber(10)notnull,
8constraintstudent_classforeignkey(classid)
9referencesclass(classid),
10constraintstudent_majorforeignkey(majorid)
11referencesmajor(majorid)
12)tablespacestudentspace;
表已创建.
4。
1.6创建教师信息表,语句如下:
SQL〉createtableteacher(
2tnonumber(10)primarykey,
3tnamevarchar2(4)notnull,
4sexchar
(2)notnull
5check(sexin(’男',’女’)),
6majoridnumber(10)notnull,
7constraintteacher_majorforeignkey(majorid)referencesmajor(majorid)
8)tablespacestudentspace;
表已创建.
4。
1.7创建课程信息表,语句如下:
SQL〉createtablecourse(
2cnonumber(10)primarykey,
3cnamevarchar(20)uniquenotnull,
4creditnumber
(2)notnull)tablespacestudentspace;
表已创建.
4.1。
8创建学生成绩表,语句如下:
SQL>createtablegrade(
2snonumber(10)primarykey,
3snamevarchar2(10)notnull,
4cnonumber(10)notnull,
5cnamevarchar2(20)notnull,
6gradenumber(3)notnull,
7creditnumber(3)notnull,
8constraintgrade_studentforeignkey(sno)referencesstudent(sno),
9constraintgrade_courseforeignkey(cno)referencescourse(cno)
10)tablespacestudentspace;
表已创建。
4.2索引
4。
2。
1在Class表中的classname列上创建classname_index的索引
SQL>createindexclassname_index
2onclass(classname)
3tablespacestudentspace;
4。
2.2打开Class表中class列上的classid_index索引的监控状态
SQL>alterindexclassname_indexmonitoringusage;
索引已更改。
通过数字字典v$object_usage可以查看哪些缩印正在被监控
SQL>columnindex_nameformata15;
SQL>columntable_nameformata15;
SQL>selectindex_name,table_name,monitoring,
2used,start_monitoring,end_monitoring
3fromv$object_usage;
INDEX_NAMETABLE_NAMEMONUSESTART_MONITORINGEND_MONITORING
—---—---——-———-———--—-——-——-———-—————-—-—-——-——-——-———-—----—————--———-
CLASSNAME_INDEXCLASSYESNO05/21/201611:
00:
43
4。
3视图
4.3。
1创建基于class表和magor表的视图V1,在该视图的子查询中检索班级信息的同时显示其所在专业名称。
SQL>createviewv1
2as
3selectc.classid,c.classname,m.majorname
4fromclasscleftjoinmajorm
5onc。
majorid=m。
majorid;
视图已创建。
5。
2.2创建基于grade表的视图V2,查询成绩不及格学生的信息
SQL〉createviewv2
2as
3selectsno,sname,cname,gradefromgradewheregrade〈60;
视图已创建.
4.4使用序列
创建一个名为student_seq的序列
SQL>createsequencestudent_seq
2startwith1
3incrementby1
4nocache
5nocycle
6order;
序列已创建.
5查询
5。
1SQL语言基础
统计各专业女同学人数
SQL〉selectmajorid,count(*)fromstudent
2wheresex=’女'
3groupbymajorid
4havingcount(*)>0
5orderbycount(*)desc;
5.2子查询与高级查询
5。
2.1查询平均成绩大于80分的同学的学号和平均成绩
SQL〉selectsno,avg(grade)fromgrade
2groupbysno
3havingavg(grade)〉80;
5.2。
2查询“1”课程比“2”课程成绩高的所有学生的学号
SQL>selecta.sno
2from(select*fromgradeswheres。
cno=1)a,
3(select*fromgradeswheres。
cno=2)b
4wherea。
sno=b.sno
5anda。
grade〉b.grade;
5。
2.3查询姓“刘"的学生名单
SQL〉select*fromstudentwheresnamelike'刘%’;
5.2。
4查询1门以上不及格课程的同学的学号及其平均成绩
SQL>selectsno,avg(grade)fromgrade
2groupbysnohavingsnoin(
3selectsnofromgrade
4wheregrade<60
5groupbysno
6havingcount(*)>1);
5。
2.5查询班级信息的同时显示其所在专业名称.
SQL〉selectc。
classid,c.classname,m。
majorname
2fromclasscleftjoinmajorm
3onc。
majorid=m。
majorid;
5.2.6查询每门课程被选修的学生数
SQL〉selectcno,count(*)rs,
2(selectcnamefromcourse
3wherecno=grade。
cno)
4cnamefromgrade
5groupbycno;
5。
2.7查询所有学生的选课信息
SQL>selects.sno,s.snamestudentname,
2o,amecoursename
3fromstudents,gradeg,coursec
4wheres.sno=g.snoando=o;
6PL/SQL语句
6.1使用PL/SQL程序块,输出显示course表中的编号为1的课程名。
SQL>setserveroutputon;
SQL>declare
2idconstantnumber(10):
=1;
3namevarchar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word Oracle11g 学生 成绩管理系统