第6章 事务处理和并发控制.pptVIP

  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文档。上传文档
查看更多
第6章 事务处理与并发控制 事务处理的重要性与必要性 一个常见的银行业务:转账 假设你想把储蓄在某帐户上的一笔钱转帐到的另外一个帐户上去,在钱已经从转出帐户上出来正在转到接收帐户的时候,电脑突然崩溃!你的钱去哪了? 事务处理的重要性与必要性 另一个现实生活中的例子:联网售票 事务处理目录 理解事务处理的概念、特性 理解事务的状态 事务的并发调度 并发调度问题的解决 并发事务的可串行化 可恢复调度 无级联调度 并发调度引起的其他问题 理解数据处理的概念、特性 事务是作为单个逻辑工作单元执行的一系列操作。 一个逻辑工作单元必须有四个属性,称为 ACID。它们是: Atomic 原子性 Consistent 一致性 Isolated 隔离性 Durable 持久性 事务特性理解举例 一个简化的银行系统,由几个账户和访问、更新这些账户的一组事务组成。 对数据库的两个操作: read(X).把数据项X从数据库中传送到一个局部缓冲区中。 Write(X).把数据项X从局部缓冲区传送回数据库。 事务特性理解举例 Ti是一个事务,它的任务是:从账户A过户50元到账户B的事务。这个事务的定义如下: 原子性是一致性的保证 假设事务Ti执行前,账户A和账户B分别有1000元和2000元. 假设事务执行时系统出现故障,导致了事务Ti没有成功完成。假设故障发生在write(A)操作执行之后,write(B)操作执行之前,这种情况下,数据库中A有950,B有2000,故障的结果是销毁了50。A+B的总和发生了改变。 这样,由于系统的故障,系统的状态不再反映数据库应当描述的现实世界的真实状态,这种状态就是不一致状态。 并发事务对隔离性的影响 即使每个事务都能确保一致性和原子性。但是如果几个事务并发执行,它们的操作会以某种方式交叉执行,可能会导致不一致的状态。 例:两次A至B转账事务并发执行 A+B=3000 事务处理目录 理解事务处理的概念、特性 理解事务的状态 事务的并发调度 并发调度问题的解决 并发事务的可串行化 可恢复调度 无级联调度 并发调度引起的其他问题 事务提交和事务撤销(1) BEGIN TRANSACTION标志事务开始执行; 事务的所有操作都完成了,则事务提交(COMMIT),否则事务撤销(ROLLBACK); COMMIT:表示事务执行成功地结束,该事务对数据库的所有更新操作都已写入磁盘; ROLLBACK:表示事务执行不成功地结束,该事务对数据库的所有更新必须被撤销,数据库应恢复该事务到初始状态。 BEGIN TRANSACTION和COMMIT(或ROLLBACK)一起保证了事务的四个性质。 事务提交和事务撤销(2) 事务状态变迁图 T-SQL中的事务举例 一个简单的银行转帐的T-SQL例子。假设customer表用于记录客户的银行账户有关内容,其中的acct_no属性表示帐号,name代表客户姓名,balance代表帐户的余额。 begin transaction declare @errorSum int update customer set balance=balance-1000 where name=张三 set @errorSum=@errorSum+@@error update customer set balance=balance+1000 where name=李四 set @errorSum=@errorSum+@@error if(@errorSum0) begin print 交易失败,回滚事务 rollback transaction end Else begin print 交易成功,提交事务 commit transactin end 事务处理目录 理解事务处理的概念、特性 理解事务的状态 事务的并发调度 并发调度问题的解决 并发事务的可串行化 可恢复调度 无级联调度 并发调度引起的其他问题 并发事务 允许事务并发执行的原因: 一个事务由多个步骤组成,一些步骤涉及I/O活动,另一些涉及CPU活动。基于CPU和外设可以并行运作的特点,多个事务可以并行执行,提高设备利用率。 系统中可能同时运行着各种各样的事务,长、短不一。如果串行执行,可能会出现短任务等待长任务的现象,对于短任务来说,时延很长。 问题:事务并发执行,如何保证数据的一致性。 并发事务的调度 事务的调度: 事务的执行次序称为“调度” 串行调度: 如果多个事务依次执行,则称为事务的串行调度(Serial Schedule) 并发调度: 如果利用分时的方法,同时处理多个事务,则称为事务的并发调度(Concurrent Schedule)。 并发事务的调

文档评论(0)

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

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

1亿VIP精品文档

相关文档