数据库系统概论》课程设计报告----《学生选课管理信息系统系统》

目录
一、系统需求分析 1
(一) 需求概述 1
1.1课程可行性分析 1
1.2系统功能需求分析 2
(二) 组织结构分析 3
2.1系统要求 3
2.2组织机构介绍 3
2.3系统功能模块划分 4
(三) 业务流分析 4
(四) 数据流分析 5
(五) 数据字典 6
5.1数据项 6
5.2数据结构 7
二、数据库概念结构设计 8
(一)实体分析 8
(二)属性分析 8
(三)联系分析 8
(四) 概念模型设计(.cdm图) 9
三、数据库逻辑结构设计 11
(一)概念模型转化为逻辑模型 11
(二) 逻辑模型设计(.pdm图) 12
四、数据库的物理实验 13
(一)表设计(SQL server 中各表设计) 13
(二) 创建表和完整性约束代码设计 15
(三) 创建视图、索引、存储过程和触发器 16
1、创建视图 16
2、创建触发器 19
3、创建存储过程 21
4、创建索引过程 22
五、数据库功能调试(包括视图、索引等内容的测试) 23
(一)学生信息管理模块 23
(二)课程信息管理模块 26
六、应用程序设计 30
(一)登录模块 30
(二)成绩管理模块 31
七、 设计总结 31

