数据库应用数据库原理课件自学版.ppt

8.2 封锁(Locking) ⒊ S,U,X锁 增加了U锁(Update Lock)——更新锁,事务在更新一个项时,首先对该项加U锁,此时允许其它事务在该项加S锁,待事务读出并修改项后,再将加在该锁上的U锁升级为X锁,然后写入修改后的项。由于不必在事务执行的全过程加X锁,因此进一步提高了并发程度,仍也可能→ 活锁。 8.2 封锁(Locking) 二、调度的可串行性 在并行执行事务时,我们会发现,由于事务交叉执行顺序不同,可能会得到不同的结果,必须有一个准则来判断那个正确。假设事务执行的正确结果是在没有别的事务并发执行时执行它得到的结果。由于事务可以一个接一个的串行执行,所以下面的假设正确: 几个事务并发执行是正确的 ←→其结果同以某种次序串行执行这些事务得到的结果相同 8.3 活锁和死锁 系统对数据项加锁不能太随意,否则可能引起死锁。 ⒈ 活锁:当若干事务要对同一数据项加锁时,造成一 些事务的永久等待。例:P270 避免活锁的简单方法:采用先来先服务策略。 即让系统按请求加锁的先后次序对事务排队, 数据项上的锁一旦释放,就批准申请队列中第 一个事务获得加锁。 8.3 活锁

文档评论(0)

1亿VIP精品文档

相关文档