职工考勤管理系统数据库设计.docx
《职工考勤管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《职工考勤管理系统数据库设计.docx(24页珍藏版)》请在冰豆网上搜索。
一、设计概述-----------------------------------------2
1.1 问题描述--------------------------------------2
1.2 研究目的-------------------------------- -----2
1.3 开发环境和运行环境----------------------------3
1.4预期结果与意义--------------------------------3
二、需求分析-----------------------------------------6
三、数据库概念结构设计 ----------------------------10
四、 数据库逻辑结构设计-----------------------------10
五、数据库运行与维护--------------------------------11
六、界面设计----------------------------------------19
6.1登陆面板设计-----------------------------------19
6.2切换面板设计 -----------------------------------20
七、设计心得----------------------------------------21
参考文献--------------------------------------------22
前言
职工考勤对一个企业来说是非常重要的,早期的考勤方法已不能满足现状,在科学技术迅速发展的今天一个方便、简洁、实用的管理系统是非常重要的,因此为了使企业职工考勤管理更加合理,使考勤员更加方便的管理这些数据,产生了计算机的数据管理技术——数据库技术。
在计算机技术迅速发展的今天,数据库技术是计算机信息系统与应用系统的核心技术和重要基础,是数据管理的最新技术,也是计算机科学的重要分支。
十余年来,数据库管理系统已从专用的应用程序包发展成为通用的系统软件。
由于数据库技术使数据能按一定格式组织、描述和存储,且具有较小的冗余度、较高的数据独立性和易扩展性,并可为多个用户所共享等优点,较大的信息系统都是建立在数据库设计之上的。
因此,不仅大型计算机及中小型计算机,甚至微型机都配有数据库管理系统。
而SQL是机构化查询语言的简称,它是介于关系代数和关系演算之间的语言,其功能包括数据定义,数据查询,数据操作和数据控
制4个方面。
此语言以其功能丰富,语言简洁,使用灵易维护等诸多优点,被广泛应用于各种DBMS中。
考勤系统是进行开发与人事相关的一个系统。
公司招揽人才之后,如何对人才进行有效的管理,发挥员工的主观能动性,提高公司利益是每一个公司管理者必须考虑的问题,制订有效的管理制度是一个管理人才的行之有效的办法。
使用考勤管理系统,能使人才管理部门加强对人才资源的管理,对其人才的基本清况(如出差、加班、请假等)及其它情况,有一个较全面的了解。
掌握本系统内人才情况,以便最大限度的利用人才为企业服务。
本系统的设计,是典型的数据库系统的设计,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。
此系统的设计,在经济上也是可行的。
在现实中,考勤一般与工资等利益相关的事物挂钩,因此,考勤可能会涉及到比较多的内容。
以考勤类型来说,有迟到早退、加班、出差、请假、旷工等情况。
在设计考勤系统时要综合考虑各种情况,设计数据库时使各种数据都能协调处理。
通过本次数据库系统概论课程设计,深刻的理解数据库的知识理解和熟练掌握SQLServer、Power等技术设计的基本使用方法,学会SQLServer查询分析器和企业管理器的使用以及如何进行数据库的备份还原的基本知识。
了解数据库间的关系模型及SQL语言的特点,并掌握如何建立基本表、窗体、查询、删除与修改数据。
通过该课程设计,加深对课本所学的知识,并得以巩固,将SQLServer开发技术相结合设计出了考勤系统数据库设计,也会进一步使我们将理论和实践有机的相结合,达到了学以致用的目的,熟练的掌握了数据库设计的相关方法。
职工考勤管理系统数据库设计
一.设计方概述
1.1问题描述
现代化的企业需要先进的管理,只有简便高效的考勤管理才能适应现代的企业。
考勤,就是考查出勤,也是就通过某种方式来获得员工或者某些团体、个人在某个特定的场所及特定的时间段内的出勤情况,包括上下班,迟到,早退,请假,休息,工作时间,加班情况等,通过对以前阶段,本阶段内出勤情况的研究,以进行以后阶段的统筹,安排等。
早期的考勤通常就是用笔在记录簿上签个名字,由于代替的现象时有出现,现在通常使用生物识别、门禁刷卡来做考勤。
现在有些公司有公司独立的ERP办公系统,也有考勤管理制度。
比指纹考勤机更方便,更严格。
员工考勤管理办法是对员工日常出勤状况进行考察,作为对员工劳动纪律进行考核依据的规章。
考勤管理是现代企业管理中一个非常重要的组成部分,企业通过对员工实行考勤管理制度,促使员工遵守工作出勤纪律,从而促使员工树立良好的纪律意识,形成良好的企业文化氛围。
规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。
随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化,建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤”,使企业的管理水平登上一个新的台阶。
企业考勤管理者需要经过如下的业务流程:
A:
员工基本信息管理,如添加,删除,查询,更改等
B:
员工考勤管理,员工根据自己的班次在上下班时分别进行出勤操作,由人事部门专门的人员管理出勤信息。
C:
一般在每个月月末进行考勤汇总,汇总信息包括工作日的出勤情况、请假天数、出差天数、休假天数和不同性质的加班记录等。
因此,构建一个简单、方便的系统是必要的。
即可节省考勤管理的成本使企业得考勤管理更加科学规范。
1.2研究目的
待开发的系统的名称为职工考勤管理系统。
我们以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个企业考勤管理信息系统,提供一个科学合理的考勤管理解决方案,彻底实现无纸化作业。
根据管理权限的不同,将界面分为一般职员、部门经理、系统管理员和最高管理者四个层次,系统目标如下:
(1)提供简单、方便的操作。
(2)根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能。
(3)通过考勤管理无纸化的实现,使企业的考勤管理更加科学规范。
(4)节省考勤管理的成本。
(5)提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象。
(6)对系统提供必要的权限管理。
(7)为企业实现整体信息化的其他相关系统提供必要的数据支持。
1.3开发环境和运行环境
公司考勤管理系统这运用了当前最流行的SQLSERVER20007运行和开发的
1.库、基本表的建立和修改:
在SQL-SERVER环境下用CREATETABLE 建立库以及库中基本表。
2.数据加载:
用手工录入或导入等方法实现基本表中的数据加载。
3.单表查询以及多表查询:
在建立的基本表中使用select基本格式和聚集函数;设计合适的视图,实现多表间查询。
4.触发器:
设计触发器,可实现表间关联字段修改时的完整性等问题。
5.存储器:
设计存储过程,并用语句调用。
6.用SQLSERVER2007开发环境设计、实现系统主要功能。
1.4预期结果和意义
考勤系统能实现职工日考勤记录,记录请假信息,记录出差信息等功能,并最终所有信息归入月统计中去。
本考勤系统建立了一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。
考核员工出勤是衡量其工作是否积极的一个重要方面,也是计发工资奖金、劳保福利等待遇的主要参考依据因此本系统为员工考勤提供了方便。
设计创新和关键技术
本系统为企业员工考勤管理,主要管理员工的出勤、请假、出差和加班等事项。
系统根据需要可以记录出勤人员的信息,同时还需要了解员工的请假、出差和加班等的记录情况。
程序运用了SQLServer2007、PowerDesigner数据库相关软件开发技术。
在PowerDesigner中建了6个数据表图,并在数据表中生成了两个视图和触发器,运行后生成代码,在SQLServer新建数据库,并在相应的查询分析器里调试,生成了16个表和一个视图,然后备份了新建的数据。
考勤系统主要通过准确计量和科学安排员工工时,集中分析劳动力在企业内的投入产出比问题以及劳动力优化的问题。
帮助企业提升员工个体有效工时、最小化合规风险和提高劳动力生产率,最终提高企业对内部劳动力的管理能力。
通过对大多数企业已经具备的考勤管理数据深度挖掘,分析劳动力在企业内的投入产出比问题以及劳动力优化的问题,对弹性的劳动力安排,实时的劳动力活动跟踪,通过自助服务对员工或经理级人员进行合理的授权,对各种劳动数据的分析使企业能够做出有关劳动力的科学决策,使员工所有的活动服从于企业增值链,达到企业效益的最大化。
二、需求分析
2.1功能需求
本系统的的功能需要满足一定的功能,例如职工每天的出勤情况需要记录,这就需要编辑一张出勤记录表且每天都需要更新,以此类推其他情况的记录、查询、更改等都是一样的。
以下是对每个基本情况的详细描述:
(1) 员工基本信息:
功能是设置和管理基础数据,包括加班、请假类别的定义和班次的定义,在权限范围内可以进行基础数据的添加、删除和修改。
(2) 每日出勤管理:
包括出勤信息的记录,上级对下级员工的出勤信息的确认;生成考勤统计信息并可以根据指定的条件进行查询。
实现从每日出勤到统计全部考勤信息的无纸化操作。
(3) 加班考勤管理:
对员工的加班时间进行统计,记录开始时间和结束时间,对加班信息实现添加,删除等操作。
(4) 请假考勤管理:
记录请假开始时间,请假结束时间,请假的次数进行管理。
(5) 出差考勤管理:
管理者安排员工出差,对出差时间,次数的记录。
(6)月统计考勤管理:
公司统计人员每月对员工的考勤进行统计管理.方便主管人员对每个员工的出差,加班,请假,出勤进行管理.
2.2数据字典
数据字典是通过对系统需求的调查研究,并且进行详细的数据收集和数据分析所获得的主要成果。
因此,数据字典是数据库设计的基础和依据。
数据字典的内容通常包括数据项、数据结构、数据存储、数据处理等。
在物理结构中,数据的基本存取单位是存储记录。
有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。
存储记录就包括记录的组成,数据项的类型和长度等。
在本表中2.2.1职工信息表主要包括职工编号,姓名,性别,年龄
表2.2.1 职工信息表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
w_name
姓名
Char(6)
notnull
w_sex
性别
Char
(2)
‘男’或’女’
w_age
年龄
Int
notnull
w_degree
职称
char(4)
notnull
在本表2.2.2中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录
表2.2.2 出勤记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
w_num
出勤编号
Int
主键
work_tim
上班时间
Datetime
允许空
end_tim
下班时间
Datetime
允许空
Work_note
缺勤记录
Datetime
允许空
在本表2.2.3中出差记录职工编号,出差编号,开始时间,结束时间,统计天数
表2.2.3 出差记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Out_num
出差编号
Int
主键
Out_tim
开始时间
Datetime
允许空
Back_tim
结束时间
Datetime
允许空
Out_days
统计天数
Int
允许空
在本表2.2.4中加班记录表主要包含职工编号,加班编号,开始时间、结束时间、时间统计
表2.2.4 加班记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Over_num
加班编号
Int
主键
Over_tim
开始时间
Datetime
允许空
Overend_tim
结束时间
Datetime
允许空
Over_days
时间统计
Int
允许空
在本表2.2.5中,请假记录表主要包括职工编号,请假编号,请假开始时间和请假结束时间组成。
表2.2.5 请假记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Off_num
请假编号
Int
主键
Off_tim
请假开始时间
Datetime
允许空
Offend_tim
请假结束时间
Datetime
允许空
Off_days
统计天数
Int
允许空
在本表2.2.6中月统计主要包括职工编号,出勤月统计,出差月统计,请假月统计,加班月统计
表2.2.6 月统计记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Work_note
出勤月统计
Int
非空
Out_note
出差月统计
Int
允许空
Over_note
加班月统计
Int
允许空
Off_note
请假月统计
Int
允许空
2.3数据流图
图2.3 考勤系统业务流程图
2.4功能模块图
图2.4考勤系统功能模块图
2.5系统数据流程图
图2.5考勤系统的数据流程图
三、数据库概念结构设计
员工考勤情况E-R图
图3.考勤系统的E-R图
该考勤管理系统中主要包括了员工的基本信息(姓名、性别、职称等),查询员工的基本信息,可根据员工的实际的出勤情况查看员工的基本信息.
四、数据库逻辑结构设计
4.1关系模式
职工(职工编号,姓名,性别,年龄,职称)
出勤记录(职工编号,出勤编号,上班时间,下班时间,缺勤记录)
出差记录(职工编号,出差编号,开始时间,结束时间,统计天数)
加班信息(职工编号,加班编号,开始时间,结束时间,时间统计)
请假信息(职工编号,请假编号,开始时间,结束时间,统计天数)
月统计(职工编号,出勤月统计,出差月统计,加班月统计,请假月统计)
五.数据库运行和维护
本系统经过实际的测试和运行,基本可以满足中小企业考勤管理业务的要求。
该系统运行稳定,但在使用和维护中应该注意以下几个问题:
定期备份数据库和日志避免数据的丢失,以便使数据库在发生故障后可尽快恢复到一致性状态,保障数据库的完整性和实用性;定期清理数据库中的无效数据,以提高运行效率便于管理者查询及统计;对软件及运行环境进行日常维护使系统时刻处于一个高效的状态。
5.1数据表的建立
将生成的代码,复制。
通过SQL2007,在数据库中新建的表如下所示:
(1)如图5.1.1所示 员工信息表(worker)
CREATETABLEworker
(W_idCHAR(4)CONSTRAINTworker_PrimPRIMARYKEY,
W_nameCHAR(6)notnull,
SEXCHAR
(2)CONSTRAINTSEX_ChkCHECK(SEX='男'ORSEX='女')notnull,
AGEINTnotnull,
W_drgeeVARCHAR(4)NOTNULL,
);
图5.1.1 员工信息表
(2)如图5.1.2所示 出勤记录表(work_note)
CREATETABLEwork_note
(W_idCHAR(4),
W_numint,
CONSTRAINTwork_note_PrimPRIMARYKEY(W_id,w_num),
work_timdatetime,
end_timdatetime,
work_notedatetime,
)
图5.1.2 出勤记录
(3)如图5.1.3所示 出差记录表(out_note)
CREATETABLEout_note
(W_idCHAR(4),
out_numint,
CONSTRAINTout_note_PrimPRIMARYKEY(W_id,out_num),
out_timdatetime,
back_timdatetime,
out_daysint,
)
图5.1.3 出差记录
(4)如图 5.1.4所示 加班记录表(over_note)
CREATETABLEover_note
(W_idCHAR(4),
over_numint,
CONSTRAINTover_note_PrimPRIMARYKEY(W_id,over_num),
over_timdatetime,
overend_timdatetime,
over_daysint,
)
图5.1.4 加班记录
(5)如图5.1.5所示 请假记录表(off_note)
CREATETABLEoff_note
(W_idCHAR(4),
off_numint,
CONSTRAINToff_note_PrimPRIMARYKEY(W_id,off_num),
off_timdatetime,
offend_timdatetime,
off_daysint,
)
图 5.1.5 请假记录
(6)如图5.1.6所示 月纪录表(mounth)
CREATETABLEmounth_note
(w_idCHAR(6)CONSTRAINTmounth_PrimPRIMARYKEY,
work_noteintnotnull,
out_noteint,
over_noteint,
off_noteint,
)
图5.1.6 月统计记录表
5.2窗体报表查询
1.加班查询
PrivateSub 加班查询 Click()
IfIsNull(Me!
[开始日期])Then
MsgBox “请输入开始日期”
DoCmd.GoToControl “开始日期”
ElseIfIsNull(Me!
[结束日期])Then
MsgBox “请输入结束日期”
DoCmd.GoToControl “结束日期”
Else
DoCmd.OpenReport加班查询,acPreview
EndIf
EndSub
2出差查询
PrivateSub出差查询 Click()
IfIsNull(Me!
[开始日期])Then
MsgBox “请输入开始日期”
DoCmd.GoToControl “开始日期”
ElseIfIsNull(Me!
[结束日期])Then
MsgBox “请输入结束日期”
DoCmd.GoToControl “结束日期”
Else
DoCmd.OpenReport 出差查询,acPreview
EndIf
EndSub
3.出勤查询
PrivateSub出勤查询 Click()
IfIsNull(Me!
[开始日期])Then
MsgBox “请输入开始日期”
DoCmd.GoToControl “开始日期”
ElseIfIsNull(Me!
[结束日期])Then
MsgBox “请输入结束日期”
DoCmd.GoToControl “结束日期”
Else
DoCmd.OpenReport 出勤查询,acPreview
EndIf
EndSub
4.请假查询
PrivateSub请假查询 Click()
IfIsNull(Me!
[开始日期])Then
MsgBox “请输入开始日期”
DoCmd.GoToControl “开始日期”
ElseIfIsNull(Me!
[结束日期])Then
MsgBox “请输入结束日期”
DoCmd.GoToControl “结束日期”
Else
DoCmd.OpenReport请假查询,acPreview
EndIf
EndSub
5.3建立存储过程
建立一个向员工出勤表中插入数据的存储过程
CREATE PROCEDURE insert_in
@W_id CHAR(10),
@w_num int ,
@work_tim CHAR(20) ,
@end_tim CHAR(20) ,
@work_note CHAR(20)
AS
insert into work_note
values(@W_id, @w_num, @work_tim ,@end_tim ,@work_note )
go
exec insert_in@W_id='009',@w_num=029,@work_tim='2010/11/18:
00' ,@end_tim='2010/11/120:
00' ,@work_note='全勤'
go
select *
from work_note
go
5.4创建触发器
建立一个触发器,根据员工姓名对员工信息进行修改
create trigger update_W_id
on worker
for update
as
declare @before_update char(10),@after_update char(10)
select @before_update=W_id from deleted
select @after_update=W_id from inserted
if(@after_update>100)
begin
print'人数过多,超出公司承受能力,请核实'
rollback transaction
end
update worker set W_id= '008'
where w_name='李勇'
update worker set W_id= '108'
where w_name='李勇'
go
本系统经过实际的测试和运行,基本可以满足中小企业考勤业务的要求。
该系统运行稳定,在使用和维护中应该注意以下几个问题:
(1)定期备份数据库和日志,以使数据库在发生故障后恢复到一致性状态,保障数据库的完整性。
(2)定期清理数据库中的无效数据,以提高运行效率。
(3)对软件及运行环境进行日常维护。
在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力成本高,而且无法保证其准确性和透明度;给企业的管理带来了许多的不便。
现在利用计算机来管理我们的考勤,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了。
计算机技术特别是数据库技术的发展为企业建立管理信息系统,甚至对改变管理思想起着不可估量的作用。
实践证明信息技术已在企业的管理层面扮演越来越重要的角色。
该考勤管理系统中主要包括了员