一、系统需求分析
(一)需求概述
1.1课程可行性分析
公共选修课程管理作为高校教务管理的重要组成部分。基于 Web 的学生选课与成绩管理系统与现代信息技术(数据库技术,通信技术,计算机技术)作为一种手段来提高学生选课、教师成绩录入等工作管理效率为目标,对于选课管理、排课安排、成绩录入管理等业务的实现都是通过先进的硬件设备,强大的软件变成算法等实现。
接到该项目的课题后,对于项目的可行性分析与计划研究我做了大量的调查工作。首先查阅资料了解项目业务流程及范围,然后同有手工选课经验的老师、教务人员交流,了解曾经他们得工作情况、工作流程、业务范围,操作对象等内容。通过一定时间的调查研究了解到项目具体任务及应用系统中可能存在的问题。以及一些已使用互联网选课的学校系统存在的问题。对于这些问题点更有了项目所在学校有在校生大概两万人左右,对于选课所触及到的各系的工作人员还是较少。开课教师、学校教务管理员、具备选课资格的学生是本选课系统中的主要人员,不同身份的人员有个字不同的工作和操作内容。而对于目前学校人员手工选课存在着如下主要问题:
1.所选课程的管理涉及到多种数据,并且这些数据相对集中且数据总量多大,每学期需要选修课程的学生人数众多,而操作选课工作的人员相对较少。在手工模式下选课教务工作劳动量特别高,同时如果众多的学生在相对集中的时间进行选课,教务人员就要在极短的时间内处理大量的选课信息,并且选课信息相似性非常大,教务人员极易疲惫和发生失误。
2.教务工作人员会有非常大的工作量,例如他们在选课结束后需要打印所有老师的课程表,选修课程的全部学生名单册。开设课程的教师需要从学校教务处领取课程表和自己课程选课的学生名单,等到学期结束的时候教师根据学生上课表现和考查成绩登记学生成绩后送教务处,最后教务工作人员可以利用大学生管理系统,以在线操作的方式将课程各种信息归列存档。
1.2系统功能需求分析
通过前面的分析及对选课系统的了解,我们得知本系统的开发的目的就是实现选课教务的网上操作,既方便了教师也方便了学生。教师不必再通过反复往返于教师与学校教务处,学生也不必反复往返与教师与教务处,而教务处的管理人员也将不再每学期面对强大的信息量,人工纸质操作处理各种信息,同时统计课程信息。所有的对象,所有对象的操作都将通过网上系统进行解决。将繁重的业务劳动和信息汇总交给了计算机思考,计算机操作。从而实现了选课系统的网上集中管理,网下各用户分散操作的的特点。通过建立大学生选课管理系统能够大幅度减少工作人员任务量,提高效率,使得在校学生能够更方便快捷的选课。通过分析得知此系统操作共有三类用户,分别是教务管理员、开课教师和选课学生。
(1)管理员
描述:管理员主要是对整个系统的维护,包括设置选课时段,选课规则,如选课时学生不可登录,而选课后,学生不可更改,只能查看。管理员对系统的管理,包括设置登录信息,添加删除用户、更改密码、数据备份、数据还原、注销等功能。
(2)教师
描述:录入老师的基本信息(包括教师基本信息、选课基本信息),并可进行基本信息的修改和删除。
(3)学生
描述:录入学生的基本信息(包括学生基本信息,课程基本信息),并并进行基本信息基本信息的修改和删除,可选择课程信息。
通过对前面系统的需求分析,我们把系统中出现的三类用户划分为系统中的三种角色,在大学生选课管理系统中每一种角色都需要完成所对应的操作,每一中角色也拥有自己特殊的操作权利,对于系统进行划分,主要分为三个功能模块:登录控制和选课系统。其中,登录系统是整个系统的前提,主要区分不同登陆者(管理员、教师或是学生)不同身份,并给予不同的权限,在页面中根据不同身份判断其相应的权限,进行不同的操作。选课子系统是本系统的要实现的功能,适用于学生。包括课程浏览、选课等与选课有关的一切操作。
(二)组织结构分析
2.1系统要求
(1)信息要求:
学生:(学生学号,密码,姓名,系,联系电话、电子信箱,性别,年龄),是学生实体对应的关系模式。学生学号和密码是选课学生登陆系统所必须验证的信息,而学生信息的初始化则是有管理员来操作的。
课程:(课程编号,课程名,授课教师,课程学分),是课程实体对应的关系模式。课程实体表具有多个属性,这些属性信息都是有开课教师在申请开课时所要填写的。
选课记录:(开设课程编号,学生学号,获得成绩),它的作用就在于能够将选课记录清晰地展现和保存下来,只要是在管理员结束选课之前保存的记录都会一直保存下来。
教师:(教师姓名,账号,密码,所属院系,联系电话,邮箱,职称)而教师信息的初始化则是由管理员来操作的。
管理员:(姓名,登陆账号,密码,联系电话)管理员可对自己的某些信息进行修改。
(2)安全性要求:
系统应该设置访问用户的用户账号是否合法,并且要求合法账户使用自己的密码登录该系统,保证自己的账户不被其他人使用。
对于用户对于系统的访问,系统也应该有相应的权限,如有些用户有时候可以修改数据库中的数据而有时候是不能修改的,而关于某些基本信息,用户是可以修改的等等权限。权限的授予是根据管理员来设置的。
(3)完整性要求:
各种信息记录的完整性,信息记录不能为空;
各种数据之间的相互依赖的正确性。
2.2组织机构介绍
根据调查,每学期的课程都是由学校安排,学生对于必修科目是没有选择的自由,而且课程的安排由于各方面原因经常存在一些漏洞,尤其是先修课的问题。随着科学技术的不断发展,计算机的应用已经成为时代的潮流,而将学生选课系统由人工管理方式转变为计算机软件控制,具有检索迅速、查找方便、可靠性高、存储量大、成本低等优点。
如今,学生选课系统已经成为日常教学工作中必不可少的管理软件,对于学生信息、选修课程进行各方面的管理,为用户提供充足的信息和快捷的查询与修改。选修课程是面对管理人员、教师和学生。不同的人,不同的身份操作权限也不同。作为管理员,他的权限是最高的,可以对教师提出的课程设置进行审批。作为学生,他可以选择自己选修的课程以及自己的代课老师,并查看个人基本信息和修改个人信息。
2.3系统功能模块划分
根据前面需求分析的内容我们分析系统中分为三种角色,每种角色都
需要登录到系统中才能进行相应的操作,因此将系统细分为五个功能模块,分别
是选课学生功能模块,开课教师功能模块,教务管理员功能模块,和三者都需要
的登陆功能模块。三种角色都需要登陆模块的操作,之后三者权限有定,根据自
身所有的权限进行不同的操作。以下展示了大学生选课管理系统的系统架构图。
系统架构图如下图所示:
在这里插入图片描述

(三)业务流分析
学生选课系统是一个专门为各大高校提供选课的平台,为了方便学生的课程管理,是主要针对在校学生和老师的使用。
不同用户可以通过系统进行不同的操作,每一个操作都是一个功能的体现。
业务流程分析,首先有系统管理员权限的用户将各自信息进行录入,然后保存至数据库中。有权限的人可以对这些库数据信息进行修改、删除和选教师课程。教师也可以申请开设自己的课程,供学生参考,并得出成绩。

(四)数据流分析
(1)第0层数据流图

(2)第1层数据流图

(3)第2层数据流图

学生管理系统2层P2.1数据流图

管理员系统2层P2.1数据流图

教师管理系统2层P2.1数据流图

