事务和事务管理是数据库系统中的两个重要概念。图8.1事务模型图8.1中,事务T将数据库从一致状态转换成另一个一致状态,事务执行期间,数据库可能临时处于不一致状态。事务管理就是这样一种机制,它负责让数据库始终保持一个一致状态,即便是并发存取或发生故障。例8.1中有一个假设,即事务总是会按目的终止。如果事务成功完成,我们称为事务提交。事务夭折的原因多种多样。......
2023-10-28
文献中推荐了大量的事务模型,各自面向一种应用。基本思想是保持事务的“ACID”性质,由于各种算法和技术分别强调某一(些)方面,所以算法变数很多。例如,可以按照各种方式将事务进行分类。一种分类方式是按照事务的持续时间来分,可分为短事务和长事务。也可以将事务分为在线处理事务和批处理事务。在线处理事务的执行和响应时间较短(一般在秒级),访问数据库的量相对数据库本身而言较小,银行业务和航空订票就是这类事务。批处理事务的执行时间长(响应时间往往以分钟、小时甚至天计),访问数据库的量相对数据库本身而言较大,CAD/CAM数据库、统计应用、报表生成、复杂查询和图像处理等就是这类事务。
另外一种分类方式与读/写操作的组织方式有关。如果一个事务的所有读操作在任何写操作前实施,则称为两步(two-step)模型。如果事务限制为一个数据项在更新前必须先对其的读操作,这类事务称为受限(restricted)模型。同时有这两个性质的事务称为受限两步(restricted two-step)模型。还有一种称为动作模型(action model)的事务,它满足受限条件,且要求每个〈read,write〉对必须以原子方式执行,如图8.3所示。
图8.3 各种事务模型(摘自参考文献[5])
【例8.7】 下面看一些事务的例子。为了简洁,我们忽略说明。
通用模型:
T1:{r(x),r(y),w(y),w(x),w(z),r(z),w(w),C}
两步模型:
T 2:{r(y),w(y),r(z),w(x),w(z),w(w),C}
受限模型:
T 3:{r(x),r(y),w(y),r(z),w(x),w(z),r(w),w(w),C}
注意:这里对T 3来说,在写x前必须读x。
受限两步模型:
T 4:{r(x),r(y),r(z),r(w),w(x),w(z),w(y),w(w),C}(www.chuimin.cn)
Action:
T 5:{[r(x),w(x)],[r(y),w(y)],[r(z),w(z)],[r(w),w(w)],C}
这里,括号中的操作以原子方式执行。
按事务结构可分为平面事务(flat transaction)和嵌套事务(nested transaction)。
1.平面事务
平面事务只有一个启动点事务(begin-transaction)和一个终止点事务(end-transaction)。前面所有的例子都是平面事务。
2.嵌套事务
允许在一个事务内嵌套其他事务,这类事务称为嵌套事务(nested transaction)。嵌套在事务中的事务称为子事务。
【例8.8】 下面考虑旅行社为客人安排旅行的例子。给客人安排旅行需要给他(她)预订机票、预订旅馆、租车预约等,如下所示:
从例8.8可见,整个旅行安排是作为一个事务来定义的。但是,在整个旅行安排中,需要预订来回机票、预订旅馆和租车预约。后面三项活动这里也分别作为一个事务(嵌套事务)进行处理(其实这是航空公司、旅馆和出租车辆公司所强调的,否则它们的其他业务无法继续正常进行),但从属于整个旅行安排事务。
目前,嵌套事务越来越受关注,嵌套层次一般是开放的,也允许子事务是嵌套事务。
要注意的是,可以区分封闭和开放两类嵌套事务。封闭嵌套事务按自底向上直至根开始提交。因此子事务在它的父事务后启动,在它的父事务结束前结束。子事务的提交是父事务提交的条件。这些事务的语义把原子性强加在最顶上一级。开放嵌套事务允许子事务可以先于父事务提交结果,可以让外面的事务先看到。
有关分布式数据库技术的文章
事务和事务管理是数据库系统中的两个重要概念。图8.1事务模型图8.1中,事务T将数据库从一致状态转换成另一个一致状态,事务执行期间,数据库可能临时处于不一致状态。事务管理就是这样一种机制,它负责让数据库始终保持一个一致状态,即便是并发存取或发生故障。例8.1中有一个假设,即事务总是会按目的终止。如果事务成功完成,我们称为事务提交。事务夭折的原因多种多样。......
2023-10-28
有多种并发控制算法的分类方式。按照同步原语可以将并发控制算法分成两类:基于互斥存取共享数据的算法和将事务排序按规则执行的算法。图9.10并发控制算法的分类●在主本封锁中,将每个封锁单元的某个副本指定为主本,在访问该单元时主本必须封锁。这些算法可以分成基本TO、多版本TO和保守TO等。实际上,在某些基于封锁的算法中也使用时标,因为这样可以改进效率和并发性,我们称为混合算法。......
2023-10-28
从数据库角度来看,概念分级是很重要的,因此,本节我们聚焦于概念层面,讨论概念互操作分级模型。表5.2信息系统互操作分级续表这里把互操作区分为企业级、领域级、功能级、连接级和隔离级。表5.3概念互操作级别在互操作与仿真上,上述面向语言学的分级可以从实施角度来进行分析,可以分成网络层、执行层、建模层、设计与搜索层、决策层、协同层等,如图5.4所示。......
2023-10-28
测控网络就是控制域网络,主要是为实现和完成一定的监控目的、能够对许多现场物理量进行实时采集和实时控制的网络。还有一部分通信网络是用于语音通信的,如PSTN,第2代、2.5代和第3代的3G移动无线网络,不能简单地划分为信息域网络或测控网络。提供实时语音通信的这些网络的实时性是很高的,实际上,如果将它们应用于测控领域,也可以认为是测控网络,但一般情况下,把它们并入测控网络是不合适的。......
2023-08-30
事务管理器负责协调属于同一个应用的数据库操作的执行。图8.4所示的是分布式执行管理器的详细模型。基本的事务模型和机制在此阶段成型。针对不同的应用领域,大量先进的事务模型和机制涌现出来。图8.5事务管理的发展为了便于理解,有些概念略作如下介绍。性能系改变数据库状态的一种成功提交事务遇到故障时不丢失结果的能力。事务从平面变成嵌套形态,一个事务会由一系列子事务构成。......
2023-10-28
事务的性质可以用ACID来表示,即原子性、一致性、隔离性和持续性。在这类故障中维持事务原子性的机制称为故障恢复。验证事务是否一致是由语义数据控制实现的。 假设有两个并发事务对用户的银行账户x进行处理,它们都要存取数据项x。......
2023-10-28
在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。在数据库系统中可以针对不同的使用对象和应用目的,采用不同的数据模型来实现。数据模型实际上是模型化数据和信息的工具。第一类是概念层数据模型,也称为概念模型或信息模型,它从数据的应用语义视角来抽取模型并按用户的观点来对数据和信息进行建模。第二类是组织层数据模型,也称为组织模型,它从数据的组织方式来描述数据。......
2023-11-24
可串行化是经典数据库事务并发控制的正确性判据。 抽象数据类型集合的前向交换关系兼容和后向交换关系兼容分别如表15.3和表15.4所示。下面从可交换性上来讨论面向对象数据库的事务管理问题。对象系统中,如果使用封锁技术,则封锁颗粒会有变化。这是因为没有把对象的语义考虑在内。ADT上的事务执行需要多级机制。......
2023-10-28
相关推荐