搜档网
当前位置:搜档网 › 数据库恢复技术和并发控制

数据库恢复技术和并发控制

数据库恢复技术和并发控制
数据库恢复技术和并发控制

数据库恢复技术和并发控制

一、数据库恢复技术

1. 事务

所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单元。

2. 事务的特性

事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability),简称为ACID特性。

(1) 原子性

事务是数据库的逻辑工作单位,事务中包含的诸操作要么都做,要么都不做。

(2) 一致性

事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

(3) 隔离性

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰

(4) 持续性

指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

事务是恢复和并发控制的基本单位。保证事务ACID特性是事务管理的重要任务。

3. 故障种类

数据库系统中可能发生的各种各样的故障,大致可以分为下几类:

(1) 事务内部的故障

有的可以通过事务程序本身发现,如转账时发现账户余额不足。更多的故障是非预期的,是不能由应用程序处理的,如运算溢出、并发事务发生死锁而被选中撤销该事务、违反了某些完整性限制等

(2) 系统故障

指造成系统停止运转的任何事件,使得系统要重新启动。例如:硬件错误(CPU故障)、操作系统故障、DBMS代码错误、系统断电等。这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。

发生故障时,一些尚未完成的事务的结果可能已送入物理数据库,从而造成数据库可能处于不正确的状态。

恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤销(UNDO)所有未完成事务。另一方面,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失,这也会使数据库处于不一致状态,因此应将这些事务已提交的结果重新写入数据库。所以系统重新启动后,恢复子系统除需要撤销所有未完成的事务,还需要重做(REDO)所有已提交的事务,以将数据库真正恢复到一致状态。

(3) 介质故障

也称硬故障,如磁盘损坏、磁头碰撞、强磁场干扰等。

(4) 计算机病毒

4. 恢复的实现技术

恢复机制涉及的两个关键问题是:第一,如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。建立冗余数据最常用的技术是数据转储和登录日志文件。

5. 恢复策略

当系统运行过程中发生故障,利用数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。

(1) 事务故障的恢复

事务故障是指事务在运行至正常终止点前被终止,这时恢复子系统应利用日志文件撤销(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。

恢复步骤:

1>反向扫描日志文件,查找该事务的更新操作

2>对事务的更新操作执行逆操作

3>继续查找该事务的其他更新操作,并做同样处理,直至读到该事务的开始标记,事务故障恢复就完成了。

(2) 系统故障的恢复

系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤销故障发生时未完成的事务,重做已完成的事务。系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。

恢复步骤:

1>正向扫描日志文件,找出在故障发生前已提交的事务(这些事务既有BEGIN TRANSACTION 标记,也有COMMIT标记),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION标记,无相应的COMMIT标记),将其事务标识记入撤销队列。

2>对撤销队列中的各个事务进行撤销(UNDO)处理。方法是,反向扫描日志文件,对每个UNDO 事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。

3>对重做队列中的各个事务进行重做(REDO)处理。方法是,正向扫描日志文件,对每个REDO 事务重新执行日志文件登记的操作,即将日志记录中“更新后的值”写入数据库。

(3) 介质故障的恢复

恢复方法是重装数据库,然后重做已完成的事务。

二、并发控制

1. 交叉并发方法:单处理机系统中的并发事务并没有真正地并行运行,但是减少了处理机的空闲时间,提高了系统的效率。

2. 同时并发方法:多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并发执行。

3. 并发控制概述

为了保证事务的隔离性和一致性,DBMS需要对并发操作进行正确调度。并发操作带来的数据不一致性主要包括丢失修改、不可重复读和读“脏”数据等。下面把事务读数据x记为R(x),把事务写数据x记为W(x)。三种数据不一致可以由下图表示:

并发控制的主要技术有封锁(Locking)、时间戳(Timestamp)和乐观控制法。

4. 封锁

封锁是实现并发控制的一个非常重要的技术。

所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一下的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。

确切的控制由封锁的类型决定。基本的封锁类型有两种:排它锁(Exclusive Locks,简称X锁)和共享锁(Share Locks,简称S锁)

(1) 排它锁又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上

的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。

(2) 共享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A作任何修改。

排它锁和共享锁的控制方式可以用下图的相容矩阵来表示:

分类: 数据库理论

标签: 数据库恢复, 并发控制

分布式数据库的并发控制读书报告

读书报告 信息学院计算机科学与技术 杨凌雯201320602019 一、并发控制中的概念和理论 1.1 并发控制中的概念 数据库的特点就是数据的集中管理和共享。在通常情况下它总是有若干个事务在执行,这些事务可能并发地存取相同的数据,称为事务的并发操作。 并发控制是负责正确协调并发事务的执行,保证这种并发的存取操作不致破坏数据库的完整性和一致性,确保并发执行的多个事务能够正确的运行并获得正确的结果。 分布式并发控制主要解决多个分布式事务对数据并发执行的正确性。 1.丢失更新问题 在图5. 1(a)中,数据库中数据项x的初值是100,事务I对x的值减30,事务T2对x的值增加一倍,如果执行次序是先T1后T2,那么结果x的值是140。如果是先T2后T1,那么x 的值是170。这两种情况都应该是正确的,因为具体实现时只有其中一种情况.但是若按图5. 1 (a)那样的并发执行,结果x的值是200,这个值肯定是错误的。因为在时间t7丟失了事务T1对数据库的更新操作,因此这个并发操作是不正确的。 2.不一致分析问题

