第九章 并发控制

15
第第第 第第第第 • 第第第第第第第第第第第第第第第 第第第第第第第第第第 统统 第第第第第第 第 第第第 第第第第第第第第第第第第第第第第 ,一。 第第第第第第第第第第第第第第第第第第第第第第第第 第第第第 第第第第第第第第 第第第 第第第第第第第第第第第第第第 一一。 第第第 第第第第第第第第第第 第第第第第第第第 第第第第第 。一 第第第一。

description

第九章 并发控制. 允许多个用户同时使用的数据库系统称为多用户数据库系统。在这样的系统中,在同一时刻并发运行的事务数可达数百个。若对并发操作不加控制就可能会存取存储不正确的数据,破坏事务的一致性和数据库的一致性。所以数据库管理必须提供并发控制机制。并发控制机制是衡量一个数据库管理系统性能的重要标志之一。. 第一节 并发控制概述. 为了保证事务的隔离性和一致性, DBMS 需要对并发操作进行正确调度。这些就是数据库管理系统中并发控制机制的责任。 并发控制的主要技术有封锁、时间戳和乐观控制法,商用的 DBMS 一般都采用封锁方法。. 第二节 封锁. - PowerPoint PPT Presentation

Transcript of 第九章 并发控制

Page 1: 第九章  并发控制

第九章 并发控制• 允许多个用户同时使用的数据库系统称

为多用户数据库系统。在这样的系统中,在同一时刻并发运行的事务数可达数百个。若对并发操作不加控制就可能会存取存储不正确的数据,破坏事务的一致性和数据库的一致性。所以数据库管理必须提供并发控制机制。并发控制机制是衡量一个数据库管理系统性能的重要标志之一。

Page 2: 第九章  并发控制

第一节 并发控制概述• 为了保证事务的隔离性和一致性, DBMS需要对并发操作进行正确调度。这些就是数据库管理系统中并发控制机制的责任。

• 并发控制的主要技术有封锁、时间戳和乐观控制法,商用的 DBMS一般都采用封锁方法。

Page 3: 第九章  并发控制

第二节 封锁• 所谓封锁就是事务 T在对某个数据对象

操作之前,先向系统发出请求,对其加锁。在事务 T释放它的锁之前,其它的事务不能更新此数据对象。

• 基本的封锁类型有两种:排它锁(简称X锁)和共享锁(简称 S锁)

• 排它锁又称为写锁;共享锁又称为读锁

Page 4: 第九章  并发控制

第三节 活锁和死锁• 和操作系统一样,封锁的方法可能

引起活锁和死锁等问题。

Page 5: 第九章  并发控制

一、活锁• 见 P297表 11.5( a)所示。• 避免活锁的简单方法是采用先来先服务

的策略。

Page 6: 第九章  并发控制

二、死锁• 见 P297表 11.5( b)所示• 解决死锁问题主要有两类方法,一类方

法是采取一定措施来预防死锁的发生,另一类方法是允许发生死锁,采用一定手段定期诊断系统中有无死锁,若有则解除之。

Page 7: 第九章  并发控制

死锁的预防• 预防死锁通常有两种方法:• 1、一次封锁法• 2、顺序封锁法

Page 8: 第九章  并发控制

死锁的诊断与解除• 死锁的诊断一般使用超时法或事物等待

图发• 死锁的解除通常是选择一个处理死锁代

价最小的事务,将其撤销,释放此事务持有的所有的锁,使其它事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。

Page 9: 第九章  并发控制

第四节 并发调度的可串行性• DBMS对并发事务不同的调度可能会产

生不同的结果,那么什么样的调度是正确的呢?显然,串行调度是正确的。执行结果等价于串行调度的调度也是正确的。这样的调度叫做可串行化调度。

Page 10: 第九章  并发控制

一、可串行化调度• 多个事务的并发执行是正确的,当且仅

当其结果与按某一次序串行地执行这些事物时的结果相同,称这种调度策略为可串行化的调度。

• 可串行性是并发事务正确调度的准则。按这个准则规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。

Page 11: 第九章  并发控制

二、冲突可串行化调度• 见 P300

Page 12: 第九章  并发控制

第五节 两段锁协议• 为了保证并发调度的正确性, DBMS的

并发控制机制必须提供一定的手段来保证调度是可串行化的。目前 DBMS普遍采用两段锁协议的方法实现并发调度的可串行性,从而保证调度的正确性。

Page 13: 第九章  并发控制

第六节 封锁的粒度• 封锁对象的大小称为封锁粒度。• 封锁粒度与系统的并发度和并发控制的

开销密切相关。

Page 14: 第九章  并发控制

一、多粒度封锁• 如果在一个系统中同时支持多种封锁粒

度供不同的事物选择是比较理想的,这种封锁方法称为多粒度封锁。

Page 15: 第九章  并发控制

二、意向锁• 意向锁的含义是如果对一个节点加意向

锁,则说明该节点的下层节点正在被加锁;对任一节点加锁时,必须先对它的上层节点加意向锁。