1、员工工资管理系统设计Hefei University数 据 库 技 术 综 合 报 告BACHELOR DISSERTATION题 目 : 员 工 工 资 管 理 系 统 设 计 系 别 : 电 子 信 息 与 电 气 工 程 系 班 级 : 电 子 信 息 工 程 (1)班 姓 名 : 王 蓓 蓓 学 号 : 1405011007 2015 年 12 月 11 日员工工资管理系统设计目录摘要 1一、应用背景 .11.1 引言 .11.2 管理信息系统的发展历史 .11.3 国内信息系统发展现状 .21.4 国内信息系统存在的问题 .21.5 信息系统开发的紧迫性 .3二、系统的主要功能 .3
2、2.1 数据库需求分析 42.2 功能陈述 42.3 数据流图 42.4 功能流程图 52.5 E-R 模型图 72.5.1 部门实体 E-R 图 .72.5.2 员工实体 E-R 图 72.5.3 考勤表实体 E-R 图 .82.5.4 加班表实体 E-R 图 82.5.5 工种表实体 E-R 图 92.5.6 实体与实体之间的 E-R 模型如图 8 所示 9三、 数据库逻辑设计 .103.1 表的定义 103.1.1 员工表 103.1.2 部门表 103.1.3 工种表: 113.1.4 加班类型表(类型,加班名称,加班薪酬) 113.2 代码 12四、物理结构设计 .134.1 存储结
3、构设计 134.2 确定数据库的存放位置 134.3 存储过程 144.4 触发器的实现 15五、总结与心得 .16员工工资管理系统设计1摘要人事管理是企业管理中的一个重要内容,随着时代的进步,企业也逐渐变得庞大起来。如何管理好企业内部员工的信息,成为企业管理中的一个大问题。在这种情况下,开发一个企业人事管理系统就显得非常必要。 本企业人事管理系统具有如下功能:员工基本信息的录入、修改、查询、删除模块,员工考勤信息和员工调动信息的录入、修改、查询、删除模块,以及系统维护功能。为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。 一、应用背景1.1 引言
4、企业人事管理是企业管理的一个重要内容,随着时代的进步,企业也逐渐变的庞大起来。如何管理好企业内部员工的信息,成为企业管理中的一个大问题。在这种情况下,一个可以规范化,自动化的企业人事管理系统就显得非常必要。最初的人事管理,都是靠人力来完成的。当企业规模比较小的时候,人力可以完成,随着企业的规模越来越大,企业的员工人数也越来越多,依然维持着人力进行人事管理,必然会造成工作效率低,工作错误增高的问题。人事管理系统就是把分散的企事业单位的职工信息实行统一,集中,规范的收集管理,建立分类编号管理,电脑存储查询以及防火,防潮,防蛀,防盗等现代化,专业化的管理系统,为企事业单位和职工解除后顾之忧。企业人事
5、管理系统为企事业单位提供信息咨询,信息检索,信息存取等服务。1.2 管理信息系统的发展历史管理信息系统的概念起源很早。早在 20 世纪 30 年代,柏德就强调了决策在组织管理中的作用。50 年代,西蒙提出了管理依赖于信息和决策的概念。同一时代维纳发表了控制论与管理,他把管理过程当成一个控制过程。50 年代计算机已用于会计工作,1958 年盖尔写道:管理将以较低的成本得到及时准确的信息,做到较好的控制。“这时数据处理一词已经出现。管理信息系统已经逐步成为一个独立的学科分支,它继承了其他众多学科的理论、方法与应用技术,它与信息科学、系统科学、控制理论、运筹学、会计学、统计学、经济学、管理科学、计算
6、机科学有着十分密切的联系。同时,管理信息系统作为一种应用工具,又广泛地应用于工业、农业、交通、运输、文化、教育、卫生、体育以及各种社会经济活动的信息管理之中,并起着益重要的作用,显示出强大的生命力。随着社会的不断进步、科学技术快速发展以及生产力水平逐步提高,使得管理工作显得越来越重要。在现代管理科学体系中,管理信息系统已经被公认为是一门不可替代的崭新学科,目前,其正处在不断发展、逐步完善阶段。计算机作为现代化的工具与手段应用于员工工资管理系统设计2管理,已成为信息处理的重要工具。计算机的应用范围越来越广,应用的功能由一般数据处理发展为分析预测、支持决策,最终导致了管理信息系统的产生。管理信息系
7、统它是依赖于管理和科学技术的发展而形成的。管理信息系统的三要素是系统的观点、数学的方法和计算机的应用,而这三点也正是管理现代化的标志。管理信息系统是依赖于电子计算机的发展而发展的。管理信息系统是与电子计算机同步发展的。从原理上讲,任何部门或企业,无论有无计算机,均有信息的收集,加工和使用,因而都有管理信息系统。但是,只是有了计算机以后管理信息系统的功能才能真正体现出来。1.3 国内信息系统发展现状企业是国民经济的基本单元,而企业信息系统建设是我国企业走向现代化的必由之路。我国目前共有各类企业 800 万家,这些企业在近 20 年来,在不同程度上都遇到了企业信息系统建设的问题。80 年代以来,国
8、家有关部门就一直非常重视企业信息化的推进。国家有关部门曾重点扶持过一批国有大企业的信息化工程,并以它们为样板在全国制造业企业中推广过 CIMS。沈阳鼓风机厂、成都飞机制造厂、北京第一机床厂等,都是这一时期涌现出来的企业信息化样板企业。90 年代以后,随着微型计算机、互连网等迅速普及,计算机技术对企业的影响越来越大,企业信息化进一步为人们所重视。有关部门领导曾明确提出:到 2000 年,全国一千个大型骨干企业基本实现企业信息化,全国大型产业企业 80%(含零售业、批发业、仓储业、饮食业和工业企业)全面应用计算机管理,初步实现管理现代化。3040%的中小企业普及计算机管理。1995 年以后,我国企
9、业信息化走向了以 ERP 为主的道路,许多外国 ERP 厂商如 SAP、BAAN、ORACLE、FOUTH SHIFT 等纷纷进入中国,国内目前也已有数十家 ERP 软件供应商,不少已经形成商品化且有几百家用户。一些调查说明,我国企业购买 MRPII、ERP 软件的费用在 90 年代以后迅速增长。例如在机械行业,购买了国外软件公司 MRPII 系统的企业高达 66%,企业平均用于硬件的投资费用约为 604 万元,软件费 171 万元,实施及咨询费 143 万元,合计约 800 万元。与之类似,其他行业对于信息化的投资,在近几年来也有较大的增长。1.4 国内信息系统存在的问题在企业信息化快速发展
10、的时代,我们在充分肯定这些已经取得的成果的同时也不能忽视一些普遍性的问题。首先是过 10 年左右,我国企业信息系统建设虽然轰轰烈烈地发展,但其成功率究竟如何?根据广东省信息中心和信息协会对 335 家已经实现了信息化的企业的调查,有 52.24%的企业认为本企业进行信息化建设的成效一般;认为不理想的有 21.79%;认为效果非常好的只有 9.55%。根据研究还发现:一些企业已经投入使用的模块,实际中并未发挥作用,它只是针对若干局部系统,或者特定类型的产品的试运行。运行最好的为库存管理模块,原因主要是库存与其它部门间的相互影响较小。其次,物料单、销售、采购及财务统计模块也在部分企业得到较好的应用
11、。但成本管理及预测模块等使用情况较差。根据另一次对 300 名来自不同行业、不同企业的中层管理者的调查发现,这些管理者工作的科室中,人均微机数量 0.41 台的占 33%,其中人均微机数量达到 1 台以上的企业占37%。但是,这些企业中的计算机的 97%是用来做文字处理工作,有 1/2 是用于浏览网页,甚至有 1/5 的计算机是经常用来玩游戏的。而大多数被调查者都认为:他们企业并没有实员工工资管理系统设计3现信息化。这些调查和结果分析都说明了:我国企业目前虽然使用计算机已经比较普遍,但许多信息系统的应用情况却并没有达到预想的效果。1.5 信息系统开发的紧迫性 随着企业规模的扩大和市场竞争的更加
12、激烈,各类企业都愈来愈认识到人力资源管理的重要性及提升企业自身人力资源管理水平的迫切性,而人力资源管理水平的提升不仅需要高素质的管理人员,而且也需要信息化工具进行辅助。人力资源管理软件也就应运而生了。目前,无论是机关单位、事业单位,还是企业单位,人力资源管理对于组织生存与长远发展所具备的重要性都已经有了明确的认识,对于加强组织本身人力资源管理水平的需求已经产生。随着中国企业管理水平的提高及中国加入 WTO 的事实,人才的争夺与管理已成为中国企业乃至各级事业、机关单位所面临的严重问题。要应对高强度的竞争无疑是需要优秀的管理人才,而科学管理的实施在信息化的今天是离不开数字化的工具做辅助的。特别在组
13、织规模不断扩大的今天,做为管理人员和组织领导者要想对组织进行有效的管理和正确的决策就必须借助于数字化工具的帮助。人力资源管理软件的市场是非常大的,据国家工商行政管理局统计,中国注册企业有近 1,000 万家,这些都是潜在的市场。在今后 5 年内人力资源管理软件必然会迅速发展成为一个巨大的市场,但现在国内人力资源开发厂家而言,在人力资源管理软件的深层次开发方面,只能说刚刚启动,现有人力资源系统的厂商的开发层面几乎只停留在人事作的层面上。国外成熟的产品虽然在理论性和先进性上优于国内产品,但在中国现今人力资源管理制度不规范的现状下,其功能的实用性及有效性已大打折扣,同时其高昂的价格也使得大多数企业望
14、而生畏。同时,中国企业受中华民族深远文化的影响有其与西方企业所不同的管理文化底蕴。而国外软件开发商则很难将产品与中国国情相结合,使得产品无法真正为广大中国企业所受用。二、系统的主要功能此工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能:对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。对职工的
15、工资进行计算、修改。可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某部门工资数在某一范围的职工的工资情况等。报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。员工工资管理系统设计42.1 数据库需求分析数据库的设计是指对于一个给定的应用环境,构造最有效的数据库模式,建立数据及应用系统,实质能够有效地存储数据,满足用户的需求,数据库设计是在数据库管理系统支持下进行的。根据数据流程图,可以列出以下数
16、据项和数据结构:员工信息:工号,姓名,性别,年龄,出生日期,地址,电话,政治面貌,毕业院校,身份证号,所在部门,备注。考勤管理:工号,姓名,月份,本月天数,公休天数,出勤天数,出勤,旷工,年休,请假,迟到,早退,忘订卡,假日加班,其它加班,补休天数,出差,加班费,扣考核,其它,备注。 员工评价:工号,姓名,工作态度,各种奖励及处罚,技术水平,备注。工资管理:工号,姓名,底薪,奖金,补贴,加班,养老金,医疗保险,公积金,实发工资,月份。人事变动:编号,事件,备注。部门管理:编号,名称,部门经理。管理员:编号,用户名,口令。2.2 功能陈述要求具备如下基本功能:基本工种、基本工资的管理;公司部门、
17、部门津贴、员工的管理;加班类型、加班津贴的管理;公司员工的考勤信息管理;公司员工月工资管理月工资基本工资部门津贴加班津贴被扣工资查询统计上述信息,进行企业工资报表。2.3 数据流图人事管理系统主要有以下几项功能:员工档案的管理:包括员工基本信息,所在部门,工作信息和工作简历的输入,员工信息的查询和修改。员工考勤的管理:包括考勤的添加,查询,修改和删除。员工工资的管理:包括工资的添加,工资报表的查询,修改和删除。员工评价的管理:包括评价的输入,查询和修改。人事变动的详细记录,包括岗位和部门的调整,便于掌握人员的动向,及时调整人才的分配。企业所有部门的查询与管理。员工工资管理系统设计5管理员以及其
18、它功能模块。仔细分析调查有关企业人事信息需求的基础上,将得到如图 1 的数据流程。图 1 数据流图2.4 功能流程图根据系统功能的要求,可以将系统分解成几个功能模块来分别设计,功能模块如图 2 所示:系统管理员理员处理记录工种津贴基本信息月工资查询处理职工进行统计产生报表工种员工工资管理系统设计6员工档案员工考勤员工评价工资管理添加 事件查询修改删除添加部门修改删除档案添加档案查询修改删除考勤添加考勤查询评价添加评价查询修改删除添加工资工资查询修改删除按姓名查询按工号查询按部门查询按姓名查询按工号查询按姓名查询按工号查询按姓名查询按工号查询修改删除企业人事管理系统员工管理人事变动部门管理员工工
19、资管理系统设计72.5 E-R 模型图2.5.1 部门实体 E-R 图departmentdeptIDdeptName deptallowance managerdepttel图 3 部门 E-R 图2.5.2 员工实体 E-R 图employeeEmpIDNameSexage addressemptelJobIDdeptID图 4 员工 E-R 图员工工资管理系统设计82.5.3 考勤表实体 E-R 图AttendanceAttdate empID ifattd图 5 考勤表 E-R 图2.5.4 加班表实体 E-R 图ExtraworkempIDewdate ewtypeIDewtimee
20、wpay图 6 加班表 E-R 图员工工资管理系统设计92.5.5 工种表实体 E-R 图JobjobIDjobname deptidsalary图 7 工种表 E-R 图2.5.6 实体与实体之间的 E-R 模型如图 8 所示部门属于员工考勤管理 加班管理员工考勤 员工加班计算工资员工工资人事变动人员变动员工工资管理系统设计10图 8 实体间的 ER 模型3、数据库逻辑设计3.1 表的定义3.1.1 员工表employee字段名 数据类型 含义说明 空值情况EmpID Char(6) 职工编号 主关键字Name varChar(10)职工姓名 不为空Sex Char(2) 性别 不为空age
21、 int 年龄address Varchar(100)地址emptel Varchar(15)联系电话JobID Char(6) 工种编号 不为空deptID Char(6) 部门编号 不为空表 13.1.2 部门表department字段名 数据类型 含义说明 空值情况deptID Char(6) 部门编号 主键deptName Varchar(20) 部门名称 不为空deptallowancemoney 部门津贴 默认为0manager Varchar(20) 部门经理depttel Varchar(15) 办公室电话表 2员工工资管理系统设计113.1.3 工种表:Job字段名 数据类型
22、 含义说明 空值情况jobID Char(6) 工种编号 主键jobname Varchar(20) 工种名称 不为空deptid Char(6) 部门编号 不为空salary money 基本工资 不为空表 33.1.4 加班类型表(类型,加班名称,加班薪酬)extraWorkType表 4加班表(职工号,日期,加班类型,加班时间,加班津贴)Extrawork表 5考勤表(日期,职工编号,是否出勤)Attendance表 6字段名数据类型 含义说明 空值情况ewtypeID Char(3) 加班类型 主键ewtypeName Char(20) 加班名称 不为空ewtypePay number
23、 加班薪酬字段名数据类型 含义说明 空值情况empID Char(6) 员工编号 不为空ewdate date 加班日期 不为空ewtypeID Char(3) 加班类型 不为空ewtime Number(2) 加班时间 不为空ewpay Number 加班薪酬字段名 数据类型 含义说明 空值情况Attdate Date 日期 不为空empID Char(6) 职工编号 不为空ifattd Char(1) 是否出勤 不为空表 5员工工资管理系统设计12考勤类型表(出勤类型,出勤名字,扣除工资)attendancetype表 73.2 代码在主界面中,员工管理菜单是此系统的重要组成部份,其中包括
24、 4 个主要功能模块:员工基本信息模块,员工考勤模块,员工评价模块和员工工资管理模块。在编写程序的具体代码之前首先要创建公用模块,VB 中可以用公用模块来存放整个工程项目公用的函数,过程和全局变量等。这样可以极大的提高代码的效率。在项目资源管理器中为项目添加一个 Module,并保存就可以开始添加代码了。公用代码如下:Public Function ExecuteSQL(ByVal SQL _As String, MsgString As String) _As ADODB.RecordsetDim cnn As ADODB.ConnectionDim rst As ADODB.Records
25、etDim sTokens() As StringOn Error GoTo ExecuteSQL_ErrorsTokens = Split(SQL)Set cnn = New ADODB.Connectioncnn.Open ConnectStringIf InStr(“INSERT,DELETE,UPDATE“, _UCase$(sTokens(0) Thencnn.Execute SQLMsgString = sTokens(0) & _“ query successful“ElseSet rst = New ADODB.Recordsetrst.Open Trim$(SQL), cnn
26、, _adOpenKeyset, _adLockOptimisticSet ExecuteSQL = rstMsgString = “查询到“ & rst.RecordCount & _“ 条记录 “End IfExecuteSQL_Exit:Set rst = NothingSet cnn = NothingExit Function字段名 数据类型 含义说明 空值情况attID char(3) 出勤类型 主键attName char(20) 出勤名字attSal number 扣除工资员工工资管理系统设计13ExecuteSQL_Error:MsgString = “查询错误: “ & _
27、Err.DescriptionResume ExecuteSQL_ExitEnd FunctionPublic Function ConnectString() As StringConnectString = “FileDSN=renshi.dsn“End Function以上两个函数代码分别用来完成执行各种 SQL 语句和连接数据库。四、物理结构设计4.1 存储结构设计经过分析可知,本酒店管理系统中信息处理的特点如下:()职员基本信息、职员考勤信息子系统的数据不仅经常需要查询,而且更新速度快,例如新职员的到来后要进行登记,职员每个月都要进行要作考勤等。()各个部门信息要求共享的信息较多。例
28、如员工信息,来客信息等。但财务信息一般不共享。()人事部门有一定的特殊职能:汇总财务信息;对于被辞退的员工从系统中级联删除其信息、如从员工表中删除其基本信息、从它所服务的工作部门中删除该员工的工作名额,结算支付其工资、奖金;同时补充新的员工,代替它的工作。针对这些特点,设计如下:4.2 确定数据库的存放位置为了提高系统性能,现根据应用情况将数据按照易变部分和稳定部分、经常存取部分和存取频率较低的部分分别在两个磁盘上存放。同时,考虑到本系统是多用户的,为了提高效率,数据库的备份的数据和日志文件将保存在磁带中。(1) 经常存取部分:职员(职员编号、职员姓名、性别、年龄、工龄、民族编号、生日、政治面
29、貌、婚姻状况、所在部门编号、入职时间、文化程度编号、籍贯、身份证号、电子邮箱、办公电话、职员状态、居住地址、邮政编码、户口所在地);职员家庭(职员编号、家庭成员编号、家庭成员姓名、家庭成员性别、家庭成员年龄、与本人关系、所在单位)职员月考勤(考勤年月、职员编号、所在部门编号、请假天数、旷工天数、加班天数、当月全勤天数)(2) 存取频率较低的部分:文化程度(文化程度编码、文化程度名称)民族(民族编码、民族名称)部门(部门编号、部门名称、部门职能描述)员工工资管理系统设计14职务(职务编号、职务名称)4.3 存储过程(1)指定员工工资情况的查询定义一个名为 stsffCost 的存储过程,该存储过
30、程以以工资年月(staffgongzi)、出勤天数(staffchuqin)、加班工资(staffjiaban)、应发工资(staffying)、实发工资(staffshi)为输入参数返回指定员工工资信息的存储过程。stsffCost 代码如下:CREATE PROCEDURE staffCoststaffgongzi decimal,staffchuqin decimal,staffjiaban decimal,staffying decimal,staffshi decimalASSELECT *FROM 工资WHERE 工资年月=staffgongzi AND 出勤天数=staffchu
31、qin AND加班工资=staffjiaban AND应发工资=staffying AND实发工资=staffshiGO(2)指定范围的员工的信息查询。以员工工号、部门编号为输入参数返回指定员工基本信息的存储过程,要求输入部分员工信息查询员工全部信息。定义一个名为 stsffInfo 的存储过程,该存储过程以员工工号(staffNum)、部门编号(bmNum)作为输入参数,存储过程返回查询到的结果集。satffInfo 的定义代码如下:CREATE PROCEDURE staffInfostaffNum VARCHAR(50)=%,bmNum VARCHAR(50)=%ASSELECT *FR
32、OM 员工,部门WHERE 员工.部门名称=部门.部门名称 AND (员工.工号 LIKE staffNum VARCHAR(50)+%) AND (部门编号 LIKE bmNum VARCHAR(50)+%)GO员工工资管理系统设计15(3)统计指定年份各部门每个月份的工资总额。以年份为输入参数,以总工资金额为输出参数,产生该年度 12 个月份的每部门工资统计的存储过程。定义该存储过程名为 bmMonhSum,输入参数为ThisYear,实现代码如下:CREATE PROCEDURE bmMonthSumThisYear CHAR(10)ASSELECT DATEPART(MM,工资年月)
33、AS 员工工资月份,SUM(实发工资) AS 部门人数FROM 员工,工资,部门WHERE 员工.工号=工资.工号 AND 员工.部门名称=部门.部门名称 AND DATEPART(YYYY,工资年月)=ThisYearGROUP BY DATEPART(MM,工资年月)GO4.4 触发器的实现(1)关键操作,在工资表里添加一条新的记录,实发工资会自动更新新的数据。定义这个触发器名称为 insert_工资。代码如下:create trigger insert_工资 on 工资 for insertasdeclare i char(20)declare bb intset i=casewhen
34、bb=0001 then 实发工资when bb=0002 then 实发工资endprint i(2)员工新调入进行员工新调入操作是在员工信息表中添加一条新的记录,可以为员工信息表设计一个 Insert 触发器,当员工信息表执行 Insert 操作后自动更改出部门信息表相应记录的数据。定义这个触发器名称为 staff insert。其代码如下:CREATE TRIGGER staff insert ON 员工FOR INSERTAS IF (SELECT COUNT (*)FROM 部门,inserted,工资WHERE 部门.部门人数=inserted.部门人数 AND 工资.工号=ins
35、erted.工号)=0ROLLBACK TRANSACTIONGO员工工资管理系统设计16(3)员工调出进行员工调出操作是在员工信息表中删除该员工的记录,可以为员工信息表设计一个Delete 触发器,当员工信息表执行 Delete 操作后,工资表、部门表中的记录也将全部删除。定义这个触发器名称为 staff_delete。其实现代码如下:CREATE TRIGGER staff_delete ON 员工FOR DELETEAS SELECT COUNT(*)FROM 部门,工资,deletedWHERE 部门.部门人数=deleted.部门人数 AND 工资.工号=deleted.工号GO(4
36、)员工内部调动为员工表设计一个名为 staff update 的 UPDATE 触发器,当系统对员工表进行 UPDATE操作后,将会自动触发它。该触发器将相应记录的部门人数、部门名称、工资更新。下面是 client update 触发器的定义代码;CREATE TRIGGER staff_update ON 员工FOR UPDATEAS SELECT COUNT(*)FROM updated,部门WHERE 部门.部门名称=updated.部门名称GO五、总结与心得经过一周的时间,在同学和老师的帮助下,基本完成本次课程设计,基本达到了工资管理系统的要求。这次数据库课程设计给我的最大的印象是:流
37、程是一切的根本;架构是重要的,想像的还要重要;实践比一切空谈和理论更能学到东西。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。在设计过程中一定要慎重,仔细。来不得半点马虎。需求分析是整个课程设计的中心,考虑要全面,分析彻底。才会为后来的设计打下良好的基础。否则,前功尽弃,甚至不能完成任务。做实例过程中要注意与说明书中数据项数据类型,数据长度等的一致,命令中心输入任何命令都要谨记一条原则,那就是严格按照格式来,不能像平时在纸上作业。在本系统的设计与实现的过程中主要讲述了企业人事管理信息系统的系统设计部分,包括功能模块设计、数据库结构设计等。系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分。系统的详细设计根据系统分析阶段的结论将系统具体化,并完成了各个模块的添加、修改、删除与查询的功能,直到最后形成一个完整的可行性的管理系统。