在图5. 1(b)中,事务T1对x值的值减30,而車务T2只要读出x的值。但在t5时刻,由于T1已更新了x的值,此时T2使用的x值仍是100,因此就造成了不一致,这个问题称为不一致分析问题。 3.依赖于未提交更新的问題 在数据库技术中,把未提交的随后又被撤销的更新数据称为“脏数据”。这里事务T2在t4时刻读的x值就是脏数据。 1.2事务可串行化理论的基本概念 一般来说,对一组并发的分布式事务可能存在多种正确调度,可串行化调度是分布式事务能否正确执行的基本方法。 事务的可串行性是指若千个事务并发执行的结果与按希望的顺序执行的结果相同时,称诸事务是可串行的。这就是说,如果事务的并发执行能够通过以一定顺序串行执行就可使数据库处于新的一致状态,那么诸如丢失更新的问题就可能得到解决,这就是串行化理论的观点。 1.分布式事务的一个调度 在数据库系统中,事务访问数据库中数据的方式是通过发出读操作和写操作原语来实现的。通常,以T1表示某个事务,以Ri(x)表示该事务对数据项x的读操作,以Wi(x)表示该事务对数据项x的写操作,这里不考虑数据项x的粒度。事务的一个操作序列称为一个调度(schedule,也称历史history),一般以字母S表示。例如:S:R1(x),R2(y),W2(y),R2(x), W1(x),W2(x) S是关于两个事务的一个调度。 两个同时访问同一数据项x的操作,如果其中至少有一个是写操作,那么称这两个操作是冲突的。 1)读操作不相互冲突,因此只有两种冲突:读-写冲突(或写-读冲突),及写-写冲突。 2)两个操作可以属于同一事务或者两个不同的事务,在后者的情况下,称为两个事务冲突。3)如果有两个事务Ti和Tj,Ti的所有操作都先于Tj的操作,那么这两个事务为串行执行的,必定不会有冲突。 2.串行调度

时间戳和乐观控制法并发控制技术

不加锁的并发控制 1. 时间戳的并发控制 调度并发事务的时间戳方法给每个事务分配一个全局惟一的时间戳。时间戳的值产生了一个精确的顺序,事务按照该顺序提交给DBMS。时间戳必须有两个特性:惟一性和单调性.惟一性保证不存在相等的时间戳值,单调性保证时间戳的值是一直增长的。 同一事务中所有的数据库操作(读和写)都必须有相同的时间戳。DBMS按照时间戳顺序执行冲突的事务,因此保证了事务的可串行化。如果两个事务冲突,通常终止其中一个,将其回滚并重新调度,赋予新的时间戳。 存储在数据库中的每个值都要求两个附加的时间戳域:一个是该域最后一次读的时间,另一个是最后一次更新的时间.因此时间戳增加了内存需求和数据库的处理开销.因为有可能导致许多事务被终止,重新调度和重新赋予时间戳,时间戳方法一般需要大量的系统资源. 2. 乐观的并发控制 乐观方法基于这样的假设,数据库操作的大部分都不会发生冲突.乐观方法不要求锁定.作为替换,事务不受限制地被执行,直到它被提交.便用乐观方法,每个事务经过两个或者三个阶段,它们是读、确认、写。 (1) 读阶段,事务读取数据库,执行需要的计算,并对一个私有的数据库值的副本进行更新.事务的所有更新操作都记录在一个临时更新文件中,该文件将不会被剩下的其他事务访问. (2) 确认阶段,对事务进行确认以保证所做的修改不会影响数据库的完整性和一致性.如果确认检查是肯定的,事务进入写阶段;如果确认检查是否定的,则事务回滚,重新启动,所做的修改被抛弃. (3) 写阶段,所做的修改被永久地写入到数据库中.乐观方法对于大多数只有较少更新事务的查询数据库系统来说是可以接受的. 3. 三种并发控制方法的比较 在存储空间上的比较: (1)封锁:锁使用的空间与封锁对象个数成正比. (2)时间戳:每个数据库对象的读时间和写时间都需要空间,不管是否当前被

数据库原理习题与答案 第9章数据库系统恢复和并发控制技术

第九章.数据库系统恢复和并发控制技术 习题: 一.填空题 1.数据库保护包含数据的。 2.是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。 3.DBMS的并发控制的主要方法是机制。 4.有两种基本的锁,它们是和。 5.对并发操作若不加以控制,可能带来的不一致性有、和。 6.数据库系统在运行过程中,可能会发生故障,故障主要有、、介质故障和四类。 7.数据库系统是利用存储在外存上其他地方的来重建被破坏的数据库,它主要有两种:和。 二.选择题 1.下面哪个不是数据库系统必须提供的数据控制功能。 A.安全性 B.可移植性 C.完整性 D.并发控制 2.事务的原子性是指。 A.事务中包括的所有操作要么都做,要么都不做 B.事务一旦提交,对数据库的改变是永久的 C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态 3.多用户的数据库系统的目标之一是使它的每个用户好像面对着一个单用户的数据库一样使用它,为此数据库系统必须进行。 A.安全性控制 B.完整性控制 C.并发控制 D.可靠性控制 4.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是________。 T1 T2 ①读A=10 ②读A=10 ③A=A-5写回 ④A=A-8写回

