chap事务处理、并发控制与恢复技术

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并行调度
在并行调度中,c来hap自事务不处同理、事并发务控的制与指恢复令技可术 以交叉执行
5.1.3事务调度
并行与串行的对比:、 并行调度可以使事务并发执行,以提高系统的吞 吐量,但可能会破坏数据库的一致性; 串行调度导致时延,效率低。
调度的核心问题应该在保证一致性的前提下最大 限度地提高并发度
第5章 事务处理、并发控制 与恢复技术
chap事务处理、并发控制与恢复技术
本章目标
本章结束时,学员能够:
了解事务的概念和ACID特性
掌握并发控制和封锁技术的概念
理解并发调度的可串行性及两段锁协议
了解封锁粒度
了解数据库系统的故障种类
理解数据库恢复的实现技术和常见故障的恢
复策略
chap事务处理、并发控制与恢复技术
BEGIN TRANSACTION COMMIT ROLLBACK SQL 中 事 务 以 Begin transaction 开 始 , 以 Commit 或
Rollback 结束 Commit 表示提交,即提交事务的所有操作,事务正常 结束。 Rollback 表示事务非正常结束,撤消事务已做的操作, 回滚到事务开始时状态
数据库的一致性状态,由并发控制机制实现 如银行转帐,转帐前后两个帐户金额之和应保 持不变
chap事务处理、并发控制与恢复技术
5.1.2事务的ACID特性(续)
隔离性(Isolation)
一个事务的执行不能被其他事务干扰。 系统必须保证事务不受其它并发执行事务的影
响 对任何一对事务T1,T2,在T1看来,T2要么在 T1开始之前已经结束,要么在T1完成之后再开 始执行
隐性事务
在前一个事务完成时新事务隐式启动,但每个事务仍 以 COMMIT 或 ROLLBACK 语句显式完成。(如 UPDATE/INSERT/DELETE)
自动提交模式是 Microsoft SQL Server 的默认事务管理模式。
chap事务处理、并发控制与恢复技术
5.1.2 事务的ACID特性
chap事务处理、并发控制与恢复技术
5.1.1 事务 (续)
SQL Server 的事务模式: 自动提交事务
每条单独的语句都是一个事务。每条语句后都隐含一 个COMMIT
显式事务
每个事务均以 BEGIN TRANSACTION 语句显式开始 ,以 COMMIT 或 ROLLBACK 语句显式结束。
并发控制的主要技术是 封锁(Locking)
chap事务处理、并发控制与恢复技术
5.3并发控制技术
封锁 并发调度的可串行性 两段锁协议 封锁的粒度
事务的ACID特性:
原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability)
事务是并发控制和恢复的基本单位。 保证事务ACID特性是事务处理的重要任务。
chap事务处理、并发控制与恢复技术
5.1.2事务的ACID特性 (续)
隔离性通过并发控制机制实现
chap事务处理、并发控制与恢复技术
5.1.2事务的ACID特性(续)
持久性(Durability) 也称为永久性,指一个事务一旦提交之 后,它对数据库的影响必须是永久的 系统发生故障不能改变事务的持久性
持久性通过恢复机制实现
chap事务处理、并发控制与恢复技术
5.1.3事务调度
乙售票点也卖出一张机票,修改余额A=A-1,所 以A为15,把A写回数据库;
chap事务处理、并发控制与恢复技术
5.3并发控制技术
为了保证数据一致性,DBMS必须提供并发控 制机制,对并发操作进行正确的调度。并发控 制机制是衡量一个数据库管理系统性能的重要 标志之一。
并发控制就是用正确的方式调度并发操作,使 一个用户事务的执行不受其他事务的干扰,从 而避免造成数据的不一致性。
原子性(Atomicity):
事务中包含的所有操作要么全做,要么全不 做 原子性由恢复机制实现
chap事务处理、并发控制与恢复技术
5.1.2事务的ACID特性(续)
一致性(Consistency)
事务的隔离执行必须保证数据库的一致性 事务开始前,数据库处于一致性的状态;事务 结束后,数据库必须仍处于一致性状态
chap事务处理、并发控制与恢复技术
5.2并发操作
并发操作:
当多个用户同时存取数据库就会产生对数据库的并 发操作。
并发操作打破了事务一个一个执行的顺序,会破坏 事务的ACID特性,从而会使数据库处于数据不一 致性状态。
为了充分利用系统资源,发挥数据库共享资源的 特点,应该允许多个事务并行地执行。
事务的调度
事务的执行顺序称为一个调度,表示事务的指令在系统中 执行的时间顺序
一组事务的调度必须保证
包含了所有事务的操作指令 一个事务中指令的顺序必须保持不变 调度可以分为串行调度和并行调度两种
串行调度
在串行调度中,属于同一事务的指令紧挨在一起 对于有n个事务的事务组,可以有n!个有效调度
5.1事务的基本概念
事务的概念: 所谓事务是用户定义的一个数据库操作序列 ,这些操作要么全做要么全不做,是一个不 可分割的工作单位。 例如,在关系数据库中,一个事务可以是一 条SQL语句、一组SQL语句或整个程序。 事务是一个逻辑工作单元,同时又是一个恢 复单元 一个事务提交之后,数据库又处于或应该处 于一个一致性状态 chap事务处理、并发控制与恢复技术
5.1事务的基本概念
“一荣俱荣,一损俱损”这句话很能体现事务的思 想,很多复杂的事物要分步进行,但它们组成一个 整体,要么整体生效,要么整体失效。这种思想反 映到数据库上,就是多个SQL语句,要么所有执行 成功,要么所有执行失败。
chap事务处理、并发控制与恢复技术
5.1.1 事务 (续)
定义事务的三条语句:
chap事务处理、并发控制与恢复技术
5.2并发操作(续)
并发操作带来的数据不一致性: 考虑飞机订票系统中的一个活动序列:
甲售票点(甲百度文库务)读出某航班的机票余额A,假 设A为16;
乙售票点(乙事务)读出同一航班的机票余额A, 也为16;
甲售票点卖出一张机票,修改余额A=A-1,所以 A为15,把A写回数据库;
相关文档
最新文档