教师管理系统.docx
《教师管理系统.docx》由会员分享,可在线阅读,更多相关《教师管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
![教师管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/1/2dafe657-838c-43c6-aafc-a72a7a465f22/2dafe657-838c-43c6-aafc-a72a7a465f221.gif)
教师管理系统
教师管理系统-(数据库)(总27页)
数据库技术与应用(SQLServer2005)
课程设计
题目
教师管理系统
组员
王加铭
龚兴茂
班级
计科1002班
学院
信息科学与工程学院
指导教师
彭浩
2012年11月22日
任务分配表
第**组
学号
姓名
负责部分
成绩
组长
70
王加铭
完成需求分析、概念逻辑结构设计和运行、维护部分
组员
50
龚兴茂
实现数据库实施阶段和运行部分
指导老师点评:
摘要
随着计算机技术的飞速发展,计算机在各种单位机构管理中应用的普及,管理信息系统的开发在强调管理、强调信息的现代社会中也显得越来越重要。
因此,利用计算机支持单位高效率地完成人事管理的日常事务,是适应现代各种单位机构制度要求、推动各种单位机构人事管理走向科学化、规范化的必要条件。
本系统详细介绍了以SQLServer2005为语言编写教师管理信息系统的过程,从教师管理信息系统分析到总体设计与实现及测试的各个环节。
该系统具备完善的教师信息管理功能,教师基本信息的录入、修改、查询、删除模块,教师考勤信息,以及系统的维护功能。
为教师管理提供信息咨询,信息检索,信息存取等
服务,基本上能够满足高校对教师管理的需要。
数据库设计与实现的基本过程包括需求分析、概念结构设计、逻辑结构设计、数据库的实施阶段以及数据库的实施和维护等内容。
需求分析确定系统的数据需求和处理需求;概念结构设计通过对用户需求的综合、归纳和抽象,形成一个独立的概念模型;逻辑结构设计则将概念模型转换为具体的数据库管理系统所支持的数据模型;数据库的物理设计结合应用确定数据模型的存储结构和存取方式。
在这些工作完成之后,就可以建立数据库并开始调试运行了,在数据库的运行过程中必须对其进行维护——包括数据库的备份与恢复、性能分析与改进等等。
关键字:
概念结构:
逻辑结构;需求分析;关系模式;数据字典;物理实现;
系统设计;数据库系统
第一章绪论
背景分析
传统意义上的教师管理均采用手工书写的方式来完成,需要通过大量的人工操作来进行。
工作人员以纸、笔为处理工具,完全靠手工操作来记录、查询各种信息,不仅劳动强度较大、效率低,而且容易出错、数据不便更改,造成人力和财力资源的浪费。
随着社会的发展,计算机应用的日益普及,通过现代化的方式对教师信息进行管理已成为可能。
基于此,我希望能通过开发这一管理系统,由计算机代替人工执行一系列诸如教师信息输入、修改、查询、统计等操作,减轻工作人员的工作强度,提高工作效率,降低学校运行成本;同时,也对教师的科学化、规范化管理做出一点尝试。
开发设计思想
本系统开发设计思想:
(1)尽量采用学校现有软硬件环境,及先进的管理系统开发方案,从从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的。
(2)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改。
(3)系统应具备数据库维护功能,及时根据用户需求进行数据的查询、添加、删除、修改等操作。
系统功能分析
根据本《教师管理系统》主要是为了满足学校的需求而设计,注重操作简单易用、功能简洁但够用的特点,拟定系统应当具有如下功能:
(1)教师基本信息数据的输入:
操作人员可以在本系统中建立教师编号、教师姓名、性别、学历、职称、出生年月、地址等信息,作为教师查询的依据之一;
(2)教师基本信息数据的修改、删除:
学校中的教师人数和人员,包括职称、工资都会随着时间的迁移而发生变化。
因此,在系统中设置了增加记录、修改记录、删除记录等操作,教师管理人员可以随时对教师基本信息进行更新和修改;
第二章需求分析
随着中国高等教育的发展,学校的规模不断地扩大,教师数量也越来越多。
学校各系别的教师基本信息,授课信息及其他相关信息的信息处理量日益增大,手工管理不经成本高昂,容易出错,产生不必要的麻烦。
为了能够快速、方便地显示结果,并且有效的对有关教师授课、课程信息的各种信息进行统计与管理,我们设计了教师管理系统。
这个系统可以方便了学校对教师管理,降低了管理成本,是一个简洁而又高效的系统。
根据需求分析,本系统要实现以下基本功能:
教师授课课程基本信息实现了教师基本信息的添加、删除、修改以及查询。
教师学院信息表是对教师授课信息的添加、删除、修改以及查询,是对教师与学院关系信息的维护:
功能要求
1、管理员能对教师有关的各类数据进行输入、更新、添加、删除与查询,并且可以增加新的用户。
2、教师能对个人信息和他人信息进行查询。
3、教务人员能对教师所有的信息进行查询并可以打印教师档案报表。
4、用户可以修改自己的个人密码。
5、用户可以修改自己的个人信息。
流程模块图
根据需要完成的功能,设计出系统的总体功能模块。
本系统共分为2个功能模块:
基本信息管理、系统用户管理。
功能模块示意图如下:
图2-1教师管理系统功能模块示意图
数据流程顶层图
图2-2数据流顶层图
目标数据流程图
通过系统的需求分析和教师信息的输入,最终组合了教师的基本信息表,如图2-3目标数据流程图所示信息来源过程:
图2-3目标数据流程图
第三章数据库概念结构设计
根据需求分析的结果,我们准备为学校编写一个教师管理系统。
对该系统进行概念设计,依据我们的想法,该系统会分为三个实体,分别是教师实体、课程实体、学院实体,其中的联系是教师教授课程、教师所属学院。
E-R图如下:
实体属性图
概念模型是对现实世界的抽象和概述,它真实的反映了事物和事物之间的联系。
应用实体属性图可以描述某一组织的概念模型,下面根据需求分析设计教师管理信息系统的实体属性图。
教师基本信息实体
教师实体图中包括的属性有编号、姓名、性别、工资、职称和联系方式,这些属性阐明了教师基本信息实体,如图3-1-1所示。
图3-1教师信息实体图
课程基本信息实体
课程实体图中包括的属性有编号、课程名、学分和学时,这些属性阐明了课程基本信息实体,如图3-1-2所示。
图3-2课程信息实体图
学院基本信息实体
学院实体图中包括的属性有编号、名称、专业数和人数,这些属性阐明了学院基本信息实体,如图3-1-3所示。
图3-3学院信息实体图
授课基本信息实体
授课实体图中包括的属性有教师编号、课程编号、上课班级、学院名和上课时间,这些属性阐明了授课基本信息实体,如图3-1-4所示。
图3-4授课信息实体图
总体E-R图
所有局部实体属性图设计好之后,接下来把它们综合成一个全局概念结构,即总体E-R图。
在该总体E-R图中,有4个实体类型,4个联系类型,其实体属
性分别见各自的实体图。
该总体E-R图说明了实体与实体间的联系。
如图3-2所示。
图3-5教师管理信息系统完整E-R图
第四章数据库逻辑结构设计
关系模型
教师(教师编号,姓名,性别,联系方式,职称,工资)
课程(课程编号,课程名,学分,学时)
学院(学院编号,学院名,专业数,人数)
授课(教师编号,课程编号,上课班级,学院名,上课时间)
优化
模式优化就是应用模式规范化技术对设计出来的数据库模式进行规范化处理,其目的是减少乃至消除关系模式中存在的各种异常,改善完整性,一致性和存储概率。
1、教师关系模式优化:
教师关系模式的函数依赖集为:
F={教师编号→姓名,教师编号→性别,教师编号→联系方式,教师编号→职称,教师编号→工资}
教师关系模式规范化:
根据1NF定义和分析,教师关系模式的每个属性都是简单属性,所以
教师关系模式属于1NF。
根据2NF定义和分析,教师关系模式中不存在部分函数依赖,所以
教师关系模式属于2NF。
根据3NF定义和分析,教师关系模式中不存在传递函数依赖,所以
教师关系模式属于3NF。
2、课程关系模式优化:
课程关系模式的函数依赖集为:
F={课程编号→课程名,课程编号→学分,课程编号→学时}
课程关系模式规范化:
根据1NF定义和分析,课程关系模式的每个属性都是简单属性,所以课
程关系模式属于1NF。
根据2NF定义和分析,课程关系模式中不存在部分函数依赖,所以课程
关系模式属于2NF。
根据3NF定义和分析,课程关系模式中不存在传递函数依赖,所以课程
关系模式属于3NF。
3、学院关系模式优化:
选修关系模式的函数依赖集为:
F={学院编号→学院名,学院编号→专业数,学院编号→人数}
学院关系模式规范化:
根据1NF定义和分析,选修关系模式的每个属性都是简单属性,所以选
修关系模式属于1NF。
根据2NF定义和分析,选修关系模式中不存在部分函数依赖,所以选修
关系模式属于2NF。
根据3NF定义和分析,选修关系模式中不存在传递函数依赖,所以选修
关系模式属于3NF。
4、授课关系模式优化:
授课关系模式的函数依赖集为:
F={(教师编号,课程编号)→上课班级,(教师编号,课程编号)→学院名,
(教师编号,课程编号)→上课时间}
授课关系模式规范化:
根据1NF定义和分析,选修关系模式的每个属性都是简单属性,所以选
修关系模式属于1NF。
根据2NF定义和分析,选修关系模式中不存在部分函数依赖,所以选修
关系模式属于2NF。
根据3NF定义和分析,选修关系模式中不存在传递函数依赖,所以选修
关系模式属于3NF。
数据信息表
(1)通过关系模型和不断优化修改,得出如图4-1教师信息表:
列名
数据类型
可否为空
说明
教师编号
Varchar(10)
NOTNULL
教师编号(主键)
姓名
Varchar(10)
NOTNULL
教师姓名
性别
Char
(2)
NOTNULL
教师性别
联系方式
Varchar(10)
NULL
联系方式
职称
Varchar(10)
NOTNULL
教师职称
工资
Int(10)
NOTNULL
教师工资
图4-1教师信息表
(2)通过关系模型和不断优化修改,得出如图4-2课程信息表:
列名
数据类型
可否为空
说明
课程编号
Varchar(10)
NOTNULL
课程编号(主键)
课程名
Varchar(10)
NOTNULL
课程名称
学分
Int(4)
NOTNULL
学分
学时
Varchar(200)
NOTNULL
学时
图4-2课程信息表
(3)通过关系模型和不断优化修改,得出如图4-3学院信息表:
列名
数据类型
可否为空
说明
学院编号
Varchar(10)
NOTNULL
学院编号(主键)
学院名
Varchar(10)
NOTNULL
学院名称
专业数
Varchar(10)
NOTNULL
专业数
人数
Varchar(20)
NOTNULL
学院人数
图4-3学院信息表
(4)通过关系模型和不断优化修改,得出如图4-4授课信息表:
列名
数据类型
可否为空
说明
教师编号
Varchar(10)
NOTNULL
教师编号(主键)
课程编号
Varchar(10)
NOTNULL
课程编号(主键)
上课班级
Varchar(10)
NOTNULL
上课班级
学院名
Varchar(20)
NOTNULL
学院名称
上课时间
Varchar(10)
NOTNULL
上课学期
图4-4授课信息表
第五章数据库实施阶段
创建数据库
createdatabase教师管理
onprimary(--主文件
name=m,
filename='F:
\教师管理\',
size=5MB,
maxsize=100MB,
filegrowth=1MB
),
(--辅助文件
name=n,
filename='F:
\教师管理\',
size=5MB,
maxsize=50MB,
filegrowth=1MB
),
(--日志文件
name=l,
filename='F:
\教师管理\',
size=5MB,
maxsize=50MB,
filegrowth=1MB
)
(1)创建教师信息表:
createtable教师信息表
(
编号intprimarykey,
姓名varchar(10)notnull,
性别varchar(10),
工资int,
职称varchar(16),
联系方式int,
);
insertinto教师信息表values(10001,'张三','男',5000,'教授',2);
insertinto教师信息表values(10002,'李四','男',4000,'讲师',12);
insertinto教师信息表values(10003,'王好','女',3435,'助教',2131241);insertinto教师信息表values(10004,'陶于','女',4322,'副教授',);
insertinto教师信息表values(10005,'于吉','男',3412,'教授',);
查询表中信息,代码如下:
select*from教师信息表
执行后的结果显示如图所示:
(
图5-1教师信息表
(2)创建课程表:
createtable课程表
(编号intprimarykey,
课程名varchar(10),
学分int,
学时int,
);
insertinto课程表values(1001,'数据库',4,80);
insertinto课程表values(1002,'数据结构',4,60);
insertinto课程表values(1003,'大学英语',3,60);
insertinto课程表values(1004,'大学物理',2,40);
insertinto课程表values(1005,'高数',4,50);
查询表中信息,代码如下:
select*from课程表
执行后的结果显示如图所示:
图5-2课程表
(3)创建学院表:
createtable学院表
(
编号intprimarykey,
名称varchar(20),
专业数int,
人数int,
);
insertinto学院表values(1030,'管理学院',6,4000);
insertinto学院表values(1023,'信息科学与工程',8,5000);
insertinto学院表values(1040,'外语学院',7,4500);
insertinto学院表values(1899,'机械与工程学院',5,4523);
insertinto学院表values(1235,'中文学院',4,3800);
查询表中信息,代码如下:
select*from学院表
执行后的结果显示如图所示:
图5-3学院表
(4)创建授课表:
createtable授课表(
教师编号intprimarykey,
课程编号int,
上课班级varchar(10),
学院名varchar(20),
上课时间varchar(20),
);
insertinto授课表values(10001,1002,'计科','管理学院','10:
00-11:
40');
insertinto授课表values(10002,1001,'计科','信息科学与工程','8:
00-9:
40');insertinto授课表values(10005,1005,'计科','外语学院','15:
40-17:
20');
insertinto授课表values(10003,1004,'计科','管理学院','14:
00-15:
40');
insertinto授课表values(10004,1003,'计科','机械与工程学','10:
00-11:
40');
查询表中信息,代码如下:
select*from授课表
执行后的结果显示如图所示:
图5-4授课表
功能
查询功能
创建教师信息查询过程,实现对教师信息中教师教课的查询,即输入教师编号,查询该教师的所教的课程名和上课时间等信息:
(1)单表存储查询
创建教师信息查询存储过程,实现对教师信息中教师信息的查询。
例如查询编号10001的教师信息,即输入教师编号,则输出该教师相关信息等
ifexists(select*fromsysobjectswherename='教师信息查询'andtype='p')
dropprocedure教师信息查询
go
createproc教师信息查询
@b_编号int,@n_姓名varchar(10)output,
@s_性别varchar(10)output,@g_工资varchar(10)output,
@l_联系方式varchar(10)output,@t_职称Varchar(10)output
as
Select@b_编号=编号,@t_职称=职称,@n_姓名=姓名,
@g_工资=工资,@l_联系方式=联系方式,@s_性别=性别
from教师信息表
where编号=@b_编号
go
--查询教师信息
declare@n_姓名varchar(10),
@s_性别varchar(10),@g_工资varchar(10),
@l_联系方式varchar(10),@t_职称Varchar(10)
exec教师信息查询
'10001',@n_姓名output,
@s_性别output,@g_工资output,
@l_联系方式output,@t_职称output
select@n_姓名as姓名,
@s_性别as性别,@g_工资as工资,
@l_联系方式as联系方式,@t_职称as职称
结果如图5-5所示,经过与图5-1对比,却是其中的一项。
图5-5单表存储查询
(1)多表连接查询
即输入教师编号,通过连接多个数据基本表,查出该教师教的是哪一门课程,在哪个学部,什么时间上课等等。
<1>通过创建视图,简化查询操作,如下所示:
--视图
createviewview_教师教课
as
select教师信息表.姓名,课程表.课程名,授课表.上课班级,
授课表.学院名,授课表.上课时间
from教师信息表,课程表,授课表
where教师信息表.编号=授课表.教师编号and
授课表.课程编号=课程表.编号
--查询教师教课视图
select*fromview_教师教课
--删除视图
dropviewview_教师教课
所操作的结果如图5-6视图多表连接查询所示:
图5-6视图多表连接查询
<2>通过创建用户自定义函数来简化查询操作,如下所示:
例如查询教师编号10003的教师所教授的课程,通过多个表的连接查询,的出的信息过程如下所示:
--查询教师教课
createfunction教师教课(@t_noint)
returnstableasreturn(
select教师信息表.姓名,课程表.课程名,
授课表.上课班级,授课表.学院名,授课表.上课时间
from教师信息表,课程表,授课表
where教师信息表.编号=@t_noand教师信息表.编号=授课表.教师编号and
授课表.课程编号=课程表.编号
)
--执行函数查询
select姓名,课程名,上课班级,学院名,上课时间
from教师教课(10003)
dropfunction教师教课
通过和图5-6对比,可以清楚的知道图5-7所示的结果,如下图:
图5-7函数使用查询结果
添加功能
在教师信息表上创建教师信息添加存储过程,实现教师信息的添加:
ifexists(select*fromsysobjectswherename='教师信息表添加'andtype='p')
dropprocedure教师信息表添加
go
createprocedure教师信息表添加
@t_编号int,@t_姓名Varchar(10),@t_性别Varchar(10),
@t_工资int,@t_职称Varchar(16),@t_联系方式int
asinsertinto教师信息表
values(@t_编号,@t_姓名,@t_性别,@t_工资,@t_职称,@t_联系方式)
go
例如在图5-1教师信息表中添加10006,张1,男,4800,教授,2的信息。
--执行教师信息存储过程
exec教师信息表添加
10006,'张','男',4800,'教授',2
所得到的结果如图5-8添加信息所示:
图5-8添加信息
修改功能
创建教师信息修改存储过程,实现教师信息的修改:
ifexists(select*fromsysobjectswherename='教师信息修改'andtype='p')
dropprocedure教师信息修改
go
createproc教师信息修改
@t_编号Varchar(10),@t_姓名Varchar(10),@t_性别Char
(2),
@t_工资int,@t_联系方式Varchar(16),@t_职称Varchar(10)
as
update教师信息表
set编号=@t_编号,姓名=@t_姓名,性别=@t_性别,工资=@t_工资,联系方式=@t_联系方式,职称=@t_职称
where编号=@t_编号
go
例如在图5-1教师信息表中将“于吉”修改成“于高”和“男”修改成“女”其余的不变,如下所示:
--执行教师信息修改过程
exec教师信息修改10005,'于高','女',3412,'教授',
--修改后查询
select*
from教师信息表
所得到结果如图5-9修改信息所示:
图5-9修改信息
删除功能
创建教师信息删除存储过程,实现教师信息的删除:
ifexists(select*fromsysobjectswherename='教师信息删除'andtype='p')
dropprocedure教师信息删除
go
createprocedure教师信息删除@t_编号Varchar(10)
asdeletefrom教师信息表where编号=@t_编号
go
例