Transaction Processing 百科内容来自于: 百度百科

事务处理

事务处理 Transaction Processing
通常在数据库系统中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统(OLTP)实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。在联机事务处理中,事务是被立即执行的,这与批处理相反,一批事务被存储一段时间,然后再被执行。大多数批处理(例如账目交换)是在夜间进行的。OLTP的结果可以在这个数据库中立即获得,这里假设这些事务可以完成。联机事务处理以实时的方式发生。民航定票系统和银行ATM机是联机事务处理系统的例子。
数据库管理系统使用一些语言(如结构化查询语言(SQL))中的语句执行事务。IBM已经定义了如下事务

类型

语句 它在某时完成对一个数据库进行的处理。
工作单元 它包括在一个数据库上执行的多条语句。
工作分布式单元 它包括在多个数据库上执行的多条语句,其中在一个时间,每个数据库上执行一条语句。
分布式请求 在多个数据库上执行的多条语句,其中,在一个时间,每个数据库上有多条语句执行。
在单一用户、单一数据库环境下执行事务是简单的,这是因为没有冲突问题或对数据库间同步的需求。在分布式环境下,维护多个数据库的完整性是另外一种问题。传统上,大多数联机事务处理系统在大型计算机系统上实现,这是由于它的操作的复杂性,以及需要快速输入/输出、禁止和管理的原因。如果一个事务必须在多个场地进行修改,那么就需要管理机制来防止重写数据并提供同步。其他的需求包括具有卷回失效事务的能力、提供安全性特征,以及如果需要,提供数据恢复的能力。这是通过一个事务处理监督器来处理的。这个监督器保证了事务是完全完成的或是进行卷回的,因而就可以保证数据库状态的正确性。
在一个分布式环境下,写操作经常并行地在多个数据库服务器上发生。这样的并发事务处理需要一个“卷回”机制,以保证在一次写操作中系统失效的情况下,仍保证数据库的完整性。事务要么一起确认,要么放弃。如果一个或多个与事务有关的系统响应不一致,这意味着系统或通信可能出现了故障,因而就会放弃一个事务。
可以看出,当多个用户试图同时改变数据的同一块时,就出现了冲突问题。另外,对多个数据库的写入操作必须进行同步处理,并且必须保证这个写入已经确实被所有的数据库处理完毕了。需要一个监督程序来保证数据的完整性。对在分布式环境下的事务处理有四种需求,联合起来称为“ACID”。

ACID

原子性(atomicity)定义工作的独立单元。如果一个事务是分布的,所有影响分离地点数据的子事务都必须象一个事务那样被一起执行。为了保持在多个地点数据的一致性,需要使用下面就将介绍的双阶段认可过程。
一致性(consistency) 一致性基本上是一种数据库从一个状态变到同等的另一个状态的需求。事务监督器必须检验所有被影响的数据都是一致的。
孤立性(isolation)事务必须被孤立地执行直到完成,执行期间不受到其它事务的影响。
持续性(durability) 这个性质是与事务的最终确认一起进行的。一旦一个事务被检验为对所有受影响的系统都是正确的,它就被认可并且不再需要卷回。

双阶段提交

Two-Phase Commit双阶段提交
事务处理的特征是,当事务没有完成时(例如,由于没有足够的资金或缺少担保,或由于电源失效或通信链路失效而没有完成时),具有卷回这个事务的能力。一个事务要么被全执行完毕,要么被卷回,于是在被卷回时它又返回了这个事务前的状态。事务监督器是一个监督执行过程的程序。当用户执行一个事务时,就对数据库进行了一些改变。如果这个用户想放弃这个事务,事务监督器保证所有被影响的数据库返回它们在这个事务前的状态。
在分布式环境,事务处理导致了许多复杂性。用户可能需要访问多个不同地点的数据库,并且同时对多个数据库进行修改。这些修改必须是相互一致的。例如,如果在一个银行的多个支行保持了这个银行的帐户平衡,而出纳对一个顾客的帐户进行了修改,那么就必须同时在所有地点进行这一改变。如果在这个事务期间,到任何一个支行办公室的计算机链路失效了,这个事务监督器必须知道这一情况,并通知所有其它支行这个事务没有完成,并且要求卷回。用双阶段提交完成这个任务。

双阶段提交不出现故障

双阶段提交是将对数据的写入分解为两个阶段,每个阶段结束都有一个完成的验证。在下面的步骤中假设在这个事务中不出现故障:
1.卷入这个事务的数据库系统保留数据,以对内存中的数据进行验证。
2.事务监督器发送一个“预验证”命令到这个数据库系统
3.数据库系统应答它们已经准备好了进行验证。
4.在接听到每个数据库系统的应答后,事务监督器发送一个“验证”命令。
5.数据库系统应答它们成功地对数据进行了验证。
6.当事务监督器从所有数据库系统接收到数据已经被成功地验证的响应后,它完成这个事务。
如果这个事务监督器在步骤3和5,从所有数据库系统没有听到所需响应,这个事务监督器警告系统卷回它们的事务。

公用事务处理系统

下面是一些事务监督器产品,它们可用于不同的分布式环境中:
Encina,它是Transarc公司(Pittsburgh,Pennsylvania)的产品,是一种通过提供事务起始和终止、双阶段提交、意外事件处理、恢复和放弃操作,来保证穿越多个平台的数据和数据库的完整性的联机事务监督器。EncinaTP监督器是一种基于开放软件基金会的分布式计算环境的监督器。主要厂商如IBM和Hewlett-Packard计划使用Encina。
Tuxedo,它是UNIX系统实验室(Summit,New Jersey)的产品,可以用于协调网络上的修改。它可以在不同系统上并发运行进程,它可以分布工作负载,并且如果一个系统失效了,还可以保证这个处理进行下去。它最初是AT&T开发的,并由Novell的UNIX系统组推向市场。它在许多不同的计算机系统上运行,并被一些客户支持,这些客户包括DOS、OS/2,以及Windows操作系统。

IBM顾客控制系统

IBM顾客控制系统(CICS),是一种在IBM主机系统上运行的TP监督器。这是一种得到广泛使用的事务处理系统。它支持分布式环境,并包括一个事务管理器和事务监督器。CICS为它的AIX/6000实现使用Encina功能。

相关条目

Connectionless and Connection-Oriented Transactions无连接和面向连接事务;Encina;Tuxedo。
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定