第7篇数据库的并发性.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 数据库的并发性 本章内容 事务 并发控制 锁 封锁协议 本章要求 掌握事务的概念及特性 掌握并发操作所带来的四种数据不一致现象 了解锁的概念及封锁协议 上机实践: 在SQL Server查询分析器执行以下命令: begin transaction delete from book select * from book Rollback 思考:book表的数据被删除了吗? 上机实践: Begin transaction Delete from book where id='A32DT00001' Insert into borrow (bookid,readerid,borrowdate)values('A32DT00001','02B310003','2007-1-2') Rollback 思考:book表的记录是否被删除? 上机实践: 在SQL Server查询分析器执行以下命令: Begin Transaction create table table1(c1 int) create table table1(c1 int) Commit 第2个create table命令发生错误,事务回滚。 思考:table1建立了吗? 练习 1、下列关于事务的描述错误的是: (A)事务在尚未完成时出现了故障,系统不会撤销事务中已完成的操作。 (B)事务中的操作要么都做,要么都不做。 (C)并发执行的各个事务不能相互干扰。 (D)事务一旦提交,则对数据库中数据的改变就是永久性的。 练习 2、显式事务的结束标记为: (A)UPDATE语句 (B)GRANT 语句 (C)COMMIT 语句 (D)BEGIN语句 练习 3、在数据库操作过程中事务处理是一个操作序列,必须具有以下性质:原子性、一致性、隔离性和 。 A.共享性 B.继承性 C.持久性 D.封装性 并发控制 4. 产生“幽灵”数据 实际属于不可重复读的范畴。指当事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中的部分记录,或者在其中添加了部分记录,则当T1再次按相同条件读取数据时,发现其中莫名其妙地少了(对删除)或多了(对插入)一些记录。这样的数据对T1来说就是“幽灵”数据或称“幻影”数据。 练习 4.如果事务T获得了数据对象R上的排它锁,那么(????? ) A.T对R只能读不能写????????????? B.T对R只能写不能读 C.其它事务对过R只能读不能写???????? D.其它事务对R既不能读也不能写 练习 5.在数据库环境下,加锁是实现并发控制的一 种主要技术,基本的锁类型有两种即 和 。 作业 假定您拥有一家大型旅馆,并有一个网站,该网站按“先到先服务”的原则接受客户的房间预订。如果预订的过程满足下面的要求:当客户检索某个日期段内的所有可用房间列表时,您将无法更改那些房间在指定日期范围内的费用,而其他客户也将无法进行或取消对该列表的预订,直到生成该列表的事务终止为止(对于第一个客户的查询所指定范围之外的任何房间,您都可以更改房价,其他客户也都可以进行或取消房间预订)。这种方式对应于哪一级的封锁协议? 加锁(封锁)协议 二级封锁协议 二级封锁协议是:一级封锁协议加上对事务T对要读取的数据加S锁,读完后即释放S锁。 二级封锁协议除了可以防止丢失修改外,还可以防止读“脏”数据。但在二级封锁协议协议中,由于事务T读完数据即释放S锁,因此,不能保证可重复读数据。 加锁(封锁)协议 三级封锁协议 三级封锁协议是:一级封锁协议加上事务T对要读取的数据加S锁,并直到事务结束才释放。 三级封锁协议除了可以防止丢失修改和不读“脏”数据之外,还进一步防止了不可重复读。 加锁(封锁)协议 三个封锁协议的主要区别在于什么操作需要申请封锁,以及何时释放锁。 X锁(对写数据 S锁(对只读数据) 不丢失修改(写) 不读脏数据(读) 可重复读(读) 一级 事务全程加锁 不加 √ 二级 事务全程加锁 事务开始加,读完即放 √ √ 三级 事务全程加锁 事务全程加锁 √ √ √ 小结 本章我们介绍了事务、并发控制和数据库的备份和恢复三个概念。事务在数据库中是非常主要的,它是保证数据并发性的重要方面。并发控制是指当同时有多个事务在执行时,为了保证一个事务的执行不受其他事务的干扰所采取的措施。并发控制的主要方法是加锁,根据对数据操作的不同,锁分为共享锁和排他锁两种。为了保证并发执行的事务是正确的,一般要求事务遵守两段锁协议。 * * 7.1 事务 事务(Transaction) 事务的特征 SQL事务处

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档