您的位置:首页 > 其它

第一章 事务处理的概念与理论简介

2013-09-23 19:43 211 查看
1 事务

事务:是工作的一个原子单元,它作为一个整体要么全部执行,要么全都不执行。

事务的特性:ACID(原子性、一致性、隔离性、持久性)

2 调度(或历史)

调度:我们把不同事务的操作执行顺序称为调度(或历史)

某个调度中的两个操作是冲突的,必须同时满足3个条件

1)它们属于不同事务

2)它们访问的是同一个项X

3)两个操作中至少有一个是write_item(X)

串行调度:对于调度S中的每个事务T,如果T中所有的操作在调度中都是连续执行的,那么就称调度S是串行的;否则,就称调度S就是非串行的。

可串化调度:如果具有n个事务的调度S等价于某个具有相同n个事务的串行调度,那么S就是可串化的。

冲突等价:如果在两个调度中,任何两个冲突操作的顺序都是相同的,那么这两个调度就是冲突等价的。(如果一个调度中的两个操作属于不同的事务,并且访问相同的数据项,而且至少有一个操作是write_item操作),那么就称这两个操作是冲突的。

3 测试调度的冲突可串行性的算法

1)对于调度S中的每个事务Ti,在优先图中创建一个结点

2)对于每一种这样的情形:如果S中Tj在Ti执行 write_item(X)操作后执行read_item(X)操作。那么在优先图中创建一条边(Ti—〉Tj)

3)对于每一种这样的情形:如果S中Tj在Ti执行 read_item(X)操作后执行write_item(X)操作。那么在优先图中创建一条边(Ti—〉Tj)

4)对于每一种这样的情形:如果S中Tj在Ti执行 write_item(X)操作后执行write_item(X)操作。那么在优先图中创建一条边(Ti—〉Tj)

5)当且仅当优先图中没有环路时,调度S是可串化的。

4 视图等价和视图可串行性

两个调度S和S’是视图等价的,满足下面3个条件

1)S和S‘包括相同的参与事务集合,并且S和S’包含这些事务的相同操作

2)对于S中Ti的任何操作ri(X),如果由该操作读取的X值已由Tj中的操作wj(X)写入(或者如果它是在调度开始前X的原始值),那么被S’ 中Ti的操作ri(X所读取的X值必须保持相同的条件

3)如果Tk的操作wk(Y)是S中Ti最后一个写入Y的操作,那么Tk的wk(Y)必须也是S‘中最后写入的操作。

视图等价的背景思想是,只要事务的每个读操作读取的是两个调度中同一个写操作的结果,那么每个每个事务的写操作必须产生相同的结果。如果调度S视图等价于一个串行调度,那么就称S是视图可串行化的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: