首页 理论教育 事务处理系统的相关概念解析

事务处理系统的相关概念解析

时间:2023-06-23 理论教育 版权反馈
【摘要】:当事务失败时,系统返回到事务开始时的状态。事务处理系统的能力就是将完成这些操作的知识嵌入到系统本身。开发者不必为将系统恢复原状编写代码,需要做的只是告诉系统执行任务是否成功,剩下的事情由事务处理系统自动完成。在帮助开发人员解决复杂的问题时,事务处理系统的另一好处是其ACID属性。

事务处理系统的相关概念解析

在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不是这些任务本身,而是将这些任务结合在一起完成一个业务要求,称为事务。如果能成功地执行一个任务,而在第二个或第三个相关的任务中出现错误,将会发生什么?这个错误很可能使系统处于不一致状态。这时事务变得非常重要,它能使系统摆脱这种不一致的状态。事务是一个最小的工作单元,不论成功与否都作为一个整体进行工作。不会有部分完成的事务。由于事务是由几个任务组成的,因此如果一个事务作为一个整体是成功的,则事务中的每个任务都必须成功。如果事务中有一部分失败,则整个事务失败。

当事务失败时,系统返回到事务开始时的状态。这个取消所有变化的过程称为“回滚”(Rollback)。例如,如果一个事务成功更新了两个表,在更新第三个表时失败,则系统将两次更新恢复原状,并返回到原始的状态来保持应用程序的完整性

任何应用程序的关键是要确保它所执行的所有操作都是正确的,如果应用程序仅仅是部分地完成操作,那么应用程序中的数据甚至整个系统将会处于不一致状态。我们来看一下银行转账的例子。如果从一个账户中提出钱,而在钱到达另一个账户前出错,那么在此应用程序中的数据是错误的,而且失去了它的完整性,也就是说钱会莫名其妙地消失。

克服这种错误有两种方法:(www.xing528.com)

在传统的编程模型中,开发者必须防止任何方式的操作失败。对任何失败点,开发者必须加上支持应用程序返回到这一操作开始时的状态的措施。换句话说,开发者必须加入代码使系统能够在操作出现错误时恢复原状(撤销)。

更为简单的方法是在事务处理系统的环境之内进行操作,事务处理系统的任务就是保证整个事务或者完全成功,或者什么也不做。如果事务的所有任务都成功地完成,那么在应用程序中的变化就提交给系统,系统就处理下一个事务或任务。如果操作中某一部分不能成功地完成,这将使系统处于无效的状态,应回顾系统的变化,并使应用程序返回到原来的状态。

事务处理系统的能力就是将完成这些操作的知识嵌入到系统本身。开发者不必为将系统恢复原状编写代码,需要做的只是告诉系统执行任务是否成功,剩下的事情由事务处理系统自动完成。在帮助开发人员解决复杂的问题时,事务处理系统的另一好处是其ACID属性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