第一章 事务处理的概念与理论简介
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是视图可串行化的。
事务:是工作的一个原子单元,它作为一个整体要么全部执行,要么全都不执行。
事务的特性: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是视图可串行化的。
相关文章推荐
- 面向工程师的机器学习简介:理论、算法、概念全覆盖
- Apache-dbutils 简介及事务处理
- oracle 事务简介,锁的概念,java访问数据库注意事项
- Python图像处理库(PIL)--简介和基本概念
- 说说事务的概念,在JDBC编程中处理事务的步骤。
- 面试题整理,英文简介、struts2功能,mybatis优点,jface概念,struts2组件,springmvc机制,配置事务,hiernate查询方法
- Mysql 范式、索引、视图、事务、sp等概念简介
- 20_传智播客JDBC_事务的概念与JDBC事务处理
- Java 理论与实践: 理解 JTS —— 事务简介
- 【慕课笔记】第一章 异常与异常处理 第1节 异常简介
- 大数据:应用于计量学的新技巧 - 简介以及第一章 用来处理大数据的工具
- 关于事务处理(Transation)的概念
- MS SQL Server:事务处理概念和 MS DTC 概述 (简述)
- DBC事务的概念与JDBC事务处理
- C#事务处理(一)之概念
- 分布式事务处理理论
- PDO 简介——事务处理与自动提交
- AOP基本概念、AOP底层实现原理、AOP经典应用【事务管理、异常日志处理、方法审计】
- 服务器事务处理性能测评标准TPC-C简介
- JDBC学习之路(六)事务的概念和处理