摘要:计算机出现前“事务处理”已经在日常生活以及生产过程当中广泛应用。“事务”的本意是交易, 指的是双方的货物以及金钱交易。交易过程涉及到两个部分, 一部分是把商品给顾客, 另一方面是收取货款。这些操作是不可分割的一个整体。这一理念在引入数据库系统之后, 成为确保数据一致性以及完整性的事务机制, 并且在企业软件开发当中得到重视。本文简要介绍事务处理的概念以及计算机当中的事务处理, 并在此基础上分析基于.Net平台软件开发当中的事务应用。
关键词:.Net平台,软件开发,事务应用,数据库
随着计算机技术的持续发展, 各种数据共享、交流以及协作在企业的桑叶活动当中应用日益广泛, 数据量规模不断扩大体现了关系的复杂性。所以确保数据的一致性以及完整性有重要的价值。
一、事务处理概述
事务处理指的是绑定一块的数据一同处理的过程, 要好在处理环节, 这一集合当中的任何步骤发生问题, 都会导致事务处理失败, 并且集合当中各个步骤都需要恢复到开始的状态。各种事务处理都需要符合ACID的特性[1]。其中原子性 (A) 指的是事务处理所谓有无命题, 启动之后事务要么放弃要么提交。一致性 (C) 指的是事务处理的全部进程都无法违背规则。这些规则明确规定数据之间的一致性。隔离性 (I) 指的是多个不同的事务在处理过程当中的并发控制, 也就是要避免事务之间的影响。持久性 (D) 指的是完成事务处理之后结果需要得到持续。
在软件开发当中常用的是分布式事务的处理。所谓分布式的事务处理指的是分布在不同或者是相同计算机当中, 针对各种数据源类型提供的事务处理。分布式的事务处理当中往往应用操作系统当中的COM+技术[2]。其中NET framework属于微软公司开发的新平台, 一方面能够为COM+提供支持, 另一方面还能够通过应用COM4-来实现复杂的事务处理提交, 从而提高了COM+应用的效率。COM4-提供了非常完善的处理模型, 确保软件开发人员可以将精力集中到系统应用逻辑, 而不需要过度留意具体的细节。这一技术融合分布式的事务处理以及组件编程等方面的优点, 借助于声明组件的属性完成事务的自动处理。用户仅仅需要在类定义时声明事务处理所需要支持的各种属性[3]。COM4-能够根据属性来分派事务处理的行为, 并且基于组件来配置具体的属性, 然后代表组件来进行交互, 最终自动处理或者是终止事务。在COM4-当中NET的执行类叫做服务部件。这些类间接或者是直接从定义在System Enter当中, 并且在命名空间当中定义属性, 解释COM+当中组件的配置以及涉及到的服务。
二、基于.Net平台软件开发中事务的应用
第一, 数据库SQL的事务。数据库SQL的事务是可以说是.NET平台软件开发过程当中应用最为广泛的事务, 稍微具备开发经验的软件工作人员都会在储存的过程当中层间编写涉及事务SQL代码。不管是SQL Senrer或者是Oralcle均提供了原生的事务支持。不同类型的数据库系统在事务实现的语法方面都比较接近, 比如Oracle当中的Commit等语句能够用来提交事务或者是实现事务的回滚。不过不同数据库当中隔离事务的级别以及具体的实现途径还存在一定的区别。在应用事务的过程当中需要高度谨慎。例如在SQL Server软件开发的过程当中, 隔离事务的级别缺省主要是为了Read committed[4]。因为这种级别的事务经过隔离之后, 仅仅可以读取其他事务提交的结果, 要不然就只能继续等待。在事务调用遭到发现之后, 就会锁定记录或者是锁定数据表。这样一来其他的会话就不能读取或者是修改数据表当中的记录, 直到当前的事务顺利完成。不过Oracle隔离事务的级别同SQL的Server具体途径有着非常明显的区别。Oracle当中有着专门用来回滚的空间, 能够储存修改数据之前的具体数值。因为存在这种机制, 使得Oracle事务当中的读取操作并不会给更新带来不利影响, 各种更新修改也不会影响到读取。通过应用这种隔离级, 读取操作无需等待事务更新完成, 更新操作也不会受读取的影响而重大un, 这是使用Orack进行事务处理的典型优势。
第二, ADO.Net的事务。ADO.Net的事务处理是微软公司在.Net平台下提供一种处理机制, 具体实现的途径也较为便捷, 借助于构建connection的对象来实现事务的控制, 通过调用的方法来实现事务的启动。在启动失误之后, 使用Commit的方法来实现事务的回滚。在此基础上, 通过应用数据库SQL来实现事务控制, 将SQL纳入到后续的事务当中。ADO.Net应用于事务控制当中主要是基于特定数据库的连接。不过这一事务控制的应用受数据库的局限。在分布式的环境当中, 软件开发人员应当考虑对多个不同的服务以及资源进行协调统一[5]。
第三, system.Transactions的事务。在最初.Net1.0的框架当中, 应用开发人员基本上是使用ADO.Net来实现对数据库事务的控制。Net2.0以及后续的版本当中有了新型的事务编程方法, 也就是system.Transactions的事务。需要注意的是, Transaction当中引人自动处理机制。通常条件下, 在开始事务的时候, 默认事务管理器是轻量级, 不过在事务执行的过程当中, 要是涉及对不同数据库的的访问, 就会不断提高级别。
综上所述, 应用.NET的对象来开发事务的时候, 虽然涉及到各种数据的连接、修改、查询以及删除等操作技巧, 不过更需要强调的是在操作数据的时候如果确保数据库保持完整, 也就是为了确保数据库的一致性, 应当将操作当作整体执行。NET平台开发总事务的应用有着对象简单、通信量少以及访问速度快等优点, 已经成为处理企业数据的重要途径, 也是实现远程开发的发展方向。
参考文献
[1] 张梅.浅析MVC设计模式在ASP.NET平台中的应用[J].移动信息, 2015, 3 (9) :48.
[2]赵婉芳.基于.NET组件技术的网络应用软件系统研究[J].数字技术与应用, 2016, 2 (7) :55.
[3]姜翠.MVC设计模式在ASP.NET平台中的应用探究[J].太原城市职业技术学院学报, 2016, 1 (4) :183-185.