一:事务的概念
事务的特性:ACID,即原子性,一致性,隔离性和持久性。
事务的状态:活跃状态,部分提交状态,提交状态,失败状态和中止状态。
SQL对事务的支持:
SQL中的事务的开始是隐含的,结束有两种形式:
COMMIT WORK
ROLLBACK WORK
SET TRANSACTION语句的格式:
SET TRANSACTION 事务模式列表
事务模式列表有存取列表和隔离级别,存取列表有READ ONLY和READ WRITE。隔离级别格式:
ISOLATION LEVEL 级别
级别可以是:READ UNCOMMITED,READ COMMITED,REAPTABLE READ,SERIALIZATION。
二:并发控制概述
方式:交叉并发方式和同时并发方式。
并发执行可能导致的问题:覆盖修改,读脏数据,不可重复读,其中不可重复读有值改变,记录消失,多出记录。
三:并发调度的可串行化
四:基于锁的协议
共享锁和排他锁:
S锁和X锁。
读锁和写锁。
锁相容矩阵。
申请和释放锁的语句格式:
lock-S(Q)
lock-X(Q)
unlock(Q)
封锁协议:
一级封锁协议:事务T更新数据对象Q之前,要申请X锁,并且事务结束后才释放锁。
二级封锁协议:在一级封锁协议的基础上,事务T读取数据对象Q之前,要申请S锁,读取完就立即释放锁。
三级封锁协议:在一级封锁协议的基础上,事务T读取数据对象Q之前,要申请S锁,但是事务结束后才释放锁。
READ UNCOMMITED,READ COMMITED和REPEATABLE READ分别对应一级封锁协议,二级封锁协议和三级封锁协议。
活锁和死锁:
活锁就是事务进入无限期等待状态,是由于不公平的锁调度导致的。
死锁就是多个事务进入循环等待状态。处理方法有预防措施和允许措施。
死锁的预防:一次封锁法和顺序封锁法。
死锁的检测和解除:
死锁的检测:超时法和等待图法。
死锁的解除。
事务与并发控制。