数据管理系统-week9-事务处理程序简介
文章目录
- 前言
- 一、数据库事务
- 二、事务处理原则(ACID)
- 三、序列化图测试协议(Serialization graph testing protocol)
- 四、两相锁定协议Two-phase locking (2PL) protocol
- 五、时间戳排序协议Timestamp ordering (TO) protocol
- 参考文献
前言
这次课主要是介绍一些数据库事务相关的概念,包括什么是数据库事务,事务处理原则,序列化图测试协议(Serialization graph testing protocol)的原则、两相锁定协议Two-phase locking (2PL) protocol的原则、时间戳排序协议Timestamp ordering (TO) protocol的原则。
一、数据库事务
什么是事务?
对数据库项的部分有序的读写操作称为事务。
事务可以是整个程序,或程序的一部分,或几个语句,或单个语句。
二、事务处理原则(ACID)
每个事务通过提交或中止(回滚)操作终止。每个事务到达一致的数据库状态,并且必须使数据库处于一致状态。
所有事务的基本属性都被称为ACID。
- 原子性:事务单元是不可分割的。它必须完全处理,要么根本不处理。
- 一致性:事务必须将数据库从一个一致状态转换为另一个一致状态。
- 隔离:每个事务都必须独立处理。
- 持久性:受已提交事务影响的数据必须永久记录在数据库中。
三、序列化图测试协议(Serialization graph testing protocol)
原则:调度程序维护和测试序列化图。如果事务发出的操作违反了冲突序列化性(即它在序列化图中创建一个循环),则该事务将被中止。
四、两相锁定协议Two-phase locking (2PL) protocol
原理:每个事务在释放任何锁之前必须获取所有锁。
五、时间戳排序协议Timestamp ordering (TO) protocol
原则:每个事务在起始点获得一个时间戳。每次事务以读取或写模式访问数据项时,都会标记数据项。允许按时间戳的递增顺序访问数据项。
参考文献
Elmasri R., Navathe S., Fundamentals of Database Systems, 6th
edition, chapter 21 Introduction to Transaction Processing
Concepts and Theory, pp. 747-779
Elmasri R., Navathe S., Fundamentals of Database Systems, 6th
edition, chapters 22.1, 22.3 Concurrency Control Techniques, pp. 780-794