人事管理系统设计数据库原理与应用.docx
《人事管理系统设计数据库原理与应用.docx》由会员分享,可在线阅读,更多相关《人事管理系统设计数据库原理与应用.docx(40页珍藏版)》请在冰点文库上搜索。
人事管理系统设计数据库原理与应用
课程设计报告
课程设计名称:
数据库原理与应用
系部:
二系
学生姓名:
韦敏
班级:
10信息与计算科学
学号:
20100202111
成绩:
指导教师:
陈林
开课时间:
2012-2013学年1学期
一.设计题目:
人事管理系统
二.主要内容:
人事管理系统主要是针对企业单位内部组织结构和员工信息的管理,本系统的主要功能为:
员工信息管理,部门信息管理,系统用户管理,故我们需要实现如下功能的建设:
1)员工信息管理:
每个部门的员工各种信息的添加,修改,删除,包括员工的基本信息、学历信息、职称等信息,以及查看符合各种条件的员工部分与总体信息;
2)部门信息管理:
查看部门信息,包括部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能。
3)系统用户管理:
查看系统用户信息,包括用户名和用户类型(系统管理员和普通用户)等信息;
三.具体要求
1.课程设计的内容独立自主完成,课程设计报告内容完整、格式规范、排版整洁美观;
2.后台数据库采用MSSQLSERVER2005,前台界面语言不限,编写的程序代码,须有较详细的注释说明;
四.进度安排
课程设计安排:
16周
星期一讲解课程设计的内容,安排每一天的具体任务,分配并熟悉题目;
星期二需求分析:
给出系统的功能需求、性能需求,并绘制DFD和DD;
星期三概念结构设计:
绘制实体属性图(可选),局部ER图和全局ER图;
星期四逻辑结构设计:
转换、优化;
星期五逻辑结构设计:
外模式设计
17周
星期一物理结构设计及数据库实施;
星期二应用程序编制调试、整理课程设计报告;
星期三应用程序编制调试、整理课程设计报告,并检查;
星期四根据反馈结果修改课程设计报告;
星期五课程设计答辩,交材料;
上交的材料:
课程设计的电子稿、打印稿、源码(SQL代码和程序代码)
五.成绩评定
考核方法:
现场验收(占50%),课程设计报告(占50%)。
考核内容:
学习态度(出勤情况,平时表现等)、方案合理性、各阶段的图表与程序编制质量、设计报告质量。
成绩评定:
优,良,中,及格,不及格。
特别说明:
(1)如发现抄袭,按照不及格处理。
(2)材料不齐的,考核等级降一级。
电子稿件以压缩文件的形式上交,压缩命名为:
11位学号+姓名
正文撰写包含的内容:
1、需求分析
2、概念结构设计
3、逻辑结构设计
4、物理结构设计
5、数据库实施及应用程序编制
6、心得体会
7、参考资料
正文:
题目:
人事管理系统
第一章系统概述
本文按照数据库系统设计的基本步骤,采取了事先进行需求分析,得出对应的数据流图和数据字典,再进行概念结构设计,逻辑结构设计和物理结构设计,最后通过运行和测试,成功完成了一个小型的人事管理系统的设计。
最终,在SQLSEVER2005上运行的人事管理系统,可以实现:
员工各种信息的管理,员工所在部门信息的相关管理。
第二章需求分析
2.1需求分析
通过对当前人事管理系统的相关调查,确定所做的人事管理系统功能的基本要求如下:
Ø员工各种信息的输入及修改,包括员工的基本信息、学历信息、职称等信息;
Ø员工所在的部门信息,包括部门名称、部门经理等信息;
Ø按照一定的条件,查询、统计符合条件的员工信息;包括每个员工详细信息的查询、按学历查询、按部门查询等,包括按学历、部门、参加工作时间等统计各自的员工信息;
Ø对于转出、辞职、辞退、退休员工信息的删除,并更新相应部门的统计信息。
2.2功能分析
人事管理系统主要是针对企业单位内部组织结构和员工信息的管理,本系统的主要功能为:
员工信息管理,部门信息管理,系统用户管理,故我们需要实现如下功能的建设:
4)员工信息管理:
每个部门的员工各种信息的添加,修改,删除,包括员工的基本信息、学历信息、职称等信息,以及查看符合各种条件的员工部分与总体信息;
5)部门信息管理:
查看部门信息,包括部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能。
6)系统用户管理:
查看系统用户信息,包括用户名和用户类型(系统管理员和普通用户)等信息;
2.3系统数据流程图
数据流图描述的是系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。
因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也能容易理解。
数据流图里的符号也极为简单,只有四个:
1)外部实体;2)处理;3)连线;4)数据存储。
这四个符号也有两种。
一种是Yourdon&Coad法,另一种是Gane&Sarson法。
只是略有不同而已。
在这篇论文中,我们使用MicrosoftVisio,故使用Gane&Sarson法。
所对应的四个符号如图2.1所示:
图2.1
经过详细调查,了解到企业单位人事管理系统的业务流程,在此基础上,得出系统的逻辑模型,并用数据流图表示,情况如图2.2,图2.3所示:
图2.2顶层数据流图
图2.30层数据流图
在上述人事管理系统数据流图中,员工档案管理功能还没具体实现,主要实现功能如图2.4所示:
图2.41层数据流图
综合0层数据流,得出最终的数据流图,如图2.5所示,
图2.5总数据流图
2.4系统数据字典
人事管理系统数据流程图中,数据信息和处理过程还需要通过数据字典来描述。
在本文的数据字典中,主要对数据流图中的数据项、数据结构、数据流、数据存储和处理过程进行说明。
2.4.1数据项
序号:
1
名称:
_name
含义:
员工姓名
值域:
varchar(10)
序号:
2
名称:
_no
含义:
员工编号
值域:
varchar(5)
序号:
3
名称:
_sex
含义:
员工性别
值域:
varchar
(2)
序号:
4
名称:
_callnumber
含义:
员工联系电话
类型:
int
序号:
5
名称:
_education
含义:
员工学历
值域:
varchar(10)
序号:
6
名称:
_position
含义:
员工职称
值域:
varchar(10)
序号:
7
名称:
dpt_no
含义:
员工所在部门编号
值域:
varchar(4)
序号:
8
名称:
_worktime
含义:
员工参加工作时间
值域:
varchar(20)
序号:
9
名称:
_infor_change
含义:
工作变动
值域:
varchar(4)
序号:
10
名称:
dpt_name
含义:
部门名称
值域:
varchar(20)
序号:
11
名称:
dpt_manager
含义:
部门经理编号
值域:
varchar(5)
序号:
12
名称:
dpt_no
含义:
部门编号
值域:
varchar(4)
序号:
13
名称:
dpt_count
含义:
部门人数
类型:
int
序号:
14
名称:
dpt__abstract
含义:
部门简介
值域:
varchar(200)
序号:
17
名称:
users_name
含义:
用户名
值域:
varchar(10)
序号:
18
名称:
users_pwd
含义:
用户密码
值域:
varchar(16)
序号:
19
名称:
_authority
含义:
用户权限
值域:
int
2.4.2数据结构
序号:
1
名称:
员工信息表
组成:
_name,_no,_sex,_callnumber,_education,_position,dpt_no,_worktime,_infor_change,
序号:
2
名称:
部门信息表
组成:
dpt_name,dpt_manager,dpt_no,dpt_count,dpt__abstract
序号:
3
名称:
登录信息表
组成:
users_name,users_pwd,_authority
2.4.3数据流
1)数据流名称:
员工情况
位置:
员工→P1.1,员工→P1.2。
定义:
员工情况=姓名+性别+编号+学历+联系电话+所在部门+参加工作时间+职称。
数据流量:
根据公司的员工具体录用情况来确定。
说明:
要对每一位被聘用的新员工进行唯一编号。
2)数据流名称:
员工变动情况
位置:
P1.5→D1,P1.5→D6。
定义:
员工变动情况=员工号+变动前职位+变动原因+调动日期。
数据流量:
根据公司的具体情况来确定。
说明:
员工号可以唯一确定一个员工变动情况。
3)数据流名称:
用户情况
位置:
用户→P3
定义:
用户身份=员工编号
数据流量:
根据公司的具体情况来确定。
说明:
要对每一名用户建立唯一的账号。
4)数据流名称:
用户身份
位置:
安全管理→{P1.1,P1.2,P1.3,P1.4,P1.5,P2}
定义:
用户身份=[管理员|员工]
数据流量:
根据公司的具体情况来确定。
说明:
不同的用户身份对应不同的操作权限,对应着不同的安全级别。
5)数据流名称:
部门情况
位置:
部门→部门情况
定义:
部门情况=部门编号+部门名称+部门人数+部门简介+部门经理
数据流量:
根据公司的具体情况来确定。
说明:
部门编号是主码。
2.4.4数据存储
1)D1员工档案
输入:
P1.1,P1.2,P1.5
输出:
P1.2,P1.3,P1.4,P1.5
数据结构:
员工档案=姓名+性别+学历+员工编号+联系电话+所在部门编号+参加工作时间+职称+工作变动。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以随机检索为主。
说明:
员工编号具有唯一性和非空性;性别只能是男或女;主码是员工编号。
2)D2部门记录
输入:
P2
输出:
P2
数据结构:
部门记录=部门编号+部门名称+部门人数+部门简介+部门经理。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以检索操作为主。
说明:
主码设为部门号。
3)D3用户记录
输入:
P3
输出:
P3
数据结构:
用户记录=员工编号+管理员编号+密码+权限
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为管理员编号。
4)D4员工相应信息
输入:
P1.4
输出:
P4
数据结构:
员工相应信息=员工编号+学历+联系电话+所在部门编号+参加工作时间+职称+工作变动。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为员工编号。
5)D5员工信息更新
输入:
P1.5
输出:
P2
数据结构:
员工信息更新=员工编号+职称+工作变动+所在部门编号。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为员工编号。
2.4.5数据处理
1)处理过程编号:
P1.1
处理过程名:
员工信息录入
输入:
员工
输出:
员工档案
处理说明:
根据员工基本信息员工进行信息录入,录入的结果存放到员工档案中。
2)处理过程编号:
P1.2
处理过程名:
员工信息修改
输入:
员工,员工档案
输出:
员工档案
处理说明:
根据员工基本信息以及员工档案进行信息修改,修改的结果存放到员工档案中。
3)处理过程编号:
P1.3
处理过程名:
员工信息查看
输入:
员工档案
输出:
员工档案
4)处理过程编号:
P1.4
处理过程名:
员工信息查询
输入:
员工档案
输出:
员工相应信息
5)处理过程编号:
P1.5
处理过程名:
员工信息删除
输入:
员工档案
输出:
员工信息更新
6)处理过程编号:
P2
处理过程名:
部门档案管理
输入:
D5,部门信息
输出:
部门记录
7)处理过程编号:
P3
处理过程名:
安全管理
输入:
用户情况
输出:
用户记录
第三章概念结构设计
根据系统需求分析,可以得出人事管理系统数据库的概念模型(信息模型),各类E-R图绘制如下:
图3.1员工实体图
图3.2部门实体图
图3.3用户实体图
第四章逻辑结构设计
4.1E-R模型向关系模型的转换
将人事管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
员工(姓名,性别,员工编号,联系电话,学历,职称,所在部门编号,参加工作时间,工作变动),其中,员工编号是主码,所在部门编号为引用“部门”关系模式的外码。
部门(名称,经理,部门编号,简介,员工人数),其中,部门编号是主码。
4.2数据模型的优化
员工关系模式中,各个属性间函数依赖关系:
员工编号→姓名
员工编号→联系电话
员工编号→学历
员工编号→职称
员工编号→所在部门编号
员工编号→参加工作时间
员工编号→工作变动
此关系属于第三范式。
部门关系模式中,各个属性间函数依赖关系:
部门编号→名称
部门编号→部门简介
部门编号→部门人数
部门编号→部门经理
此关系属于第三范式。
用户关系模式中,各个属性间函数依赖关系:
用户名→用户密码
用户名→权限
此关系属于第三范式。
4.3设计外模式
员工关系模式:
员工(姓名,性别,员工编号,联系电话,学历,职称,所在部门编号,参加工作时间,工作变动)。
在此关系模式上建立了四个视图:
员工1(员工编号,姓名,学历)
员工2(员工编号,姓名,部门编号)
员工3(员工编号,姓名,参加工作时间)
员工4(员工编号,姓名,工作变动)
第五章数据库结构的物理结构设计
数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。
所谓的“合理”主要有两个含义:
一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。
主要体现在后者。
数据库的物理结构设计大致包括:
确定数据的存取方法、确定数据的存储结构。
5.1确定数据的存取方法
确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库中的数据。
现行的DBMS一般都提供了多种存取方法,如索引法、HASH法等。
其中,最常用的是索引法。
本课程设计也采用索引的存取方法。
建立索引如下:
(1)对表员工在属性列员工编号建立非聚簇索引
(2)对表部门在属性列部门编号建立非聚簇索引
5.2确定数据的存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。
将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。
所以,系统应将日志文件和数据文件存放在不同磁盘上。
第六章数据库行为设计
到目前为止,我们详细讨论了数据库的结构设计问题,下面我们进行数据库的行为设计。
数据库行为设计一般分为如下几个步骤:
1)功能分析
2)功能设计
3)事务设计
4)应用程序设计与实现
6.1功能设计
将人事管理系统的功能需求转化为总功能结构图,(此处不分管理员和员工)如下所示,
图6.1总功能结构图
第七章数据库实施及应用程序编制
数据库实施阶段包括两项重要工作,一是加载数据,二是调试和运行程序。
下面是具体实施。
7.1数据库实施
7.1.1加载数据如下所示:
图7.1部门信息
图7.2用户信息
7.1.2调试和运行程序如下:
进入系统,如图7.3所示:
图7.3登陆界面
用户登录:
输入用户名和密码,档案表中数据为:
用户名as,密码:
as,权限为管理员,当输入有误时,情况如图7.4:
如图7.4
输入正确时,如图7.5:
图7.5用户登陆成功
单击确定,进入系统,拥有管理员权限,对各项需求功能实现如图7.6所示:
(a)(b)
(c)(d)
图7.6主界面功能图
7.1.2.1员工信息管理功能
每个部门的员工各种信息的添加,修改,删除,包括员工的基本信息、学历信息、职称等信息,以及查看符合各种条件的员工部分与总体信息;需求实现如下:
添加员工,如图7.7所示:
(a)(b)
图7.7添加员工窗口
点击员工信息查看,如图7.8所示:
(a)(b)
图7.8员工信息查看
继续添加,若添加员工编号和已有的员工重复,则弹出提示框,如图7.9所示:
图7.9员工信息插入不成功
修改之后就可以添加成功,如图7.10所示:
图7.10员工信息插入成功
查看员工信息,如图7.11所示:
(a)(b)
图7.11员工信息查看
员工信息修改功能,如图7.12所示:
图7.12员工修改
检查员工信息是否修改成功,如图7.13所示:
(a)(b)(c)(d)
图7.13员工信息
说明已修改成功;
员工信息删除功能,如图7.14所示,弹出窗口,员工变动情况选择无,转出,将转出进行删除:
(a)(b)
(c)
(d)
图7.14员工删除过程
员工信息按条件查询,点击:
详细,教育学历,工作时间,以及工作变动,如图7.15所示:
(a)
(b)
(c)
(d)
(e)
(f)
(g)
图7.16员工信息查询
部门管理:
添加部门信息,包括部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能,演示情况如下:
(部门中首先有一个经理,员工人数初值为1,部门信息更新后,员工人数可做相应修改)
点击信息查看和统计,如图7.17所示:
图7.17部门信息
点击部门信息更新,进入更新界面,选择部门,进行更新,完成后,点击“请点击查看所有部门”按钮,即可看到更新后的数据,如图7.18所示:
(a)(b)
(c)
图7.18员工信息更新
系统用户管理:
查看系统用户信息,包括用户名和用户类型(系统管理员和普通用户)等信息;
点击用户档案查询,如图7.19所示:
(a)(b)
图7.19用户档案查询
以上即所有功能的实现演示。
点击退出按钮,离开人事管理系统,如图7.20所示:
图7.20用户离开主界面
7.2应用程序编制
建立人事管理系统数据库,具体的SQL语句如下:
7.2.1数据库创建
createdatabasePMS
7.2.2基本表创建
建立员工表
usePMS
createtableemployee(
_namevarchar(10)notnull,
_novarchar(5)primarykeynotnull,
_sexvarchar
(2),
_callnumbervarchar(11),
dpt_novarchar(4),
_educationvarchar(10),
_positionvarchar(10),
_worktimedatetime,
infor_changevarchar(4),
foreignkey(dpt_no)referencesdepartment(dpt_no))
建立部门表
usePMS
createtabledepartment(
dpt_namevarchar(20),
dpt_managervarchar(5),
dpt_novarchar(4)primarykey,
dpt_countint,
dpt_abstractvarchar(200))
建立用户表
createtableUsers(
Users_namevarchar(10)primarykeynotnull,
Users_pwdvarchar(16),
_authorityint)
7.2.3视图编制
1)员工信息视图
createviewV_v1(_no,_name,_education)
as
select_no,_name,_education
fromemploye
2)员工部门信息视图
createviewv_v2(_no,_name,dpt_no)
as
select_no,_name,dpt_no
fromemployee
3)员工工作时间视图
createviewV_v3(_no,_name,_worktime)
as
select_no,_name,_worktime
fromemployee
4)员工工作信息视图
createviewV_v4(_no,_name,infor_change)
as
select_no,_name,infor_change
fromemployee
7.2.4存储过程成编制
1)员工信息查看
procedurepro_look
createprocedurepro_look
@nochar(5)
as
select*fromemployee
where_no=@no
2)部门总体信息
createprocedurepro_dpt_total_info
@nochar(4)
as
selectdepartment.dpt_no,employee._no,employee._name,department.dpt_count
fromemployee,department
whereemployee.dpt_no=department.dpt_noanddepartment.dpt_no=@no
Go
3)寻找对应学历条件的员工人数
createprocedurepro_count1
@countintoutput,@educationvarchar(10)
as
select@count=COUNT(*)fromV_v1
where_education=@education
4)寻找对应部门编号条件的员工人数
createprocedurepro_count2
@countintoutput,@dptnovarchar(4)
as
select@count=COUNT(*)fromV_v2
wheredpt_no=@dptno
5)寻找对应工作时间条件的员工人数
createprocedurepro_count3
@countintoutput,@worktmdatetime,@worktimmdatetime
as
select@count=COUNT(*)fromV_v3
where_worktimebetween@worktmand@worktimm
6)寻找对应工作变动条件的员工人数
createprocedurepro_count4
@countintoutput,@info_changevarchar(4)
as
select@count=COUNT(*)fromV_v4
whereinfor_change=@info_change
7)寻找员工总人数
createprocedurepro_count5
@countintoutput
as
selec