(五)数据字典
5.1数据项
(1)学生数据字典
数据项编号 数据项名 数据项含义 数据类型
01 Sno 学号 Char(10)
02 Spassword 密码 Char(6)
03 Sname 姓名 Char(10)
04 Sdept 系名 Char(20)
05 Ssex 性别 Char(2)
06 Age 年龄 Int
07 Telephone 联系电话 Char(12)
08 Email 电子邮箱 Varchar(30)
(2)课程数据字典
数据项编号 数据项名 数据项含义 数据类型
01 Cno 课程号 Char(7)
02 Cname 课程名 Char(20)
03 Term 开课学期 Int
04 Tno 授课老师号 Char(5)
05 Ccredit 课程学分 Int
(3)选课记录字典
数据项编号 数据项名 数据项含义 数据类型
01 Cno 课程号 Char(7)
02 Sno 学号 Char(10)
03 Grade 获得成绩 Int
04 Cpno 先修课号 Char(7)
(4)教师记录字典
数据项编号 数据项名 数据项含义 数据类型
01 Tno 教师工号 Char(5)
02 Tpassword 密码 Char(6)
03 Tname 教师姓名 Char(10)
04 Sdept 所属院系 Char(20)
05 Duty 职称 Char(10)
06 Telephone 联系电话 Char(12)
07 Book 参考书名 Char(20)
(5)管理员记录字典
数据项编号 数据项名 数据项含义 数据类型
01 Gno 登录账号 Char(5)
02 Gpassword 密码 Char(6)
03 Gname 管理员姓名 Char(10)
04 Telephone 联系电话 Char(12)
5.2数据结构
数据结构编号 数据结构名 数据结构含义 组成
1 Student 学生信息 Sno、Spassword、Sname、Sdept、Ssex、Age、Telephone、Email
2 SC 选课信息 Cno、Sno、Grade、Cpno
3 Course 课程信息 Cno、Cname、Term、Tno、Ccredit
4 Teacher 教师信息 Tno、Tpassword、Tname、Sdept、Duty、Telephone、book
5 Manage 管理员信息 Gno、Gpassword、Gname、Telephone
二、数据库概念结构设计
(一)实体分析
此学生选课管理系统共有3个实体:
(1)学生:(student):学生的基本信息包括学号、登录密码、姓名、系名等信息
(2)课程(course):课程的基本信息包括课程号、课程名、授课老师号等信息
(3)教师(teacher):教师的基本信息包括教师号、教师登录密码、姓名等信息
(二)属性分析
(1)学生:(student):学号、登录密码、姓名、系名、性别、年龄、电子邮箱、电话
(2)课程(course):课程号、课程名、开课学期、授课老师号、学分
(3)教师(teacher):教师号、教师登录密码、姓名、系名、电话、职称、参考书名
(4)选课(SC):学号、课程号、成绩、先修课号
(5)管理员(Manage):管理员号、管理员姓名、电话、密码
(三)联系分析
(1)选课:一名学生可以选择多门课程,而一门课程也可以被多名学生选择,所以是n:m的联系。
(2)授课:一门课程可以由多名老师授课,而一个老师也可以教授多门课程,所以是n:m的联系。
通过对各种实体进行分析,最终得出了以下实体之间的联系:

实体 学生 课程 教师
学生 1:N 1:N
课程 1:N 1:N
教师 1:N 1:N
(四)概念模型设计(.cdm图)

选课子E-R图

查询子E-R图

三、数据库逻辑结构设计
(一)概念模型转化为逻辑模型
1、一对一关系的转化(标注主、外键)
本系统无一对一的关系。
2、一对多关系的转化(标注主、外键)
(1)一门课程可以有一门或者是多门先修课,将选修课放入课程表中:
主键:cno(课程号)
3、多对多关系的转化(标注主、外键)
(1)一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。
选课表:主键 cno、sno(课程号和学号)
外键 cno、sno(课程号、学号)
(2)一位老师可以同时给多个课程代课,而一门课程可以有多个老师教课,则课程与老师之间具有多对多联系。
参考表:主键 cno、tno(课程号和老师工号)
外键 cno、tno(课程号、老师工号)

(二)逻辑模型设计(.pdm图)

四、数据库的物理实验
(一)表设计(SQL server 中各表设计)
学生表(student):

课程表(course):

选课表(SC):

教师表(teacher):

参考表(teachingplan):

管理员表(manage):

(二)创建表和完整性约束代码设计
课程表(course):

选课表(SC):

学生表(student):

教师表(teacher):

参考表(teachingplan):

(三)创建视图、索引、存储过程和触发器
1、创建视图
1.1建立学生基本信息的视图
(1)代码展示

(2)结果测试
1.2建立学生参考书基本信息的视图
(1)代码展示

(2)测试结果
1.3建立教师基本信息的视图
(1)代码展示

(2)测试结果

1.4所建视图

2、创建触发器
2.1创建学号级联删除的触发器
(1)代码演示

2.2创建一个学生修改或者插入学生信息时,如果学生年龄信息低于18岁,则自动修改为18岁
(1)代码演示

(2)测试结果

