工资管理系统数据库设计.doc_第1页
工资管理系统数据库设计.doc_第2页
工资管理系统数据库设计.doc_第3页
工资管理系统数据库设计.doc_第4页
工资管理系统数据库设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工资管理系统数据库设计目录1 引言22 数据库设计32.1 需求设计32.2 业务流程图.42.3 数据流图.42.4 数据字典53 概念设计8e-r图84 逻辑设计104.1 e-r 图向关系模型转换104.2 数据模型的优化105 物理设计105.1 建立触发器115.2 建立存储过程116 数据库实施阶段126.1 建立数据库126.2使用数据库126.3创建四张表136.4删除表146.5创建四个存储过程156.6删除176.7信息录入176.8创建查询视图186.9查询186.10删除触发器196.11创建修改数据的存储过程197.参考文献24241 引言本次数据库实习不要求界面和外部应用程序的设计,只设计数据库部分。工资管理系统采用sql server 2000作为数据库后台。工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。2 数据库设计2.1 需求设计2.1.1 总体分析借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。根据“用信息化带动工业化”的指导思想,全面开发和应用计算机管理信息系统是一个不能回避的问题。在企业管理中,人力资源是企业最宝贵的资源,也是企业的“生命线”,因此人事管理是企业的计算机管理信息系统的重要组成部分。而工资管理又是人力资源管理的重中之重。实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作,以便抽出时间完成更重要的工作。工资管理信息系统的实现可以减轻比较繁琐的收购。现在大型的erp软件具备相当强大的工资管理模块。但是由于在一些小型公司实施erp,会造成不必要的资源浪费,所以设计一套适合小型企业的工资管理系统有特别的现实意义。2.1.2 功能描述要求具备如下基本功能:基本工种、基本工资的管理;公司部门、部门提成和绩效、员工的管理;加班类型、加班工资的管理;公司员工的考勤信息管理;公司员工月工资管理月工资基本工资提成工资+绩效工资+加班工资-社保扣费-其他扣款;查询统计上述信息,生成企业工资报表。2.2 业务流程图人事管理系统主要有以下几项功能:员工档案的管理:包括员工基本信息,所在部门,工作信息和工作简历的输入,员工信息的查询和修改。员工考勤的管理:包括考勤的添加,查询,修改和删除。员工工资的管理:包括工资的添加,工资报表的查询,修改和删除。员工评价的管理:包括评价的输入,查询和修改。人事变动的详细记录,包括岗位和部门的调整,便于掌握人员的动向,及时调整人才的分配。企业所有部门的查询与管理。管理员以及其它功能模块。仔细分析调查有关企业人事信息需求的基础上,得到如下的数据流程。人力资源管理员处理记录工种津贴基本信息月工资生成报表统计查询处理职工2.3数据流图e1人力资源部更新员工信息p1入职登记表e2员工分配部门p2s1员工信息数据入职登记表新的员工信息离职p4工作证部门信息离职表工作证离职表s2 登记记录入职登记表工号2.4 数据字典数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。2.4.1 数据项定义数据项是不可在分的数据单位。下面定义了工资管理系统需要的数据项:表2.1 数据项定义数据项编号数据项名称简述类型及宽度i1sno员工号char(10)i2sname员工姓名char(20)i3sex性别char(4)i4sage年龄inti5dno部门编号char(10)i6dname部门名称char(10)i7dallowance部门福利inti8jno工作编号char(10)i19jname工作名称char(20)2.4.2 数据结构数据结构反映了数据之间的组合关系,。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括数据结构名、含义等。表2-2 数据结构数据结构定义数据结构名数据结构含义组成ds-1staffinf在职职工信息sno,sname,sex,sage,dno,dname,jno,jnameds-2job职位信息dno,dname,jno,jnameds-3in入职登记表sno,sname,sex,sage,dno,dname,jno,jnameds-4out离职表sno,sname,sex,sage,dno,dname,jno,jname2.4.3 数据流数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:数据流名、说明、数据流来源、数据流去向、组成等。表2-3 数据流数据流编号数据流名称简述数据流来源数据流去向数据流组成f1员工信息表记录员工信息 人力资源部员工sno,sname,sex,sage,dno,dname,jno,jnamef2入职表 作为员工入职凭证人力资源部员工sno,sname,sex,sage,dno,dname,jno,jnamef3工牌作为员工在公司身份的凭证部门员工,人力资源部sno sname dname jnamef4离职表作为员工离职的凭证人力资源部员工sno,sname,sex,sage,dno,dname,jno,jnamef5 职位信息表列出公司职位信息人力资源部员工dno dname jno jname2.1.4.4 数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。他可以是手工文档或手工凭单,也可以是计算机文档。表 2-4 数据存储数据存储编号数据存储名称简述数据存储组成相关处理s1员工信息记录员工信息sno,sname,sex,sage,dno,dname,jno,jnamep1,p2,p3s2登记记录记录员工职位信息sno,sname,sex,sage,dno,dname,jno,jnamep12. 4.5 处理过程处理过程的具体处理逻辑一般是用判定表或判定树来描述。数据字典中只需要描述处理过程的说明信息,通常包括处理过程编号、名称、说明、输入数据流、输出数据流、处理等。表 2-5 处理过程处理过程编号处理过程名称简述输入的数据流处理输出地数据流p1更新员工信息员工入职后,更新信息入职表对员工信息数据进行更新操作新的员工信息p2分配部门员工选择工作入职表选择可以胜任的工作工牌、工号p3离职员工里开始办理退工手续离职申请表离职表离职信息3 概念设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。e-r图根据需求分析的结果,得出本系统的实体-关系图(e-r图)如下所示:员工部门职工姓名职工性别职工年龄职工电话职工工种职工部门职工编号部门编号部门津贴部门电话部门名称属于工资考勤表工种是否出勤日期职工编号基本工资工种名称部门编号工种编号拥有扣除基本工资补贴4 逻辑设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本e-r图转换为与所选用的dbms产品所支持的数据模型想符合的逻辑结构。4.1 e-r 图向关系模型转换把总e-r图转换成为关系模式,关系的码用下划线标出员工(员工号 姓名 性别 年龄 职业号 部门号)部门(员工号 部门号 部门福利 部门名)职业(员工号 职业号 职业名)工资(员工号 基本工资 部门福利)4.2 数据模型的优化数据逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该分局应用系统的需要适当的修改,调整数据模型的结构,这就是数据模型的优化。关系数据库模型的优化通常以规范化理论为指导,方法为:确定数据依赖。对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定个关系模式分别属于第几范式。按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要求对某些模式进行合并或分解。对关系模式进行必要的分解,提高数据操作的效率和存储空间利用率。常用的两种分解发事水平分解法和垂直分解法。规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可以来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。5 物理设计数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。5.1 建立触发器这个系统为数据表的更新建立了两个触发器,一个是在有新的员工办理入职手续时,插入新员工信息,触发触发器,使员工信息得到更新。另外就是在有离职员工办理离职手续之后,使触发器触发,更新员工信息表。表 2-6 定义触发器触发器名触发器的作用view_delete在有离职员工办理离职手续之后,使触发器触发,删除该员工信息view_insert在有新的员工办理入职手续时,插入新员工信息,触发触发器,在员工信息表里添加信息5.2 建立存储过程存储过程是存储在服务器端由一组编译的transactsql语句构成的sql sever数据库应用程序,它能够检索系统信息、管理数据库或执行其他操作。为了方便操作,为本系统建立了如下存储过程:表2-7 存储过程存储过程编号存储过程名称存储过程作用p1stfupdate更新员工信息表p2deptupdate更新部门信息p3outer更新离职员工信息6 数据库实施阶段6.1 建立数据库create database gongzion( name=gongzi_data, filename=d:gongzi.mdf, size=5, maxsize=50, filegrowth=5)log on( name=gongzi_log, filename=d:gongzi.ldf, size=5, maxsize=40, filegrowth=8)6.2 使用数据库use gongzi6.3 创建四张表create table staff ( snum char(7) unique not null, sname char(8), sex char(2), age char(2), zname char(8), dname char(8) )6.4 删除表drop table departmentcreate 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) -) 6.5 创建四个存储过程create procedure cunru ( snum char(7), sname char(8), sex char(2), 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) , 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.6 删除drop procedure cunru delete from staff -6.7 信息录入exec cunru snum=001,sname=张三,sex=男,age=45,zname=销售员,dname=销售部exec cunru snum=002,sname=王五,sex=男,age=48,zname=设计师,dname=管理部exec cunru snum=003,sname=赵六,sex=男,age=42,zname=测试员,dname=设计部 exec cunru1 snum=001,bsalary=5000,fuli=1000,jiangli=500exec cunru1 snum=002,bsalary=5500,fuli=1200,jiangli=400exec cunru1 snum=003,bsalary=4500,fuli=1100,jiangli=405exec cunru2 snum=001,znum=11,zname=销售员exec cunru2 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=销售部6.8 创建查询视图create view chaxun asselect staff.snum,sname,sex,age,bsalary+fuli+jiangli as 总工资,staff.zname,znum,staff.dname,dnumfrom staff,salary,profession,departmentwhere staff.snum=salary.snum and staff.snum=profession.snum and staff.snum=department.snum6.9 查询select *from chaxun6.10 创建触发器create trigger update0on stafffor update as declare zname chardeclare znum intdeclare snum intset snum=(select snum from inserted )update profession set zname=(select zname from inserted),znum=(select distinct znum from profession where zname in(select zname from inserted) where snum=snumcreate trigger update1on stafffor updateas declare dname chardeclare dnum intdeclare snum intset snum=(select snum from inserted )update department set dname=(select dname from inserted),dnum=(select distinct dnum from department where dname in (select dname from inserted)where snum=snum6.11 删除触发器drop trigger update06.12 创建修改数据的存储过程6.12.1 在表staff上创建存储过程create procedure xiugai( snum char(11), sname char(8), sex char(2), age char(2), zname char(10), dname char(10) )as update staffset sname=sname,sex=sex,age=age,zname=zname,dname=dnamewhere snum=snum-修改exec xiugai snum=001,sname=李四,sex=男,age=40,zname=工程师,dname=开发部-修改后查询select *from staffselect *from professionselect *from department6.12.2 在表salary上创建存储过程create procedure xiugai1( snum char(11) , bsalary float(11), fuli float(7), jiangli float(7) )asupdate salaryset bsalary=bsalary,fuli=fuli,jiangli=jiangliwhere snum=snum-修改exec xiugai1 snum=001,bsalary=11200,fuli=2000,jiangli=1000-修改后查询select *from salarydrop trigger tongbu-创建删除数据功能的触发器create trigger tongbuon stafffor deleteas delete from salarywhere snum=(select snum from deleted ) delete from professio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论