人事管理系统.docx
《人事管理系统.docx》由会员分享,可在线阅读,更多相关《人事管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
人事管理系统
软件学院
课程设计报告书
课程名称数据库原理及应用
设计题目XX企业人事档案管理
专业班级软升本10-2班
学号1020980210
姓名李硕
指导教师刘金光
年月
1设计时间
2011年01月03日——2010年01月09日
2设计目的和任务
数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。
其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。
3课程设计基本要求
根据课程设计时间的安排选择适当大小的设计课题,课题的选择可以是实际问题,也可以是虚构的问题。
根据题目的基本需求,根据所学的数据库设计理论、方法,写出详细的设计说明书。
4设计内容
4.1系统概述
一个正常运作的公司必定有一个健全的人事管理系统,来管理员工的信息,包括员工的编号、姓名、性别、工龄、工资以及奖惩情况。
除了这些基本的用处外,此系统还提供员工信息更改或删除等的功能,使公司的人事管理方便快捷而又清晰。
面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效地程序结构支持各种数据操作的执行。
我们现在介绍的这个人事管理系统是一个非常通用的管理系统。
它讲述如何建立一个公司人事管理系统。
他可以将关于的一切员工信息记录在案,并且对其进行输入、修改、查询,大大提高了公司员工管理的工作效率。
4.2系统数据流程图和数据字典
4.2.1需求分析
通过对现行人事管理系统的调查,明确了人事管理系统由档案管理、职务调动管理、奖惩管理、考勤管理、工资管理、请销假管理组成。
系统功能的主要描述如下。
(1)员工档案管理
1)对公司里所有员工进行统一编号;将每一位员工的信息保存在员工档案记录中。
2)对新聘用的员工,将其信息加入到员工档案记录中;对于解聘的员工,将其信息从员工档案记录中删除。
3)当员工的信息发生变动时,修改员工档案记录中相应的属性。
(2)职务调动管理
对公司里所有员工的职务记录进行统一编号;登记员工调动前后的具体职务,以及调动时间。
(3)奖惩管理
对公司里所有员工的奖惩记录进行统一编号;登记员工奖惩的原因,所受奖惩类型,奖惩时间。
(4)考勤管理
1)对员工上班刷卡的记录进行统一编号;登记员工上班时间、签到类型(准时、迟到)。
2)对员工下班刷卡的记录进行统一编号;登记员工上班时间、签到类型(准时、早退)。
(5)请销假管理
1)对员工请假的记录进行统一编号;登记员工请假时间、请假类型。
2)对员工销假的记录进行统一编号;登记员工销假时间、请假类型,检查是否超期。
(6)工资管理
1)对公司里所有员工的工资记录进行统一编号,建立工资记录表。
(7)部门管理
1)对公司所有的部门进行编号,建立部门记录。
4.2.2系统数据字典
(1)主要的数据流定义
1)数据流名称:
员工情况
位置:
员工→P1。
定义:
员工情况=姓名+性别+出生日期+民族+学历+职称。
数据流量:
根据公司的员工具体录用情况来确定。
说明:
要对每一位被聘用的新员工进行唯一编号。
2)数据流名称:
奖惩情况
位置:
P3→员工
定义:
奖惩情况=员工流水号+奖惩类型+奖惩金额+奖惩年月日。
数据流量:
根据公司的具体情况来确定。
说明:
要对每一次的奖惩记录进行唯一编号。
3)数据流名称:
奖惩批复
位置:
上级→P3
定义:
奖惩批复=奖惩类型+批复部门号+批复原因+批复日期。
数据流量:
根据公司的具体情况来确定。
说明:
具体应用中,批复原因可以省略。
4)数据流名称:
调动情况
位置:
P5→员工
定义:
调动情况=员工号+调动前职务+调动后职务+调动日期。
数据流量:
根据公司的具体情况来确定。
说明:
员工号和调动日期可以唯一确定一个调动情况。
5)数据流名称:
调动批复
位置:
上级→P5
定义:
调动批复=批复部门号+批复原因+批复日期。
数据流量:
根据公司的具体情况来确定。
说明:
批复原因可以省略。
6)数据流名称:
上班刷卡
位置:
员工→P7.1
定义:
上班刷卡=员工号+上班刷卡时间+刷卡机号。
数据流量:
根据公司的具体规模情况来确定。
说明:
上班刷卡时间会汇入到出勤记录中。
7)数据流名称:
下班刷卡
位置:
员工→P7.2
定义:
下班刷卡=员工号+下班刷卡时间+刷卡机号。
数据流量:
根据公司的具体情况来确定。
说明:
下班刷卡时间会汇入到出勤记录中。
8)数据流名称:
工资查询
位置:
P4→员工
定义:
工资查询=员工号+基本工资+奖金+罚款+超始时间+截止时间+发薪日期。
数据流量:
根据公司的具体情况来确定。
说明:
根据员工号和发薪日期可以唯一确定一个工资记录。
9)数据流名称:
请假申请
位置:
员工→P2.2
定义:
请假申请=员工号+请假时间+请假天数。
数据流量:
根据公司的具体情况来确定。
说明:
员工号和请假时间可以唯一确定一个请假记录。
10)数据流名称:
请假批复
位置:
上级→P2.2
定义:
请假批复=审批人+批复结果。
数据流量:
根据公司的具体情况来确定。
说明:
批复结果的类型只能是(批准、拒绝)。
11)数据流名称:
销假申请
位置:
员工→P2.1
定义:
销假申请=员工号+销假时间。
数据流量:
根据公司的具体情况来确定。
说明:
针对销假申请没用单独建立销假记录表,在这里将销假记录和请假记录进行了合并。
因为在一般情况下,请假是不能够进行嵌套的。
12)数据流名称:
管理员情况
位置:
管理员→P6
定义:
用户身份=员工编号。
数据流量:
根据公司的具体情况来确定。
说明:
要对每一位管理员建立唯一的账号。
13)数据流名称:
用户身份
位置:
安全管理→{P1,P2.1,P2.2,P3,P4,P5,P7.1,P7.2}
定义:
用户身份=[非法用户|内部管理员|服务管理员]
数据流量:
根据公司的具体情况来确定。
说明:
不同的用户身份对应不同的操作权限,对应着不同的安全级别。
14)数据流名称:
部门情况
位置:
上级→部门情况
定义:
部门情况=部门号+部门名称+领导人号
数据流量:
根据公司的具体情况来确定。
说明:
部门号是主码。
(2)主要的数据存储定义
1)数据存储编号:
员工记录D1
输入:
P1
输出:
P1,P7.1,P7.2,P2.1,P2.2
数据结构:
员工记录=姓名+性别+出生日期+民族+学历+职称+员工编号。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以随机检索为主。
说明:
员工编号具有唯一性和非空性;性别只能是男或女;主码是员工编号。
2)数据存储编号:
请假记录D2
输入:
P2.1,P2.2
输出:
P2.1,P2.2
数据结构:
请假记录=员工号+请假时间+请假天数+销假时间。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为请假时间和员工号;员工号是外码,参照表是员工记录。
3)数据存储编号:
奖惩记录D3
输入:
P3
输出:
P3
数据结构:
奖惩记录=员工流水号+奖惩类型+奖惩金额+奖惩时间+批复部门号+批复原因+批复日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为奖惩时间和员工号;员工号是外码,参照表是员工记录。
4)数据存储编号:
工资记录D4
输入:
P4
输出:
P4
数据结构:
工资记录=员工号+基本工资+奖金+罚款+超始时间+截止时间+发薪日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为发薪日期和员工号;员工号是外码,参照表是员工记录。
5)数据存储编号:
职务调动记录D5
输入:
P5
输出:
P5
数据结构:
职务调动记录=员工号+调动前职务+调动后职务+调动日期+批复部门号+批复原因+批复日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为调动日期和员工号;员工号是外码,参照表是员工记录。
6)数据存储编号:
管理人员记录D6
输入:
P6
输出:
P6
数据结构:
管理人员记录=用户密码+职工号+密码+管理员账号。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为管理员账号。
7)数据存储编号:
出勤记录D7
输入:
P7.1,P7.2
输出:
P7.1,P7.2
数据结构:
出勤记录=员工号+上班刷卡时间+下班刷卡时间+刷卡日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为员工号和刷卡日期;员工号是外码,参照表是员工记录。
8)数据存储编号:
部门记录D8
输入:
P8
输出:
P8
数据结构:
部门记录=部门号+部门名称+领导人号。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以检索操作为主。
说明:
主码设为部门号。
(3)主要的处理过程
1)处理过程编号:
P1
处理过程名:
档案管理
输入:
用户身份,员工记录,员工情况
输出:
员工记录
处理说明:
根据员工的聘用、解聘建立或删除员工记录,以及在后续的过程中,以管理员身份对员工的记录进行修改。
2)处理过程编号:
P2.1
处理过程名:
销假管理
输入:
销假申请,请假批复,用户身份,员工记录,销假记录
输出:
请假记录
处理说明:
根据员工的销假申请,把销假时间录入到相应的请假记录中。
3)处理过程编号:
P2.2
处理过程名:
请假管理
输入:
请假申请,请假批复,用户身份,员工记录,请假记录
输出:
请假记录
处理说明:
根据员工的请假申请和批复情况,进行请假表的登记。
4)处理过程编号:
P3
处理过程名:
奖惩管理
输入:
用户身份,奖惩批复,奖惩记录
输出:
奖惩记录,奖惩情况
处理说明:
根据奖惩批复的要求对员工进行相应的惩处,并对惩处进行记录。
5)处理过程编号:
P4
处理过程名:
工资管理
输入:
用户身份,工资记录
输出:
工资记录,工资查询
处理说明:
根据员工目前的工资情况,进行调薪的操作。
6)处理过程编号:
P5
处理过程名:
调动管理
输入:
调动批复,用户身份,职务调动记录
输出:
职务调动记录,调动情况
处理说明:
根据调动批复的内容,更改员工的职务信息,并对调动情况进行记录。
7)处理过程编号:
P6
处理过程名:
安全管理
输入:
管理员情况
输出:
D6,P1,P2.1,P2.2,P3,P4,P5,P7.1,P7.2
处理说明:
建立管理人员记录表;通过用户名和口令,确认用户身份,保证系统安全性。
8)处理过程编号:
P7.1
处理过程名:
上班管理
输入:
上班刷卡,用户身份,员工记录,出勤记录
输出:
出勤记录
处理说明:
根据输入的员工号信息,记录上班时间,并判断是否迟到。
9)处理过程编号:
P7.2
处理过程名:
下班管理
输入:
下班刷卡,用户身份,员工记录,出勤记录
输出:
出勤记录
处理说明:
根据输入的员工号信息,记录下班时间,并判断是否早退。
10)处理过程编号:
P8
处理过程名:
部门管理
输入:
部门情况,部门记录
输出:
部门记录
处理说明:
根据上级的调度,对现在公司的部门进行领导人的调换,或者是增加或删除某一部门。
(4)数据项
数据项名
数据类型
长度
取值范围
说明
代码
整型
N
N
企业人事代码
性别
字符型
2
男/女
企业人事性别
姓名
字符型
6
中文
企业人事姓名
出生日期
整型
8
1950.01.01~2011.01.01
企业人事出生日期
参加工作日期
整型
8
1970.01.01~2011.01.01
企业人事参加工作日期
工作简历
字符型
N
N
企业人事工作经历
文化程度
字符型
10
N
企业人事文化程度
所属部门
字符型
10
N
企业人事所属部门
从事专业
字符型
10
N
企业人事从事专业
职称
字符型
10
N
企业人事职称
职务
字符型
10
N
企业人事职务
民族
字符型
10
N
企业人事民族
籍贯
字符型
20
N
企业人事籍贯
4.3数据库结构设计
4.3.1概念结构设计
根据系统需求分析,可以得出人事管理系统数据库的概念模型(信息模型),图5是用E-R图表示的人事管理系统的概念模型。
最后,对设计出的数据模型进行规范化处理,使数据模型满足第三范式。
人事管理系统的概念模型E-R图
4.3.2逻辑结构设计
将人事管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
1)员工档案(员工编号+姓名+性别+出生日期+民族+学历+职称+部门号),其中员工编号为主码,部门号为外码;
2)管理员记录(管理员账号,员工编号,密码,级别),其中管理员账号为主码,员工编号为外码;
3)请假记录(请假编号+员工编号+请假时间+请假天数+销假时间+审批领导号+批复结果)
请假编号为主码,其中员工编号外码。
4)奖惩记录(奖惩编号+员工编号+奖惩类型+奖惩金额+奖惩日期+批复部门号+批复原因+
批复日期),奖惩编号为主码,其中员工编号和批复部门号为外码;
5)职务调动记录(调动编号+员工编号+调动前职务+调动后职务+调动日期+批复部门号+批复原因+批复日期),调动编号为主码,其中员工编号和批复部门号为外码;
6)出勤记录(出勤编号+员工号+上班刷卡时间+下班刷卡时间+刷卡日期),出勤编号为主码,员工号为外码;
7)工资记录(工资编号+员工号+基本工资+奖金+罚款+起始时间+截止时间+发薪日期),工资编号为主码,员工号为外码。
8)部门记录(部门编号+名称+领导人号),部门编号为主码。
9)刷卡机记录(刷卡机号)。
4.4物理设计
4.4.1数据库物理设计
基本结构表
职工表
字段名
中文名
数据类型
长度
取值范围
是否非空
主码
外码
Wno
编号
Varchar
15
Y
Y
Wname
姓名
Varchar
8
Y
Wsex
性别
Varchar
2
男,女
Y
Wbirthdate
出生日期
Varchar
10
Y
Wworkdate
参加工作日期
Varchar
10
Y
Waddress
住址
Varchar
20
Y
Wtelephone
电话
Varchar
10
Y
Wworkdate
工作时间
Varchar
10
Y
Wtitlename
职称名
Varchar
15
Y
WAssesstime
评定时间
Varchar
10
Y
Wworkingage
工作年龄
Varchar
2
Y
职称表
字段名
中文名
数据类型
长度
取值范围
是否非空
主码
外码
Ttitlename
职称名
Integer
10
Y
Y
Twagelevel
工资级别
Integer
15
Y
Tbasicwage
基本工资
Integer
10
0~100
N
Tpostsubsidy
职务补助
Integer
10
0~100
N
Tfangbu
房补
Integer
10
0~100
N
管理员表
字段名
中文名
数据类型
长度
取值范围
是否非空
主码
外码
Alogin
登陆账号
Integer
15
Y
Y
Asecret
秘密
Integer
15
Y
工龄表
字段名
中文名
数据类型
长度
取值范围
是否非空
主码
外码
Sseniorityyears
工龄年数
Varchar
15
Y
Y
Sseniorityallowance
工龄津贴
Varchar
50
Y
奖惩
字段名
中文名
数据类型
长度
取值范围
是否非空
主码
外码
Rnumbers
编号
Varchar
10
Y
Y
Rtheamount
金额
Varchar
10
Y
Rcontent
内容
Varchar
N
Y
洗理费
字段名
中文名
数据类型
长度
取值范围
是否非空
主码
外码
X
性别
Varchar
2
Y
Y
X
金额
Varchar
N
Y
4.4.2数据库的建立
职工表的创建语句如下:
CREATETABLE[职工表](
[编号]varchar(50)COLLATEChinese_PRC_CI_ASNOTNULL,
[姓名]varchar(50)COLLATEChinese_PRC_CI_ASNULL,
[性别]char(10)COLLATEChinese_PRC_CI_ASNULL,
[出生日期]datetimeNULL,
[参加工作日期]datetimeNULL,
[住址]varchar(50)COLLATEChinese_PRC_CI_ASNULL,
[电话]varchar(50)COLLATEChinese_PRC_CI_ASNULL,
[来自本单位的时间]datetimeNULL,
[职称名]varchar(50)COLLATEChinese_PRC_CI_ASNULL,
[评定时间]datetimeNULL,
[工龄年数]intNULL,
);
职称表的创建语句如下:
CREATETABLE[职称表](
[职称名]varchar(50)COLLATEChinese_PRC_CI_ASNOTNULL,
[工资级别]varchar(50)COLLATEChinese_PRC_CI_ASNULL,
[基本工资]moneyNULL,
[职务补助]moneyNULL,
[房补]moneyNULL,
);
管理员表的创建:
CREATETABLE[管理员表](
[登录账号]char(10)COLLATEChinese_PRC_CI_ASNOTNULL,
[密码]char(10)COLLATEChinese_PRC_CI_ASNOTNULL,
);
工龄表的创建语句如下:
CREATETABLE[工龄表](
[工龄年数]intNOTNULL,
[工龄津贴]moneyNULL,
);
奖惩表的创建语句如下:
CREATETABLE[奖惩](
[编号1]varchar(50)COLLATEChinese_PRC_CI_ASNOTNULL,
[金额]moneyNULL,
[内容]varchar(50)COLLATEChinese_PRC_CI_ASNULL,
);
洗理费表的创建语句如下:
CREATETABLE[洗理费](
[性别][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[金额][money]NULL,
);
4.5主要查询语句
(1)查询编号为1的职工姓名
selectdistinct姓名
from职工表
where编号=‘1’;
(2)查询工资级别为2级的职工编号
select编号,工资级别
from职工表,职称表
where工资级别=‘2’;
(3)查询与于得水工龄年数相同的职工姓名
select姓名
from职工表
where工龄年数=(select工龄年数
From职工表
Where职工姓名=‘于得水’);
(4)统计全体职工的平均工资
selectavg(基本工资)
from职称表;
5总结与展望
这次课程设计中,我学到了很多的东西,同时也遇到了很多的困难,但是让我得到了很多经验,心得和锻炼。
做程序的过程就是个不断解决问题的过程,让你对知识的掌握更加牢固,不懂的地方通过看参考书才明白,所以,在这期间我对自己的能力也有了一个清楚的认识,虽然困难重重,但是我没放弃,在同学和指导老师的帮助下完成了本次的课程设计。
参考文献
1王珊,萨师煊.数据库系统概论(第四版).北京:
高等教育出版社,2006.5
2孙春来.SQLServer中文版编程基础.上海:
电子工业出版社,2008:
195-210
3知寒工作室.SQLServer2000案例教程.北京:
机械工业出版社,2007:
619-625
4徐建平,赵永.SQLServer2000基础教程.北京:
机械工业出版社出版,2006:
51-69
成绩评定
成绩教师签字