《工资管理系统数据库的设计1.pdf》由会员分享,可在线阅读,更多相关《工资管理系统数据库的设计1.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、工资管理系统数据库的设计工资管理系统数据库的设计随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在职能,企业管理水平以及优质服务上提出更高的要求。建设一个科学高效的信息管理系统是解决这一问题的必由之路。工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的工资管理系统对员工工资等进行系统的管理,很难实现企业高效运转.一、需求分析一、需求分析1.总体设计借助
2、现代信息技术和管理理论, 建立企业管理信息系统是当今社会的重要趋势。根据“用信息化带动工业化”的指导思想,全面开发和应用计算机管理信息系统是一个不能回避的问题。在企业管理中,人力资源是企业最宝贵的资源,也是企业的“生命线” ,因此人事管理是企业的计算机管理信息系统的重要组成部分。而工资管理又是人力资源管理的重中之重。实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作,以便抽出时间完成更重要的工作。工资管理信息系统的实现可以减轻比较繁琐的收购。现在大型的 ERP 软件具备相当强大的工资管理模块。 但是由于在一些小型公司实施 ERP,会造成不必要的资源浪费,所以设计一套适合小型企业的
3、工资管理系统有特别的现实意义。2.具体功能分析要求具备如下基本功能:基本工种、基本工资的管理;公司部门、部门提成和绩效、员工的管理;加班类型、加班工资的管理;公司员工的考勤信息管理;公司员工月工资管理月工资基本工资提成工资+绩效工资+加班工资-社保扣费-其他扣款;查询统计上述信息,生成企业工资报表。 3.业务流程图人事管理系统主要有以下几项功能:员工档案的管理:包括员工基本信息,所在部门,工作信息和工作简历的输入,员工信息的查询和修改。员工考勤的管理:包括考勤的添加,查询,修改和删除。员工工资的管理:包括工资的添加,工资报表的查询,修改和删除。员工评价的管理:包括评价的输入,查询和修改。人事变
4、动的详细记录,包括岗位和部门的调整,便于掌握人员的动向,及时调整人才的分配。企业所有部门的查询与管理。管理员以及其它功能模块。仔细分析调查有关企业人事信息需求的基础上,得到如下的数据流程职工工种津贴人 力 资 源管理员处 理记录查询处理基本信息月工资统计生 成报表二二. .概念结构设计概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。E-R 图根据需求分析的结果,得出本系统的实体-关系图(E-R 图)如下所示:部门编号职工编号部门名称部门津贴部门电话职工姓名部门基本工资职工性别属于补贴职工年龄员工部门编号职工电话拥有职工工种基 本工资
5、工种工种名称工资职工部门扣除工种编号考勤表日期职工编号是否出勤三逻辑结构的设计三逻辑结构的设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与所选用的DBMS产品所支持的数据模型想符合的逻辑结构。1.E-R 图向关系模型转换把总 E-R 图转换成为关系模式,关系的码用下划线标出员工(员工号 姓名 性别 年龄 职业号 部门号)部门(员工号 部门号 部门福利 部门名)职业(员工号 职业号 职业名)工资(员工号 基本工资 部门福利)2. 数据模型的优化数据逻辑设计的结果不是唯一的。 为了进一步提高数据库应用系统的性能,还应该分局应用系统
6、的需要适当的修改,调整数据模型的结构,这就是数据模型的优化。关系数据库模型的优化通常以规范化理论为指导,方法为:确定数据依赖。对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定个关系模式分别属于第几范式。按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要求对某些模式进行合并或分解。对关系模式进行必要的分解,提高数据操作的效率和存储空间利用率。常用的两种分解发事水平分解法和垂直分解法。规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可以来预测模式
7、可能出现的问题,使数据库设计工作有了严格的理论基础。四、物理结构设计四、物理结构设计数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。1 .建立触发器这个系统为数据表的更新建立了两个触发器, 一个是在有新的员工办理入职手续时,插入新员工信息,触发触发器,使员工信息得到更新。另外就是在有离职员工办理离职手续之后,使触发器触发,更新员工信息表。表 2-6 定义触发器触发器名View_deleteView_insert触发器的作用在有离职员工办理离职手续之后,使触发器触发,删
8、除该员工信息在有新的员工办理入职手续时,插入新员工信息,触发触发器,在员工信息表里添加信息2. 建立存储过程存储过程是存储在服务器端由一组编译的 TransactSQL 语句构成的 SQLSever 数据库应用程序,它能够检索系统信息、管理数据库或执行其他操作。为了方便操作,为本系统建立了如下存储过程:存储过程存储过程编号P1P2P3存储过程名称StfupdateDeptupdateOuter存储过程作用更新员工信息表更新部门信息更新离职员工信息五五 数据库实施阶段数据库实施阶段1 .建立数据库create database gongzion( name=gongzi_data, filena
9、me=d:gongzi.mdf, size=5, maxsize=50, filegrowth=5)log on( name=gongzi_log, filename=d:gongzi.ldf, size=5, maxsize=40, filegrowth=8)2. 使用数据库use gongzi3. 创建四张表create table staff( snum char(7) unique not null, sname char(8), sex char(2), age char(2), zname char(8), dname char(8)4 删除表drop table departme
10、ntcreate table salary( snum char(7) , bsalary float(11), fuli float(7), jiangli float(7)create table profession( snum char(7) , znum char(7) , zname char(8)create table department( snum char(7) , dnum char(7) , dname char(8) -)5 创建四个存储过程create procedure cunru( snum char(7), sname char(8), sex char(2
11、), age char(2), zname char(8), dname char(8) -)asinsert into staff values (snum,sname,sex,age,zname,dname)create procedure cunru1 snum char(7) , bsalary float(11), fuli float(7), jiangli float(7)asinsert into salary values (snum,bsalary,fuli,jiangli)create procedure cunru2( snum char(7), znum char(7
12、) , zname char(8)asinsert into profession values (snum,znum,zname)create procedure cunru3( snum char(7), dnum char(7) , dname char(8)asinsert into department values (snum,dnum,dname)6 删除drop procedure cunrudelete from staff -7 信息录入exec cunru snum=001,sname=张三,sex=男,age=45,zname=销售员,dname=销售部exec cun
13、ru snum=002,sname=王五,sex=男,age=48,zname=设计师,dname=管理部exec cunru snum=003,sname=赵六,sex=男,age=42,zname=测试员,dname=设计部execsnum=001,bsalary=5000,fuli=1000,jiangli=500execsnum=002,bsalary=5500,fuli=1200,jiangli=400execsnum=003,bsalary=4500,fuli=1100,jiangli=405exec cunru2 snum=001,znum=11,zname=销售员exec cu
14、nru2 snum=002,znum=12,zname=工程师exec cunru2 snum=003,znum=13,zname=设计师exec cunru3 snum=001,dnum=101,dname=管理部exec cunru3 snum=002,dnum=102,dname=设计部exec cunru3 snum=003,dnum=103,dname=销售部8 创建查询视图create view chaxunasselectstaff.snum,sname,sex,age,bsalary+fuli+jianglias总 工资,staff.zname,znum,staff.dname
15、,dnumfrom staff,salary,profession,departmentwhere staff.snum=salary.snum and staff.snum=profession.snum andstaff.snum=department.snum9 查询cunru1cunru1cunru1select *from chaxun10 创建触发器create trigger update0on stafffor updateasdeclare zname chardeclare znum intdeclare snum intset snum=(select snum from
16、 inserted )updateprofessionsetzname=(selectznamefrominserted),znum=(selectdistinctznumfromprofessionwhereznamein(select zname from inserted) where snum=snumcreate trigger update1on stafffor updateasdeclare dname chardeclare dnum intdeclare snum intset snum=(select snum from inserted )updatedepartmentsetdname=(selectdnamefrominserted),dnum=(select distinct dnum from department where dname in(select dname from inserted)where snum=snum11 删除触发器drop trigger update0