职工考勤信息系统.docx
《职工考勤信息系统.docx》由会员分享,可在线阅读,更多相关《职工考勤信息系统.docx(21页珍藏版)》请在冰豆网上搜索。
职工考勤信息系统
职工考勤信息系统(总22页)
课程设计说明书
课程设计名称:
数据库课程设计
课程设计题目:
职工考勤管理信息系统
学院名称:
信息工程学院
专业:
计算机科学与技术班级:
100451
学号:
姓名:
李枝枝
评分:
教师:
付峥胡建明
20年月日
一.引言
问题描述
随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂。
规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。
随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化,建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。
职工考勤管理信息系统经过如下的业务流程:
(1)员工基本信息管理,添加,删除,更改
(2)员工考勤管理,员工根据自己的班次在上下班时分别进行出勤操作,采用手动方式或者使用划卡机。
由人事部门专门的人员管理出勤和退勤信息。
(3)一般在每个月月初进行考勤汇总,汇总信息包括工作日的出勤情况、请假天数、休假天数等。
研究目的
本次数据库课程设计我选择的题目是职工考勤信息系统。
设计过程中我主要应用了SQLServer2008软件进行设计。
本程序主要建立了三张表。
他们是:
职工信息表,职工考勤信息表和职工上下班标准时间表。
本程序的功能是配合人事管理系统的使用,充分地记录员工的出勤情况,可以开发考勤管理系统。
此系此系统其主要功能有职工信息,包括职工编号、职工姓名、职工部门等;职工考勤信息,包括上班日期,上午上班时间,上午下班时间,下午上班时间,下午下班时间等;以及一张职工上下班时间标准表,包括详细的标准上下班时间。
待开发的系统的名称为企业职工考勤信息系统。
我们以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个企业职工考勤信息系统,提供一个科学合理的考勤管理解决方案,彻底实现无纸化作业。
系统目标如下:
(1)提供简单、方便的操作。
(2)通过考勤管理无纸化的实现,使企业的考勤管理更加科学规范。
(3)节省考勤管理的成本。
(4)提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象。
(5)对系统提供必要的权限管理。
(6)为企业实现整体信息化的其他相关系统提供必要的数据支持。
由于时间及本人的水平问题,虽然实现了老师要求的功能但是该程序还是存在许多的不如意的地方,敬请大家指正。
开发环境和运行环境
企业职工考勤信息系统运用了SQLSERVER2008运行和开发
1.库、基本表的建立和修改:
在SQL-SERVER环境下用建立库以及库中基本表。
2.数据加载:
用手工录入或导入等方法实现基本表中的数据加载。
3.单表查询以及多表查询:
在建立的基本表中使用select基本格式和聚集函数;设计合适的视图,实现多表间查询。
4,索引:
提高查找效率,加快查找速度。
5.触发器:
设计触发器,可实现表间关联字段修改时的完整性等问题。
6.存储器:
设计存储过程,并用语句调用。
7.用SQLSERVER2008开发环境设计、实现系统主要功能。
预期结果和意义
考勤系统能实现职工日考勤记录,记录请假信息,记录迟到早退信息等功能,并最终所有信息归入月统计中去。
本考勤系统建立了一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。
关键字:
职工考勤信息系统、数据库、
二.需求分析
功能需求
为了配合人事管理系统的使用,充分地记录员工的出勤情况,可以开发考勤管理系统。
进行出勤情况统计的过程中,要充分考虑到各种缺勤情况的类别。
本系统的功能是配合人事管理系统的使用,充分地记录员工的出勤情况,可以开发考勤管理系统。
此系此系统其主要功能有职工信息,包括职工编号、职工姓名、职工部门等;职工考勤信息,包括上班日期,上午上班时间,上午下班时间,下午上班时间,下午下班时间等;以及一张职工上下班时间标准表,包括详细的标准上下班时间。
本系统需实现的具体功能:
(1)实现企业员工出勤情况的详细的、系统的管理。
(2)使得企业员工的管理更加现代化、科学化、自动化,并可以很好地督促企业员工更好地为企业谋福利。
(3)可以使用考勤机,使得企业的管理更加现代化。
员工考勤系统能够和考勤机相连,可以把数据导入数据库中,从而完成自动、高效、科学的考勤信息的输入。
(4)可以完成员工考勤信息的手工输入、修改、删除等操作。
可以设定缺勤的类型,如病假、事假等。
设计流程
本次程序的设计过程是先进行系统需求分析,从用户的角度出发对数据的结构、数据处理的要求和系统性能要求进行分析,并用数据流图和数据字典表示;然后再对用户使用本系统所要求的功能进行分析,用系统功能模块图表示;接着是系统结构设计,即用ER图表示数据库概念结构,在具体的RDBMS中实现数据库逻辑结构;最后完成数据库对象的设计及实现,具体的对系统需要的用户、视图、索引、触发器、存储过程和存储函数等数据库对象进行设计,并写出相应的代码。
图系统设计流程图
系统功能分析及设计
考勤管理涉及企业人事管理的多个方面,如员工职务升迁、工资发放、效命发放、员工医疗保险发放等等。
此考勤管理系统需要完成的功能主要有以下几点:
(1)、员工考勤情况处理。
该模块完成员工考勤情况的输入、修改等操作。
如果企业内有考勤机,可以将它的输出处理后,形成考勤管理系统模块的输入。
(2)、通过查看备注,了解缺勤类型,如病假,出差等。
(3)、企业考勤统计。
该模块可以对某月进行考勤情况的统计,生成月统计报表。
图系统功能模块图
同时,考勤管理系统和企业中其他系统的关系,勤定理系统是全企业信息系统的一个有机组成部分。
它与企业上其他系统之间的关系如下:
图和企业中其他系统之间的关系
数据流图
图顶层数据流图
图管理员修改职工基本信息数据流图
图管理员修改职工考勤信息数据流图
数据字典
在物理结构中,数据的基本存取单位是存储记录。
有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。
存储记录就包括记录的组成,数据项的类型和长度等。
在本表中职工信息表主要包括职工号,姓名,部门
表职工信息表
列名
字段类型
约束控制
职工号
Char(50)
主键
姓名
Char(50)
非空
部门
Char(50)
非空
在本表中职工出勤信息表包含职工号,出勤编号,上午上班时间,上午下班时间,下午上班时间,下午下班时间,备注
表职工考勤信息表
列名
字段类型
约束控制
职工号
Char(50)
主键
日期
Char(10)
主键
上午上班时间
Time(7)
允许空
上午下班时间
Time(7)
允许空
下午上班时间
Time(7)
允许空
下午下班时间
Time(7)
允许空
备注
Char(100)
允许空
在本表中职工上下班标准时间表主要包括上午上班时间,上午下班时间,下午上班时间,下午下班时间,每日最大迟到限度
表职工上下班标准时间表
列名
字段类型
约束控制
上午上班时间
Time(7)
允许空
上午下班时间
Time(7)
允许空
下午上班时间
Time(7)
允许空
下午下班时间
Time(7)
允许空
每日最大迟到限度
Char(50)
允许空
三.概念结构设计
局部E-R图
职工E-R图,如图所示
图职工考勤信息E-R图,如图所示
图职工上下班标准时间E-R图,如图所示
图总E-R图
总E-R图,如图所示
图四.逻辑结构设计
关系模式
职工(职工号,姓名,性别,年龄)
考勤情况(职工号,日期,上午上班时间,上午下班时间,下午上班时间,下午下班时间,备注)
上下班标准时间(上午上班时间,上午下班时间,下午上班时间,下午下班时间,每日最大迟到限度)
出勤(职工号,日期)
模式优化
职工、出勤记录、标准时间表不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。
数据库运行和维护
本系统经过实际的测试和运行,基本可以满足中小企业考勤业务的要求。
该系统运行稳定,在使用和维护中应该注意以下几个问题:
(1)定期备份数据库和日志,以使数据库在发生故障后恢复到一致性状态,保障数据库的完整性。
(2)定期清理数据库中的无效数据,以提高运行效率。
(3)对软件及运行环境进行日常维护。
五.数据对象设计及实现
数据表的创建
职工信息表的创建
职工考勤信息表的创建
职工上下班标准时间表的创建:
创建视图
Createview职工考勤视图
As
Selecet职工考勤信息表.职工号,姓名,部门,日期,备注
From职工信息表,职工考勤信息表
Where职工信息表.职工号=职工考勤信息表.职工号
创建索引
Createuniqueindex职工索引on职工信息表(职工号)
Createuniqueindex职工考勤索引on职工考勤信息表(职工号)
建立存储过程
插入职工信息
USE[ygcq]
GO
/******Object:
StoredProcedure[dbo].[插入职工信息]ScriptDate:
01/07/201321:
05:
26******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE[dbo].[插入职工信息]
(
@znoCHAR(50),
@znameCHAR(50),
@bmCHAR(50)
)
AS
insertinto职工信息表
values(@zno,@zname,@bm)
插入职工考勤信息
USE[ygcq]
GO
/******Object:
StoredProcedure[dbo].[插入职工考勤信息]ScriptDate:
01/07/201321:
03:
06******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE[dbo].[插入职工考勤信息]
(
@znoCHAR(50),
@riqiCHAR(100),
@ssstime(7),
@sxstime(7),
@zsxstime(7),
@xxstime(7),
@beizchar(100)
)
AS
insertinto职工考勤信息表
values(@zno,@riqi,@sss,@sxs,@zsxs,@xxs,@beiz)
创建触发器
职工信息表上创建了两个触发器
1.删除职工触发器,其作用是当从职工信息表中删除一个职工信息时,其相应的考勤信息也从职工考勤信息表中删除
USE[ygcq]
GO
/******Object:
Trigger[dbo].[删除职工]ScriptDate:
01/07/201321:
12:
35******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERTRIGGER[dbo].[删除职工]
ON[dbo].[职工信息表]
AFTERdelete
asdeletefrom职工考勤信息表
where职工考勤信息表.职工号=(select职工号fromdeleted)
2.添加职工触发器,其作用是当在职工信息表中增加一个职工信息时,其相应的考勤信息也在职工考勤信息表中增加
USE[ygcq]
GO
/******Object:
Trigger[dbo].[添加职工]ScriptDate:
01/07/201321:
15:
30******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[添加职工]
on[dbo].[职工信息表]
afterinsert
as
insertinto职工考勤信息表(职工号)
selectinserted.职工号frominserted
职工考勤信息表上创建了两个触发器
1.插入考勤信息触发器,其作用是不允许插入在职工考勤信息表中无记录的职工考勤信息
USE[ygcq]
GO
/******Object:
Trigger[dbo].[插入考勤信息]ScriptDate:
01/07/201321:
08:
35******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[插入考勤信息]
on[dbo].[职工考勤信息表]
afterinsert
as
if(selectcount(*)from职工信息表,insertedwhere职工信息表.职工号=inserted.职工号)=0
begin
print'不能向职工考勤信息表中插入此信息'
rollbacktransaction
End
2.上下班时间监控触发器,其作用是不允许非法修改职工上下班时间及备注
USE[ygcq]
GO
/******Object:
Trigger[dbo].[上下班时间监控]ScriptDate:
01/07/201321:
09:
06******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[上下班时间监控]
on[dbo].[职工考勤信息表]
afterupdate
as
if(update(上午上班时间)orupdate(上午下班时间)orupdate(下午上班时间)
orupdate(下午下班时间)orupdate(备注))
begin
print'时间不能被修改!
'
rollbacktransaction
End
上下班标准时间表上创建了一个触发器
1.上下班时间监控触发器,其作用是不允许非法修改职工标准上下班时间及每日最大迟到限度
USE[ygcq]
GO
/******Object:
Trigger[dbo].[标准时间监控]ScriptDate:
01/07/201321:
11:
24******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[标准时间监控]
on[dbo].[职工上下班标准时间表]
afterupdate
as
if(update(上午上班时间)orupdate(上午下班时间)orupdate(下午上班时间)
orupdate(下午下班时间)orupdate(每日迟到最大限度))
begin
print'时间不能被修改!
'
rollbacktransaction
End
六.小结
经过了一学期的学习,我从起初对数据库的认识模糊到后来清晰,深入,我认为我学到了许许多多的东西。
当然,在学习中,得到了老师的更多指导,与帮助。
在对课程的学习中,学习的SQL语句和数据库知识对之前刚开始的学习数据库时有了更深一步认识。
在学习的深入中,虽然学习有时是十分叫人感到枯燥乏味的,但我庆幸的是我坚持了下来,在学期的课程设计中,对自己的认识和加深是十分有帮助的。
我在设计发现,我对其中有许多以前不是十分明的地方,在通过这次课程设计后,对其中的一些疑惑顿时全消,了然于胸了。
像其中对有关数据路径是透明还是隐藏的问题,后来明白了其中含有的深层的含义。
总结这学期我对数据库的学习,驱使我不断的学习和努力。
其次,通过这次对数据库的课程设计我对使我对数据库开发和软件开发产生了极大的兴趣,我想我会在这条路上继续前进下去。
我相信,只要以严格心态要求自己,注意培养自己的思维能力,就一定会有更大更辉煌的发展和提高
本系统在信息表述上还不完备,一些模块的信息还不够详细,主要是提供的报表有限。
系统虽然针对中小企业的考勤管理业务。
对使用打卡机、指纹机进行出、退勤的企业,还需要添加一个采集打卡机和指纹机的数据模块。
下一步可以再熟悉系统设计风格的基础上,在各个界面上进一步添加多需要的字段和报表,或者添加采集数据的模块,以扩充系统的功能。
本系统的创新点在于触发器的应用,每增加一条记录,都会重新统计一下记录次数,并存入月纪录中,使得信息更加准确。
在设计时由于对编程语言知识的匮乏,所以数据库的界面化没有做成,如若想更加完善数据库,应该结合一些编程语言,使得操作界面更加人性化,简单化。
通过本次设计,我对数据库有了更深入的了解,见证了一个系统从无到有,从漏洞百出到逐渐完善的过称,是我所学的只是得以所用,加深了对数据库的理解,在设计过程中有很多不会的问题,通过自己查阅资料逐渐解决,这本身就是一个学习的过程,不仅学到了只是,还掌握了学习方法。
同时让我认识到自己所学知识的匮乏,所以要全面发展自己的专业,一个人的能力总是有限的,所以团队合作很重要,在做设计的过程中要学习他人之长,听取他人的意见,虚心向别人请教。
相互配合做好自己的工作,才能成为一名合格的网路工程师。
虽然自己做的设计还不是很完善,但我觉得很有意义,对我以及我今后的人生都很有帮助。
参考文献:
1.数据库系统概论(第四版),王珊,萨师煊,高等教育出版社
2.数据库原理与应用,姜代红,机械工业出版社
3.王冕马里杰,《数据库开发经典案例解析》.珍藏版.清华大学出版社.