A该操作不存在问题B该操作丢失修改 C该操作不能重复读D该操作读“脏”数据 5.若事务T对数据R已加X锁,则其他对数据R 。 A.可以加S锁,不能加X锁 B.不能加S锁,可以加X锁 C.可以加S锁,也可以加X锁 D.不能加任何锁 6.对并发控制不加以控制,可能会带来。 A.不安全 B.死锁 C.死机 D.不一致 7.用来记录对数据库中数据进行的每一次更新操作。 A.后援副本 B.日志文件 C.数据库 D.缓冲区 三.简答题 1.试述事务的概念和事务的四个特性。 2.数据库中为什么要有恢复子系统,它的功能是什么? 3.数据库运行中可能发生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据? 4.数据库恢复的基本技术有哪些? 5.登记日志文件时,为什么必须先写日志文件,后写数据库? 6.在数据库中为什么要并发控制? 7.什么是封锁? 8.基本的封锁有哪几种?试述它们的含义。 9.不同封锁协议与系统一致性级别的关系是什么? 10.请给出预防死锁的若干方法。 11.什么样的并发调度是正确的调度? 12.试述两段锁协议的概念。

数据库考试习题四答案

第九、十章 一、选择 1 ?下面哪个不是数据库系统必须提供的数据控制功能:___________ A安全性B可移植性C完整性D 并发控制 2 ?保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。 这是指数据的 ____ o A安全性B完整性C并发控制D恢复 3 ?数据库系统中,对存取权限的定义称为_______ o A命令B授权C定义D 审计 4. 年龄限制在16~25之间这种约束属于DBMS的 ___________ 能。 A安全性B完整性C并发控制D恢复 5. “授权”和“撤权”是DBS采用的_____ 措施。 A安全性B完整性C并发控制D恢复 二、填空 1 .数据库的完整性是指数据的正确性和相容性。 2. 完整性约束分为实体完整性、参照完整性和用户自定义的完整性。 3. 为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不唯一时, DBMS就拒绝此操作。 4. 实体完整性是指在基本表中主码属性不能取空值。 5. 在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语 句,对用户授权使用GRANT语句,收回所授的权限使用REVOKE语句。 6. 安全性控制的一般方法有用户标识和鉴定、存取控制、审计、数据加密和视图 的保护五级安全措施。 6. 存取权限包括两个方面的内容,一个是要存取的数据对象,另一个是对此数据 对象进行操作的类型。 7. 授权编译系统和合法权检查机制一起组成了安全性子系统。 8. 保护数据安全性的一般方法是设置用户标识和存取权限控制。 9. 数据库的完整性是指正确性和相容性。 10. 数据库保护包含数据的安全性、完整性、并发控制、恢复。

并发控制 课后答案

第八章并发控制 习题解答和解析 1. 1.在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2. 2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读"脏"数据。 (1)丢失修改(Lost Update)两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。 (2)不可重复读(Non -Repeatable Read)不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。不可重复读包括三种情况:详见《概论》8.1(P266)。 (3)读"脏"数据(Dirty Read)读"脏"数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为"脏"数据,即不正确的数据。 避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。 3. 3.什么是封锁? 答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。 4. 4.基本的封锁类型有几种?试述它们的含义。 答:基本的封锁类型有两种:排它锁(Exclusive Locks, 简称 X 锁 )和共享锁(Share Locks,简称 S 锁)。 排它锁又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。 共享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 5.如何用封锁机制保证数据的一致性 ? 答:DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务T1在对A进行修改之前先对A执行XLock(A),即对A加X锁。这样,当T2请求对A加X锁时就被拒绝,T2只能等待T1释放A上的锁后才能获得对A的X锁,这时它读到的A是T1更新后 的值,再按此新的A值进行运算。这样就不会丢失 T1的更新。

基于封锁的事务并发控制概述

