数据库课程设计学生选修课系统.docx
《数据库课程设计学生选修课系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生选修课系统.docx(14页珍藏版)》请在冰点文库上搜索。
数据库课程设计学生选修课系统
成
绩
10信计2012-2013
(一)
《数据库原理及应用》课程设计
设计题目选修课管理系统
设计时间
学生姓名
学生学号200904022
所在班级10信计
(2)指导教师
一、可行性研究.3
二、需求分析.4
三、概要设计..5
四、逻辑设计.6
五、数据库实现..7
六、测试11
七、课程设计总结...12
八、参考文献…...13
七、附录…13
、可行性研究
1.1系统开发背景
数据库是从60年代初发展起来的计算机技术。
经过四十来年的发展,数据库技术己经趋于成熟。
Web数据库在新的Internet环境中发生了很大的变化。
就数据应用而言呈现出多样化的空间,如数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给web数据库技术提出了更多、更高的要求。
同时,随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用。
例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。
1.2系统设计目标
在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。
在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:
两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。
利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。
我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。
在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。
运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。
二、需求分析
2.1任务概述
2.1.1内容调查学习教务处,设计用于管理全校学生选修课活动的系统。
2.1.2目标设计学生选课录入系统及学生选课查询界面。
设计课程输入界面和学生选课表及课程选修情况查询界面。
根据学生库和课程库,输出学生课程表。
2.1.3运行环境
Windowsxp/7操作系统下,安装并配置软件microsoftSQLserver2000数据库管理系统。
2.2数据需求
2.2.1数据流图(DFD)
2.2.2数据字典(DD)
“学生信息表”的存储结构如下:
数据存储:
学生信息表;说
明:
学生的基本情况;组成:
以学号为关键;数据量:
学
生的人数;存储方式:
随机存储;
“选课表”的存储结构如下:
数据存储:
选课表;
说明:
学生选课的情况;组成:
以学号和课程号为关键;数据量:
学生的人数;存储方式:
随机存储;
“开课课程表”的存储结构如下:
数
据存储:
开课课程表;说明:
所有开设的课程的情况;组成:
以课程号为关键;数据量:
课
程的数目;
存储方式:
随机存储;
“成绩表”的存储结构如下:
数据存储:
成绩表;说明:
选修各门课程的成绩;组成:
以学号和课程号为关键;数据量:
很多;存储方式:
随机存储;
2.3一致性需求
在选修课管理系统中的相关的表中,有较强的相关性,为什么实现一致性的需求,我们在各个表之间建立起了一致性约束。
2.4完整性需求
根据选修课管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障。
三、概要设计
3.1接口设计
3.1.2外部接口
通过一定的计算机硬件,建立服务器系统,管理员通过管理服务器系统,与用户进行交互,从而达到资源共享的目的,实现选修课管理系统。
3.1.2内部接口
程序内部需要共同的数据定义和描述,此系统是智能办公化管理系统的一个子系统,必须和这个系统的其他子系统统一数据定义等,才能使该系统性能达到最好,并且要尽量消除和其他子系统模块之间存在的数据冗余,才能使整个智能办公系统做到高效,方便。
3.2E—R图
f
四、逻辑设计
4.1关系模式转化
学生(学号,姓名,性别,年龄,籍贯);课程(课程号,课程名,学时,性质);选修(学号,课程号,成绩);
五、数据库的实现
5.1创建数据库
Optional数据库创建的SQL语句:
createdatabaseoptional
on
(
name=optional
filename='c:
\\optional.mdf,size=100MB,maxsize=200MB,filegrowth=2MB
)
logon
(
name=optional_log,filename='c:
\\optional.ldf.size=20MB,maxsize=80MB,filegrowth=1MB
)
截图:
—[|JMierosoftSQLS=ifj|:
SQLServ*jf
OLxikl)(VixlAows
*iJ«ap«ri
*U
*U*«d«l
+U
+U
+u
*.Qp^ibr
*(J
+參爵转按服昜
*_JbS
*_J+_J蚕殳性
±_J袁蒔服簣
+_BitSarvic»e
5.2在数据库中创建表
SQL语句如下:
createtablestudent
(
snointprimarykey,snamenvarchar(5),sexnchar,classint
)
createtablecourse
(
enointprimarykey,cnamenvarchar(15),enumberint
createtablescore
(
snoint,
enoint,
degreeint,
primarykey(sno,cno)
foreignkey(sno)referencesstudent(sno),foreignkey(cno)referencescourse(cno)
)
所创建的表如下:
-_|用尸裘
*2J业aeourse♦二JdbfiSf
*二]血。
*£诃《11
*_J系塀饗*」視国
+_|百储过程
*_r函数
+」用尸钗的数据
向各表中插入数据如下:
Student表:
snosname
C14E£
1
12009040016^
勇
9001
?
200904002张新
9002
3
200904003张红
S
9003
h
S00904004Mtv
男
9004
5
200904005张榷昂
券
3005
s
200904006負天
死比
200504007聲畫肅
文
9007
20090^008张憩
女
9UDE
Course表:
Score表:
1・,
表^ficore"
中的敷裁,
位畫昱*&ptiaMl"f
■B.4
164
I
2M90400L
100】
T9
20C904002
1001
34
2U*J9OW0i
1005
39
£0(1904004
1006
90
£00904006
1001
T3
OTW0Q7
1VK
T3
5.2建立查询
查询结果如下:
Student:
selectsnajueas'姓名*,class9『班级':
remstui^iAwheresno"200904001
旺老班第
_J王洽9001
Course:
selecteno课程号"”・cnameas"澤程名**emunb&ras'课时
fromCQurse|
whereeno1001
ih(Kn障義电常主术赏析曲a
Score:
selectsnoas学号enoasi果琨号'degreeas'成绩'fromscore
ordorbydegree
<|„
惮号谍程号jSffl
1
200904002
1001
34
2
200904005
1001
73
3
200904007
1002
79
4)
200904001
1001
79
5
200WO02
1005
S9
6
200304G04
1906
?
0
5.3创建视图
创建视图的SQL语句如下:
createviewstudent_view
as
selectsnoas'学号',snameas姓名',sexas'性性别',classas'班级'fromstudent
createviewcourse_view
as
selectcnoas课程号',cnameas课程名',cnumberas'人数'fromcourse
createviewscore_view
as
selectsnoas'学号',cnoas'课程号[degreeas'成绩'
fromscore
如下:
根据student创建的视图:
FT开表一TEUBAV—2B5363DD-optional.dbo_student_?
ie・〔只读
](s)工具①囱口址m®)
toftSMIioI®-I►■go一[暫酉E
学号姓昌
男
9001
2009I340Q2张新
男
9002
200904003琳红
9003
200904004MSV
男
9004
2009(X005戟桂昂
男
9005
200904006黄天
男
90D6
200904007誓廳壽
立
9007
200904008张萍
女
90D8
4
5
6
7
8
根据course创建的视图:
[打开表一TRHUH-^2B5363DD_optioiLQl-dbo,coii£se_uie・(只渎)]
恥)
工具①
蔺口d)帮眈QD
&3
r耐
in1FpnIl
I■」
JI智GQl
课程号课程名
Aft
1
100L
[战类电第龙术冇析
150
2
1002
100
3
1003
150
4
1004
交眸心理準
90
5
W0B
3G
6
1006
50
7
100?
法律當识
80
3
1008
潦行苦龙赏祈
150
9
1009
病理学分析
50
10
1
1010
电影的艺#
1Q0
根据score创建的视图:
5.4创建存储过程
541用于查看所有学生的存储过程,SQL语句如下:
createprocedureall_students
as
select*fromstudent
5.4.2用于查看所有课程的存储过程,SQL语句如下:
createprocedureall_courses
as
select*fromcourse
5.4.3用于查看所有学生所选课程的成绩,SQL语句如下:
createprocedureall_score
as
select*fromscore
5.5创建触发器
5.5.1创建一个名为“trig_1”的触发器,当向学生表添加记录时,该触发器自动显示学生表的所有信息。
createtriggertrig_1onstudent
forinsert
as
select*fromstudent
5.5.2创建一个名为“trig_2”的触发器,当试图向course表添加、修改或删除记录时,该触发器自动显示如下信息:
“对不起,你无权进行更新操作!
”。
createtriggertrig_2oncourseinsteadofinsert,update,delete
as
print'对不起,你无权进行更新操作!
'
5.5.3创建“trig_3”的触发器,当向score修改记录时,该触发器自动显示修改前和修改后的记录。
Createtriggertrig_3
onscore
forupdate
as
select*fromdeleted过去删除的,即修改前的数据;
select*frominserted插入的,即修改后的数据;
六、测试
测试良好,运行稳定
七、课程设计总结
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语言的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主键与外主键的定义,约束项的设置,使逻辑更严密。
在学习过程中,我也上网查了不少资料,也看了一些别人设计的小型超市信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从
中从学到用,从用又到学,不断修改,系统更新。
虽然不能达到完善系统,但
也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,知识是无限的,
我以后还会在这个领域不断的进行探索,掌握更多的知识。
姜代红蒋秀莲主编网友提供
学校提供
八、参考文献
1.数据库原理及应用使用教程
3.网上资源
4.图书馆数据库相关资料
九、附件
相关SQL语句及数据库文件见压缩文件中