01.定义
02.性质
03.简单事务模型
例子:
04.事务的配合存储结构
05.事务的几个状态
解释:活动 -----部分提交
部分提交 -----提交
活动 -------失败 ------中止
写到外部设备的时候,写方法在事务出现错误的时候的实际操作
06.数据库并发事务,事务的隔离性
并发执行的好处
1
2
例子:事务T1和事务T2
并发执行事务的结果要保证数据库的一致性
调度的定义:
串行的定义:每一个事务的指令在调度中紧挨一起,调度1和调度2是串行的
并发执行事务,也可以不是串行的:
例子:调度3,调度4,调度5,调度6
例子:调度4就没有保证数据库的一致性
保持数据库的一致性是数据库并发事务的原则:
要确保调度保持数据库的一致性,这种调度叫做可串行化的调度
调度是如何串行化的:
只考虑read和write方法,来测试
调度的等价:
1
2
3
4
指令的冲突:
例子
i,j 是连续的指令
例子:
结论
冲突等价
冲突可串行化:
例子:不能恢复调度
T7提交之后,数据不能恢复,但是数据是错误的,T6可以回滚,但是T7不能,这个和T7的原子性冲突。
可恢复调度:
先写数据的事务,先提交
级联回调:依赖的事务出现错误的时候,依次回调
例子:T8,T9,T10
无级联调度:
在事务之间,读操作之前提交。
事务的隔离性级别:
1.
2.
3.
4.
数据库设置隔离性的级别
数据库有时候不会设置可串行作为隔离级别,这个是要求最高的
用已提交 ----- 可串行化
当优先图形成环的时候,证明此时不可以串行化
例子:
锁的优化:
2.
3.
快照的优缺点