人事管理系统设计—数据库原理与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人事管理系统设计—数据库原理与应用
课程设计报告
课程设计名称:数据库原理与应用
系部:二系
学生姓名:**
班级:10信息与计算科学
学号:***********
成绩:
指导教师:**
开课时间:2012-20一三学年 1 学期一.设计题目:人事管理系统
二.要紧内容:人事管理系统要紧是针对企业单位内部组织结构与员工信息的管理,本系统的要紧功能为:员工信息管理,部门信息管理,系统用户管理,故我们需要实现如下功能的建设:
1)员工信息管理:每个部门的员工各类信息的添加,修改,删除,包含员工的基本信息、学历信息、职称等信息,与查看符合各类条件的员工部分与总体信息;
2)部门信息管理:查看部门信息,包含部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能。
3)系统用户管理:查看系统用户信息,包含用户名与用户类型(系统管理员与普通用户)等信息;
三.具体要求
1.课程设计的内容独立自主完成,课程设计报告内容完整、格式规范、排版整
洁美观;
2.后台数据库使用MS SQL SERVER 2005,前台界面语言不限,编写的程序代
码,须有较全面的注释说明;
四.进度安排
课程设计安排:
16周
星期一讲解课程设计的内容,安排每一天的具体任务,分配并熟悉题目;
星期二需求分析:给出系统的功能需求、性能需求,并绘制DFD与DD;
星期三概念结构设计:绘制实体属性图(可选),局部ER图与全局ER图;
星期四逻辑结构设计:转换、优化;
星期五逻辑结构设计:外模式设计
17周
星期一物理结构设计及数据库实施;
星期二应用程序编制调试、整理课程设计报告;
星期三应用程序编制调试、整理课程设计报告,并检查;
星期四根据反馈结果修改课程设计报告;
星期五课程设计答辩,交材料;
上交的材料:课程设计的电子稿、打印稿、源码(SQL代码与程序代码)五.成绩评定
考核方法:现场验收(占50%),课程设计报告(占50%)。
考核内容:学习态度(出勤情况,平常表现等)、方案合理性、各阶段的图表与程序编制质量、设计报告质量。
成绩评定:优,良,中,及格,不及格。
特别说明:(1)如发现抄袭,按照不及格处理。
(2)材料不齐的,考核等级降一级。
电子稿件以压缩文件的形
式上交,压缩命名为:11位学号+姓名
正文撰写包含的内容:
1、需求分析
2、概念结构设计
3、逻辑结构设计
4、物理结构设计
5、数据库实施及应用程序编制
6、心得体会
7、参考资料
正文:
题目:人事管理系统
第一章系统概述
本文按照数据库系统设计的基本步骤,采取了事先进行需求分析,得出对应的数据流图与数据字典,再进行概念结构设计,逻辑结构设计与物理结构设计,
最后通过运行与测试,成功完成了一个小型的人事管理系统的设计。
最终,在SQL SEVER 2005上运行的人事管理系统,能够实现:员工各类信息的管理,员工所在部门信息的有关管理。
第二章需求分析
2.1需求分析
通过对当前人事管理系统的有关调查,确定所做的人事管理系统功能的基本要求如下:
➢员工各类信息的输入及修改,包含员工的基本信息、学历信息、职称等信息;➢员工所在的部门信息,包含部门名称、部门经理等信息;
➢按照一定的条件,查询、统计符合条件的员工信息;包含每个员工全面信息的查询、按学历查询、按部门查询等,包含按学历、部门、参加工作时间等统计各自的员工信息;
➢关于转出、辞职、辞退、退休员工信息的删除,并更新相应部门的统计信息。
2.2功能分析
人事管理系统要紧是针对企业单位内部组织结构与员工信息的管理,本系统的要紧功能为:员工信息管理,部门信息管理,系统用户管理,故我们需要实现如下功能的建设:
4)员工信息管理:每个部门的员工各类信息的添加,修改,删除,包含员工的基本信息、学历信息、职称等信息,与查看符合各类条件的员工部分与总体信息;
5)部门信息管理:查看部门信息,包含部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能。
6)系统用户管理:查看系统用户信息,包含用户名与用户类型(系统管理员与普通用户)等信息;
2.3系统数据流程图
数据流图描述的是系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流淌与处理的情况。
由于数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也能容易懂得。
数据流图里的符号也极为简单,只有四个:1)外部实体;2)处理;3)连线;4)数据存储。
这四个符号也有两种。
一种是Yourdon & Coad法,另一种是Gane & Sarson法。
只是略有不一致而已。
在这篇论文中,我们使用Microsoft Visio,故使用Gane & Sarson法。
所对应的四个符号如图2.1所示:
图2.1
通过全面调查,熟悉到企业单位人事管理系统的业务流程,在此基础上,得出系统的逻辑模型,并用数据流图表示,情况如图2.2,图2.3所示:
图2.2 顶层数据流图
图2.3 0层数据流图
在上述人事管理系统数据流图中,员工档案管理功能还没具体实现,要紧实现功能如图2.4所示:
图2.4 1层数据流图
综合0层数据流,得出最终的数据流图,如图2.5所示,
图2.5 总数据流图
2.4系统数据字典
人事管理系统数据流程图中,数据信息与处理过程还需要通过数据字典来描述。
在本文的数据字典中,要紧对数据流图中的数据项、数据结构、数据流、数据存储与处理过程进行说明。
2.4.1数据项
序号:1
名称:_name
含义:员工姓名
值域:varchar(10)
序号:2
名称:_no
含义:员工编号值域:varchar(5)
序号:3
名称:_sex
含义:员工性别
值域:varchar(2)序号:4
名称:_callnumber
含义:员工x
类型: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)
序号:一三
名称:dpt_count
含义:部门人数
类型:int
序号:14
名称:dpt__abstract 含义:部门简介
值域:varchar(200)
序号:17
名称:users_name
含义:用户名
值域:varchar(10)
序号:一八
名称: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。
定义: 员工情况=姓名+性别+编号+学历+x+所在部门+参加工作时间+职称。
数据流量:根据公司的员工具体录用情况来确定。
说明:要对每一位被聘用的新员工进行唯一编号。
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
数据结构:员工档案=姓名+性别+学历+员工编号+x+所在部门编号+参加工作时间+职称+工作变动。
数据量与存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索与更新;以随机检索为主。
说明:员工编号具有唯一性与非空性;性别只能是男或者女;主码是员工编号。
2)D2部门记录
输入:P2
输出:P2
数据结构:部门记录=部门编号+部门名称+部门人数+部门简介+部门经理。
数据量与存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索与更新;以检索操作为主。
说明:主码设为部门号。
3)D3用户记录
输入:P3
输出:P3
数据结构:用户记录=员工编号+管理员编号+密码+权限
数据量与存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索与更新;以更新操作为主。
说明:主码设为管理员编号。
4)D4员工相应信息
输入:P1.4
输出:P4
数据结构:员工相应信息=员工编号+学历+x+所在部门编号+参加工作时间+职称+工作变动。
数据量与存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索与更新;以更新操作为主。
说明:主码设为员工编号。
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.1 E-R模型向关系模型的转换
将人事管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:员工(姓名,性别,员工编号,x,学历,职称,所在部门编号,参加工作时间,工作变动),其中,员工编号是主码,所在部门编号为引用“部门”关系模式的外码。
部门(名称,经理,部门编号,简介,员工人数),其中,部门编号是主码。
4.2 数据模型的优化
员工关系模式中,各个属性间函数依靠关系:
员工编号→姓名
员工编号→x
员工编号→学历
员工编号→职称
员工编号→所在部门编号
员工编号→参加工作时间
员工编号→工作变动
此关系属于第三范式。
部门关系模式中,各个属性间函数依靠关系:
部门编号→名称
部门编号→部门简介
部门编号→部门人数
部门编号→部门经理
此关系属于第三范式。
用户关系模式中,各个属性间函数依靠关系:
用户名→用户密码
用户名→权限
此关系属于第三范式。
4.3设计外模式
员工关系模式:员工(姓名,性别,员工编号,x,学历,职称,所在部门编号,参加工作时间,工作变动)。
在此关系模式上建立了四个视图:员工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.一三所示:
(a)(b)(c)(d)
图7.一三员工信息
说明已修改成功;
员工信息删除功能,如图7.14所示,弹出窗口,员工变动情况选择无,转出,将转出进行删除:
(a)(b)
(c)
(d)
图7.14 员工删除过程
员工信息按条件查询,点击:全面,教育学历,工作时间,与工作变动,如图7.一五所示:
(a)(b)(c)
(d)(e)(f)
(g)
图7.16 员工信息查询
部门管理:添加部门信息,包含部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能,演示情况如下:(部门中首先有一个经理,员工人数初值为1,部门信息更新后,员工人数可做相应修改)
点击信息查看与统计,如图7.17所示:
图7.17 部门信息
点击部门信息更新,进入更新界面,选择部门,进行更新,完成后,点击“请点击查看所有部门”按钮,即可看到更新后的数据,如图7.一八所示:
(a)(b)
(c)
图7.一八员工信息更新
系统用户管理:查看系统用户信息,包含用户名与用户类型(系统管理员与普通用户)等信息;
点击用户档案查询,如图7.19所示:
(a)(b)
图7.19 用户档案查询
以上即所有功能的实现演示。
点击退出按钮,离开人事管理系统,如图7.20所示:
图7.20 用户离开主界面7.2应用程序编制
建立人事管理系统数据库,具体的SQL语句如下:7.2.1数据库创建
create database PMS
7.2.2 基本表创建
建立员工表
use PMS
create table employee(
_name varchar(10) not null,
_no varchar(5) primary key not null,
_sex varchar(2),
_callnumber varchar(11),
dpt_no varchar(4),
_education varchar(10),
_position varchar(10),
_worktime datetime,
infor_change varchar(4),
foreign key (dpt_no) references department(dpt_no))
建立部门表
use PMS
create table department(
dpt_name varchar(20),
dpt_manager varchar(5),
dpt_no varchar(4) primary key,
dpt_count int,
dpt_abstract varchar(200))
建立用户表
create table Users(
Users_name varchar(10)primary key not null,
Users_pwd varchar(16),
_authority int)
7.2.3 视图编制
1)员工信息视图
create view V_v1(_no,_name,_education)
as
select _no,_name,_education
from employe
2)员工部门信息视图
create view v_v2(_no,_name,dpt_no)
as
select _no,_name,dpt_no
from employee
3)员工工作时间视图
create view V_v3(_no,_name,_worktime)
as
select _no,_name,_worktime
from employee
4)员工工作信息视图
create view V_v4(_no,_name,infor_change)
as
select _no,_name,infor_change
from employee
7.2.4 存储过程成编制
1)员工信息查看
procedure pro_look
create procedure pro_look
xno char(5)
as
select * from employee
where _no=xno
2)部门总体信息
create procedure pro_dpt_total_info
xno char(4)
as
select department.dpt_no,employee._no,employee._name,department.dpt_count from employee,department
where employee.dpt_no=department.dpt_no and department.dpt_no=xno
Go
3)寻找对应学历条件的员工人数
create procedure pro_count1
xcount int output,xeducation varchar(10)
select xcount= COUNT(*) from V_v1
where _education=xeducation
4)寻找对应部门编号条件的员工人数
create procedure pro_count2
xcount int output,xdptno varchar(4)
as
select xcount= COUNT(*) from V_v2
where dpt_no=xdptno
5)寻找对应工作时间条件的员工人数
create procedure pro_count3
xcount int output,xworktm datetime,xworktimm datetime
as
select xcount= COUNT(*) from V_v3
where _worktime between xworktm and xworktimm
6)寻找对应工作变动条件的员工人数
create procedure pro_count4
xcount int output,xinfo_change varchar(4)
as
select xcount= COUNT(*) from V_v4
where infor_change=xinfo_change
7)寻找员工总人数
create procedure pro_count5
xcount int output
as
select xcount= COUNT(*) from employee
8)员工信息注册检查人数
create procedure pro_Con
xcount int output,xno varchar(5)
as
select xcount=count(*) from employee
where _no=xno;
9)部门总信息
Create view V_vv(dpt_name,dpt_no,dpt_abstract,dpt_manager,_name,_no,
_sex,_callnumber,_education,_position,_worktime,infor_change)
as
select department.dpt_name,department.dpt_no,dpt_abstract,department.dpt_manager, employee._name,employee._no,employee._sex,employee._callnumber,employee._education,empl oyee._position,employee._worktime,r_change
from department,employee
where department.dpt_no=employee.dpt_no
10)用户注册时查询是否具有相同的用户
create procedure pro_CCon
xcount int output,xUsersname varchar(10)
select xcount= COUNT(*) from Users
where Users_name= xUsersname
第八章心得体会
这次的课程设计给了我很多体会与感悟。
两个星期,我经历了很多,学会了很多。
从第一个星期的需求分析,绘制数据流图,编写数据字典,画数据流图,与逻辑设计,物理结构设计,到第二个星期的数据库实施与编程实现功能,每一次任务的完成就相当于自己的新一次突破。
最终完成的人事管理系统,能够基本实现任务所提出的各项功能。
这次课程设计,我要紧使用了SQL Server 2008与VS 2010,使用SQL语句编写了数据库,基本表,视图,存储过程,用C#调用以上SQL建立的数据集pdf文件,编写代码,设计界面,完成了人事管理系统课题。
在这里,我想把我的经历分享给大家:第一个星期课程设计我还能跟得上老师的步骤,但在第二个星期期间,我遭遇了各类逆境,放课程设计文档的硬盘出问题,最后由于打不开,我找不到我的文档;再者,我用到的两种软件不能实现连接等等,很多都是由于我一开始粗心所致。
当我发现这些问题一一向我涌来时,我急得都快哭了,但自己冷下来时,会一直想着阿里巴巴董事长马云的经典名言:今天很残酷,明天很残酷,后天很美好,大多数人死在明天晚上,看不到后天的太阳!因此我一直坚持,尝试了各类方法,在虚拟机安装SQL Server,与VS2008,重装系统等等。
其间,每天起早贪黑,终于在星期二晚上解决掉所有问题。
我现在终于体会到,安装软件出错引发的烦恼相当得大。
在剩余时间很少的情况下,我自学了C#编程,现学现卖。
在老师,同学,学长的帮助下,我学会了很多,比如C#如何调用数据库文件,如何用表,视图,存储过程实现信息的增,删,改,查。
由于环境限制,实现功能所需,我只花了两天半不到的时间。
最终人事管理系统能够实现课题要求的各项功能,但还是存在一些细微的漏洞。
与其他设计界面的同学相比,我做的不是太好,比如界面设计的不是很友好等等,老师在我课题答辩的过程时也提出了很多问题,确实与实际生活当中的人事管理系统相比有欠缺,在这里,我由衷地感谢老师的谆谆教诲,为我的人生路上点亮了新灯。
我想在以后的学习生活中,我会继续增强自己的实践能力,培养细心,静心,恒心,为未来工作打好坚实的基础。
参考资料:
[1].《SQL Server 2005 数据库系统开发案例精选》王斌,李凤蕾著,人民邮电出版社,北京,2007.7;
[2].《C# 从入门到熟知第二版》王小科,徐薇著,清华大学出版社,北京,2010.7;
[3].《数据库原理与应用第二版》何玉洁,梁琦著,机械工作出版社,北京,2011.4;。