数据库课程设计报告职工考勤管理信息系统设计方案及对策.docx
《数据库课程设计报告职工考勤管理信息系统设计方案及对策.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告职工考勤管理信息系统设计方案及对策.docx(17页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告职工考勤管理信息系统设计方案及对策
1概述
1.1设计背景
随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂。
规的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、本钱高和易出错等弊端,已经无法适应现代企业的需求。
随着计算机技术和通信技术的迅速开展,将传统的人工考勤管理计算机化,建立一个高效率的、无过失的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资〞,使企业的管理水平登上一个新的台阶。
企业考勤管理经过如下的业务流程:
〔1〕员工根本信息管理,添加,删除,更改
〔2〕员工考勤管理,员工根据自己的班次在上下班时分别进展出勤操作,采用手动式或者使用划卡机。
由人事部门专门的人员管理出勤和退勤信息。
〔3〕一般在每个月月初进展考勤汇总,汇总信息包括工作日的出勤情况、请假天数、出差天数、休假天数和不同性质的加班记录等。
1.2研究目的
待开发的系统的名称为企业职工在线考勤系统;
我们以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个企业考勤管理信息系统,提供一个科学合理的考勤管理解决案,彻底实现无纸化作业。
根据管理权限的不同,将界面分为一般职员、部门经理、系统管理员和最高管理者四个层次,系统目标如下:
〔1〕提供简单、便的操作。
〔2〕根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能。
〔3〕通过考勤管理无纸化的实现,使企业的考勤管理更加科学规。
〔4〕节省考勤管理的本钱。
〔5〕提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象。
〔6〕对系统提供必要的权限管理。
〔7〕为企业实现整体信息化的其他相关系统提供必要的数据支持。
1.3理论根底的分析
本设计利用sqlserver2012建立数据库,表格化存储,利用表的查询,连接,修改,删除数据等管理员工信息,对数据库设定必要的权限,只有经理具有权限能进展查看,修改数据。
1.4预期结果和意义
考勤系统能实现职工日考勤记录,记录请假信息,记录出差信息等功能,并最终所有信息归入月统计中去。
本考勤系统建立了一个高效率的、无过失的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资〞,使企业的管理水平登上一个新的台阶。
2需求分析
2.1功能需求
(1)数据管理
功能是设置和管理根底数据,包括加班、请假类别的定义和班次的定义,在全县围可以进展根底数据的添加、删除和修改。
(2)考勤管理
包括出勤动作、出勤信息的查询;上级对下级员工的出勤信息确实认;生成考勤统计信息并可以根据指定的条件进展查询。
实现从每日出勤到统计全部考勤信息的无纸化操作。
为便数据传递和查阅,要根据需求提供不同时间短的考勤统计信息表。
(3)加班管理
对员工的加班时间进展统计,记录开场时间和完毕时间,对加班信息实现添加,删除等操作。
(4)请假管理
可以提出请假申请,并完善请假信息,如请假开场时间,请假完毕时间,请假的次数进展管理。
(5)出差管理
管理者安排员工出差,对出差时间,次数的管理。
2.2数据流图
数据流图如图2.1所示
N
N
MM
M
MN
NM
N
2.1数据流图
2.3功能模块图
如图2.2所示,图为功能模块图
2.2功能模块图
2.4系统数据流程图
如图2.3所示,图为数据流程图
2.3数据流程图
3概念构造设计
3.1局部E-R图
〔1〕员工E-R图,如图3.1.1所示
图3.1员工E-R图
〔2〕图2.3.2为出勤E-R图
图3.2出勤E-R图
〔3〕图3.3为出差E-R图
图3.3出差E-R图
〔4〕加班E-R图如图3.4所示
3.4加班E-R图
〔5〕请假E-R图如图3.5所示
3.5请假E-R图
〔6〕月统计E-R图
3.6月统计E-R图
3.2整体E-R图
如图3.7所示,图为整体E-R图
3.7整体E-R图
4逻辑构造设计
4.1关系模式
职工〔职工编号,XX,性别,年龄〕
出勤记录〔职工编号,出勤编号,上班时间,下班时间,缺勤记录〕
出差记录〔职工编号,出差编号,开场时间,完毕时间,统计天数〕
加班信息〔职工编号,加班编号,加班开场时间,加班完毕时间,加班时间统计〕
请假信息〔职工编号,请假编号,请假开场时间,请假完毕时间,请假时间统计〕
月统计〔职工编号,出勤月统计,出差月统计,加班月统计,请假月统计〕
4.2数据关系图
如图4.2.1所示,在数据库中生成的关系图中,员工编号是员工信息表的主键,是其他表的外键。
图4.1数据关系图
5物理构造设计
5.1存储记录构造设计
在物理构造中,数据的根本存取单位是存储记录。
有了逻辑构造以后,就可以设计存储记录构造,一个存储记录可以与多个逻辑记录相对应。
存储记录就包括记录的组成,数据项的类型和长度等。
在本图中5.1职工信息表主要包括职工编号,XX,性别,年龄
表5.1职工信息表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
w_name
XX
Char(6)
非空
w_sex
性别
Char
(2)
‘男’或’女’
w_age
年龄
Int
非空
w_degree
职称
char(4)
非空
在本表5.2中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录
表5.2出勤记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
w_num
出勤编号
Int
主键
work_tim
上班时间
Datetime
允空
end_tim
下班时间
Datetime
允空
Work_note
缺勤记录
Datetime
允空
在本图5.3中出差记录职工编号,出差编号,开场时间,完毕时间,统计天数
表5.3出差记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Out_num
出差编号
Int
主键
Out_tim
开场时间
Datetime
允空
Back_tim
完毕时间
Datetime
允空
Out_days
统计天数
Int
允空
在本表5.4中加班记录表主要包含职工编号,加班编号,开场时间、完毕时间。
时间统计
表5.4加班记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Over_num
加班编号
Int
主键
Over_tim
开场时间
Datetime
允空
Overend_tim
完毕时间
Datetime
允空
Over_days
时间统计
Int
允空
在本表5.5中,请假记录表主要包括职工编号,请假编号,请假开场时间和请假完毕时间组成。
表5.5请假记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Off_num
请假编号
Int
主键
Off_tim
请假开场时间
Datetime
允空
Offend_tim
请假完毕时间
Datetime
允空
Off_days
统计天数
Int
允空
在本图5.6中月统计主要包括职工编号,出勤月统计,出差月统计,请假月统计,加班月统计
表5.6月统计记录表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
Work_note
出勤月统计
Int
非空
Out_note
出差月统计
Int
允空
Over_note
加班月统计
Int
允空
Off_note
请假月统计
Int
允空
5.2创立索引
为mounth_note在w_id上创立唯一索引
CreateindexM1onmounth_note(w_id)
Go
Execsp_helpIndexmounth_note
6数据库实施
6.1建立数据库
CREATEDATABASEworker
ON
(NAME=worker_data,
FILENAME='f:
\worker.mdf',
SIZE=3,
FILEGROWTH=1
)
LOGON
(NAME=worker_LOG,
FILENAME='C:
\worker_log.ldf',
SIZE=1,
MAXSIZE=50,
FILEGROWTH=10%
)
6.2数据表的创立
〔1〕如图6.1所示员工信息表〔worker〕
CREATETABLEworker
(W_idCHAR(4)CONSTRAINTworker_PrimPRIMARYKEY,
w_nameCHAR(6)notnull,
SEXCHAR
(2)CONSTRAINTSEX_ChkCHECK(SEX='男'ORSEX='女')notnull,
AGEINTnotnull,
w_drgeeVARCHAR(4)NOTNULL,
)
图6.1员工信息表
〔2〕如图6.2所示出勤记录表〔work_note〕
CREATETABLEwork_note
(W_idCHAR(4),
w_numint,
CONSTRAINTwork_note_PrimPRIMARYKEY(W_id,w_num),
work_timdatetime,
end_timdatetime,
work_notedatetime,
)
图6.2出勤记录
〔3〕如图6.3所示出差记录表〔out_note〕
CREATETABLEout_note
(W_idCHAR(4),
out_numint,
CONSTRAINTout_note_PrimPRIMARYKEY(W_id,out_num),
out_timdatetime,
back_timdatetime,
out_daysint,
)
图6.3出差记录
〔4〕如图6.4所示加班记录表〔over_note〕
CREATETABLEover_note
(W_idCHAR(4),
over_numint,
CONSTRAINTover_note_PrimPRIMARYKEY(W_id,over_num),
over_timdatetime,
overend_timdatetime,
over_daysint,
)
图6.4加班记录
〔5〕如图6.2.5所示请假记录表〔off_note〕
CREATETABLEoff_note
(W_idCHAR(4),
off_numint,
CONSTRAINToff_note_PrimPRIMARYKEY(W_id,off_num),
off_timdatetime,
offend_timdatetime,
off_daysint,
)
图6.5请假记录
〔6〕如图6.6所示月纪录表〔mounth〕
CREATETABLEmounth_note
(w_idCHAR(6)CONSTRAINTmounth_PrimPRIMARYKEY,
work_noteintnotnull,
out_noteint,
over_noteint,
off_noteint,
)
图6.6月统计记录表
6.3建立存储过程
如图6.7所示建立一个向员工出勤表中插入数据的存储过程
CREATEPROCEDUREinsert_in
(
W_idCHAR(4),
w_numint,
work_timdatetime,
end_timdatetime,
work_notedatetime
)
AS
insertintowork_note
values(W_id,w_num,work_tim,end_tim,work_note)
go
execinsert_inW_id='0001',w_num=1,work_tim='2010/11/1',end_tim='2010/11/1',work_note=null
go
select*
fromwork_note
图6.7运行结果
6.4创立触发器
〔1〕建立一个触发器,当想考勤记录中添加一条新的考勤记录时,触发统计该员工一个月的考勤记录,并存入月统计的月考勤记录表中。
请假记录,出差记录,加班记录分别建立此类触发器。
CREATETRIGGERmounth_insert
ONwork_note
FORinsert
AS
begin
ifupdate(w_id)
updatemounth_note
setwork_note=(selectcount(work_tim)
fromwork_note
wherew_id=(SELECTW_idFROMinserted)
groupbyw_id
)
wherew_id=(SELECTW_idFROMinserted)
end
〔2〕创立一个触发器,当删除员工根本信息时,同事也删除其他表中员工的信息。
如当删除worker表息是,也删除员工考勤记录表中的容,请假记录,出差记录,加班记录分别建立此类触发器。
createtriggerdelete_data
onworker
fordelete
as
delete
fromwork_note
wherew_id=(selectw_idfromdeleted)
7数据库运行和维护
本系统经过实际的测试和运行,根本可以满足中小企业考勤业务的要求。
该系统运行稳定,在使用和维护中应该注意以下几个问题:
〔1〕定期备份数据库和日志,以使数据库在发生故障后恢复到一致性状态,保障数据库的完整性。
〔2〕定期清理数据库中的无效数据,以提高运行效率。
〔3〕对软件及运行环境进展日常维护。
8结论
本系统在信息表述上还不完备,一些模块的信息还不够详细,主要是提供的报表有限。
系统虽然针对中小企业的考勤管理业务。
对使用打卡机、指纹机进展出、退勤的企业,还需要添加一个采集打卡机和指纹机的数据模块。
下一步可以再熟悉系统设计风格的根底上,在各个界面上进一步添加多需要的字段和报表,或者添加采集数据的模块,以扩大系统的功能。
本系统的创新点在于触发器的应用,每增加一条记录,都会重新统计一下记录次数,并存入月纪录中,使得信息更加准确。
在设计时由于对编程语言知识的匮乏,所以数据库的界面化没有做成,如假设想更加完善数据库,应该结合一些编程语言,使得操作界面更加人性化,简单化。
通过本次设计,我对数据库有了更深入的了解,见证了一个系统从无到有,从漏洞百出到逐渐完善的过称,是我所学的只是得以所用,加深了对数据库的理解,在设计过程中有很多不会的问题,通过自己查阅资料逐渐解决,这本身就是一个学习的过程,不仅学到了只是,还掌握了学习法。
同时让我认识到自己所学知识的匮乏,所以要全面开展自己的专业,一个人的能力总是有限的,所以团队合作很重要,在做设计的过程中要学习他人之长,听取他人的意见,虚心向别人请教。
相互配合做好自己的工作,才能成为一名合格的网路工程师。
虽然自己做的设计还不是很完善,但我觉得很有意义,对我以及我今后的人生都很有帮助。