7.6封锁粒度与多粒度封锁 课件(共12张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源下载
  1. 二一教育资源

7.6封锁粒度与多粒度封锁 课件(共12张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源简介

(共12张PPT)
并发控制
第7章
本章主要内容
本章主要介绍数据库并发操作带来的数据不一致性问题、事务的概念及特性、活锁和死锁问题、数据库系统的封锁技术及封锁协议、并发调度的可串行性与两段锁协议、封锁粒度与多粒度封锁等。
为了充分利用数据库资源,数据库用户对数据库系统并行存取数据,这样就会发生多个用户并发存取同一数据的情况,如果对并发操作不加控制,可能会产生不正确的数据,破坏数据的完整性。因此,数据库管理系统提供并发控制机制,保证数据库的完整性和一致性。
目录
01
事务
02
并发控制
03
封锁与
封锁协议
04
活锁与死锁
05
并发调度的可串行性与两段锁协议
06
封锁粒度与多粒度封锁
07
SQL Server的并发控制机制
封锁粒度与多粒度封锁
第7章
06
7.6 封锁粒度与多粒度封锁
根据对数据的不同处理,封锁对象可以是逻辑单元,也可以是物理单元。以关系数据库系统为例,封锁对象可以是数据库、索引、关系、元组、属性值等逻辑单元,也可以是页(数据页或索引页)、块等物理单元。
1.封锁粒度
排他锁和共享锁都是加在数据库中的数据对象上的,封锁对象的大小称为封锁粒度(granularity)。
7.6 封锁粒度与多粒度封锁
2.多粒度封锁
如果在同一个数据库系统中,同时支持多种封锁粒度供不同的事务选择,则称为多粒度封锁。选择封锁粒度时应该根据并发度和封锁开销两个因素,选择适当的封锁粒度,以求得最优的效果。
通常情况下,需要处理多个关系的事务,可以以数据库为封锁单位;需要处理某个关系的大量元组的事务,可以以关系为封锁粒度;只处理少量元组的事务,可以以元组为封锁单位。
SQL Server的并发
控制机制
第7章
07
7.7 SQL Server的并发控制机制
SQL Server通过支持事务机制来管理多个事务,保证数据的一致性,并使用事务日志保证修改的完整性和可恢复性。SQL Server遵从三级封锁协议,从而可以有效地控制并发操作可能产生的丢失修改、不可重复读、读脏数据等问题。SQL Server具有多种不同粒度的锁,允许事务锁定不同的资源,并能自动使用与任务相对应的等级锁来锁定资源对象,以使锁的成本最小化。
7.7.1 SQL Server的事务
SQL Server的事务分两种类型:系统提供的事务和用户定义的事务。系统提供的事务是指在执行某些语句时,一条语句就是一个事务,它的数据对象可能是一个或多个表(视图),也可以是表(或视图)中的一行或多行数据。用户定义的事务以BEGIN TRANSACTION语句开始,以COMMIT或ROLLBACK语句结束。
7.7.2 SQL Server的封锁方式
SQL Server的封锁控制由一个内部的锁管理器实现,锁管理器决定封锁粒度和封锁类型。SQL Server提供多粒度锁机制,包括行锁、页锁、簇锁、表锁和数据库锁。行锁是粒度最小的锁,用于封锁一个数据页或索引页中的一行数据;页锁用于封锁一个物理页,一个物理页有8KB的空间,所有的数据、日志和索引都放在物理页中,且一行数据必须在同一个页上;簇锁用于锁定一个簇,簇是页之上的管理单位,一个簇由8个连续的页组成;表锁用于封锁包含数据与索引的整个表,是SQL Server提供的主要的锁,当事务处理的数量比较多时,一般使用表锁;数据库锁用于锁定整个数据库,防止其他任何用户或事务对锁定数据库的访问,是一种非常特殊的锁,只用于数据的恢复操作。
本章小结
并发控制是指当多个用户同时对数据库进行操作时,为了保护数据库中数据的完整性和一致性而采用的各种技术。
事务是数据库的逻辑工作单位,并发操作中只有保证系统中一切事务的原子性、一致性、隔离性和持久性,才能保证数据库处于一致性状态。
数据库系统通常采用封锁技术对事务进行并发控制,常用的封锁类型有排他锁和共享锁两种,基于这两种类型的锁规定了三级封锁协议,可有效地解决并发操作带来的不一致问题。
本章小结
封锁技术在一定程度上解决了事务并发带来的问题,但也会产生新的问题,例如活锁和死锁的问题,并发控制机制主要采用先来先服务处理活锁问题,采用一次封锁法或者顺序加锁法预防死锁的产生,死锁一旦发生,选择一个处理死锁代价最小的事务将其撤销。
是否可串行性是判断事务调度是否正确的标准,数据库系统采用两段锁协议判断并行事务的调度是否为可串行性调度。
封锁粒度是指封锁的数据对象的大小,如果在同一个数据库系统中,同时支持多种封锁粒度供不同的事务选择,则称为多粒度封锁。

展开更多......

收起↑

资源预览