授课顺序21授学时3学时教学方式讲授基本要求.pptVIP

授课顺序21授学时3学时教学方式讲授基本要求.ppt

  1. 1、本文档共42页,可阅读全部内容。
  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文档。上传文档
查看更多
授课顺序21授学时3学时教学方式讲授基本要求

第11章 并发控制 数据库的最大特点之一就是数据资源是共享的。如飞机定票数据库系统、银行数据库系统。在同一时刻并行运行的事务可达数百个。 事务可以一个一个地串行运行,即每个时刻只有一个事务运行,其它事务必须等到这个事务结束以后方能运行。 单机处理器系统(交叉并发方式)和多机处理器系统的并行(同时并发方式)执行方式的区别。 在此讨论的数据库并发控制技术是以单机处理器系统为基础的。 当多个用户并发存取同一数据块时,如果对并发操作不加控制可能会产生不正确的数据,破坏数据的完整性,并发控制就是解决这类问题。 并发控制机制是衡量一个数据库管理系统性能的重要标志之一。 11.1 并发控制概述 事务是并发控制的基本单位,保证事务的ACID特性是事务处理的重要任务,事务的ACID特性可能遭到破坏的原因之一是多个事务对数据库的并发操作造成的。 为了保证事务的隔离性,保证数据库的一致性,DBMS需要对并发操作进行正确的调度,这就是DBMS中并发控制机制的责任。 并发操作与数据的不一致性 当同一数据库系统中有多个事务并发运行时,如果不加以适当控制,可能产生数据的不一致性。 [例1]并发取款操作。假设存款余额R=1000元,甲事务T1取走存款100元,乙事务T2取走存款200元,如果正常操作,即甲事务T1执行完毕再执行乙事务T2,存款余额更新后应该是700元。但是如果按照如下顺序操作,则会有不同的结果: 甲事务T1读取存款余额R =1000元; 乙事务T2读取存款余额R =1000元; 甲事务T1取走存款100元,修改存款余额R =R -100=900,把R =900写回到数据库; 乙事务T2取走存款200元,修改存款余额R =R -200=1100,把R =1100写回到数据库。 结果两个事务共取走存款300元,而数据库中的存款却只少了200元。 得到这种错误的结果是由甲乙两个事务并发操作引起的,数据库的并发操作导致数据库不一致性主要有以下三种: 1.丢失修改(Lost Update) 当两个事务T1和T2读入同一数据做修改,并发执行时, T2把T1或T1把T2的修改结果覆盖掉,造成了数据的丢失更新问题,导致数据的不一致。 2.不可重读(Unrepeatable Read) 1、事务T1读取了数据R,事务T2读取并更新(插入、修改、删除)了数据R,当事务T1再读取数据R以进行核对时,得到的两次读取值不一致,这种情况称为“不可重读”。 2、事务T1读取了数据R,事务T2删除了数据R中部分记录,当事务T1再读取数据R以进行核对时,发现某些记录神秘地消失了。 3、事务T1读取了数据R,事务T2在R中插入了某些数据,当事务T1再读取数据R以进行核对时,发现多了一些记录。 后两种不可重复读也称为幻影现象。 3.污读(读“赃”数据)(Dirty Read) 事务T1更新了数据R,事务T2读取了更新后的数据R,事务T1由于某种原因被撤消,修改无效,数据R恢复原值。事务T2得到的数据与数据库的内容不一致,这种情况称为“污读”。 原因在于事务T2读取了T1未提交的更新操作结果,这种值是不稳定的,在事务T1结束前随时可能执行ROLLBACK操作。 对于这些未提交的随后又被撤消的更新数据称为“脏数据”。 比如,这里事务T2读取的就是“脏数据”。 产生上述三类数据不一致性的主要原因就是并发操作破坏了事务的隔离性。 并发控制就是要求DBMS提供并发控制功能从而以正确的方式调度并发事务,避免并发事务之间的相互干扰造成数据的不一致性,保证数据库的完整性。 怎么办???? 封锁!! 11.2 封锁 实现并发控制的方法是封锁(Lock)技术。 封锁类型(Lock Type) 所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集、以至整个数据库)进行操作之前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制(由封锁类型决定),以保证数据操作的正确性和一致性。 封锁是目前DBMS普遍采用的并发控制方法,基本的封锁类型有两种:排它锁和共享锁。 1.排它锁(Exclusive Lock) 排它锁又称写锁,简称为X锁,其采用的原理是禁止并发操作。 当事务T对某个数据对象R加上X锁,则只允许T读取和修改R,其他任何事务都不能再对R加任何类型的锁,直到T释放R上的锁。这就保证了其他事务在T释放R上的锁之前,不能再读取和修改R。 2.共享锁(Share Lock) 共享锁又称读锁,,简称为S锁,其采用的原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改。 当事务T对某个数据对象R加上S锁,则事务T可以读取但不能修改R,其他事务只能再对R加S锁,而不能加X锁,直到T释放R上的

文档评论(0)

ldj215323 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档