单位考勤管理系统数据库设计.docx
单位考勤管理系统数据库设计说明书拟制人 姜涛 魏婷审核人 陈敏批准【2013年1月17日星期四】数据库设计说明书1. 引言1.1编写目的随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来 越复杂。规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管 理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的 需求。随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化, 建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现公正考 勤,高效薪资”,使企业的管理水平登上一个新的台阶。1.2背景a. 待开发软件系统的名称:单位考勤管理系统b. 本项目的任务提出者:石河子大学c. 本项目开发者:姜涛,魏婷d. 本项目用户:单位管理人员2. 外部设计2.1支持软件本数据库主要采用微软公司的成熟数据库系统SQL Server20050,提供了较 为灵活操作简单的功能,可以为数据库管理员和系统开发人员提供很好的支持。3. 结构设计3.1概念结构设计本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据 形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,系统界面:菜单欢迎使用:.职工考勤信息管理系统项:用户名 :魏婷口 令word专业资料两号八寸M石丁 1 #信息查询:查洵泰伴按姓互按端母登画结果旺1工编导性别802302S28莒1阕:理902303王诺娠25802304云瞰8D2305女:2430230&27802307至聪员902309猝i职一易80230929聪员602310明查询条件按姓名*按编号602310返回廷询结果职工编目职工姓名性别.年龄麟802310S25舰黑N”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.3出差E-R图(5)请假E-R图如图3.1.5所示结束时间3.4加班E-R图请假统计图3.2.5请假E-R图(6)图3.2.6统计E-R图(7)图3.2.7总体E-R图结束时间部门图3.2.7总体E-R图4.逻辑结构设计4.2数据字典职工(职工编号,部门工编号,姓名,性别,年龄)部门(部门工编号,名称,人数)出勤记录(职工编号,迟到,旷工,上班时间,下班时间,缺勤记录)出差记录(职工编号,出差编号,开始时间,结束时间,统计天数)加班信息(职工编号,四班编号,加班开始时间,加班结束时间,加班时间 统计)请假信息(职工编号,请假编号,请假开始时间,请假结束时间,请假时间 统计)月统计(职工编号,迟到天数,旷工天数,出差月统计,加班月统计,请假月统 计)理结构设计5.1存储结构设计在本图中5.1.1职工信息表主要包括职工编号,姓名,性别,年龄表5.1.1职工信息表列名说明字段类型约束控制w_id职工编号Char (4)主键b_id部门编号Char(2)主键w_name姓名Char(6)非空w_sex性别Char(2)男或女w_age年龄Int非空w_degree职称char (4)非空在本图中5.1.2职工信息表主要包括部门编号,名称,人数表5.1.2部门信息表列名说明类型备注b_id部门编号Char(2)不允许空,主键B_name名称Char(10)不允许空B_num人数int允许空在本表5.1.3中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录表5.1.3出勤记录表列名说明字段类型约束控制w_id职工编号Char(4)主键w_num出勤编号Int主键work_tim上班时间Datetime允许空end_tim下班时间Datetime允许空late迟到记录int允许空absent旷工记录int允许空在本图5.1.4中出差记录职工编号,出差编号,开始时间,结束时间,统计天数表5.1.4出差记录表列名说明字段类型约束控制w_id职工编号Char(4)主键Out_num出差编号Int主键Out_tim开始时间Datetime允许空Back_tim结束时间Datetime允许空Out_days统计天数Int允许空在本表5.1.5中加班记录表主要包含职工编号,加班编号,开始时间、结束时间。时间统计表5.1.5加班记录表列名说明字段类型约束控制w_id职工编号Char (4)主键Over_num加班编号Int主键Over_tim开始时间Datetime允许空Overend_tim结束时间Datetime允许空Over_days时间统计Int允许空在本表5.1.6中,请假记录表主要包括职工编号,请假编号,请假开始时间和请假结束时间组成。表5.1.6请假记录表列名说明字段类型约束控制w_id职工编号Char(4)主键Off_num请假编号Int主键Off_tim请假开始时间Datetime允许空Offend_tim请假结束时间Datetime允许空Off_days统计天数Int允许空在本图5.1.7中月统计主要包括职工编号,出勤月统计,出差月统计,请假月统计,加班月统计表5.1.7月统计记录表列名说明字段类型约束控制w_id职工编号Char (4)主键alllate迟到月统计Int允许空allabsent旷工月统计Int允许空Out_note出差月统计Int允许空Over_note加班月统计Int允许空Off_note请假月统计Int允许空在本表5.1.8中,时间记录表主要包括职上班时间,下班时间表5.1.8时间记录表列名说明字段类型约束控制w_time上班时间Char(20)非空e_time下班时间Char(20)非空6代码1.存储过程脚本:CREATE PROC TJ_LATEWORK_TIME DATETIME LATE INT,ALLLATE INT OUTPUTAS SELECT WORK_TIME =(SELECT MONTH FROM CHUQINSELECT LATE = COUNT(LATE)FROM CHUQINWHERE LATE = '1'UPDATE ALLLATE SET ALLLATE = ALLLATE FROM TONGJIWHERE ALLLATE = LATECREATE PROC TJ_ABSENTWORK_TIME DATETIME ABSENT INT,ALLABSENT INT OUTPUTAS SELECT WORK_TIME =(SELECT MONTH FROM CHUQINSELECT ABSENT=COUNT(ABSENT)FROM CHUQINWHERE ABSENT='1'UPDATE ALLABSENT SET ALLABSENT=ALLABSENT FROM TONGJIWHERE ALLABSENT = ABSENT2.触发器脚本:*触发器:*/*删除员工同时删除出勤记录*/create trigger delete_dataon wokerfor deleteasdeletefrom chuqinwhere w_id = (select w_id from woker/*迟到,旷工触发器*/create trigger tri_stateon chuqin for insertasdeclare late char(10 abset char(10 ,w_id int work_time datetimeselect w_id w_id work_time= work_time from insertedif( work_time year/month/day)<w_time andw_time<( work_time year/month/day)+5 )update chuqin set late='1' where w_id =w_id and work_time =work_timeif(w_time>( work_time year/month/day)+5)update chuqin set absent = '1' where w_id w_id andwork_time=work_time3试图脚本/*创建视图*/SELECT dbo bumen b_name dbo bumen b_num, dbo woker w_namedbo woker w_sex, dbo woker w_age dbo woker w_degreeFROM dbo .bumen INNER JOINdbo woker ON dbo bumen b_id = dbo woker b_id7 :4数据库恢复与备份:/*数据库的完全备份*/backup database kqglto disk ='f:备份数据库kqgl_jiaoxue1'with initgo/*数据库的恢复*/restore database kqglfrom disk = 'f:备份数据库kqgl_jiaoxue1'with recoverygo/*数据库差异备份*/backup database kqglto disk ='f:备份数据库kqgl_jiaoxue2'with differentialgo/*数据库的恢复*/restore database kqglfrom disk = 'f:备份数据库kqgl_jiaoxue2with norecoverygorestore database kqglfrom disk = 'f:备份数据库kqgl_jiaoxue2with replacego