单位考勤管理系统数据库设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单位考勤管理系统数据库设计说明书

拟制人姜涛魏婷

审核人_______陈敏__________ 批准人______________________

【2013年1月17日星期四】

数据库设计说明书

1.引言

1.1编写目的

随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂。规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化,建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。

1.2背景

a. 待开发软件系统的名称:

单位考勤管理系统

b. 本项目的任务提出者:

石河子大学

c. 本项目开发者:

姜涛,魏婷

d. 本项目用户:

单位管理人员

2.外部设计

2.1支持软件

本数据库主要采用微软公司的成熟数据库系统SQL Server20050,提供了较为灵活操作简单的功能,可以为数据库管理员和系统开发人员提供很好的支持。3.结构设计

3.1概念结构设计

本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,

系统界面:

项:

信息查询:

3.2 概念结构设计:

3.2.1局部E-R 图:

(1)员工E-R 图,如图3.2.1所示

图3.2.1员工

E-R 图

(2)图3.2.2 为出勤E-R 图

图3.2.2 出勤E-R 图

3)图3.2.3为出差E-R 图

图3.2.3出差E-R 图

(4)加班E-R 图如图3.2.4所示

3.4 加班E-R 图

(5)请假E-R 图如图3.1.5所示

图3.2.5请假E-R 图

(6)图3.2.6统计E-R 图

图3.2.6统计E-R 图

(7)图3.2.7总体E-R 图

出勤记录

开始时间

加班统计

结束时间

职工编号

加班编号

请假记录

开始时间 请假统计

结束时间

职工编号 请假编号

出勤记录

上班时间

缺勤记录

下班时间 职工编号

图3.2.7总体E-R图4.逻辑结构设计

4.1关系图

4.2数据字典

职工(职工编号,部门工编号,姓名,性别,年龄)

部门(部门工编号,名称,人数)

出勤记录(职工编号,迟到,旷工,上班时间,下班时间,缺勤记录)

出差记录(职工编号,出差编号,开始时间,结束时间,统计天数)

加班信息(职工编号,加班编号,加班开始时间,加班结束时间,加班时间统计)

请假信息(职工编号,请假编号,请假开始时间,请假结束时间,请假时间统计)

月统计(职工编号,迟到天数,旷工天数,出差月统计,加班月统计,请假月统计)

时间表(上班时间,下班时间)

5物理结构设计

5.1存储结构设计

在本图中5.1.1职工信息表主要包括职工编号,姓名,性别,年龄

在本图中5.1.2职工信息表主要包括部门编号,名称,人数

在本表5.1.3中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录

表5.1.4 出差记录表

在本表5.1.5中加班记录表主要包含职工编号,加班编号,开始时间、结束时间。时间统计

时间组成。

表5.1.6 请假记录表

班月统计

6代码

1.存储过程脚本:

CREATE PROC TJ_LATE

@WORK_TIME DATETIME,@LATE INT,

@ALLLATE INT OUTPUT

AS SELECT @WORK_TIME=(SELECT MONTH FROM CHUQIN) SELECT @LATE=COUNT(LATE)FROM CHUQIN

WHERE LATE='1'

UPDATE ALLLATE SET ALLLATE=@ALLLATE FROM TONGJI

WHERE @ALLLATE=@LATE

CREATE PROC TJ_ABSENT

@WORK_TIME DATETIME,@ABSENT INT,

@ALLABSENT INT OUTPUT

AS SELECT @WORK_TIME=(SELECT MONTH FROM CHUQIN) SELECT @ABSENT=COUNT(ABSENT)FROM CHUQIN

WHERE ABSENT='1'

UPDATE ALLABSENT SET ALLABSENT=@ALLABSENT FROM TONGJI WHERE @ALLABSENT=@ABSENT

2.触发器脚本:

*触发器:*/

/*删除员工同时删除出勤记录*/

create trigger delete_data

on woker

for delete

as

delete

from chuqin

where w_id=(select w_id from woker)

/*迟到,旷工触发器*/

create trigger tri_state

on chuqin for insert

as

declare @late char(10),@abset char(10),@w_id int,@work_time datetime select @w_id=w_id,@work_time=work_time from inserted

if((work_time-year/month/day)

w_time<((work_time-year/month/day)+5))

update chuqin set late='1'where w_id=@w_id and

work_time=@work_time

if(w_time>((work_time-year/month/day)+5))

update chuqin set absent='1'where w_id=@w_id and

work_time=@work_time

3试图脚本

/*创建视图*/

SELECT dbo.bumen.b_name, dbo.bumen.b_num, dbo.woker.w_name,

dbo.woker.w_sex, dbo.woker.w_age, dbo.woker.w_degree

FROM dbo.bumen INNER JOIN

dbo.woker ON dbo.bumen.b_id = dbo.woker.b_id7:

4数据库恢复与备份:

/*数据库的完全备份*/

backup database kqgl

to disk='f:\备份数据库\kqgl_jiaoxue1'

with init

go

/*数据库的恢复*/

restore database kqgl

from disk='f:\备份数据库\kqgl_jiaoxue1'

with recovery

go

/*数据库差异备份*/

backup database kqgl

相关文档
最新文档