基于封锁的事务并发控制概述 发表时间:2010-05-14T10:46:24.013Z 来源:《计算机光盘软件与应用》2010年第4期供稿作者:卢成浪,徐湖鹏 [导读] 叙述了关系型数据库管理系统中的事务管理和基于锁的事务并发控制方法。 卢成浪,徐湖鹏 (温州大学瓯江学院,温州 325035) 摘要:叙述了关系型数据库管理系统中的事务管理和基于锁的事务并发控制方法。详细介绍了事务的串行化调度方法中的锁技术和锁 协议,并深入讨论了锁的管理、死锁处理、幻影问题和其它加锁过程中可能出现的一些问题。 关键词:数据库管理系统;事务;并发控制;封锁 中图分类号:TP311.131 文献标识码:A 文章编号:1007-9599 (2010) 04-0000-03 Lock-Based Transaction Concurrency Control Overview Lu Chenglang,Xu Hupeng (Wenzhou University,Oujiang College,Wenzhou 325035,China) Abstract:An overview on the management of lock- based concurrency control of transactions is presented in this paper.The locking protocols and locking techniques of the locking are discussed in depth. Keywords:Database management systems;Transaction;Concurrency control;Lock 一、引言 事务是用户定义的一组数据库操作序列。事务的执行结果将使数据库从一个一致性状态转变到另一个一致性状态。为了提高吞吐量, 系统中常常是多个事务并发执行。这会产生多个事务同时存取同一数据的情况,从而破坏数据库的一致性。所以数据库管理系统 (Database Management System,DBMS)必须提供并发控制机制,使得并发的事务在冲突的时候被串行化执行。这种调度称为可串行化 调度。其中基于封锁的并发控制机制是一种被广泛应用于商业DBMS中的并发控制机制。 二、事务的特性和并发的数据不一致性 事务具有ACID特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持续性(Durability)。原子性指:事 务包含的所有操作要么全部被执行,要么都不被执行;一致性指:事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状 态;隔离性指:在事务被提交以前,其操作结果对于其他事务不可见;持续性指:一旦事务成功提交,其对数据库中数据的改变是永久 的。事务是并发控制的基本单位,保证事务的ACID特性是事务处理的重要任务。然而,事务的并发执行可能会破坏事务的ACID特性,而导 致数据的不一致性: (一)Write-Write冲突,丢失更新。它是由于事务之间的写冲突造成的。两个事务T1和T2同时读入同一数据并修改,T2的提交破坏 了T1的提交结果,导致T1的修改丢失。 (二)Read-Write冲突,也称不一致读。不一致读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。它 包括三种情况:1.T1读取某一数据后, T2对其做了修改,当T1再次读取该数据时,得到与前一次不同的值;2.T1按一定的条件从数据库 中读取了某些记录后,T2删除其中部分记录,当T1再次按相同条件读取数据时,发现某些记录神秘的消失了;3.T1按一定的条件从数据库 中读取了某些记录后,T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。后两种情况也称幻影现象。 (三)Write-Read冲突,也称读脏数据。读脏数据指事务T1修改某数据,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已 修改过的数据恢复原值,T2读到的数据就与数据中的数据不一致,则称T2读到的数据就为脏数据。 三、基于封锁的事务并发控制机制 (一)锁的类型 封锁是实现并发控制的一个非常重要的技术。所谓封锁就是事务T在对某个数据对象例如表,记录等操作之前,先向系统发出请求,对 其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它之前,其他事务不能更新该数据对象。下面介绍DBMS涉及的锁: 1.互斥锁(Exclusive Lock):用于写操作,又称写锁或者排他锁,记做X锁。若事务T对数据对象A加上X锁,则只允许T读写A,其他 事务都不能对A加任何锁,直到T释放A上的锁。 2.共享锁(Shared Lock):用于读操作,又称读锁,记做S锁。若事务T对数据对象A加上S锁,则T可读A但不能写A,其他事务只能对 A加S锁,而不能加X锁,直到T释放锁。 3.更新锁(Update Lock):用于更新操作。等价于先加共享锁,在真正执行更新操作时,将共享锁升级为互斥锁。大部分DMBS 都 不使用这种锁。 4.增量锁(Increment Lock):用于增量操作,如果一个对象被上了增量锁,除增量操作以外任何读写操作都是被禁止的。即增量锁 之间不排斥。因同时对某一对象的数值进行加一或者减一操作时,其结果与操作先后顺序是无关的,可以交换。这种锁使用并不广泛。 5.意向锁(Intention Lock):它是因为引入多粒度对象而产生的,又可 细分为:意向共享锁,意向排他锁和共享意向排他锁。 在DBMS 中被广泛使用的是共享锁,互斥锁和意向锁。为了保证写操作的互 斥性,不同事务对同一数据对象加锁时需要进行冲突检测。检测可以借助锁的相 容矩阵来判断,如图1(a)所示。从中可以发现5种锁的强度偏序关系,如图1 (b)所示。 (二)加锁管理和锁转换 DBMS中处理事务加锁事宜的部分被称为锁管理器。锁管理器维护着一个锁 表,这是一个以数据对象标志为码的哈希表。DBMS也在事务表中维护着每个事务的描述信息项,该记录中包含一个指向事务拥有的锁列表 的指针。在请求锁之前要检查这个列表,以确定不会对同一个锁请求两次。 加锁表中的每一项针对某个数据对象(可以是一页,一条记录等等),它包括下面的信息:拥有数据对象锁的事务数目,锁的属性 (共享锁、互斥锁等)和一个指向加锁请求队列的指针。

第八章 数据库并发控制练习和答案教学内容

