当前位置:文档之家› 员工考勤数据库设计报告

员工考勤数据库设计报告

企业员工考勤管理子系统一.需求分析1.系统背景分析现在不论哪个企业,都要进行考勤,一些企业在考勤管理方面用了大量的人力和财力,不说准确度和可信度如何,其效率很低,而且容易出错,不利于管理。

所以人工考勤已经很难再满足企业规范化管理的要求,随着数据库技术的发展和企业信息化建设的进行,使用计算机管理考勤成为一种主流趋势,它不仅为企业减少了人力财力的付出,而且也大大减轻了考勤工作人员的工作量。

本文系统的阐述了企业考勤管理设计开发的全过程。

包括系统需求调查分析,概念结构设计,逻辑结构设计等部分。

2.数据流程图:3.数据字典:(2)数据结构描述(4)数据存储二.概念结构设计经过调查、信息流程分析、数据收集,并结合需求分析,明确了该子系统的功能:A.给员工编号,登记其基本信息。

B.给各部门编号、命名,确定其职责范围,并任命部门经理。

C.对员工的考勤数据进行登记,并进行月度考勤统计。

D.对员工的月度考勤统计的结果来核算员工工资。

实体和属性的联系系统基本的E-R图对E-R图调整的准则:现实世界中的事物能作为属性对待的尽量作为属性对待;属性和实体的划分:属性中不具有需要描述的信息,即属性是不可分的数据项,不再包含其他信息。

实体属性定义:员工(员工编号、员工姓名、员工性别、出生日期、职务、部门编号);部门(部门编号、部门名称、部门经理职工号);出勤记录 (出勤编号、日期、上班时间、下班时间);请假记录(请假编号、请假起始时间、请假结束时间、请假原因、扣除奖金);加班记录(加班编号、加班时间长度、日期、加班费);出差记录(出差编号、出差起始时间、出差结束时间、出差描述、补助资金);月度考勤统计(月度考勤编号、员工编号、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);工资(工资编号、基本工资、奖金、实际工资);具体调整如下:1.出勤记录,请假记录,加班记录,出差记录本应作为员工的一个属性,但是其中还涉及到相关的奖金待遇及具体描述,则单独作为一个实体;2.工资单独作为一个实体,因为此处强调的是员工的出勤工资,则分开来写。

三.逻辑结构设计1、实体所对应的关系表:具体调整如下:1).出勤记录,请假记录,加班记录,出差记录本应作为员工的一个属性,但是其中还涉及到相关的奖金待遇及具体描述,则单独作为一个实体;2).工资单独作为一个实体,因为此处强调的是员工的出勤工资,则分开来写。

2、用户子模式设计考勤(员工编号、员工姓名、部门名称、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);工资(员工编号、员工姓名、部门名称、职务、基本工资、奖金、实际工资);因为员工对于其他情况不会经常关注,经常使用的以上各项,所以设立考勤和工资关系。

四、物理结构设计1、关系模式存取方法分析:对于该系统的各个关系最经常使用的操作就是查找,则采用B+树作为索引:1)、对以下经常在查询中出现的关系的码建立索引:A 对员工的员工编号建立索引,使其按照员工编号的升序存放。

B 对部门的部门编号建立索引,使其按照部门编号的升序存放。

2)、由于下面几个关系模式的更新频率较高,系统为维护索引要付出较大的代价,因此没有定义索引:月度考勤统计(月度考勤编号、员工编号、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);工资(工资编号、基本工资、奖金、实际工资);2、存储结构设计经过分析得出本考勤管理子系统信息处理的特点是员工考勤和工资的数据不仅经常需要查询,而且更新速度快,每月就要更新一次。

针对以上特点,设计如下:(1)确定数据库的存放位置为了提高系统性能,现根据应用情况将数据按照易变部分和稳定部分、经常存取部分和存取频率较低的部分分别在两个磁盘上存放。

1)、经常存取部分:员工,出勤记录,请假记录,加班记录,出差记录,月度考勤统计,工资。

2)、存取频率较低的部分:部门(2)确定系统配置此管理子系统需要的微机数量和规模都不必太大,但在系统设计时应考虑到今后的发展需求,在选择硬件设备、服务器操作系统、数据库时都考虑到能够逐步的增加和扩展。

1)、硬件配置要求:CPU:PII200以上。

内存:32MB以上。

硬盘:2.1GB以上(可用空间最好在160MB以上)。

打印机:推荐EPSON LQ-1600KII2)、软件配置要求:WINDOWS95、98、2000中文版操作系统。

