存储过程在企业工资管理系统中的设计与实现

2013-08-06 11:56
赤峰学院学报·自然科学版 2013年24期
关键词:月工资语句应用程序

未 培

(安徽工商职业学院 电子信息系,安徽 合肥 230041)

1 引言

本文引用的企业工资管理系统的开发软件是Microsoft Visual Studio 2008和sql server 2005,在系统开发过程中,结合本系统的特点,为减少网络通信流量,提高系统的稳定性,舍弃了常规的设计方案,将主要的业务逻辑处理模块都设计成存储过程,充分地利用了存储过程的优点,体现了模块化程序设计的思想.

2 存储过程概述

2.1 存储过程概念

存储过程是由一系列的T—SQL语句组成的程序模块,每个存储过程以一个名字存储并作为一个单元处理.存储过程可由程序调用执行,并且可以带有参数、有条件执行以及其他强大的编程功能[1].存储过程可以使对数据库的管理以及显示关于数据库及其用户信息的工作容易得多.

2.2 存储过程优点

(1)提高了程序执行效率.应用程序中的SQL语句需经过编译和优化才能执行,而存储过程是已经编译和优化的SQL语句[2].因此,在应用程序中使用存储过程相对于直接使用SQL语句来说,程序的执行效率要高,同时,存储过程第一次被执行后,执行规划就驻留在高速缓存中.后面每次操作,只需要从高速缓存中调用即可[1].

(2)具有较高的安全性.存储过程作为数据库的一种对象,只有拥有相应权限的用户才能执行它,而不需要对其中引用的对象拥有访问权限.通过存储过程可以使限制权限用户在控制之下间接地存取数据库,从而保证数据的安全.并且通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性[3].

(3)能减少网络通信流量负担.存储过程在服务器端执行,用户每次执行只需要发出一条执行命令即可,而不需要发出所有的代码,从而减少了网络的数据流量[4].

(4)提高了代码的重用性和程序的可维护性.存储过程一旦被创建,以后就可以在所有程序中被多次调用,有利于程序的模块化设计[5].

(5)单纯的sql语句无法达到流程控制,也不能完成复杂的判断和较复杂的运算,而通过存储过程可以实现.存储过程的运用大大增强了SQL语言的功能和灵活性[6].

(6)存储过程的使用便于程序的修改.应用程序都是根据企业规则设置不同的SQL语句,而企业的规则是多变,经常会因为制度、业务等变化变换规则.如果企业规则在应用程序中直接使用SQL语句实现,当规则变化后,就需要对应用程序进行修改,可想而知修改很困难.如果使用存储过程,则当企业规则发生变化时,可通过在服务器中改变存储过程即可,无须修改任何应用程序,这样既降低了程序修改、维护的难度,也大大提高了程序的可移植性[5].

2.3 存储过程的应用策略

使用存储过程就是为了提高程序的执行效率、增强可移植性、稳定性.下面给出一些使用存储过程的策略.

(1)需要一定运行效率的、重复调用的运算需要用存储过程来实现.存储过程在创建时即在服务器上进行编译并且驻留在高速缓存中,每次直接调用,不需要再次编译,从而提高程序的执行效率.如企业工资管理系统中员工月工资的核算功能用存储过程来实现,执行效率就会比较高[3].

(2)需要对基本表进行比较复杂的逻辑处理才能返回所需的结果集最好用存储过程来实现.如果复杂的数据处理操作均放在客户端由应用程序来完成,会降低程序的执行效率.

(3)可以通过存储过程实现系统数据的安全性.比如,可以对一个用户授权去调用存储过程,执行修改某特定的数据集,即使该用户对表没有任何其他的权限,这样可以保证系统数据的安全性[4].

3 企业工资管理系统

企业工资管理系统主要功能是能根据企业发放工资的标准及企业奖惩制度,迅速核算出各个员工的月工资情况,并能够实现员工个人工资查询的功能.

3.1 企业工资管理系统的各功能模块

根据对市场上一些中小企业的调查,企业工资管理平台至少应该包含员工基本信息的增、删、改、查;企业员工月工资的核算以及员工个人月工资的查询.具体的功能模块可以用下图1表示:

图1 工资管理平台功能模块图

3.2 后台数据库设计

图2 后台数据库E-R图

经过对多个中小企业调查分析,企业工资管理包含的主要信息有员工基本信息、固定工资、奖金、罚金、职称等.一般会根据员工的职称或资历确定员工的固定工资一块,当然固定工资中也包含多项,比如:基本工资、岗位津贴、生活补贴等,除了固定工资模块,每个企业都会有相应的奖惩机制,员工在遵守这些制度的同时也会受到相应的奖励和处罚,最后员工工资应该是有固定工资、奖金、罚金等多部分组成.系统后台数据库E-R图及各表之间的关系如图2、图3所示.

图3 后台数据库关系图

4 存储过程在工资管理系统中的应用实例

基于存储过程的优点,在企业工资管理系统开发过程中充分利用了存储过程,多个部分的实现都是有存储过程完成的.下面重点介绍本系统比较重要的模块,即员工月工资核算模块和员工个人工资查询模块的实现.

4.1 员工月工资核算

在工资管理系统中,创建一存储过程,当其被调用时,给出时间参数,就能核算出该时间的所有员工月工资,核算月工资代码如下:

如下执行存储过程fygz即能得到指定月份的员工工资

exec fygz 2013,3

4.2 员工个人职工查询

工资管理系统除了能核算员工月工资一块,还应该能供每个员工查询自己的工资,即当员工提供自己的工号和时间,就应该查询出该员工该月份的工资情况,下面的存储过程就能实现员工工资的查询,代码如下:

5 结束语

企业工资管理系统开发过程中,多个部分使用了SQL SERVER2005中的存储过程,通过实际应用表明,存储过程的使用降低了系统开发难度,减少了网络数据通信流量,提高了系统的执行效率.

〔1〕常国权.卜耀华.SQL SERVER 2005数据库实训教程.

〔2〕亓文娟.对Sql Server存储过程存储过程的研究与应用[J].廊坊师范学院学报(自然科学版),2010(12).

〔3〕陈晓珊.Sql Server存储过程浅析[J].科技信息,2008(7).

〔4〕马晓荣.吴银川.存储过程在图书管理系统中的设计与实现[J].电子测量,2013(4).

〔5〕叶柯.浅谈MSSQL Server数据库查询优化[J].宁波广播电视大学学报,2007(01).

〔6〕邓景顺,黄杰.SQL Server中多行数据更新的触发器应用研究[J].山西大同大学学报(自然科学版),2010(02).

猜你喜欢
月工资语句应用程序
拒不支付劳动报酬罪中农民工“月工资”的司法认定
重点:语句衔接
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
在北方的冬天
如何搞定语句衔接题
三星电子将开设应用程序下载商店
作文语句实录
微软软件商店开始接受应用程序