网络教育学院《SQL数据库课程设计》
题目:学生信息管理系统的设计与实现学习中心:奥鹏学习中心
专业:
年级:年 /秋季
学号:
学生:
指导教师:龙珠
1 项目概况
1.1 SQL 数据库简介
Microsoft SQL Server 2000 是Microsoft 公司继SQL Server 6.5和SQL Server 7.0以后,在新千年推出的又一改进的新版关系型数据管理系统。它能使用户快捷地管理数据库和开发应用程序。SQL Server 2000 使用了了先进的数据库结构,与Windows DNA紧密集成,具有强大的Web 功能,它可以利用高端硬件平台以及最新网络和存储技术,可以为最大的Web站点和企业应用提供优良的扩展性和可靠性,使用户能够在Internet 领域快速建立服务系统,为占领市场赢得宝贵的时间。同时,SQL Server 2000 还为用户提供了重要的安全性功能的增强,为用户的数据安全提供了可靠的保证。另外,SQL Server 2000还为用户提供了重要的安全性功能的增强,为用户的数据安全提供了可靠的保证。另外,SQL Server 2000 在数据库服务器自动管理技术方面处于数据库领域的领先地位,它可以使用户免去繁琐复杂的工作量,从而有精力处理更重要的问题,使用系统在商业战略上占得先机。
SQL Server 2000 的特性Microsoft® SQL Server? 2000 的特性包括:
1、Internet 集成。SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可用性、可伸缩性和安全功能。
2、可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行Microsoft Windows® 98 的便携式电脑到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。
3、业级数据库功能。SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。
4、易于安装、部署和使用。 SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。1.2 JSP概述
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系
统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
1.3 系统开发背景
随着学校规模的不断扩大,学生人数急剧增长,需要管理的各种信息也成倍增长,由于计算机和网络的普及,若建立一个C/S或B/S结构的学生信息管理系统,学生便可以通过网络来选课并且查询自己的有关信息,使得学生信息管理工作系统化,规范化,自动化,大大提高了学校管理学生的效率。在信息高速发展的当今时代,任何学校,企业都离不开信息化的建设,信息化水平已经成为一个评价高校综合实力的一项重要指标。近年来,高校都建设了高校校园网,学生信息管理系统作为高校校园网建设的一个模块,主要是为了学生在校园网内就了解更多的与学生生活相关的信息。学校的公告网上发布,学生信息网上查询,方便教师和学生查询学生信息,成绩查询使学生能及时了解自己的成绩以及方便学生选课,同时也方便教师及时做出课程的调整等。学生信息管理系统可作为一个高校学生获取信息,学生交流,选课和教务管理的平台。
1.4 学生信息管理系统概述
学生信息管理系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计
了学生信息管理系统;本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。
本系统主要包括学生信息查询、教务信息维护和学生选课三部分。其功能主要有:
1、有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。
2、学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。
3、学生信息的修改。
4、班级管理信息的输入,包括输入班级设置、年级信息等。
5、班级管理信息的查询。
6、班级管理信息的修改。
7、学生课程的设置和修改。
2 需求分析
2.1 需求分析
经过仔细研究分析,我们决定将系统分为四大菜单部分,分别为新生基本信息管理,在校日常管理,毕业生信息管理,学生成绩查询四部分。为了便于导员和学校领导对班级情况的了解管理,其中主要侧重点在在校日常管理方面。
新生信息:包括报到预处理,新生报到,新生信息查询与统计
在校生信息管理:包括基本数据、日常管理,奖惩信息,勤工助学
毕业生信息:包括择业与就业、档案与经费、证书发放
学生成绩查询:包括成绩的查询
在系统需求的分析过程中我们采用的是跟班作业的调查方法。通过为期两天的亲身参加学校的业务工作基本了解了用户的需求。主要包括入学报道管理学生信息,在校生日常管理,,毕业生信息管理,学生成绩综合查询与统计。
2.2 可行性分析
整个系统应当操作简便,界面友好,维护简便。数据库要求运行稳定,执行速度快,数据安全性高。软件系统本身运行对计算机硬件平台和操作系统平台要求适中。该项目采用JSP编写,数据库采用SQL Server,开发者对其都能够较为熟练的应用,再加上老师的指导,因此在技术上也是可行的。
运行可行性分析:本系统运行平台是JSP 且有SQL SERVER,浏览器web2.0以上就能运行,操作系统Windows XP以上。所以本系统在运行上要求适中,适合学校以及一些公司管理学生或员工信息时使用
操作可行性分析:大学教职工和大学生都具备良好的计算机基本操作知识,因而该学生管理系统很容易被用户接受,用户可以很快地熟悉该系统的操作方式。
经济可行性分析:成本效益分析是通过比较项目的全部成本和效益来评估项目价值的一种方法,成本效益分析作为一种经济决策方法对预开发实施的项目具有重要的指导作用。学生管理系统的投入,能够提高教职工的工作效率,减少工作人员,从而减少人力资本的投入,根据核算,系统投入后不久,就能够基本收回开发系统的投资,从经济角度来说,
2.3 数据分析
1、学生表结构:
表1
2
表2
3
表3
4
表4
2.4 功能分析
本系统的主要任务是实现对学校教导处的学生信息管理、成绩管理、课程管理及相关查询。其主要功能包括:
1、学生信息管理功能
班级管理。提供给班主任进行本班学生的信息更新、删除。
添加学生。以班级为单位,进行学生入库。其中分为单个添加和成批添加。单个添加学生供数量较少的学生信息入库;成批添加可以从现存的学生信息EXCEL 文件中成批录入到数据库中。
删除学生。当学生毕业后,学生信息转移备份数据库中,系统的基本数据库中需要删除学生信息。该功能主要进行成批地删除学生信息,如连续学号区段的多位学生信息删除,整个班级的删除,所有学生信息的删除。
新生管理。本部分的功能主要有新生导入、分班、及设置学号。新生导入实现从现存的EXCEL新生名单中录入学生信息。分班功能实现按新生的报考专业、成绩及性别进行分班。设置学号实现自动为各班学生编发学号。
学生信息备份。在学生信息删除前,将其按班级为单位保存到备份数据库。
2.学生成绩管理功能
分数录入。以班级为单位,录入各科目的期中、期末、总评成绩。
总分及名次。计算指定班级学生的总分及名次。
补考成绩录入。修改总评成绩,以决定最终补考人数。
成绩备份。为指定班级及指定的学期数的学生成绩保存到备份数据库中。
3、课程信息管理功能
课程管理。提供本学期各年级各专业所开课程名称的录入、修改、删除。它是学生成绩管理的基础。用以保证数据库中一致性原则。
4、查询功能。
学生信息查询。根据用户的要求,查询学生数据库的所有可能的信息,其中包括成绩查询。
备份成绩查询。按班级为单位查询备份数据库的学生信息,补考情况。
3 详细设计
3.1 系统结构图
系统功能模块示意图如图3.1所示。
图3.1 系统功能结构图
3.2 系统实现
(1)注册界面
为了方便管理,不同的管理员可以注册不同的用户名及密码来进入管理员系统功能,注册信息将提交到数据库中。注册页面是为了保证规定权限的管理员才能对学生信息进行修改、删除、添加等功能。注册界面如下:
如果新注册的用户名已经存在数据库中,则系统会出现提示信息“该用户名已经存在”。注册成功时,系统同样会提示注册成功,并将新注册的信息提交到数据库中,用户就可以通过新的用户名及密码进入到管理员登录界面。
(2)、登录界面
对于已经注册的管理员,在进入管理系统之前先要进行登录,在下面的登录界面经过身份验证后才能进入系统管理界面。只有有正确用户名及密码的管理员才能进入管理员界面,对数据库中的学生信息进行添加、修改及删除等功能。
输入的用户名与密码首先与数据库中的数据进行比较,存在的用户可以直接进入管理员界面完成管理员功能,如果信息错误系统将会提示用户名或密码输入错误并返回。
2)、增加学生基本信息数据
通过管理员身份验证后,管理员进入的就是学生信息增加的页面,在该页面中输入要增加的学生相关信息并提交,写入到aa学生信息表中。同时这个界面还包括管理员能够使用的其它功能,如信息的查询、修改和删除等功能。其工作界面如下:
3)、查询数据
查询数据,该部分是通过用户输入的欲查询的学生学号来查询该学生的详细信息。用户输入学号后如果数据库中不存在该学号的学生,系统将会提示该学生不存在信息。如果存在该学生系统将会输出该学生的详细信息,包括学生姓名、学号、性别、照片,学生详细信息显示如下:
3.3 数据库实现
(1)数据更新
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER scupdate ON dbo.student //建立学生信息表更新触发器FOR UPDATE
AS
UPDATE SC //更新学生选课表SC
SET SNO = (SELECT SNO FROM INSERTED) //将SC表中的学号改成学生表改后的
WHERE SNO = (SELECT SNO FROM DELETED); //更改对应的学生学号
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER graduateupdate ON dbo.student //建立学生信息表更新触发器
FOR UPDATE
AS
UPDATE GRADUATE //更新学生毕业信息表GRADUATE
SET SNO = (SELECT SNO FROM INSERTED) //将GRADUATE表中的学号改成学生表修改后的
WHERE SNO = (SELECT SNO FROM DELETED); //更改对应的学生学号
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER majorupdate ON dbo.student //建立学生信息表更新触发器
FOR UPDATE
AS
UPDATE MAJOR //更新专业信息表MAJOR
SET SNO = (SELECT SNO FROM INSERTED) //将MAJOR表中的学号改成学生表修改后的
WHERE SNO = (SELECT SNO FROM DELETED); //更改对应的学生学号
------------------------------------------------------------------
---------------------------------------------------
CREATE TRIGGER student1 ON dbo.major //建立专业信息表更新触发器FOR UPDATE
AS
UPDATE STUDENT //更新学生信息信息表STUDENT
SET MNO = (SELECT MNO FROM INSERTED) //将STUDENT表中的专业号改成专业表修改后的
WHERE MNO = (SELECT MNO FROM DELETED); //更改对应的专业号
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER student2update ON dbo.department //建立院系信息表更新触发器
FOR UPDATE
AS
UPDATE STUDENT //更新学生信息信息表STUDENT
SET DMPNO = (SELECT DMPNO FROM INSERTED) //将STUDENT表中的院系号改成专业表修改后的
WHERE DMPNO = (SELECT DMPNO FROM DELETED); //更改对应的院系号
---------------------------------------------------------------------------------------------------------------------
(2) 数据删除
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER teach1update ON dbo.teacher //建立教师信息表删除触发器
FOR DELETE
AS
UPDATE TEACH //删除授课信息表TEACH
SET TNO = NULL //删除TEACH表中的教工号删除
WHERE TNO = (SELECT TNO FROM DELETED) //找到对应的教工号
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER sc1update ON dbo.course //建立课程信息表删除触发器FOR DELETE
AS
UPDATE SC //删除选课信息表SC
SET CNO = NULL //删除SC表中的课程号删除
WHERE CNO = (SELECT CNO FROM DELETED) //找到对应的课程号
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER stu_majorupdate ON dbo.major //建立专业信息表删除触发器
FOR DELETE
AS
UPDATE STUDENT //删除学生信息表STUDENT
SET MNO = NULL //删除STUDENT 表中的专业号删除
WHERE MNO = (SELECT MNO FROM DELETED) //找到对应的专业号
---------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER teacherupdate ON dbo.department //建立院系信息表删除触发器
FOR DELETE
AS
UPDATE TEACHER //删除教师信息表TEACHER
SET DMPNO = NULL //删除TEACHER表中的院系号删除
WHERE DMPNO = (SELECT DMPNO FROM DELETED) //找到对应的院系号
---------------------------------------------------------------------------------------------------------------------
2.2 存储过程
存储过程是PL/SQL语句书写的过程,这个过程经编译和优化后存储在数据库
服务器中,使用时只要调用即可。
(1)数据查询
---------------------------------------------------------------------------------------------------------------------
存储过程名:教师信息查询
入口参数:@tno varchar(10) //输入教师的教工号出口参数:@tno char(10), @tname varchar(10),
@profess varchar(10), @dname varchar(10), @tel int, @tsex char(2),
//定义存放输出教师信息的变量
CREATE PROCEDURE selectteacher //建立查询教师信息存储过程
@tno
AS
SELECT @tno = tno FROM INSERTED //选择与输入教工号相等的所有记录SELECT * //选出符合条件的教师所有信息
FROM teacher
GO
---------------------------------------------------------------------------------------------------------------------
存储过程名:院系信息查询
入口参数:@dmpno //输入院系的院系号出口参数:@dmpno,
@dmpname,
@dmphead, //定义存放输出院系信息的变量
CREATE PROCEDURE selectdepartment//建立查询院系信息存储过程
@dmpno
AS
SELECT @dmpno = dmpno FROM INSERTED
//选择与输入院系号相等的所有记录
SELECT * //选出符合条件的院系所有信息
FROM department
GO
---------------------------------------------------------------------------------------------------------------------
(2)数据插入
---------------------------------------------------------------------------------------------------------------------
存储过程名:学生信息插入
入口参数:@sno varchar(10), @id varchar(20),
@intime varchar(20), @birthplace varchar(10),
@sname varchar(10), @ssex char(2),
@birthday varchar(20), @symbol
varchar(8),
@homeaddr varchar(20), @postcode int,
//输入需要插入的学生所有信息
出口参数:无
CREATE PROCEDURE insertstudent//建立插入学生信息的存储过程
@sno varchar(10), @id varchar(20),
@intime varchar(20), @birthplace
varchar(10),
@sname varchar(10), @ssex char(2),
@birthday varchar(20), @symbol varchar(8), @homeaddr varchar(20), @postcode int,
//定义存放插入学生信息的变量
AS
INSERT INTO student(sno,sname,ssex,birthday,symbol,id,intime,birthplace, homeaddr,postcode)//插入学生表对应的列名
VALUES (@sno varchar(10), @sname varchar(10), @ssex char(2),
@birthday varchar(20), @symbol varchar(8), @id varchar(20),
@intime varchar(20), @birthplace varchar(10),
@homeaddr varchar(20), @postcode int)//插入学生表对应列名值
GO
---------------------------------------------------------------------------------------------------------------------
存储过程名:教师信息插入
入口参数:@tno char(10), @tname
varchar(10),
@profess varchar(10), @dname
varchar(10),
@tel int, @tsex char(2), //输入需要插入的教师所有信息
出口参数:无
CREATE PROCEDURE insertteacher
@tno char(10), @tname varchar(10),
@profess varchar(10), @dname varchar(10),
@tel int, @tsex char(2), //定义存放输出教师信息的变量
AS
INSERT INTO teacher(tno,tname,tsex,profess,dname,tel)
//插入教师表对应的列名
VALUES (@tno char(10), @tname varchar(10), @tsex char(2),
@profess varchar(10), @dname varchar(10), @tel int,)
//插入教师表对应列名值
GO
---------------------------------------------------------------------------------------------------------------------
(3)数据删除
------------------------------------------------------------------
---------------------------------------------------
存储过程名:学生信息删除
入口参数:@sno varchar(10) //输入要删除学生的学号
出口参数:无
CREATE PROCEDURE deletestudent //建立删除学生信息的存储过程
@sno,
AS
SELECT @sno = sno FROM DELETED
//选择与输入学号相等的所有记录
DELETE FROM student //删除符合条件的记录
GO
---------------------------------------------------------------------------------------------------------------------
存储过程名:专业信息删除
入口参数:@mno varchar(10) //输入要删除专业的专业号
出口参数:无
CREATE PROCEDURE deletemajor //建立删除专业信息的存储过程
@ mname,
AS
SELECT @mname = mname FROM DELETED
//选择与输入专业号相等的所有记录
DELETE FROM major //删除符合条件的记录
GO
---------------------------------------------------------------------------------------------------------------------
(4)数据更新
---------------------------------------------------------------------------------------------------------------------
存储过程名:学生学号更新
入口参数: @no int, //输入要更新的学生学号
出口参数: @sno int, //输出更新后的学生学号CREATE PROCEDURE updatesno //建立更新学生学号的存储过程
@no int,
AS
SELECT @no = sno FROM INSERTED
//选择与输入学号相等的所有记录
UPDATE student
SET sno=@no //更新符合条件的记录
GO
---------------------------------------------------------------------------------------------------------------------
存储过程名:专业名更新
入口参数:@mname varchar(20), //输入要更新的专业名称
出口参数:@name varchar(20), //输出更新后的专业名称
CREATE PROCEDURE updatemname //建立更新专业名的存储过程
@name varchar(20),
AS
SELECT @mname = mname FROM INSERTED
//选择与输入学号相等的所有记录
UPDATE major
SET mname=@name //更新符合条件的记录
GO
心得与体会
SQL数据库课程设计是大连理工大学网络教育学院计算机应用技术专业开展的一项实践教学环节,是理论联系实践的纽带和桥梁,自己通过学习这个课程培养了我们综合运用所学知识解决实际问题的有效手段。