1、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
2、图图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数据字典职工(职工编号,部门工编号,姓名,性别,年龄)部门(部门工编号,名称,人数)出勤记录(职工编号,迟到,旷工,上班时间,下班时间,缺勤记录)出差记录(职工编号,出差编号,开始时间,结束时间,统计天数)加班信息(职工编号,加班编号,加班开始时间,加班结束时间,加班时间统计)请假信息(职工编号,请假编号,请假开
3、始时间,请假结束时间,请假时间统计)月统计(职工编号,迟到天数,旷工天数,出差月统计,加班月统计,请假月统计)时间表(上班时间,下班时间)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年龄Intw_degree职称char(4) 在本图中5.1.2职工信息表主要包括部门编号,名称,人数表5.1.2 部门信息表类型备注不允许空,主键B_name名称Char(10)不允许空B_
4、num人数int允许空在本表5.1.3中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录表5.1.3出勤记录表w_num出勤编号work_tim上班时间Datetimeend_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_timOverend_timO
5、ver_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_timeChar(20)e_time6代码1
6、.存储过程脚本:CREATE PROC TJ_LATEWORK_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=LATECREATE PROC TJ_ABSENTWORK_TIME DATETIME,ABSENT INT,ALLABSENT INT O
7、UTPUT SELECT ABSENT=COUNT(ABSENT)FROM CHUQIN WHERE ABSENT= UPDATE ALLABSENT SET ALLABSENT=ALLABSENT FROM TONGJI WHERE ALLABSENT=ABSENT2.触发器脚本:*触发器:*/*删除员工同时删除出勤记录*/create trigger delete_dataon wokerfor deleteasdelete from chuqinwhere w_id=(select w_id from woker)/*迟到,旷工触发器*/create trigger tri_stateo
8、n chuqin for insert declare late char(10),abset char(10) ,w_id int,work_time datetimeselect w_id=w_id,work_time=work_time from inserted if(work_time-year/month/day)w_time and w_time(work_time-year/month/day)+5) update chuqin set absent=3试图脚本/*创建视图*/SELECT dbo.bumen.b_name, dbo.bumen.b_num, dbo.woker
9、.w_name, dbo.woker.w_sex, dbo.woker.w_age, dbo.woker.w_degreeFROM 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 initgo /*数据库的恢复*/restore database kqgl from disk = with recoverygo/*数据库差异备份*/备份数据库kqgl_jiaoxue2 with differential with norecovery with replace
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1