第八章数据库并发控制 一、选择题 1.为了防止一个用户的工作不适当地影响另一个用户,应该采取()。 A. 完整性控制 B. 访问控制 C. 安全性控制 D. 并发控制 2. 解决并发操作带来的数据不一致问题普遍采用()技术。 A. 封锁 B. 存取控制 C. 恢复 D. 协商 3.下列不属于并发操作带来的问题是()。 A. 丢失修改 B. 不可重复读 C. 死锁 D. 脏读 4.DBMS普遍采用()方法来保证调度的正确性。 A. 索引 B. 授权 C. 封锁 D. 日志 5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放, 这是()。 A. 一级封锁协议 B. 二级封锁协议 C. 三级封锁协议 D. 零级封锁协议 6.如果事务T获得了数据项Q上的排他锁,则T对Q()。 A. 只能读不能写 B. 只能写不能读 C. 既可读又可写 D. 不能读也不能写 7.设事务T1和T2,对数据库中地数据A进行操作,可能有如下几种情况, 请问哪一种不会发生冲突操作()。 A. T1正在写A,T2要读A B. T1正在写A,T2也要写A C. T1正在读A,T2要写A D. T1正在读A,T2也要读A 8.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。 A. 一个是DELETE,一个是SELECT B. 一个是SELECT,一个是DELETE C. 两个都是UPDATE D. 两个都是SELECT 9.在数据库系统中,死锁属于()。 A. 系统故障 B. 事务故障 C. 介质故障 D. 程序故障 二、简答题 1. 在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。 当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。

数据库 第八章 并发控制

数据库第八章并发控制 并发控制习题1.在数据库中为什么要并发控制?2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?3.什么是封锁?4.基本的封锁类型有几种?试述他们的含义。5.如何用封锁机制保证数据的一致性?6.什么是封锁协议?不同级别的封锁协议的主要区别是什么?7.不同封锁协议与系统一致性级别的关系是什么?8.什么是活锁?什么是死锁?9.试述活锁的产生原因和解决方法。10.请给出预防死锁的若干方法。11.请给出预测死锁发生的一种方法,当发生死锁后如何接触死锁?12.什么样的并发调度是正确的调度?13.设T1,T2,T3是如下3个事务:T1:A:=A+2;T2:A:=A*2;T3:A:= A**2;(A?A2) 设A的初值为0。

若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。请给出一个可串行化的调度,并给出执行结果。请给出一个非串行化的调度,并给出执行结果。若这3个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。若这3个事务都遵守两段锁协议,请给出一个产生死锁的调度。14.试述两段锁协议的概念。15.试证明,若并发事务遵守两段锁协议,则对这些事务的并发调度是可串行化的16.举例说明,对并发事务的一个调度是可串行化的,而这些事务不一定遵守两段锁协议。17.为什么要引进意向锁?意向锁的含义是什么?18.试述常用的意向锁:IS锁、IX锁、SIX锁,给出这些锁的相容矩阵。19.理解并解释下列术语的含义:封锁、活锁、死锁、排他锁、共享锁、并发事务的调度、可串行化的调度、两段锁协议。*20.试述你了解的某一个实际的DBMS产品的并发控制机制。参

浅谈分布式并发控制

浅谈分布式并发控制 摘要:本文首先介绍了分布式系统的基本概念和并发控制的原理及目的方法。着重描述了几种基本的分布式并发控制的技术,例如基于锁的并发控制技术、基于时间戳的并发控制技术和基于事务的并发控制技术,等等。 关键字:分布式并发控制,基于锁的并发控制,基于时间戳的并发控制,基于事务的并发控制技术 0.引言 计算机现在一般不再单独使用,办公室工作站常与远程打印机、文件服务器、数据库相联。家庭计算机也可通过调制解调器访问电子信息,如电子邮件、公告板、web节点等。大的公司和企业有成百上千乃至上万台计算机通过网络连接起来,协同控制诸如汽车生产、石油提炼、钢铁冶炼、食品生产、电站运行以及商品的设计、开发、销售等。分布式计算已经成为必不可少的技术。 1.分布式系统 分布式计算机系统是一种计算机硬件的配置方式和相应的功能配置方式。它是一种多处理器的计算机系统,各处理器通过互连网络构成统一的系统。系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件。这样就加快了系统的处理速度,简化了主机的逻辑结构,特别适合于工业生产线自动控制和企事业单位的管理,成本低,易于维护,成为计算机在应用领域发展的一个重要方向。 分布式处理系统是一个紧密耦合的系统。并且,分布式处理系统一般有比较复杂的互连网络。它和网络的区别是:计算机网络虽然与分布式计算机系统有相同之处,但二者并不等同。分布式系统的最大特点是整个系统中的各计算机和系统资源对用户都是透明的,也就是说,用户通过键入命令就可以运行程序,由操作系统为用户选择一台最合适的计算机来运行他的程序,并把运行结果传到合适的地方,而这些都不需要用户的干预。网络则一般不对用户透明,对数据的处理需要有用户的参予。一般,分布式系统是计算机网络的一个特例。 分布式系统常常意味着各组成部分之间相当严格的同步以达到协同操作、远程过程调用(rpc:remoteproce durecall)或消息传送,而网络系统则意味基于消息的通信、可能很长的延迟(在收发消息之间)、松散的同步性以及没有全局的目标。事实上,在网络和分布式系统之间并没有很清晰的界限。但人们一般认为分布式处理的主要特征为:各部件是合作、