2.3建立一个用户密码更改提示的触发器
(1)代码演示

(2)测试结果

2.4所建触发器

3、创建存储过程
3.1建立学生登录信息验证的存储过程

3.2建立按照系名查找学生信息的存储过程

3.3建立一个教师信息登记的存储过程

4、创建索引过程
4.1建立学生关系索引

4.2建立课程关系索引

4.3建立教师关系索引

4.4所建索引

五、数据库功能调试(包括视图、索引等内容的测试)
(一)学生信息管理模块
1、查询学生信息
1.1查询学生的全部信息
(1)测试数据
查询学生“王颖楠”的全部信息
(2)SQL代码

(3)执行结果

1.2查询学生的信息
(1)测试数据(视图)
查询“软件工程”系学生的信息
(2)SQL代码

(3)执行结果

1.3查询学生数量
(1)测试数据
查询计算机科学与技术有多少名学生。
(2)SQL代码

(3)测试结果

2、插入学生记录
(1)测试数据(触发器)
软件工程新转入一位同学李诗凡,需要将其信息插入
(2)SQL代码

(3)执行结果

3、删除学生记录
(1)测试数据
软件工程的李诗凡同学由于某些原因,需要退学。
(2)SQL代码

(3)执行结果

4、修改学生记录
(1)测试数据(触发器)
将李诗凡同学转至计算机科学与技术系。
(2)SQL代码

(3)执行结果

(二)课程信息管理模块
1、查询课程信息
1.1查询课程信息
(1)测试数据
查询聂婷同学学习的课程信息。
(2)SQL代码

(3)执行结果

1.2查询老师课程信息
(1)测试数据
列出王素汐老师所教授的所有的课程信息。
(2)SQL代码

(3)测试结果

1.3查询老师课程信息
(1)测试数据
列出教师“王素汐”所授“数据结构”课程的的成绩单,按照成绩由高到低排列显示。
(2)SQL代码

(3)执行结果

1.4查询老师课程信息
(1)测试数据
计算“王素汐”老师讲授的“数据结构”的平均分
(2)SQL代码

(3)执行结果

2、插入课程记录
(1)测试数据
增加一门新的课程也就是在课程表中插入新的课程记录。
(2)SQL代码

(3)执行结果

3、删除课程记录
(1)测试数据
撤销课程“大学英语”。
(2)SQL代码

(3)执行结果

4、修改课程记录
(1)测试数据
将“高等数学”课程名称修改为“高等数学(1)”,并且将学分改为6。
(2)SQL代码

(3)执行结果

六、应用程序设计
(一)登录模块
1、学生登录界面设计

2、学生数据库连接实现
(1)查询

(2)修改

(3)添加

(二)成绩管理模块
1、界面设计

2、数据库连接实现

七、设计总结
此次课程设计花费了大量的时间,投入了很大的精力,设计数据库的每个过程都让我对本门课程有了一个更深层次的理解。这些小的学习细节和经验在以后的工作、学习中将继续保持下去。
在设计学生选课管理数据库前期,我从各方面了解了大量有关设计层面的细节工作。也接触了一些本门课程之外的基础知识。在设计过程中,最重要的部分属于需求分析。做好需求分析,才能更明确自己该系统的框架,进一步将选课系统的各个实体的业务细化,从而得出业务流程图。再从数据层面转化为数据流图。经过层层加工,构成了前期的概念模型,在对概念模型中的关系加工整理后,最终转化成物理模型。这期间我使用了PowerDesigner这一模型设计工具以及visio绘图软件,从整体来看,PowerDesigner这一模型设计工具的功能足够强大,它不仅满足了各种流程图设计的模型,更架起了模型与SQL Server数据库之间的桥梁,省去了很多设计工作中麻烦,以及转化工作之间的重复性。
将数据库设计完成后,设计的工作核心转化到了数据库的应用和测试上,不过只做了简单的功能设计和测试。这一过程我继续深入的使用SQL语句进行数据库操作,其中的基本操作包括数据的增删改,以及用户的添加与删除,在表的基础上,针对各个实体的特性,单独设计了视图、触发器、索引以及存储过程。最终经过测试,达到了预期的效果,不禁让我感受到了数据库这门学科的实际意义和魅力。
整个设计过程中也遇到过不少麻烦,其中最让人纠结的就是数据库的业务流和数据流分析,以及概念模型中的实体联系,最终,通过不断地加深理解和深入学习,这些问题已基本解决,达到了设计的要求。在以后的学习工作中,我会继续保持这段时间的所做、所学,并争取将本门课程的魅力发挥出来,实现真正意义上的学以致用。

**

数据库系统概论》课程设计报告----《学生选课管理信息系统系统》!!!

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫叶学长(专业接毕设)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值