员工考勤数据库设计报告.docx
- 文档编号:25122546
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:21
- 大小:147.57KB
员工考勤数据库设计报告.docx
《员工考勤数据库设计报告.docx》由会员分享,可在线阅读,更多相关《员工考勤数据库设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
员工考勤数据库设计报告
企业员工考勤管理子系统
一.需求分析
1.系统背景分析
现在不论哪个企业,都要进行考勤,一些企业在考勤管理方面用了大量的人力和财力,不说准确度和可信度如何,其效率很低,而且容易出错,不利于管理。
所以人工考勤已经很难再满足企业规范化管理的要求,随着数据库技术的发展和企业信息化建设的进行,使用计算机管理考勤成为一种主流趋势,它不仅为企业减少了人力财力的付出,而且也大大减轻了考勤工作人员的工作量。
本文系统的阐述了企业考勤管理设计开发的全过程。
包括系统需求调查分析,概念结构设计,逻辑结构设计等部分。
2.数据流程图:
记录出差情况
出差数据统
基本信息请假数据记录请假情况统计
加班数据记录加班情况计出
出勤数据统请差
当前工作记录出勤情况计假记
员工新工作加记录
更新后的部门信息已分班录
配好记录
员工信息部门基本信息的工资统计出勤记录
已统计信息
调整
工资记录
结算
3.数据字典:
(1),数据项描述
编号
数据项名称
别名
数据类型
长度
说明部分
1
员工编号
yno
bigint
10
前五位为部门编号,后五位为顺序编号
2
员工姓名
yname
nchar
10
登记信息,查询直接、方便
3
员工性别
ysex
nchar
5
性别是区分员工的一个大致范围
4
出生日期
birth
nchar
15
可以得出员工的工龄
5
部门编号
bno
bigint
5
划分不同的部门
6
职务
duty
nchar
20
对应不同的部门,区分员工
7
部门名称
bname
nchar
20
参照部门编号
部门经理职工号
bmanagerno
参照员工编号
8
日期
time
nchar
15
记载发生变化的时期
出勤编号
workno
bigint
20
前八位为当天日期,中间两位设为00,后十位为员工编号
9
上班时间
ondutytime
nchar
10
上班时间为8:
00
10
下班时间
offdutytime
nchar
10
下班时间为17:
30
加班编号
overtimeno
bigint
20
前八位为当天日期,中间两位设为11,后十位为员工编号
11
加班时间长度
overtimelength
int
5
清楚加班了多长时间
12
加班费
overtimefee
int
5
根据加班时间来算加班费,一小时20元来计算。
出差编号
travelno
bigint
20
前八位为当天日期,中间两位设为22,后十位为员工编号
13
出差起始时间
tstarttime
nchar
10
记载出差时间长度
14
出差结束时间
tendtime
nchar
10
记载出差时间长度
15
出差过程描述
process
nchar
25
具体描述出差路程及相关信息
16
出差补助
allowance
int
5
根据出差描述来给予相应的补助,要据路程、时间及住宿来判断,根据发票来报销费用
请假编号
leaveno
bigint
20
前八位为当天日期,中间两位设为33,后十位为员工编号
17
请假起始时间
lstarttime
nchar
10
记载请假时间长度
18
请假结束时间
lendtime
nchar
10
记载请假时间长度
19
请假原因
reason
nchar
25
说明请假原因
20
扣除奖金
reducemoney
int
5
由于没有上班,当天的工资还是要照常扣除,但是若工作若出现差错,不会担负责任
月度考勤编号
mattendno
nchar
20
前八位为当天日期,中间两位设为44,后十位为员工编号
21
累计正常工作时间
ljworktime
nchar
10
算出正常工作时间,是评定基本工资的参考
22
累计加班时间
ljovertime
nchar
10
算出加班时间,评定奖金
23
累计请假时间
ljleavetime
nchar
10
算出请假时间,扣除当天的工资
24
累计出差时间
ljtraveltime
nchar
10
算出出差时间,并报销出差的费用
25
迟到次数
latetimes
int
5
让员工及领导清楚考勤情况
26
早退次数
leavetimes
int
5
让员工及领导清楚考勤情况
27
旷工次数
absenttimes
int
5
让员工及领导清楚考勤情况,并进行相应的罚款措施,旷工一次罚款50元
28
基本工资
basicwage
int
10
让员工清楚基本工资
29
奖金
bonus
int
10
让员工清楚奖金
30
实际工资
realwage
int
10
让员工清楚实际工资
(2)数据结构描述
编号
数据结构名
组成属性
1
员工信息
员工编号,员工姓名,员工性别,出生日期,职务,部门编号
2
部门信息
部门编号,部门名称,部门经理职工号
3
出勤记录
出勤编号,日期,上班时间,下班时间
4
加班记录
加班编号,日期,加班时间长度,加班费
5
出差记录
出差编号,出差起始时间,出差结束时间,出差过程描述,出差补助
6
请假记录
请假编号,请假起始时间,请假结束时间,请假原因,扣除奖金
8
月度考勤统计
月度考勤编号,员工编号,日期,累计正常工作时间,累计加班天数,累计出差天数,累计请假天数,迟到次数,早退次数,旷工次数
9
工资表
工资编号,基本工资,奖金,实际工资
(3)数据流描述
编号
数据流名
数据流来源
数据流去向
1
基本信息
招新员工
调配工作
2
当前工作
员工
调配工作
19
已统计信息
统计信息
月度考勤信息
20
调整
月度考勤信息
工资评估
21
结算
工资
工资评估
22
工资记录
工资
处理工资
23
已分配好的工资
处理工资
员工
(4)数据存储
数据存储名
输入数据流
输出数据流
说明
员工信息
招新的员工
当前工作
部门信息
更新后的部门信息
部门的基本信息
月度考勤统计
已统计的信息
再调整信息
对统计的信息进行调整
(5)处理过程
处理过程名
输入数据流
输出数据流
说明
调配工作
当前的工作和部门的基本信息
员工的新工作,更新后的部门信息
导入数据
出差,请假,加班,出勤的数据
记录出差,请假,加班,出勤的情况
工资评估
考勤信息的调整
根据工资评估进行结算
根据相应的评估方法来算基本工资,奖金和实际工资
二.概念结构设计
经过调查、信息流程分析、数据收集,并结合需求分析,明确了该子系统的功能:
A.给员工编号,登记其基本信息。
B.给各部门编号、命名,确定其职责范围,并任命部门经理。
C.对员工的考勤数据进行登记,并进行月度考勤统计。
D.对员工的月度考勤统计的结果来核算员工工资。
实体和属性的联系
请假记录
系统基本的E-R图
1n
1
nn1
1
1nn1
1
1n1
n
n11
nn1
11
对E-R图调整的准则:
现实世界中的事物能作为属性对待的尽量作为属性对待;
属性和实体的划分:
属性中不具有需要描述的信息,即属性是不可分的数据项,不再包含其他信息。
实体属性定义:
员工(员工编号、员工姓名、员工性别、出生日期、职务、部门编号);
部门(部门编号、部门名称、部门经理职工号);
出勤记录(出勤编号、日期、上班时间、下班时间);
请假记录(请假编号、请假起始时间、请假结束时间、请假原因、扣除奖金);
加班记录(加班编号、加班时间长度、日期、加班费);
出差记录(出差编号、出差起始时间、出差结束时间、出差描述、补助资金);
月度考勤统计(月度考勤编号、员工编号、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);
工资(工资编号、基本工资、奖金、实际工资);
具体调整如下:
1.出勤记录,请假记录,加班记录,出差记录本应作为员工的一个属性,但是其中还涉及到相关的奖金待遇及具体描述,则单独作为一个实体;
2.工资单独作为一个实体,因为此处强调的是员工的出勤工资,则分开来写。
三.逻辑结构设计
1、实体所对应的关系表:
员工表(employee)
列名
别名
类型
长度
备注
员工编号
yno
bigint
10
设为主码
员工姓名
yname
nchar
10
员工性别
ysex
nchar
5
出生日期
birth
nchar
15
职务
duty
nchar
20
部门编号
bno
bigint
20
外码,参照部门表
部门表:
(branch)
列名
别名
类型
长度
备注
部门编号
bno
bigint
5
设为主码
部门名称
bname
nchar
20
部门经理职工号
bmanagerno
nchar
5
外码,参照职工表
出勤记录表(work_register):
列名
别名
类型
长度
备注
出勤编号
workno
bigint
20
设为主码
日期
time
nchar
15
上班时间
ontudytime
nchar
10
下班时间
offdutytime
nchar
10
请假记录表:
(leave_register):
列名
别名
类型
长度
备注
请假编号
leaveno
bigint
20
设为主码
请假起始时间
lstarttime
nchar
10
请假结束时间
lendtime
nchar
10
请假原因
reason
nchar
25
扣除奖金
reducemoney
int
5
加班记录表:
(overtime_register):
列名
别名
类型
长度
备注
加班编号
overtimeno
bigint
20
设为主码
加班时间长度
overtimelength
int
5
日期
time
nchar
15
加班费
overtimefee
int
5
出差记录表:
(travel_register):
列名
别名
类型
长度
备注
出差编号
travelno
bigint
20
设为主码
出差起始时间
tstarttime
nchar
10
出差结束时间
tendtime
nchar
10
出差描述
process
nchar
25
补助资金
allowance
int
5
月度考勤统计表(month_attend):
列名
别名
类型
长度
备注
月度考勤编号
mattendno
设为主码
员工编号
yno
bigint
20
日期
time
nchar
15
累计正常工作时间
ljworktime
nchar
10
累计请假
ljleavetime
nchar
10
累计出差
ljtraveltime
nchar
10
累计加班
ljovertime
nchar
10
迟到次数
latetimes
int
5
早退次数
leavetimes
int
5
旷工次数
absenttimes
int
5
工资表
列名
别名
类型
长度
备注
工资编号
workno
bigint
20
设为主码
基本工资
basicwage
int
10
奖金
bonus
int
10
实际工资
realwage
int
10
具体调整如下:
1).出勤记录,请假记录,加班记录,出差记录本应作为员工的一个属性,但是其中还涉及到相关的奖金待遇及具体描述,则单独作为一个实体;
2).工资单独作为一个实体,因为此处强调的是员工的出勤工资,则分开来写。
2、用户子模式设计
考勤(员工编号、员工姓名、部门名称、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);
工资(员工编号、员工姓名、部门名称、职务、基本工资、奖金、实际工资);
因为员工对于其他情况不会经常关注,经常使用的以上各项,所以设立考勤和工资关系。
四、物理结构设计
1、关系模式存取方法分析:
对于该系统的各个关系最经常使用的操作就是查找,则采用B+树作为索引:
1)、对以下经常在查询中出现的关系的码建立索引:
A对员工的员工编号建立索引,使其按照员工编号的升序存放。
B对部门的部门编号建立索引,使其按照部门编号的升序存放。
2)、由于下面几个关系模式的更新频率较高,系统为维护索引要付出较大的代价,因此没有定义索引:
月度考勤统计(月度考勤编号、员工编号、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);
工资(工资编号、基本工资、奖金、实际工资);
2、存储结构设计
经过分析得出本考勤管理子系统信息处理的特点是员工考勤和工资的数据不仅经常需要查询,而且更新速度快,每月就要更新一次。
针对以上特点,设计如下:
(1)确定数据库的存放位置
为了提高系统性能,现根据应用情况将数据按照易变部分和稳定部分、经常存取部分和存取频率较低的部分分别在两个磁盘上存放。
1)、经常存取部分:
员工,出勤记录,请假记录,加班记录,出差记录,月度考勤统计,工资。
2)、存取频率较低的部分:
部门
(2)确定系统配置
此管理子系统需要的微机数量和规模都不必太大,但在系统设计时应考虑到今后的发展需求,在选择硬件设备、服务器操作系统、数据库时都考虑到能够逐步的增加和扩展。
1)、硬件配置要求:
CPU:
PII200以上。
内存:
32MB以上。
硬盘:
2.1GB以上(可用空间最好在160MB以上)。
打印机:
推荐EPSONLQ-1600KII
2)、软件配置要求:
WINDOWS95、98、2000中文版操作系统。
五、数据库完整性设计
1、主键及唯一性索引建立:
A将员工employee表中的yno属性定义为码。
参照员工表。
B将部门branch表中bno属性定义为码。
参照部门表。
C将出差记录travel_register表中的travelno属性定义为码。
参照出差记录表。
D将请假记录leave_register表中的leaveno属性定义为码。
参照请假记录表。
E将加班记录overtime_register表中的overtimeno属性定义为码。
参照加班记录表。
F将出勤记录work_register表中的workno属性定义为码。
参照出勤记录表。
G将月度考勤统计month_attend表中的monthno属性定义为码。
参照月度考勤表。
H将工资wage表中的wageno属性定义为码。
参照工资表。
2.对以下经常在查询中出现的关系的码建立索引:
1)、在employ表的yno(员工编号)列上建立一个聚簇索引,而且employ表中的记录将按照yno升序存放。
Createclusterindexemploynoonemploy(yno);
2)、在branch表的bno(部门编号)列上建立一个聚簇索引,而且branch表中的记录将按照bno升序存放。
Createclusterindexbranchnoonbranch(bno);
2、参照完整性设计
关系模型的参照完整性在createtable中用foreignkey短语定义哪些列为外码,用references短语指明这些外码参照哪些表的主码。
A定义出差Travel表中的参照完整性,将travelno,yno设为主码,travelno参照travel_register表的ravelno,yno参照employee表的yno。
B定义请假Leave表中的参照完整性,将leaveno,yno设为主码,leaveno参照leave_register表的leaveno,yno参照employee表的yno。
C定义加班Overtime表中的参照完整性,将overtimeno,yno设为主码,overtimeno参照overtime_register表的overtimeno,yno参照employee表的yno。
D定义出勤Work表中的参照完整性,将workno,yno设为主码,workno参照work_register表的workno,yno参照employee表的yno。
3、check约束的定义
员工表中的ysex只能取“男”或“女”。
altertableemploy
addconstraintc1check(valuein(‘男’,’女’));
4、触发器设计
A在删除员工之后,显示员工的基本信息
B不准删除部门的信息。
C员工的信息更改之后,相应的月度考勤统计表员工编号也要跟着变化。
六、数据库视图设计
视图是从一个或几个基本表导出的表,一经定义,就可以和基本表一样被查询、被删除。
1)、定义一个反映员工的年龄的视图。
createviewy_age(yno,yname,age)
as
selectyno,yname,2010-birth
fromemployee;
2)、建立反映员工工资情况的视图。
createviewy_wage(yno,yname,basicwage,bonus,realwage)
as
selectyno,yname,basicwage,bonus,realwage
fromemployandwage;
3)、建立员工考勤情况的视图。
createviewy_attend(yno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertime)
as
selectyno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertime
fromemployeeandmonthattend;
七、数据库存储过程设计
为方便查询,设计以下存储过程:
查询员工信息:
员工(员工编号、员工姓名、员工性别、出生日期、职务、部门编号);
查询员工工资信息:
工资(员工编号、员工姓名、部门名称、职务、基本工资、奖金、实际工资);
查询员工考勤信息:
考勤(员工编号、员工姓名、部门名称、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);
八、权限设计
此考勤子系统对于员工都是开放的,方便员工查询考勤,工资等信息。
九、总结
通过以上数据库的设计,我深刻了解了每个阶段的设计内容:
系统需求分析、概念结构设、逻辑结构设计、物理结构设计、数据库的实施和维护。
分析该企业考勤子系统的功能是首先能提供查询员工的信息,其次让员工能清楚自己的考勤情况,并相应的查询到工资的变化。
考勤情况由请假记录,加班记录,出勤记录,出差记录来统计出的,详细的结果统计在月度考勤表中。
员工都可以很详细的查询自己的情况,经理也可以根据此情况来考核员工。
由于工资是随着考勤数据来变化的,因此工资要单独作为一个实体,这样很容易就能查到相应的详细情况。
在做此子系统时,刚开始还不知道大概的格式,只是在盲目的做,这样到最后自己都不知道下一步该做什么了,所以凡事都要严格按照规则做,然后再发挥下,这样子就不会半途而废了。
之后我严格按照书上的过程做,发现其实做该子系统并没有我想象中难,柳暗花明又一村,攻克一个难题之后,心中大悦,只要细心,慢慢来,一步一步做,一样可以做的出色,不过前提是要对制作子系统的过程熟悉,并且灵活运用。
所以做此子系统最大的收获就是制作过程我已经很熟悉了,然后再做其他系统应该就会得心应手了。
参考文献:
《数据库系统概论》王珊萨师煊高等教育出版社(第四版)2006.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 考勤 数据库 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)