数据库系统原理教程课后习题及答案(第十章)

第11章并发控制 1 .在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2 .并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏’夕数据。( l )丢失修改(lost update ) 两个事务Tl 和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)Tl 提交的结果,导致Tl 的修改被丢失。( 2 )不可重复读(Non 一Repeatable Read ) 不可重复读是指事务Tl 读取数据后,事务几执行更新操作,使Tl 无法再现前一次读取结果。( 3 )读“脏”数据(Dirty Read ) 读“脏’夕数据是指事务Tl 修改某一数据,并将其写回磁盘,事务几读取同一数据后,Tl 由于某种原因被撤销,这时Tl 已修改过的数据恢复原值,几读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。 3 .什么是封锁?基本的封锁类型有几种?试述它们的含义。 答:封锁就是事务T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T 就对该数据对象有了一定的控制,在事务T 释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。 基本的封锁类型有两种:排它锁(Exclusive Locks ,简称x 锁)和共享锁( Share Locks,简称S 锁)。排它锁又称为写锁。若事务T 对数据对象A 加上X 锁,则只允许T 读取和修改A ,其他任何事务都不能再对A 加任何类型的锁,直到T 释放A 上的锁。这就保证了其他事务在T 释放A 上的锁之前不能再读取和修改A 。共享锁又称为读锁。若事务T 对数据对象A 加上S 锁,则事务T 可以读A但不能修改A ,其他事务只能再对A 加S 锁,而不能加X 锁,直到T 释放A 上的S 锁。这就保证了其他事务可以读A ,但在T 释放A 上的S 锁之前不能对A 做任何修改。 4 .如何用封锁机制保证数据的一致性? 答:DBMS 在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务Tl 在对A 进行修改之前先对A 执行xock ( A ) ,即对A 加x 锁。这样,当几请求对A 加x 锁时就被拒绝,几只能等待Tl 释放A 上的锁后才能获得对A 的x 锁,这时它读到的A 是Tl 更新后的值,再按此新的A 值进行运算。这样就不会丢失Tl 的更新。

数据库并发控制

数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对数据库存取。但是如果一个用户程序涉及大量数据的输入/输出交换,则数据库系统的大部分时间处于闲置状态。因此,为了充分利用数据库资源,发挥数据库共享资源的特点,应该允许多个用户并行地存取数据库。但这样就会产生多个用户程序并发存取同一数据的情况,若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性,所以数据库管理系统必须提供并发控制机制。并发控制机制的好坏是衡量一个数据库管理系统性能的重要标志之一。 DM用封锁机制来解决并发问题。它可以保证任何时候都可以有多个正在运行的用户程序,但是所有用户程序都在彼此完全隔离的环境中运行。 一、并发控制的预备知识 (一) 并发控制概述 并发控制是以事务(transaction)为单位进行的。 1. 并发控制的单位――事务 事务是数据库的逻辑工作单位,它是用户定义的一组操作序列。一个事务可以是一组SQL 语句、一条SQL语句或整个程序。 事务的开始和结束都可以由用户显示的控制,如果用户没有显式地定义事务,则由数据库系统按缺省规定自动划分事务。 事务应该具有4种属性:原子性、一致性、隔离性和持久性。 (1)原子性 事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说这些操作是一个整体,对数据库而言全做或者全不做,不能部分的完成。这一性质即使在系统崩溃之后仍能得到保证,在系统崩溃之后将进行数据库恢复,用来恢复和撤销系统崩溃处于活动状态的事务对数据库的影响,从而保证事务的原子性。系统对磁盘上的任何实际数据的修改之前都会将修改操作信息本身的信息记录到磁盘上。当发生崩溃时,系统能根据这些操作记录当时该事

分布式数据库系统的并发控制算法综述

分布式数据库系统的并发控制算法综述 摘要:并发控制是分布式数据库事务管理中非常重要的一部分,其性能的优劣是衡量分布式数据库系统功能强弱和性能好坏的重要标志之一。并发控制是分布式数据库系统为了适应多用户操作所必须解决的问题。分布式数据系统是在集中式数据库系统技术的基础上发展起来的,并发控制也是分布式数据库研究的最关键热点问题之一。 关键词:分布式数据库系统并发控制事务算法 一.分布式数据库系统的概述 分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。 在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的 DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起[1]。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。这就是与集中式数据库的区别。 从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。 分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高系统的可靠性。在集中式数据库中,尽量减少冗余度是系统目标之一.其原因是,冗余数据浪费存储空间,而且容易造成各副本之间的不一致性.而为了保证数据的一致性,系统要付出一定的维护代价.减少冗余度的目标是用数据共享来达到的。而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本,其原因是:①.提高系统的可靠性、可用性当某一场地出现故障时,系统可以对另一场地上的相同副本进行操作,不会因一处故障而造成整个系统的瘫痪。 ②.提高系统性能系统可以根据距离选择离用户最近的数据副本进行操作,减少通信代价,改善整个系统的性能。 二.并发控制的概述 并发控制是指在多用户的环境先,对数据库进行并发操作进行规范的机制。并发控制是以事务为单位进行的,其作用主要是协调同一时间访问同一数据库文件的多个事务之间的关系,防止这些事务间发生冲突,产生一个可串行化得调度。如果不对并发执行的程序进行必要的控制,那么即使没有故障和程序出错也会破坏数据库的一致性和完整性。因此,一个数据库系统有无并发控制机制,以及并发控制机制的优劣是衡量一个数据库系统功能强弱和性能好坏的重要标

