单位考勤管理系统数据库设计Word文档格式.docx
《单位考勤管理系统数据库设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单位考勤管理系统数据库设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
d.本项目用户:
单位管理人员
2.外部设计
2.1支持软件
本数据库主要采用微软公司的成熟数据库系统SQLServer20050,提供了较为灵活操作简单的功能,可以为数据库管理员和系统开发人员提供很好的支持。
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.1职工信息表
列名
说明
字段类型
约束控制
w_id
职工编号
Char(4)
主键
b_id
部门编号
Char
(2)
w_name
姓名
Char(6)
非空
w_sex
性别
‘男’或’女’
w_age
年龄
Int
w_degree
职称
char(4)
在本图中5.1.2职工信息表主要包括部门编号,名称,人数
表5.1.2部门信息表
类型
备注
不允许空,主键
B_name
名称
Char(10)
不允许空
B_num
人数
int
允许空
在本表5.1.3中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录
表5.1.3出勤记录表
w_num
出勤编号
work_tim
上班时间
Datetime
end_tim
下班时间
late
迟到记录
absent
旷工记录
在本图5.1.4中出差记录职工编号,出差编号,开始时间,结束时间,统计天数
表5.1.4出差记录表
Out_num
出差编号
Out_tim
开始时间
Back_tim
结束时间
Out_days
统计天数
在本表5.1.5中加班记录表主要包含职工编号,加班编号,开始时间、结束时间。
时间统计
表5.1.5加班记录表
Over_num
加班编号
Over_tim
Overend_tim
Over_days
在本表5.1.6中,请假记录表主要包括职工编号,请假编号,请假开始时间和请假结束时间组成。
表5.1.6请假记录表
Off_num
请假编号
Off_tim
请假开始时间
Offend_tim
请假结束时间
Off_days
在本图5.1.7中月统计主要包括职工编号,出勤月统计,出差月统计,请假月统计,加班月统计
表5.1.7月统计记录表
alllate
迟到月统计
allabsent
旷工月统计
Out_note
出差月统计
Over_note
加班月统计
Off_note
请假月统计
在本表5.1.8中,时间记录表主要包括职上班时间,下班时间
表5.1.8时间记录表
w_time
Char(20)
e_time
6代码
1.存储过程脚本:
CREATEPROCTJ_LATE
@WORK_TIMEDATETIME,@LATEINT,
@ALLLATEINTOUTPUT
ASSELECT@WORK_TIME=(SELECTMONTHFROMCHUQIN)
SELECT@LATE=COUNT(LATE)FROMCHUQIN
WHERELATE='
1'
UPDATEALLLATESETALLLATE=@ALLLATEFROMTONGJI
WHERE@ALLLATE=@LATE
CREATEPROCTJ_ABSENT
@WORK_TIMEDATETIME,@ABSENTINT,
@ALLABSENTINTOUTPUT
SELECT@ABSENT=COUNT(ABSENT)FROMCHUQIN
WHEREABSENT='
UPDATEALLABSENTSETALLABSENT=@ALLABSENTFROMTONGJI
WHERE@ALLABSENT=@ABSENT
2.触发器脚本:
*触发器:
*/
/*删除员工同时删除出勤记录*/
createtriggerdelete_data
onwoker
fordelete
as
delete
fromchuqin
wherew_id=(selectw_idfromwoker)
/*迟到,旷工触发器*/
createtriggertri_state
onchuqinforinsert
declare@latechar(10),@absetchar(10),@w_idint,@work_timedatetime
select@w_id=w_id,@work_time=work_timefrominserted
if((work_time-year/month/day)<
w_timeandw_time<
((work_time-year/month/day)+5))
updatechuqinsetlate='
wherew_id=@w_idandwork_time=@work_time
if(w_time>
((work_time-year/month/day)+5))
updatechuqinsetabsent='
3试图脚本
/*创建视图*/
SELECTdbo.bumen.b_name,dbo.bumen.b_num,dbo.woker.w_name,dbo.woker.w_sex,dbo.woker.w_age,dbo.woker.w_degree
FROMdbo.bumenINNERJOIN
dbo.wokerONdbo.bumen.b_id=dbo.woker.b_id7:
4数据库恢复与备份:
/*数据库的完全备份*/
backupdatabasekqgl
todisk='
f:
\备份数据库\kqgl_jiaoxue1'
withinit
go
/*数据库的恢复*/
restoredatabasekqgl
fromdisk='
withrecovery
go
/*数据库差异备份*/
\备份数据库\kqgl_jiaoxue2'
withdifferential
withnorecovery
withreplace