时间:2023-04-12 15:22:00
金融信息系统大多属于服务性行业,这类行业对系统的响应速度和安全性要求极高。因此,研究提高系统响应速度和安全性的技术,对提高软件开发水平有重要的意义。本文针对事务存储过程在金融系统中的应用作了阐述,并用实例说明了利用存储过程简单化解决复杂事务问题的思路。
一、引言
金融信息系统的建设要求极高,既要高度的安全性,又要尽可能提高响应的速度,涉及的操作多且复杂。从系统的易于开发和易于维护的观点出发,选择windows平台,使用.NET和SQL Server数据库是一个不错的选择。但是如何以高效的程序实现其中的复杂操作是系统开发中的一个较难的内容,笔者就此难点进行一些探讨。
二、方案思考
在金融业务中存在大量复杂的操作,典型的如ATM机的取款、银行的转账操作等。
(一)以转账操作来说,每一次操作都需要完成如下的步骤:
1.判断转账的源账号中是否有足够的转出金额。
2.如有足够的金额,从源账号中减去转账的金额,往目标账号中增加转账的金额。
3.向数据表中写人一条转账记录。
以上步骤具有典型的事务特征。如果任何一步操作不能够完成,将造成金融机构或用户的巨大损失。那么一个问题就提出来了,在哪个地方实现该事务操作,是在程序代码中,还是在数据库的存储过程中?
(二)两种方法相比较之下,使用存储过程明显具有以下优点:
1.允许模块化编程、更便于分工创建好存储过程后,将其存放在数据库中,可以在程序中多次调用。并且,对数据库的任何更新或更改都隐藏在存储过程之中,可以由精通数据库编程的开发人员独立完成。
2.更快的执行速度
如果一个程序需要大量Transact-SQL代码,或需要被反复执行,那么使用存储过程的速度会快很多。存储过程在创建时被解析和优化,并且存储过程在第一次执行之后,便驻留在内存中供继续使用。而从客户端传来的重复语句在每次执行时都需要做编译和优化。
3.减少网络流量
一个需要数百行Transact-SQL语句的操作有时只需要执行一条调用存储过程的语句就可以了。在网络上传送一个调用而不是几百行代码,可以减少网络流量,提高响应速度。
4.增强数据库的安全性
一个用户可能没有执行存储过程中语句的权限,但是可以被赋予执行存储过程的权限,这就增强了数据库的安全性。另外,可以通过存储过程来隐藏用户可用的数据和数据操作中涉及的商业规则,提高了数据安全级别。
下面我们就以关键的存储过程为例来进行探讨。
三、核心代码
我们以转账操作为例,先来看操作所要涉及的表格和表格的主要字段。
存储过程由数据库开发人员完成,可以在存储过程的参数命名时采用和数据库表中字段命名完全不同的命名方式。从程序员开始对最底层的字段名等信息进行保密,降低数据库被SQL注人攻击的风险。
调用该存储的主要代码:
通过result获得了存储过程返回的结果,这一方法提高了程序的可测性。因为只有经过严格的测试,软件系统才会具有较高的可靠性和稳定性。为了提高可测性,在代码书写时就必须要考虑代码的可测性,本文不做详解。
四、结束语
设计具有高可靠性、高响应速度的软件系统是一件很难的事情。从数据库设计、系统的架构设计到存储过程设计和代码的编写,每个环节都惜惜相关。在设计过程中充分地考虑存储过程的应用,会给软了设计带来极大的便利,从而大大提高设计效率。
免责声明以上文章内容均来源于其他网络渠道,仅供欣赏,不代表本站观点,与本站立场无关,仅供学习和参考。如有涉及到您的权益,请来信告知(email:mlunwen@163.com),我们核实后会立刻删除。