数据库系统原理与设计万常选版第七章练习题和详细答案

第七章数据库恢复技术 一、选择题 1.一个事务的执行,要么全部完成,要么全部不做, 一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是()。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 2.表示两个或多个事务可以同时运行而不互相影响的是()。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 3. 事务的持续性是指() A.事务中包括的所有操作要么都做,要么都不做。 B.事务一旦提交,对数据库的改变是永久的。 C.一个事务内部的操作对并发的其他事务是隔离的。 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态。 4.SQL语言中的COMMIT语句的主要作用是()。 A. 结束程序 B. 返回系统 C. 提交事务 D. 存储数据 5.SQL语言中用()语句实现事务的回滚 A. CREATE TABLE B. ROLLBACK C. GRANT和REVOKE D. COMMIT 6.若系统在运行过程中,由于某种硬件故障, 使存储在外存上的数据部分损失或全部损失,这种情况称为()。 A. 介质故障 B. 运行故障 C. 系统故障 D. 事务故障 7.在DBMS中实现事务持久性的子系统是()。 A. 安全管理子系统 B. 完整性管理子系统 C. 并发控制子系统 D. 恢复管理子系统 8. 后援副本的作用是()。 A. 保障安全性 B. 一致性控制 C. 故障后的恢复 D. 数据的转储 9.事务日志用于保存()。 A. 程序运行过程 B. 程序的执行结果 C. 对数据的更新操作 D. 数据操作 10.数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括()。 A. 数据字典、应用程序、审计档案、数据库后备副本 B. 数据字典、应用程序、审计档案、日志文件 C. 日志文件、数据库后备副本 D. 数据字典、应用程序、数据库后备副本 二、简答题 1.试述事务的概念及事务的四个特性。 答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

第11章 并发控制(习题集)

第十一章并发控制(习题集) 二、选择题 1、为了防止一个用户的工作不适当地影响另一个用户,应该采取(D)。 A. 完整性控制 B. 访问控制 C. 安全性控制 D. 并发控制 2、解决并发操作带来的数据不一致问题普遍采用(A)技术。 A. 封锁 B. 存取控制 C. 恢复 D. 协商 3、下列不属于并发操作带来的问题是(C)。 A. 丢失修改 B. 不可重复读 C. 死锁 D. 脏读 4、DBMS普遍采用(C)方法来保证调度的正确性。 A. 索引 B. 授权 C. 封锁 D. 日志 5、如果事务T获得了数据项Q上的排他锁,则T对Q(C)。 A. 只能读不能写 B. 只能写不能读 C. 既可读又可写 D. 不能读也不能写 6、设事务T1和T2,对数据库中地数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作(D)。 A. T1正在写A,T2要读A B. T1正在写A,T2也要写A C. T1正在读A,T2要写A D. T1正在读A,T2也要读A 7、如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是(D)。 A. 一个是DELETE,一个是SELECT B. 一个是SELECT,一个是DELETE C. 两个都是UPDATE D. 两个都是SELECT 8、在数据库系统中,死锁属于(B)。 A. 系统故障 B. 事务故障 C. 介质故障 D. 程序故障 9、数据库中的封锁机制是( C )的主要方法。 A、完整性 B、安全性 C、并发控制 D、恢复 三、填空题 1、基本的封锁类型有两种:__排他锁__ 和_共享锁_ 。 2、并发操作可能会导致:丢失修改、不可重复读、读脏数据。 四、简答题

数据库概论试题(并发控制)

第8章并发控制 1.并发操作带来的数据不一致性包括:__丢失__、__修改不可重复读__和__读“脏”数据__。 2.在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 3.多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为_可串行化_的调度。 5.基本的封锁类型有两种:_排它锁(ExclusiveLocks,简称X锁)_和__共享锁(ShareLocks,简称S锁)__。 6.什么是封锁? 答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。 7.在数据库并发控制中,两个或多个事务同时处在相互等待状态,称为__死锁__。 10.__封锁对象的大小_被称为封锁的粒度。 答案:封锁对象的大小 12.什么是活锁?什么是死锁? 13.试述活锁的产生原因和解决方法。 14.请给出预防死锁的若干方法。 15.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁? 16.什么样的并发调度是正确的调度? 答:可串行化(Serializable)的调度是正确的调度。可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调度。

并发控制

