目录1 概述 (1)1.1设计背景 (1)1.2研究目的 (1)1.3理论基础的分析 (2)1.4预期结果和意义 (2)2 需求分析 (2)2.1功能需求 (2)2.2数据流图 (3)2.3功能模块图 (4)2.4系统数据流程图 (4)3 概念结构设计 (5)3.1局部E-R图 (5)3.2整体E-R图 (7)4 逻辑结构设计 (8)4.1关系模式 (8)4.2数据关系图 (9)5 物理结构设计 (9)5.1存储记录结构设计 (9)5.2创建索引 (12)6 数据库实施 (12)6.1建立数据库 (12)6.2数据表的创建 (13)6.3建立存储过程 (16)6.4创建触发器 (17)7 数据库运行和维护 (19)8 结论 (19)1 概述1.1设计背景随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂。
规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。
随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化,建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。
企业考勤管理经过如下的业务流程:(1)员工基本信息管理,添加,删除,更改(2)员工考勤管理,员工根据自己的班次在上下班时分别进行出勤操作,采用手动方式或者使用划卡机。
由人事部门专门的人员管理出勤和退勤信息。
(3)一般在每个月月初进行考勤汇总,汇总信息包括工作日的出勤情况、请假天数、出差天数、休假天数和不同性质的加班记录等。
1.2研究目的待开发的系统的名称为企业职工在线考勤系统;我们以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个企业考勤管理信息系统,提供一个科学合理的考勤管理解决方案,彻底实现无纸化作业。
根据管理权限的不同,将界面分为一般职员、部门经理、系统管理员和最高管理者四个层次,系统目标如下:(1)提供简单、方便的操作。
(2)根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能。
(3)通过考勤管理无纸化的实现,使企业的考勤管理更加科学规范。
(4)节省考勤管理的成本。
(5)提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象。
(6)对系统提供必要的权限管理。
(7)为企业实现整体信息化的其他相关系统提供必要的数据支持。
1.3理论基础的分析本设计利用server 2005建立数据库,表格化存储,利用表的查询,连接,修改,删除数据等管理员工信息,对数据库设定必要的权限,只有具有权限的人才能进行查看,修改数据。
1.4预期结果和意义考勤系统能实现职工日考勤记录,记录请假信息,记录出差信息等功能,并最终所有信息归入月统计中去。
本考勤系统建立了一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。
2需求分析2.1功能需求(1) 数据管理功能是设置和管理基础数据,包括加班、请假类别的定义和班次的定义,在全县范围内可以进行基础数据的添加、删除和修改。
(2) 考勤管理包括出勤动作、出勤信息的查询;上级对下级员工的出勤信息的确认;生成考勤统计信息并可以根据指定的条件进行查询。
实现从每日出勤到统计全部考勤信息的无纸化操作。
为方便数据传递和查阅,要根据需求提供不同时间短的考勤统计信息表。
(3) 加班管理对员工的加班时间进行统计,记录开始时间和结束时间,对加班信息实现添加,删除等操作。
(4) 请假管理可以提出请假申请,并完善请假信息,如请假开始时间,请假结束时间,请假的次数进行管理。
(5) 出差管理管理者安排员工出差,对出差时间,次数的管理。
2.2数据流图数据流图如图2.1所示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 关系模式职工(职工编号,姓名,性别,年龄)出勤记录(职工编号,出勤编号,上班时间,下班时间,缺勤记录)出差记录(职工编号,出差编号,开始时间,结束时间,统计天数)加班信息(职工编号,加班编号,加班开始时间,加班结束时间,加班时间统计)请假信息(职工编号,请假编号,请假开始时间,请假结束时间,请假时间统计)月统计(职工编号,出勤月统计,出差月统计,加班月统计,请假月统计)4.2数据关系图如图4.2.1所示,在数据库中生成的关系图中,员工编号是员工信息表的主键,是其他表的外键。
图4.1 数据关系图5 物理结构设计5.1存储记录结构设计在物理结构中,数据的基本存取单位是存储记录。
有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。
存储记录就包括记录的组成,数据项的类型和长度等。
在本图中5.1职工信息表主要包括职工编号,姓名,性别,年龄表5.1 职工信息表在本表5.2中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录表5.2 出勤记录表在本图5.3中出差记录职工编号,出差编号,开始时间,结束时间,统计天数表5.3 出差记录表在本表5.4中加班记录表主要包含职工编号,加班编号,开始时间、结束时间。
时间统计表5.4 加班记录表在本表5.5中,请假记录表主要包括职工编号,请假编号,请假开始时间和请假结束时间组成表5.5 请假记录表在本图5.6中月统计主要包括职工编号,出勤月统计,出差月统计,请假月统计,加班月统计表5.6 月统计记录表5.2创建索引为mounth_note在w_id上创建唯一索引Create index M1 on mounth_note(w_id)GoExec sp_helpIndex mounth_note6 数据库实施6.1建立数据库CREATE DATABASE workerON( NAME=worker_data,FILENAME='f:\worker.mdf',SIZE=3,FILEGROWTH=1)LOG ON( NAME=worker_LOG,FILENAME='C:\worker_log.ldf',SIZE=1,MAXSIZE=50,FILEGROWTH=10%)6.2数据表的创建(1)如图6.1所示员工信息表(worker)CREATE TABLE worker( W_id CHAR(4) CONSTRAINT worker_Prim PRIMARY KEY,w_name CHAR(6) not null,SEX CHAR(2) CONSTRAINT SEX_Chk CHECK(SEX='男'OR SEX='女') not null, AGE INT not null,w_drgee VARCHAR(4) NOT NULL,)图6.1 员工信息表(2)如图6.2所示出勤记录表(work_note)CREATE TABLE work_note( W_id CHAR(4),w_num int ,CONSTRAINT work_note_Prim PRIMARY KEY(W_id,w_num), work_tim datetime,end_tim datetime,work_note datetime,)图6.2 出勤记录(3)如图6.3所示出差记录表(out_note)CREATE TABLE out_note( W_id CHAR(4),out_num int ,CONSTRAINT out_note_Prim PRIMARY KEY(W_id,out_num), out_tim datetime,back_tim datetime,out_days int,)图6.3 出差记录(4)如图 6.4所示加班记录表(over_note)CREATE TABLE over_note( W_id CHAR(4),over_num int ,CONSTRAINT over_note_Prim PRIMARY KEY(W_id,over_num), over_tim datetime,overend_tim datetime,over_days int,)图6.4 加班记录(5)如图6.2.5所示请假记录表(off_note)CREATE TABLE off_note( W_id CHAR(4),off_num int ,CONSTRAINT off_note_Prim PRIMARY KEY(W_id,off_num), off_tim datetime,offend_tim datetime,off_days int,)图 6.5 请假记录(6)如图6.6所示月纪录表(mounth)CREATE TABLE mounth_note( w_id CHAR(6) CONSTRAINT mounth_Prim PRIMARY KEY, work_note int not null,out_note int,over_note int,off_note int,)图6.6 月统计记录表6.3建立存储过程如图6.7所示建立一个向员工出勤表中插入数据的存储过程CREATE PROCEDURE insert_in(@W_id CHAR(4),@w_num int ,@work_tim datetime ,@end_tim datetime ,@work_note datetime)ASinsert into work_notevalues(@W_id, @w_num, @work_tim ,@end_tim ,@work_note )goexecinsert_in@W_id='0001',@w_num=1,@work_tim='2010/11/1' ,@end_tim='2010/11/ 1' ,@work_note=nullgoselect *from work_note图6.7 运行结果6.4创建触发器(1)建立一个触发器,当想考勤记录中添加一条新的考勤记录时,触发统计该员工一个月的考勤记录,并存入月统计的月考勤记录表中。