封锁协议

一级封锁协议:事物T在修改数据R前必须对其加x锁直至结束

二级封锁协议:事物T在修改数据R前必须对其加x锁直至结束释放X,读取前先加S锁读完释放S

三级封锁协议:事物T在修改数据R前必须对其加x锁直至结束释放X,读取前先加S锁事务结束释放S

 

段锁协

两段锁协议是指每个事务的执行可以分为两个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段)

​ 加锁阶段:在该阶段可以进行加锁操作。在对任何数据进行读操作之前要申请并获得S锁,在进行写操作之前要申请并获得X锁。加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。

​ 解锁阶段:当事务释放了一个封锁以后,事务进入解锁阶段,在该阶段只能进行解锁操作不能再进行加锁操作

​ 两段锁协议要求每个事务中,所有的封锁请求先于所有的解锁请求,事务T1前面都是加锁阶段阶段,后面都是解锁阶段满足要求。

而事务T2又加锁又解锁,不满足要求。

分类: 数据库

发表评论

电子邮件地址不会被公开。 必填项已用*标注