Character 16 Concurrency Control 本章术语: Concurrengcy control 并发控制 Lock types锁类型 Shared-mode(s)lock 共享型锁(S) Exclusive-mode(x)lock 排他型锁(X) Lock 锁 Compatibility 相容性 Request 申请 Wait 等待 Grant 授予 Deadlock 死锁 Starvation 饿死 Locking protocol 封锁协议 Legal schedule 合法调度 Two-phase locking protocol 两阶段封锁协议 Growing phase 增长阶段 Shrinking phase 缩减阶段 Lock point 封锁点 Srict two-phase locking严格两阶段封锁 Rigorous two-phase locking 强两阶段封锁 Lock concersion 锁转换 Upgrade 升级 Downgrade 降级 Graph-based protocols 基于图的协议 Tree protocol 树形协议 Commit dependency 提交依赖 Timestamp-based protocols 基于时间戳的协议Timestamp 时间戳 System clok 系统时钟 Logical counter 逻辑计数器 W-timestamp(Q) R-timestamp(Q) Timestamp-ordering protocol 时间戳排序协议 Thomas'write rule Thomas 写规则 Validation-based protocols 基于有效性检查的协议

数据库技术复习

1.与网状和层次数据库相比,关系数据库有哪些优点? 与层次和网状模型比较,关系模型有下列优点:数据结构单一;建立在严格的数学概念基础上;将数据定义和数据操纵统一在一种语言中,使用方便,易学易用。 2.试述关系模型的完整性规则 实体完整性:关系中键属性的值不能取空值。 参照完整性:是关系间引用所遵循的规则,与外键有关。 用户定义的完整性:数据间应满足的语义约束关系,由用户定义,由系统检查。 3.试述等值连接与自然连接的区别和联系 等值连接表示为R A=BS,自然连接表示为R S;自然连接是除去重复属性的等值连接。两者之间的区别和联系如下:1、自然连接一定是等值连接,但等值连接不一定是自然连接。 等值连接不把重复的属性除去;而自然连接要把重复的属性除去。2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。3等值连接不把重复的属性除去;而自然连接要把重复的属性除去。 4.函数依赖、部分依赖、完全依赖、传递依赖、平凡依赖 5.函数依赖公理和推论 Armstrong公理(三个公理): 设r是R(U)上的一个关系,X、Y、Z、W U。 A1. 自反律: 若Y X U, 则 X→Y; A2. 增广律: 若X→Y且Z U,则 XZ→YZ; A3. 传递律: 若X→Y, Y→Z,则 X→Z. 有以上三个公理,可以推出以下3个推论: 推论1(合成规则):若X→Y,X→Z,则X→YZ 推论2(分解规则):若X→Y且Z Y,则X→Z 推论3(伪传递规则)若X→Y,YZ→W,则XZ→W。 6.函数依赖的覆盖和等价 对于在模式R上的函数依赖集F和G,如果对G中的每一个函数依赖X→Y,都有F|=X→Y,称F是G的一个覆盖。把逻辑蕴含符号引入函数依赖集的覆盖中,记为:F|= G 定义(等价和覆盖) 在模式R上的FDs F和G,若F+=G+,则称F和G等价。记作F G。 定理:已知模式R上的函数依赖集 F和G。当且仅当 F|=G 且 G|=F ,则 F G。 1.试述数据库设计过程,及每个阶段的任务。 数据库的设计可分为以下六个阶段:需求分析、概念设计、逻辑设计、物理设计、实施和运行、使用和维护。 需求分析:信息需求、处理需求、安全性和完整性方面的需求。 概念设计:在需求分析的基础上,通过对用户需求进行分析、归纳、抽象,形成一个独立于具体DBMS和计算机硬件结构的整体概念结构,常用工具用ER模型。 逻辑设计:在概念结构设计的基础上,在一定的原则指导下将概念模式(E-R图)转换为某个具体DBMS支持的数据模型相符合的、经过优化的逻辑结构,其中用对数据逻辑结构进行优化采用范式理论。 物理设计:为逻辑数据结构选取一个最适合应用环境的物理结构,包括存储结构和存取方法等。

第十一章 并发控制

数据库系统原理
李瑞轩 华中科技大学计算机学院

第十一章 并发控制
11.1 并发控制概述 11.2 并发调度的可串行性 11.3 封锁 11.4 活锁和死锁 11.5 两段锁协议 11.6 封锁的粒度
2

? 学习目标
理解并掌握并发控制的基本概念及其必要性 理解并掌握并发调度的可串行性原则 理解并基本掌握基于封锁的并发控制方法
3

11.1 并发控制概述
11.1.1 问题的提出
T1 read(A) A:=A-50 write(A) read(B) B:=B-10 write(B) T2 初始值: A = 100 B = 100
read(B) B:=B+50 write(B) commit T1
read(A) A:=A+10 write(A) commit T2
4

11.1.1 问题的提出 (续)
事务并发执行的必然性 System throughput Response time 不正确的并发控制的后果 读“脏”数据(W-R conflict) 不可重复读(R-W conflict) 丢失更新(W-W conflict)
5

读“脏”数据(W-R conflict)
1. 定义 读修改后未提交的随后又被撤消(Rollback)的数据。
T1 T2
read(A) write(A) read(A) read(B) write(B) Commit T2 read(B) write(B) Abort T1
6

相关主题