数据库实训教师管理系统.docx
《数据库实训教师管理系统.docx》由会员分享,可在线阅读,更多相关《数据库实训教师管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
数据库实训教师管理系统
郑州科技学院
课程设计说明书
课程名称:
__SQLSERVER课程设计
设计题目:
__教师管理系统
系(院):
__信息工程学院
专业班级:
_*****
姓名:
__***
学号:
__*****
指导教师:
***
成绩:
_
时间:
12月28日至1月3日共_1周
郑州科技学院
课程设计(论文)任务书
设计题目:
教师管理系统
专业班级:
*********
学号****姓名***
主要内容:
教师管理系统包括教师信息表、课程信息表、学院信息表和授课信息表。
并对这四个表进行统一的管理,本系统以此作为开发的目标,用以减轻教师管理人员的负担。
用户分为系统管理员和普通用户两种身份。
需要通过用户名和密码进入,系统管理员登录后,可以查看所有信息,并且可以对用户进行添加、修改密码、删除等操作。
普通用户只能进入课程管理和教师信息管理。
基本要求:
本课题是设计教师管理系统,实现添加、查询、修改、删除等功能。
从界面上输入教师姓名,可以查询教师的基本信息和课程信息,不存在的数据,输出提示内容。
通过窗体操作可浏览、删除、添加、修改教师的相关数据。
完成期限:
2015年1月3日
指导教师签名:
评审小组负责人签名:
1.前言
1.1系统背景
教师信息管理系统是一所院校在各种信息管理中的一部分,对于学校管理者来说是很重要的,所以所设计的系统应该能为管理者提供教师的基本信息管理手段和一些方便的查询方式。
在过去,计算机不是很普及和计算机应用性不高的年代,人们使用人工的方法管理各式各样的档案,这种管理方式存在着很多缺点:
效率底,保密性差,会产生大量的文件和数据,给查找,更新和维护信息都带来了相当大的困难。
随着科学技术的不断发展,计算机科学日益成熟,其强大的计算功能已经被人们深刻地认识到,计算机发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对教师信息进行管理,具有人工方式所无法比拟的优越性。
如,查找方便,可靠性高,存储容量大,保密性好,寿命长,成本低,维护十分方便等,这些优点能够极大得提高工作的效率,这也是学校的科学化,现代化,正规化的一点体现。
1.2选题的理由和实际意义
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对教师信息进行管理,具有人工方式所无法比拟的优越性。
如,查找方便,可靠性高,存储容量大,保密性好,成本低,维护十分方便等,这些优点能够极大得提高工作的效率,这也是学校的科学化,现代化,正规化的一点体现。
教师信息管理系统开发主要包括数据库的建立和维护以及应用程序的开发两个方面。
要求建立起数据一致性和完整性强。
数据安全性好的库,要求应用程序功能完备,易使用等特点。
教师信息管理系统是一个教育单位不可缺少的部分,它的内容对于决策者和管理者来说都比较重要,所以教师信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
用户的需求具体体现在对各种信息的提供、保存、更新和查询,这就要求数据库能充分满足各种数据的输出和输入。
因此,为了适应现代教育管理的要求,进一步完善教师信息辅助计算机管理,我作为一个计算机系的本科生,开发这样一套管理软件成为很有必要的事情,在下面的各章中我将以开发一套教师信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
本课题是设计任课教师信息管理系统,实现输入、查询、显示、维护等功能。
从界面上输入教师姓名,输出教师的基本信息和任课情况,不存在的数据,要输出提示内容。
从窗体中输入教师姓名,可以录入教师的上课数据,并计算教师的工作量。
通过窗体操作可浏览、删除、添加教师的相关数据。
关键字:
面向对象,数据一致性,信息管理系统,数据库,SQLServer。
2.需求分析
近年来,教育带来的发展对学校管理提出了更高的要求。
传统的管理机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代,建设一套具有行业特色的管理系统,以适应学校的总体发展战略。
教师信息管理系统正是针对这一类问题而开发出来的管理软件。
任课教师信息管理系统开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立数据一致性和完整性强,数据安全性好的数据库.而对于后者则要求应用程序功能完备,系统优点:
检索迅速、查找方便、可靠性高、存储量大、安全性高、成本低等。
这些优点能够极大地提高教师信息管理的效率,也是教育的科学化、正规化管理、易使用等特点。
2.1用户对系统要求
用户的需求具体体现在对各种信息的提供、保存、更新和查询,这就要求数据库能充分满足各种数据的输出和输入。
通过对上述系统功能的分析,针对教师信息管理系统的需求总结出下列需求信息:
①使用友好的全屏幕用户界面,菜单驱动,多窗口。
②数据维护功能,通过窗体实现录入、添加和修改所有表的内容。
③查询统计功能,设置多种查询方式,实现对教师的任课情况、工作量统计情况等进行查询。
④系统维护功能,适当的加入系统密码管理、数据备份(已出现数据库备份界面)等帮助功能。
2.2功能介绍
一位教师可以教多门课程,并且一门课可以由多名老师来教。
根据本《教师管理系统》主要是为了满足学校的需求而设计,注重操作简单易用、功能简洁但够用的特点,拟定系统应当具有如下功能:
(1)教师基本信息数据的输入:
操作人员可以在本系统中建立教师编号、教师姓名、性别、学历、职称、出生年月、地址等信息,作为教师查询的依据之一;
(2)教师基本信息数据的修改、删除:
学校中的教师人数和人员,包括职称、工资都会随着时间的迁移而发生变化。
因此,在系统中设置了增加记录、修改记录、删除记录等操作,教师管理人员可以随时对教师基本信息进行更新和修改;
(3)用户分系统管理者和一般操作员用户;一个学校包含多个学院。
一个学院包括多位教师。
3.系统设计
3.1定义
(1)系统名称:
教师管理系统
(2)数据库管理软件:
MicrosoftSQLServer2005
(3)数据库设计采用软件:
MicrosoftOfficeVersion2003
(4)运行平台:
windows2000/xp/linux
(5)数据库的安全性设计:
3.2系统总体结构设计图
图1结构设计图
3.3总体E-R图
根据需求分析的结果,我们准备为学校编写一个教师管理系统。
对该系统进行概念设计,依据我们的想法,该系统会分为三个实体,分别是教师实体、课程实体、学院实体,其中的联系是教师教授课程、教师所属学院。
概念模型是对现实世界的抽象和概述,它真实的反映了事物和事物之间的联系。
应用实体属性图可以描述某一组织的概念模型,下面根据需求分析设计教师管理信息系统的实体属性图。
在该总体E-R图中,有3个实体类型,1个联系类型,其实体属性分别见各自的实体图。
该总体E-R图说明了实体与实体间的联系。
如图2所示。
图2教师管理系统完整E-R图
3.4数据表的设计
(1)通过关系模型和不断优化修改,得出如图3教师信息表:
列名
数据类型
可否为空
说明
教师编号
Varchar(10)
NOTNULL
教师编号(主键)
姓名
Varchar(10)
NOTNULL
教师姓名
性别
Char
(2)
NOTNULL
教师性别
联系方式
Varchar(10)
NULL
联系方式
职称
Varchar(10)
NOTNULL
教师职称
工资
Int(10)
NOTNULL
教师工资
图3教师信息表
(2)通过关系模型和不断优化修改,得出如图4课程信息表:
列名
数据类型
可否为空
说明
课程编号
Varchar(10)
NOTNULL
课程编号(主键)
课程名
Varchar(10)
NOTNULL
课程名称
学分
Int(4)
NOTNULL
学分
学时
Varchar(200)
NOTNULL
学时
图4课程信息表
(3)通过关系模型和不断优化修改,得出如图5学院信息表:
列名
数据类型
可否为空
说明
学院编号
Varchar(10)
NOTNULL
学院编号(主键)
学院名
Varchar(10)
NOTNULL
学院名称
专业数
Varchar(10)
NOTNULL
专业数
人数
Varchar(20)
NOTNULL
学院人数
图5学院信息表
(4)通过关系模型和不断优化修改,得出如图6授课信息表:
列名
数据类型
可否为空
说明
教师编号
Varchar(10)
NOTNULL
教师编号(主键)
课程编号
Varchar(10)
NOTNULL
课程编号(主键)
上课班级
Varchar(10)
NOTNULL
上课班级
学院名
Varchar(20)
NOTNULL
学院名称
上课时间
Varchar(10)
NOTNULL
上课学期
图6授课信息表
3.5用例列举
3.5.1创建数据库
createdatabaseteacherteaching
(1)创建教师信息表
createtableteaching--教师信息表
(
tidintprimarykey,
tnamevarchar(10)notnull,
tsexvarchar(10),
tsalaryint,
tgradevarchar(16),
tphonenumberint,
);
insertintoteachingvalues(10001,'张三','男',9000,'教授',1320001);
insertintoteachingvalues(10002,'李四','男',6000,'讲师',1320002);
insertintoteachingvalues(10003,'王五','女',3000,'助教',1320003);
insertintoteachingvalues(10004,'赵六','女',7000,'副教授',1320004);
insertintoteachingvalues(10005,'钱七','男',9000,'教授',1320005);
查询表中信息,代码如下:
select*fromteaching
执行后的结果显示如图所示:
图7
(2)创建课程表
createtablecourse--课程表
(
cnumberintprimarykey,
cnamevarchar(10),
cgradeint,
cperiodint,
);
insertintocoursevalues(1001,'数据库',4,80);
insertintocoursevalues(1002,'数据结构',4,60);
insertintocoursevalues(1003,'大学英语',3,60);
insertintocoursevalues(1004,'大学物理',2,40);
insertintocoursevalues(1005,'高数',4,50);
查询表中信息,代码如下:
select*fromteaching
执行后的结果显示如图所示:
图8
(3)创建学院表
createtabledepartment--学院表
(
didintprimarykey,--学员编号
dnamevarchar(20),--学院名称
dspecialityint,--专业个数
dpeopleint,--人数
);
insertintodepartmentvalues(1030,'管理学院',6,1000);
insertintodepartmentvalues(1023,'信息科学与工程',8,1000);
insertintodepartmentvalues(1040,'外语学院',7,1500);
insertintodepartmentvalues(1899,'机械与工程学院',5,1200);
insertintodepartmentvalues(1235,'中文学院',4,1300);
查询表中信息,代码如下:
select*fromteaching
执行后的结果显示如图所示:
图9
(4)创建教师任课表
createtabletc--授课表
(
tidintprimarykey,--教师编号
cnumberint,--课程编号
classvarchar(10),--上课班级
dnamevarchar(20),--学院名
timevarchar(20),--上课时间
);
insertintotcvalues(10001,1002,'工商管理','管理学院','10:
00-11:
40');
insertintotcvalues(10002,1001,'信息工程','信息科学与工程','8:
00-9:
40');
insertintotcvalues(10005,1005,'英语','外语学院','15:
40-17:
20');
insertintotcvalues(10003,1004,'工程管理','管理学院','14:
00-15:
40');
insertintotcvalues(10004,1003,'机械工程','机械与工程学','10:
00-11:
40');
图10
3.5.2建立索引
Createuniqueindexteacheridonteaching(tid)
--在教师表中按照教师编号建立索引
Createuniqueindexcourseidoncourse(cnumber)
--在课程表中以课程编号建立索引
Createuniqueindexdepartmentidondepartment(didASC,dpeopleDESC)
--在学院表中以学员编号升序,学员人数降序建立索引
3.5.3约束条件
Altertableteaching--在表teaching增加一个性别的约束
addconstraintc3check(tsexin('男','女'))
3.5.4用户和授权
Createroleu1--创建一个用户u1
创建用户
Grantselect,insert,update,delete--给用户u1授予查询,更新,删除教师信息表的权利
Onteaching
Tou1
授权
Revokedelete--收回用户对教师信息表的删除的权利
Onteaching
Fromu1
收回授权
3.5.5查询功能
通过select语句进行查询。
(1)查询全体教师信息
Select*
Fromteaching
图11
(2)例如查询编号为10001的教师信息。
Select*
Fromteaching
Wheretid=10001
图12
(3)统计一个教师的工作量
selectsum(cperiod)
fromcourse,teaching,tc
whereteaching.tid=tc.tidandumber=umberandteaching.tid=10001
图13
3.5.6更新功能
(1)修改
Updateteaching
Settset='女'
Wheretid=10006
Select*
Fromteaching
图14
(2)插入
insertintoteachingvalues(10006,'孙八','男'7500,'教授',1320006);
select**
fromteaching
图15
(3)删除
delete
fromteaching
wheretid=10001
select*fromteaching
图16
3.5.7查询、触发器、视图
(1)触发器
定义一个触发器,为教师信息表定义完整性规则“助教的工资不得低于4000元,如果低于4000元,自动改为4000元。
CreateTRIGGERinsert_or_update_tsalary--创建触发器
onteaching
afterinsert,update
as
declare@saint
declare@grvarchar(16)
select@sa=tsalaryfrominserted
select@gr=tgradefrominserted
if(@sa<4000and@gr='助教')
begin
updateteaching
settsalary=4000
wheretgrade='助教'
end
dropTRIGGERinsert_or_update_tsalary--删除触发器
updateteaching--更新一个助教的工资数据监测是否触发器成功执行
settsalary=2000
wheretgrade='助教'
图17
在触发器成功执行之后,数据库的数据又被触发器强制改变了,更新的助教工资是2000元,但是触发器成功执行之后,助教的工资被改变为要求的最低4000元。
(2)视图与查询
多表连接查询
即输入教师编号,通过连接多个数据基本表,查出该教师教的是哪一门课程,在哪个学部,什么时间上课等等。
通过创建视图,简化查询操作,如下所示:
createviewview_teaching--创建教师教课的视图
as
selectteaching.tname,ame,tc.class,
tc.dname,tc.time
fromteaching,course,tc
whereteaching.tid=tc.tidandumber=umber
select*fromview_teaching
--查询教师授课视图
dropviewview_teaching
--删除视图
所操作的结果如图18视图多表连接查询所示:
图18
4.总结
数据库是一个存储数据的大仓库,它不但包括数据,还包括数据间的各种关系,以及各种操作。
要用数据库,我们首先要创建一个数据库,让后往里面放东西(数据库文件和事物日志文件等),数据库里的东西不是一成不变的,这就要求对数据库进行管理,比如数据的结构、文件和文件组修改、数据库的删除等,数据是以表的形式存在的数据库中,表其实就是一种关系,处理数据往往就是对表的一些操作,包括对表的增删改查。
在数据库操作中,有很多时候不是对某一个表进行数据库操作,通常还会把其他表的字段的值也传递过来。
不过这连个表不是没有关系的,通常通过索引或者健关联起来,通过查询语句,我们得到一个结果集,因为关系型数据中是以集合的形式对数据进行处理,当对单条记录进行操作时就不太方便了,这时就用到了游标,它包含一个结果集和一个指针,可以从包含多个数据记录的结果集中每次提取一条记录进行操作。
当用户只需要从表中提取部分内容时,可以通过创建视图,视图也是一个类似于表的对象,但它与表有着本质的区别:
视图是在引用存储在数据库中的查询语句时动态创建的,是从一个或多个数据表中派生出来的虚拟表,视图本身不存储数据。
查询是数据库中最常见的操作,使用索引可以大大提高数据库的检索速度,使用索引不仅可以检索出一个表中的记录,还可以通过约束字段,检索出相关联表中需要的记录。
在数据库管理系统中,维护数据完整性是非常重要的,数据库中通过事务机制、创建约束、缺省值和规则及使用触发器等来实现,触发器是一种特殊的存储过程,但它是当用户修改表中的数据时自动执行的,而存储过程须通过调用机制,这样当对一个表进行某种操作时,便可以同时对级联的表做相关操作,保证数据同步更改,实现数据的完整性。
实训是个人综合能力的检验。
要想学好计算机课程,除了计算机基础知识功底深厚外,还需有一定的实践动手能力,操作能力,应付突发故障的能力,还要对常用软件都能熟练操作。
作为一名快要毕业的大三学生,还要求有较强的表达能力,同时还要学会灵活运用学到的知识。
另外,还必须有较强的应变能力、独立思考的能力和坚强的毅力。
这次实训是对我学习上的一次大检验。
因为计算机专业的特殊性,如果我们只会一些理论知识,那么我们就不是个合格的计算机专业学生。
通过这次实践的操作,让我对课堂上所学到的东西有了更深的认识,同时也让我找到了找到了学习的乐趣。
5.读书笔记
通过这次的课程设计,使我对这学期学的知识有了更为全面的认识。
在这个学期数据库的学习期间,我已经了解了数据库的大部分的操作代码和一些基本的对数据库的操作,但是由于接触的时间不是太久,所以对数据库了解还是不大全面,通过此次数据库的课程设计,我从中发现了自己的许多不足,也得以让我提高的数据库方面的知识能力,从而达到了学与用的结合,增强了对数据库应用方面的理解,对自己今后参与开发数据库系统积累了不少经验,让我受益匪浅。
通过和同学的共同努力,我们组设计出了一个基于教师管理的数据库系统,这个系统可以更好、更快、更有效地管理查询教师的信息。
在这个系统中,我们主要实现了的功能有能够完成教师及其相关信息的输入、修改、插入、删除等工作,可以按照特定的信息进行查找等。
在对课题分析的过程中,对数据库设计理念及思想上有更高的认识,从分析,到概念设计和逻辑设计,E-R图的绘制,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,将SQL语的查询语句运用在实处,增强了自己在数据库中应用SQL语言的理解,其中包括查询、插入、删除、修改,特别是对多表查询,表和表之间的联系有了全新的认识。
在上机的时候,我们会有做的得心应手的时候,也有磕磕绊绊的时候。
其实那些磕绊的地方往往就是我们上课没有听懂的地方,所以这就要求我们的重视,及时向老师寻求答案。
实习结束后,我逐渐认识到了自己所掌握的知识远远不够,我还需进一步的努力学习。
同时我发现理论和实践之间还是存在一定的差距,要把理论知识灵活运用于实践才是最好的,因此我也希望学校能多给我们提供一些实践的机会。
为适应时代的发展,需要尽可能地学习更多的知识和能力,学会创新求变,以适应社会的需要,那就更需要掌握较全面的计算机知识,计算机知识更新是很快的,只有不断地学习,才能掌握最新的知识。
因此,在以后的学习工作中,我们应该继续学习、操作,熟练运用这些知识,不断完善和充实自己,争取做一个合格的当代大学生,将来做一名对社会有用的人。
参考文献
[1]郑阿奇《SQLSever(第4版)》电子工业出版社
[