单位考勤管理系统数据库设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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