- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计 第7章 事务管理 前言 事务是由若干个数据操作组成的一个完整的逻辑工作单元。事务管理是数据库系统的重要的组成部分。 数据库系统在多个事务并发执行和可能出现故障的情况下,都要保证事务的正确执行。 7.1 事务的基本概念 7.1.1 事务的ACID性质 1 什么是事务 事务是由若干个数据操作组成的一个完整的逻辑工作单元。(可以理解为:事务是构成一个完整的逻辑工作单元的数据库操作的集合) 例如:用户购书:需要同时完成库存数减少、增加客户订单两步操作。我们要求这两个操作,要么都发生,要么都不发生。 7.1 事务的基本概念(续) 2 事务的进一步描述: 事务是数据库系统的基本工作单元。是由事务开始语句和事务结束语句之间的所有的操作组成。 通常由数据操纵语言和高级编程语言所规定。 7.1 事务的基本概念(续) 3 事务的ACID性质 为了保证数据的完整性,要求数据库系统中执行的事务具有四个性质: 7.1 事务的基本概念(续) 3 事务的ACID性质(续) 原子性:一个事务中的所有操作是一个完整的工作单元,这些操作要么都发生,要么都不发生。 一致性:一个事务单独执行时的结果,应该保持数据库的正确和完整,即数据不会因事务的执行而破坏。 一致性状态:数据库中只包含成功事务提交的结果 不一致状态:数据库中包含失败事务的结果 7.1 事务的基本概念(续) 举例:银行转帐:从帐号A中取出一万元,存入帐号B。 定义一个事务,该事务包括两个操作 这两个操作要么全做,要么全不做 全做或者全不做,数据库都处于一致性状态。 如果只做一个操作,数据库就处于不一致性状态。 7.1 事务的基本概念(续) 3 事务的ACID性质(续) 隔离性:在多个事务并发执行时,系统应保持执行结果与这些事务按先后次序串行执行的结果一样。 例如:对于任何一对事务Ti和Tj,在Ti看来,Tj或者在Ti开始之前已经完成,或者在Ti完成之后再开始执行,这样,每个事物都察觉不到系统中有其他事务在并发执行,就好像在单用户环境中一样。 7.1 事务的基本概念(续) 对并发控制的理解: 如果没有锁定,且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题,导致数据库中的数据的不一致性。 一个最常见的并发操作的例子是火车/飞机订票系统中的订票操作。例如,在该系统中的一个活动序列: 1、甲售票员读出某航班的机票张数余额A,设A=16; 2、乙售票员读出同一航班的机票张数余额A,也是16; 3、甲售票员卖出一张机票,修改机票张数余额A=A-1=15,把A写回数据库; 4、乙售票员也卖出一张机票,修改机票张数余额A=A-1=15,把A写回数据库。 结果明明卖出两张机票,数据库中机票余额只减少1。 7.1 事务的基本概念(续) 3 事务的ACID性质(续) 持久性:一个事务一旦成功完成后,他对数据库的改变必须是永久的,即使是发生了故障。 可以通过以下两个方法之一来实现持久性 事务所有的更新在事务结束前全部写入磁盘。 在事务结束前已写到磁盘上的相关信息,足以让数据库系统在故障出现后,重新启动系统时恢复事务已经执行的所有的更新。 7.1 事务的基本概念(续) 7.1.3 事务的并发执行 数据库系统通常允许多个事务并发执行,其动机就如操作系统中使用多道程序设计一样。允许事务并发执行的主要优点有: (1) 提高吞吐量 (2) 减少平均响应时间 现代数据库应用都要求系统具有较高的并发度,尤其是随着internet 的发展,许多web 应用要同时处理成千上万个在线的数据库访问。 硬件技术的发展也要求提高事务执行的并发度。 7.2-7.3 并发控制和锁 简单介绍并发控制和锁 。 1 并发控制 数据库是一个共享资源,可以供多个用户使用,允许多个系统同时使用的数据库系统,在同一时刻并行运行的事务数可达数百个。 事务可以一个一个串行执行,即每一个时刻只有一个事务运行,其他事务必须等到这个事务结束后方能运行。但是,将造成许多系统资源处于空闲状态。 7.2-7.3 并发控制和锁(续) 事务是并发控制的基本单位,保证事务ACID特性是事务处理的重要任务。 事务特性可能遭到破坏的原因之一是多个事务对数据库的并发操作造成的。 7.2-7.3 并发控制和锁(续) 2 锁的概念: 锁是实现并发控制的一个重要的技术,也是最常用的并发控制的技术。 锁是在多用户环境
文档评论(0)