五、数据库完整性设计1、主键及唯一性索引建立:A 将员工employee表中的yno属性定义为码。

参照员工表。

B 将部门branch表中bno属性定义为码。

参照部门表。

C 将出差记录travel_register表中的travelno 属性定义为码。

参照出差记录表。

D 将请假记录leave_register表中的leaveno属性定义为码。

参照请假记录表。

E 将加班记录overtime_register表中的overtimeno属性定义为码。

参照加班记录表。

F 将出勤记录work_register表中的workno属性定义为码。

参照出勤记录表。

G 将月度考勤统计month_attend表中的monthno属性定义为码。

参照月度考勤表。

H 将工资wage表中的wageno属性定义为码。

参照工资表。

2.对以下经常在查询中出现的关系的码建立索引:1)、在employ表的yno(员工编号)列上建立一个聚簇索引,而且employ表中的记录将按照yno升序存放。

Create cluster index employno on employ(yno);2)、在branch表的bno(部门编号)列上建立一个聚簇索引,而且branch表中的记录将按照bno升序存放。

Create cluster index branchno on branch(bno);2、参照完整性设计关系模型的参照完整性在create table 中用foreign key短语定义哪些列为外码,用references短语指明这些外码参照哪些表的主码。

A 定义出差Travel表中的参照完整性,将travelno,yno设为主码,travelno参照travel_register表的ravelno,yno参照employee表的yno。

B 定义请假Leave表中的参照完整性,将leaveno,yno设为主码,leaveno参照leave_register表的leaveno,yno参照employee表的yno。

C定义加班Overtime表中的参照完整性, 将overtimeno,yno设为主码,overtimeno 参照overtime_register表的overtimeno,yno参照employee表的yno。

D 定义出勤Work表中的参照完整性,将workno,yno设为主码,workno参照work_register表的workno,yno参照employee表的yno。

3、check约束的定义员工表中的ysex只能取“男”或“女”。

alter table employadd constraint c1 check(value in(‘男’,’女’));4、触发器设计A 在删除员工之后,显示员工的基本信息B 不准删除部门的信息。

C 员工的信息更改之后,相应的月度考勤统计表员工编号也要跟着变化。

六、数据库视图设计视图是从一个或几个基本表导出的表,一经定义,就可以和基本表一样被查询、被删除。

1)、定义一个反映员工的年龄的视图。

create view y_age(yno,yname,age)asselect yno,yname,2010-birthfrom employee;2)、建立反映员工工资情况的视图。

create view y_wage(yno,yname,basicwage,bonus,realwage)asselect yno,yname,basicwage,bonus,realwagefrom employ and wage;3)、建立员工考勤情况的视图。

create view y_attend(yno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertime) asselect yno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertimefrom employee and monthattend;七、数据库存储过程设计为方便查询,设计以下存储过程:查询员工信息:员工(员工编号、员工姓名、员工性别、出生日期、职务、部门编号);查询员工工资信息:工资(员工编号、员工姓名、部门名称、职务、基本工资、奖金、实际工资);查询员工考勤信息:考勤(员工编号、员工姓名、部门名称、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);八、权限设计此考勤子系统对于员工都是开放的,方便员工查询考勤,工资等信息。

九、总结通过以上数据库的设计,我深刻了解了每个阶段的设计内容:系统需求分析、概念结构设、逻辑结构设计、物理结构设计、数据库的实施和维护。

分析该企业考勤子系统的功能是首先能提供查询员工的信息,其次让员工能清楚自己的考勤情况,并相应的查询到工资的变化。

考勤情况由请假记录,加班记录,出勤记录,出差记录来统计出的,详细的结果统计在月度考勤表中。

员工都可以很详细的查询自己的情况,经理也可以根据此情况来考核员工。

由于工资是随着考勤数据来变化的,因此工资要单独作为一个实体,这样很容易就能查到相应的详细情况。

在做此子系统时,刚开始还不知道大概的格式,只是在盲目的做,这样到最后自己都不知道下一步该做什么了,所以凡事都要严格按照规则做,然后再发挥下,这样子就不会半途而废了。

之后我严格按照书上的过程做,发现其实做该子系统并没有我想象中难,柳暗花明又一村,攻克一个难题之后,心中大悦,只要细心,慢慢来,一步一步做,一样可以做的出色,不过前提是要对制作子系统的过程熟悉,并且灵活运用。

所以做此子系统最大的收获就是制作过程我已经很熟悉了,然后再做其他系统应该就会得心应手了。

参考文献:《数据库系统概论》王珊萨师煊高等教育出版社(第四版)2006.5。

相关主题