第9章网络数据管理.docVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章网络数据管理

教学对象 教学时间 年 月 日 教学内容 第9章 网络数据管理 9.1 网络数据库的并发控制 教学目的 通过本节内容的学习,能够正确理解数据库并发控制的含义,了解事务的内涵及特征,配合实例理解并发控制的必要性,并对并发控制技术有所了解。 教学重点 并发控制的含义;事务的定义及特征。 教学难点 并发控制的必要性;并发控制技术。 建议学时 1学时 教学教具 多媒体教学系统 教学方法 讲授(PPT) 演示设计 板书设计 9.1.1 事务 9.1.2 并发控制的必要性 9.1.3 基于锁的并发控制技术 9.1.4 其它并发控制技术 教学过程 课程导入 提问: 计算机局域网技术的日趋完善,使越来越多的计算机用户从单机向多机网络系统过渡。数据重复录入、数据资源得不到共享的问题,随着网络技术的应用找到了解决的方法。然而,在网络环境下也出现了许多单机遇不到的问题,比如如何缓解因共享数据而并发的程序运行冲突等等,直接影响网络系统的正常运行。这些新的问题应该如何解决? 9.1 网络数据库的并发控制 并发控制是指在网络环境下对数据库的并发操作进行规范的机制。并发控制的作用主要是协调同一时间访问同一数据库文件的多个事务之间的关系,防止这些事务之间发生冲突。 9.1.1 事务 事务(Transaction)是数据库的逻辑工作单元,它是一组对数据的操作序列。事务是并发控制的基本单位。 事务具有以下四个基本特性: (1)原子性(Atomicity)。 (2)一致性(Consistency)。 (3)隔离性(Isolation)。 (4)持续性(Durability)。 这四个性质又被称为事务的ACID准则。 9.1.2 并发控制的必要性 数据库并发操作导致数据不一致的三种情况: 1. 丢失更新 当两个事务T1和T2读入同一数据,并发执行修改操作时,T2把T1或T1把T2的修改结果覆盖掉,造成了数据的丢失更新(Lost Update)问题,导致数据的不一致。它是由于两个事务对同一数据并发写入引起的,称为写-写冲突(Write-Write Conflict)。 2. 脏读 事务T2读取了T1更新后的数据R,其后T1由于某种原因撤销修改,数据R恢复原值,导致T2得到的数据与数据库的内容不一致。这种由于一个事务读取另一个更新事务尚未提交的数据引起的不一致问题,称为脏读(Dirty Read),或读-写冲突(Read-Write Conflict)。 3. 不可重读 事务T1读取数据R后,T2读取并更新了R,当T1再次读取R时,得到的两次读取值不一致,这种现象称为不可重读(Unrepeatable Read),它也是由于读-写冲突引起的。 由此可见,为保证数据操作的正确性和一致性,必须进行并发控制。 9.1.3 基于锁的并发控制技术 锁是数据项上的并发控制标志,它有两种类型:共享锁(Shared Lock,简称S锁)和排它锁(Exclusive Lock,简称X锁)。 基于锁的并发控制是事务对数据操作前必须获得对该数据的锁,完成操作后在适当时候释放锁,而得不到锁的事务处于等待状态。 1. 封锁协议 事务在加锁和释放锁时,都必须遵守一组规则,这组规则称为封锁协议。 (1)一级封锁协议 一级封锁协议是事务在修改数据R之前必须对其加X锁,直到事务结束,如果未能获得X锁,则该事务进入等待状态,直至获得X锁才能执行。 (2)二级封锁协议 二级封锁协议是在一级封锁协议的基础上,规定事务在读取数据R之前必须对其加S锁,读完后释放S锁。 (3)三级封锁协议 三级封锁协议是在一级封锁协议的基础上,规定事务在读取数据R之前必须对其加S锁,读完后并不释放S锁,直到整个事务结束后才释放。 2. 封锁粒度 封锁粒度是指封锁的数据对象的大小。 封锁粒度越小,系统中能够被封锁的对象就越多,并发度越高,并发控制的系统开销也就越大。反之,封锁粒度越大,系统中能够被封锁的对象就越少,并发度越低,并发控制的系统开销也就越小。 3. 死锁 加锁技术在解决并行操作引发的数据不一致问题的同时,锁自身也会引发问题,主要是死锁(Deadlock)。 如果一个事务申请锁未成功,则须等待其它事务释放锁,这就形成了事务之间的等待关系。当事务中出现循环等待时,如果不加干预,就会一直等待下去,这种状态称为死锁。 (1)死锁的检测和处理 死锁检测的方法一般有以下两种: ① 超时法。如果一个事务的等待时间超过某时限,则认为发生死锁。 ② 等待图法。等待图是一个有向图。如果事务T1需要的数据已经被事务T2封锁,就从T1到T2画一条有向线。这些事务之间的有向线构成一有向图。有向图中出现回路即表明出现了死锁。 数据库管理系统对死锁一般采用如下策略: ① 在循环等待的事务中,选择一个事务

文档评论(0)

170****0571 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档