- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章 并发控制 11.1 并发控制概述 11.2 封锁(Locking) 11.3 封锁协议(Locking Protocol) 11.4 活锁和死锁 11.5 并发调度的可串行性 11.6 两段锁协议 11.7 封锁的粒度 11.1 并发控制概述 多用户数据库系统 允许多个用户同时使用的数据库系统称为多用户数据库系统。 多用户数据库系统面临着执行多事务的情况。 多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。 不能充分利用系统资源,不能发挥数据库共享资源的特点。 并发控制概述 多事务执行方式 (2)交叉并发方式 是单处理机系统中的并发方式,多个并行事务的操作轮流交叉运行。 能够减少处理机的空闲时间,提高系统的效率。 并发控制概述 多事务执行方式 (3)同时并发方式 多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。 最理想的并发方式,但受制于硬件环境 并发控制概述 事务并发执行带来的问题 并发执行的多个事务可能会同时存取同一数据,造成数据的不一致,破坏事务的隔离性和数据库的一致性。 DBMS必须提供并发控制机制解决事务并发执行带来的问题。(并发控制器) 并发控制机制是衡量一个DBMS性能的重要标志之一。 并发操作带来的数据不一致性问题: 丢失修改(lost update) 不可重复读(non-repeatable read) 读“脏”数据(dirty read) 并发控制概述 丢失修改(lost update) 丢失修改是指事务T1与事务T2从数据库中读入同一数据并修改,事务T2的提交结果破坏了事务T1提交的结果,导致事务T1的修改被丢失。 并发控制概述 CREATE TABLE sales ( id char(2), qty int ); insert into sales values( A1, 10 ) 事务T1 begin tran declare @sl int select @sl = qty from sales where id = A1 waitfor delay 00:00:15.000 update sales set qty = @sl - 1 where id = A1 commit tran 事务T2 begin tran declare @sl int select @sl = qty from sales where id = A1 waitfor delay 00:00:15.000 update sales set qty = @sl - 1 where id = A1 commit tran 并发控制概述 不可重复读(non-repeatable read) 1、事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值。 事务T1: begin tran declare @sl int declare @s2 int select @sl = qty from sales where id = A1 print(@sl) waitfor delay 00:00:30.000 select @s2 = qty from sales where id = A1 print(@s2) commit tran 事务T2: begin tran update sales set qty = qty *2 where id = A1 commit tran 并发控制概述 不可重复读(non-repeatable read) 2、事务T1按一定条件读取某些数据记录后,事务T2删除了其中部分记录,当事务T1再次按相同条件读取数据时,发现某些记录神密地消失了。 3、事务T1按一定条件读取某些数据记录后,事务T2插入了一些记录,当事务T1再次按相同条件读取数据时,发现多了一些记录。 后两种不可重复读有时也称为幻影现象。 并发控制概述 读“脏”数据(dirty read) 事务T1修改某一数据,并将其写回磁盘。事务T2读取同一数据后,事务T1由于某种原因被撤消,这时事务T1已修改过的数据恢复原值,事务T2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。 并发控制概述 事务并发执行会导致数据不一致性 由于并发操作破坏了事务的隔离性 并发控制 用正确的方式调度并发操作,使一个事务的执行不受其他事务的干扰,从而避免造成数据的不一致性 。 并发控制的主要技术 封锁(Locking) 时间戳(Timestamp) 乐观控制法 商用的DBMS一般都采用
您可能关注的文档
- 聊城大学计算机学院计算机操作系统(1)英文课件 Chapter13.ppt
- 聊城大学计算机学院计算机操作系统(1)英文课件 Chapter14.ppt
- 聊城大学计算机学院计算机操作系统(1)英文课件 Chapter15.ppt
- 聊城大学计算机学院计算机操作系统(1)英文课件 Chapter16.ppt
- 聊城大学计算机学院计算机操作系统(2)英文课件 Lecture1.ppt
- 聊城大学计算机学院计算机操作系统(2)英文课件 Lecture2.ppt
- 聊城大学计算机学院计算机操作系统(2)英文课件 Lecture3.ppt
- 聊城大学计算机学院计算机操作系统(2)英文课件 Lecture4.ppt
- 聊城大学计算机学院计算机操作系统(2)英文课件 Lecture5.ppt
- 聊城大学计算机学院计算机操作系统(2)英文课件 Lecture6.ppt
- 聊城大学计算机学院数据库原理课件第13章 数据库技术新发展.ppt
- 聊城大学计算机学院数据库原理课件第14章 分布式数据库系统.ppt
- 聊城大学建筑工程学院土木工程概论课件 目录.ppt
- 聊城大学建筑工程学院土木工程概论课件第八章 地下工程.ppt
- 聊城大学建筑工程学院土木工程概论课件第二章 土木工程材料.ppt
- 聊城大学建筑工程学院土木工程概论课件第九章 水利水电工程.ppt
- 聊城大学建筑工程学院土木工程概论课件第六章 桥梁工程.ppt
- 聊城大学建筑工程学院土木工程概论课件第七章 港口工程.ppt
- 聊城大学建筑工程学院土木工程概论课件第三章 基础工程.ppt
- 聊城大学建筑工程学院土木工程概论课件第十二章 建设项目管理.ppt
文档评论(0)