事务处理
事务处理,是指用于有效记录某机构感兴趣的业务活动(称为事务)的数据处理。通常,联机事务处理(OLTP)系统执行大量的相对较小的事务。事务处理系统的能力就是将完成一些操作的知识嵌入到系统本身。事务处理系统的一个好处是其ACID属性。
1、基本内容
定义
事务是一个最小的工作单元,不论成功与否都作为一个整体进行工作。
不会有部分完成的事务。由于事务是由几个任务组成的,因此如果一个事务作为一个整体是成功的,则事务中的每个任务都必须成功。如果事务中有一部分失败,则整个事务失败。
当事务失败时,系统返回到事务开始前的状态。这个取消所有变化的过程称为“回滚”(rollback)。
事务处理
ACID属性
当事务处理系统创建事务时,将确保事务有某些特性。组件的开发者们假设事务的特性应该是一些不需要他们亲自管理的特性。这些特性称为ACID特性。
ACID就是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durabilily)。
原子性:自然界最小的,事务的内容要么都做要么都不做。原子性也称为自动性,是指事务必须执行一个完整的工作,要么执行全部数据的操作,要么全部不执行。
一致性:事务结束后状态一致,系统状态和业务的逻辑规则一致。
隔离性:就是加锁机制,也称为独立性,多个事务访问同一个数据分别被隔开即相互独立。一个事务处理数据,要么是其他事务执行之前的状态,要么是其他事务执行之后的状态,但不能处理其他正在处理的数据。
持久性:一旦事务结束,事务的结果被永久的保存下来。
事物的这种机制保证了一个事务或者提交后的成功执行,或者提交失败后回滚,二者必居其一,因此,事务对数据的修改具有可恢复性,即当事务失败时,,它对数据的修改都会恢复到该事务执行前的状态。而使用一般的批处理,则有可能出现有的语句被执行,而另一些语句没有被执行的情况,从而有可能造成数据不一致。
事务开始之后,事务所有的操作都陆续写到事务日志中。这些任务操作在事务日志中记录一个标志,用于表示执行了这种操作,当取消这种任务时,系统自动执行这种操作的反操作,保证系统的一致性。系统自动生成一个检查点机制,这个检查点周期地发生。检查点的周期是系统根据用户定义的时间间隔和系统活动的频度由系统自动计算出来的时间间隔。检查点周期地检查事务日志,如果在事务日志中,事务全部完成,那么检查点将事务提交到数据库中,并且在事务日志中做一个检查点提交标记。如果在事务日志中,事务没有完成,那么检查点将事务日志中的事务不提交到数据库中,并且在事务中日志中做一个检查点未提交标记。
2、事务的类型
根据系统的设置分类
1.系统事务
系统提供的事务是指在执行某些语句时,一条语句就是一个事务。但是要明确,一条语句的对象既可能是表中的一行数据,也可能是表中的多行数据,甚至是表中的全部数据
因此,只有一条语句构成的事务也可能包含了多行数据的处理。
2.用户定义事务
在实际应用中,大多数的事务处理采用了用户定义的事务来处理。在开发应用程序时,可以使用BEGINTRANSACTION语句来定义明确的用户定义的事务。在使用用户定义的事务时,一定要注意事务必须有明确的结束语句来结束。如果不使用明确的结束语句来结束,那么系统可能把从事务开始到用户关闭连接之间的全部操作都作为一个事务来对待。事务的明确结束可以使用两个语句中的一个:COMMIT语句和ROLLBACK语句。COMMIT语句是提交语句,将全部完成的语句明确地提交到数据库中。ROLLBACK语句是取消语句,该语句将事务的操作全部取消,即表示事务操作失败。
还有一种特殊的用户定义的事务,这就是分布式事务。
根据运行模式分类
1.自动提交事务
自动提交事务是指每条单独的语句都是一个事务。
2.显式事务
显式事务指每个事务均已BEGINTRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。
3.隐式事务
隐式事务指在前一个事务完成时新事物隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成。
4.批处理级事务
该事务只能应用于多个活动结果集(MARS),在MARS会话中启动的T-SQL显式或隐式事务变为批处理级事务。当批处理完成时,没有提交或回滚的批处理级事务自动由SQLSever语句集合分组后形成单个的逻辑工作单元。
3、事务处理技术
1.并发控制技术:用来控制多个事务的并行运行,避免它们之间的互相干扰,保证每个事务都产生正确的结果。
2.数据库恢复技术:用来进行系统失败后的恢复处理,确保数据库能够恢复到正确的状态。
4、事务处理系统
概念
事务处理系统为一组事务处理的有机结合。
特点
1.系统性和特定的系统目标
2.所含一组事务,正好能覆盖系统目标
3.每个事务既有一定独立性,相互间又有一定联系,这种联系是通过数据进行的
5、事务处理对象
事务处理的对象是信息,信息是赋予约定意义的数据。数据位于现代事务处理中心现代化的管理以数据为依据。所有事务处理都可以看作是在一组数据集上的操作。
这里所述数据不仅是数。还包括字符、图形、语言文字,诸如姓名、颜色、真假一类的也都可以作为数据被处理,甚至报表、文字、台账、各种凭证、电报、传真等也可作为数据被处理。
数据是事务处理的依据,也是事务处理的结果。
6、事务处理模型
事务处理或事务处理系统在客观世界中大量存在。但是计算机化的事务处理系统并不是实际系统的翻版。在设计一个计算机事务处理系统时,应对实际系统进行抽象,即通过如下步骤定义事务处理模型。
抽象与定义信息
信息是人们对客观世界认识的结果。人们自觉或不自觉地不间断地接受信息、消化处理信息,并发送新的信息。而应用计算机技术接受、处理、发送信息时,首先应从客观世界抽象信息,并予以定义。
描述信息流,定义信息网络
通常都说企业中存在四条流:人流、物流、资金流和信息流。实际上,信息流是另外三条流客观存在与活动的映射。
信息是应充分利用的一种重要资源,信息流应能使各层次管理人员满足关于信息的需求,因而信息流的描述是事务处理设计中十分重要的一部分。
研究信息演变规则,规划事务处理任务
所谓信息流并不是信息单纯的物理移动,它包括了信息从产生到归宿过程中一系列演变的过程。所谓“演变”包含两重含义:
(1)一组信息经会合成为另一组信息(其中不排斥某些信息从前一组延伸到下一组的情形)。
(2)一组信息引发产生另一组新的信息。
信息的演变与信息的属性有关。从信息资源生命周期看,事务处理的信息有四类:
计划类,描述有关计划的信息。
业务类,执行计划时产生的各种信息。
状态类,描述执行计划过程中特定断点状态的信息。
分析类,描述执行计划的结果及有关趋势的信息。
信息的演变就是这四类信息周期性地进行变化。即首先有计划类信息;由计划引出业务类信息;又由于业务,随之产生状态类信息;对状态进行分析,得到分析类信息;分析类信息反过来影响并产生新的计划类信息,使之进入下一个周期。整个演变过程可称之为PTSA循环。其中P(Plan)表示计划类信息,T(Transaction)表示业务类信息,S(State)表示状态类信息,A(Analysis)表示分析类信息。
PTSA循环每完成一个周期,便产生新的信息,并进入下一个周期,形成了信息的流动。引进PTSA循环目的是揭示事务处理中信息演变的规则,以便掌握信息处理的规律。
定义事务处理模型
根据上述抽象与定义的信息网络和数据库布局与结构的考虑,说明有哪些加工、处理、变换的节点及这些节点的操作规范,从而定义了一个事务处理模型。一个模型应包括:信息网络的结构与存储的规格说明,所包含的功能节点及功能的操作规格说明等。
推荐阅读