新数据库技术与应用 教学课件 张千帆 chapter8.pptVIP

新数据库技术与应用 教学课件 张千帆 chapter8.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库技术及应用 华中科技大学管理学院 第八章 数据库系统的并发控制 当多个用户并发访问数据库时,为了维护数据库中数据的一致性,数据库管理系统必须提供相应的事务并发控制机制。 本章介绍事务的基本概念、特性和模式,并发控制技术,死锁的预防与处理方法。 主要内容 8.1 事务与事务调度 8.2 事务并发控制与数据的不一致性 8.3 事务管理 8.4 基于锁的并发控制技术 8.5 死锁的处理 8.1 事务与事务处理 8.1.1 事务的概念 事务不是单行语句,是实现数据操作的一个最基本的单位。这些操作要么都做,要么都不做,是一个不可分割的工作单位。 8.1.1 事务的概念 事务的执行是分成众多元操作逐步进行的,元操作一般分为READ和WRITE两种。这两个元操作的含义如下: 1)READ(X) 将数据项X从数据库磁盘文件中读入事务所在的内存的缓冲区内。 2)WRITE(X) 将数据项X从事务的内存缓冲中写回数据库磁盘文件中,代表了事务对数据库的更新操作。 数据库应用程序中,事务以BEGIN_TRANSACTION语句开始,以COMMIT或ROLLBACK语句结束。 8.1.1 事务的概念 例如,如下事务的具体含义是学生持饭卡A在售饭机B上消费5元。 BEGIN_TRANSACTION T1 READ( Balance_A) Balance_A= Balance_A-5; IF Balance_A0 THEN PRINT(‘饭卡余额不足’) ROLLBACK T1 ELSE WRITE(Balance_A) READ(Balance_B) MONEY_B=MONEY_B+5 WRITE(MONEY_B) COMMIT T1 8.1.2 事务的特性 原子性(Atomicity) 事务中包含的所有操作要么全做,要么全不做 原子性由恢复机制实现 一致性(Consistency) 事务开始前,数据库处于一致性的状态; 事务结束后,数据库必须仍处于一致性状态 一致性通过并发控制机制实现 8.1.2 事务的特性 隔离性(Isolation) 对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行 隔离性通过并发控制机制实现 持久性(Durability) 一个事务一旦提交之后,它对数据库的影响必须是永久的系统发生故障不能改变事务的持久性 持久性通过恢复机制实现 8.1.3 事务模式 (1)自动提交事务模式 每条单独的语句都是一个事务。每条T-SQL语句在成功执行完成后,都被自动提交,如果遇到错误,则自动回滚该语句。该模式为系统默认的事务管理模式。 (2)显示事务模式 该模式允许用户定义事务的启动和结束。事务以BEGIN TRANSACTION 语句开始,以COMMIT 或 ROLLBACK语句结束。 (3)隐性事务模式 不需要使用BEGIN TRANSACTION语句表示事务的开始,但需要以COMMIT或 ROLLBACK语句来提交或回滚事务。 8.1.4 事务控制语句 丢失修改或覆盖更新(lost update) 读“脏”数据(dirty read) 不可重复读(non-repeatable read) 1)丢失修改或覆盖更新(lost update) 丢失修改是指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。 2)读“脏”数据(dirty read) 事务1修改某一数据,并将其写回磁盘 事务2读取同一数据后事务1由于某种原因被撤消,这时事务1已修改过的数据恢复原值 事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。 3)不可重复读(non-repeatable read) 不可重复读是指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。 三类不可重复读 事务1读取某一数据后: (1)事务2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。 (2)事务2删除了其中部分记录,当事务1再次读取数据时,发现某些记录神密地消失了。 (3)事务2插入了一些记录,当事务1再次按相同条件读取数据时,发现多了一些记录。 后两种不可重复读有时也称为幻影现象(phantom row) 8.3 事务管理 事务以BEGIN TRANSACTION开始 以COMMIT TRANSACTION或ROLLBACK TRANSACTION结束 COMMIT TRANSACTION表示提交,事务正常结束 ROLLBACK TRANSACTION表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态 以

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档