事务并发控制中的两段锁和可串行化冲突图的对比

合集下载

数据库管理系统试题及答案

数据库管理系统试题及答案

试题名称:数据库系统说明:所有答题一律写在答题纸上第 1 页共 2 页一、简答题(共5小题,每题6分,共30分)1.简述数据库、数据库管理系统与数据库系统的概念。

答:数据库:DataBase,简称DB。

是长期储存在计算机内的、有组织的、可共享的数据集合。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

数据库管理系统:DataBase Management System,简称DBMS,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。

它的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护。

数据库系统:DataBase System,简称DBS,它是包含数据库的具体应用系统,由支持该应用系统的某一具体的数据库、数据库管理系统和应用程序三部分组成。

2.简述两段锁协议并说明两段锁协议和事务可串行化调度的关系。

答:所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。

1、在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;2、在释放一个封锁之后,事务不再申请和获得任何其他封锁。

如果事务中所有的加锁操作都在事务的第一个解锁操作之前进行,那么这个事务是遵循两段锁协议的。

如果一个调度中的每个事务都遵循两段锁协议,那么该调度必然是冲突可串行化的。

事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。

3.简述可串行化调度和正确调度。

答:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们的结果相同,我们称这种调度策略为可串行化的调度。

可串行性是并发事务正确性的准则,按这个准则规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。

4.简述数据库中的死锁现象,并简述如何使用有向图方法检测死锁。

答:死锁是指当两个或多个事务相互等待对方所拥有的锁被释放时,所产生的僵持局面。

数据库系统(下):管理与技术_哈尔滨工业大学中国大学mooc课后章节答案期末考试题库2023年

数据库系统(下):管理与技术_哈尔滨工业大学中国大学mooc课后章节答案期末考试题库2023年

数据库系统(下):管理与技术_哈尔滨工业大学中国大学mooc课后章节答案期末考试题库2023年1.DBMS管理数据库缓冲区有四种策略:No Steal, Steal, No Force, Force。

则效率较低但不会出现问题的策略组合是_________,而效率最高最常用但会出现问题的策略组合是_________。

参考答案:No Steal+ Force,Steal + No Force;2.下列说法正确的是___________。

参考答案:两阶段封锁法是可串行化的并行调度算法;3.T1,T2是两个事务,图(a)(b)给出这两个事务的两种调度S1,S2,关于S1,S2,说法正确的选项是_____________。

【图片】参考答案:S1是不可串行化调度,S2是可串行化调度;4.若事务T对数据M已加S锁,在不改变S锁的情况下,则其它事务对数据M__________。

参考答案:可以读,但不可以写;5.关于稀疏索引和稠密索引,下列说法正确的是_______。

参考答案:如果一个搜索码的值在稠密索引中不存在,则在主文件中对应该搜索码值的记录也不存在6.关于给出的九个关系代数操作:【图片】问任何时候都能够用一趟算法实现的操作的个数是_______。

参考答案:17.主索引通常确定“表”数据的__________。

参考答案:物理顺序8.有效性确认是一种并发控制方法。

如下图(a)(b)中T和U是两个事务,X和Y是数据对象。

T要进行有效性确认,下列说法正确的是__________。

【图片】参考答案:图(a)事务T的有效性可以确认;图(b)事务T的有效性不可以确认;9.关于基于散列的两趟算法,下列说法正确的是_______。

参考答案:第一趟散列的目的是使数据子集具有某一种特性(如具有相同的散列值),而第二趟散列的目的是提高数据处理的速度。

10.关于逻辑查询优化和物理查询优化,下列说法正确的是________。

参考答案:逻辑查询优化是关系代数操作次序的优化;物理查询优化是关系代数操作实现算法选择的优化11.关于B+树,下列说法不正确的是_________。

两阶段封锁可串行化强制性的实现

两阶段封锁可串行化强制性的实现

1.1 可串行化调度 设 r1(X)和 w1(X) 表示对事务 T1中 X 元素的读和写操作,
A、B 之间的一致性状态,因此序列(4)不是可串行化的。 此调度序列不能实现并发控制,应予以避免。
同样,r2(X)和 w2(X)表示对事务 T2 中 X 元素的读和写操作。 2 锁
假设有事务 T1 和 T2,其动作序列如下: T1:r1(A)、w1(A)、r1(B)、w1(B) (1) T2:r2(A)、w2(A)、r2(B)、w2(B) (2)
动作 1-4 使得:A=24+10=34(B=12);
动作 5-8 使得:A=34*2=68(B=12);
动作 9-12 使得:B=12*2=24(A=68);
动作 13-16 使得:B=24+5=29(A=68)。
其结果与序列(4 )产生的结果相同。也就是说,虽然
使用了锁,却并没有使得调度序列(4)达到数据元素 A、
事务的一致性要求: z 事务只有在其 数据库某元素上申请了锁并 且还没
有释放锁时才能读或写该元素。 z 如果事务封锁某个数据库元素,此后必须为该元素
释放锁(解锁)。 调度的合法性要求: z 任何两个事务都不能封锁同一元素,除非其中一个
事务已经先释放其锁 我们用 ci (X)表示事务 Ti 请求数据库元素 X 上的锁(加 锁);ui (X)表示事务 Ti 释放它在数据库元素 X 上的锁(解 锁)。因此,使用锁的原则具体描述为: “只要事务 Ti 有动作 ri (X)和 wi (X),它们之前必须有一 个动作 ci (X),且二者之间没有 ui (X),但后面会有一个 ui (X); 如果调度中有 ci (X)和 cj (X),那么这两个动作之间的某个 地方必须有一个动作 ui (X)。”

2022年北华大学计算机科学与技术专业《数据库原理》科目期末试卷A(有答案)

2022年北华大学计算机科学与技术专业《数据库原理》科目期末试卷A(有答案)

2022年北华大学计算机科学与技术专业《数据库原理》科目期末试卷A(有答案)一、填空题1、如果多个事务依次执行,则称事务是执行______;如果利用分时的方法,同时处理多个事务,则称事务是执行______。

2、使某个事务永远处于等待状态,得不到执行的现象称为______。

有两个或两个以上的事务处于等待状态,每个事务都在等待其中另一个事务解除封锁,它才能继续下去,结果任何一个事务都无法执行,这种现象称为______。

3、数据仓库创建后,首先从______中抽取所需要的数据到数据准备区,在数据准备区中经过净化处理______,再加载到数据仓库中,最后根据用户的需求将数据发布到______。

4、采用关系模型的逻辑结构设计的任务是将E-R图转换成一组______,并进行______处理。

5、DBMS的完整性控制机制应具备三个功能:定义功能,即______;检查功能,即______;最后若发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

6、有两种基本类型的锁,它们是______和______。

7、数据管理技术经历了______________、______________和______________3个阶段。

8、设某数据库中有商品表(商品号,商品名,商品类别,价格)。

现要创建一个视图,该视图包含全部商品类别及每类商品的平均价格。

请补全如下语句: CREATE VIEW V1(商品类别,平均价格)AS SELECT商品类别,_____FROM商品表GROUP BY商品类别;9、在SELECT命令中,______子句用于选择满足给定条件的元组,使用______子句可按指定列的值分组,同时使用______子句可提取满足条件的组。

10、在设计局部E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计,所以各个局部E-R图之间难免有不一致的地方,称为冲突。

这些冲突主要有______、______和______3类。

事务调度与并发控制数据库的实施运行和维护_真题-无答案

事务调度与并发控制数据库的实施运行和维护_真题-无答案

事务调度与并发控制、数据库的实施运行和维护(总分29,考试时间90分钟)一、单项选择题1. 下述不属于数据库维护工作的是______。

A. 使用数据定义语言建立多个表、构建数据库总体框架B. 根据备份计划周期性的备份数据库C. 检测数据库的空间使用情况D. 调整数据库参数,进行性能优化2. 下列关于排他锁和共享锁的说法中错误的是______。

A. 只能有一个事务对加锁项加排他锁B. 排他锁也叫独占锁或X锁,共享锁也叫读锁或者S锁C. 当加了S锁以后,其他的事务还可以对加锁项加X锁D. 当加了S锁以后,其他的事务还可以对加锁项加S锁3. 以下选项中是参数调整中需要关注的对象的是______。

A. 内存分配B. 资源竞争C. 磁盘I/OD. 以上全部4. 关于查询优化问题,下列说法错误的是______。

A. 将频繁地向数据库发送的某条查询语句用存储过程来代替,可以提高查询效率B. 为经常出现在查询条件中的属性建立索引,可以提高查询效率C. 先执行表连接条件,后执行查询条件,有利于提高查询效率D. 将频繁访问的视图物化并进行维护,有利于提高查询效率5. 事务T0、T1和T2并发访问数据项A、B和C,下列属于冲突操作的是______。

A.T0中的readA. 和T0中的write(A)B.T0中的readB. 和T2中的readC.C.T0中的write(A)和T2中的write(C)&nbs6. 数据库实施主要包括______。

①用DDL定义数据库结构②数据装载③编写与调试应用程序④数据库试运行A. ①②③B. ①②④C. ②③④D. ①②③④7. 以下关于顺序加锁法及其缺点叙述错误的是______。

A. 该方法对数据库中事务访问的所有数据项规定一个加锁顺序B. 每个事务在执行过程中必须按顺序对所需数据项加锁C. 维护对这些数据项的加锁顺序很困难,代价非常大D. 事务按照固定的顺序对这些数据项进行加锁比较方便8. 数据库的维护工作主要包括______。

数据库并发控制的主要方法

数据库并发控制的主要方法

数据库并发控制的主要方法
数据库并发控制的主要方法包括以下几种:
1. 锁:数据库可以使用锁来避免多个事务同时访问同一数据。

当一个事务正在修改某个数据时,其他事务必须等待锁释放后才能访问该数据。

这种方式的优点是简单易用,但缺点是会延迟事务的执行。

2. 乐观锁:乐观锁是一种并发控制机制,它通过记录版本号来实现对数据的锁定。

当一个事务修改数据时,它将版本号设置为当前值,其他事务需要先查询数据的版本号,如果发现版本号不一致,则该事务将被阻塞,直到乐观锁被释放。

这种方式的优点是命中概率高,但需要额外维护版本号。

3. 序列化:序列化是一种高级的并发控制机制,它通过将所有事务的执行顺序执行同一个操作来实现高并发的控制。

当一个事务开始执行时,它需要等待其他所有事务都完成并释放锁,然后才能执行自己的操作。

这种方式的优点是可以保证数据的一致性,但需要更高的网络延迟和更高的开销。

4. 并发调度:数据库可以通过调整并发调度的策略来实现并发控制。

例如,数据库可以在多个事务同时执行时,优先处理较新的事务,以避免多个事务同时执行导致的数据不一致。

这种方式的优点是可以提高并发性能,但需要更高的编程技巧和经验。

在实际应用中,不同的方法需要根据具体情况进行选择。

例如,当并发量较低时,可以使用锁来控制并发,但当并发量较高时,序列化和并发调度可能更加有效。

此外,需要尽量避免使用单一的并发控制机制,以避免产生死锁等问题。

并发控制的方法

并发控制的方法

并发控制的方法
并发控制是指在多个用户或进程同时访问共享资源时,保证数据一致性和完整性的一种技术。

下面介绍几种常见的并发控制方法。

1. 乐观并发控制
乐观并发控制是指在多个用户或进程同时访问共享资源时,先不加锁,而是在提交操作时检查是否有冲突。

如果有冲突,则回滚事务,重新尝试。

这种方法适用于并发冲突较少的场景,能够提高并发性能。

2. 悲观并发控制
悲观并发控制是指在多个用户或进程同时访问共享资源时,先加锁,保证每个用户或进程的操作互不干扰。

这种方法适用于并发冲突较多的场景,能够保证数据的一致性和完整性。

3. 两阶段锁
两阶段锁是指在执行事务时,先获取所有需要的锁,然后执行操作,最后释放所有锁。

这种方法能够保证数据的一致性和完整性,但是会降低并发性能。

4. 时间戳并发控制
时间戳并发控制是指在每个事务开始时,给事务赋予一个时间戳,每个数据项也有一个时间戳。

在执行操作时,比较事务时间戳和数据项时间戳,如果事务时间戳早于数据项时间戳,则执行操作,否则回滚事务。

这种方法能够保证数据的一致性和完整性,但是会增加系统开销。

5. 多版本并发控制
多版本并发控制是指在每个数据项中存储多个版本,每个版本有一个时间戳。

在执行操作时,选择最新的版本进行操作。

这种方法能够提高并发性能,但是会增加系统开销。

以上是几种常见的并发控制方法,不同的方法适用于不同的场景,需要根据具体情况选择合适的方法。

数据库填空

数据库填空

1 .数据库数据具有_永久储存_、_有组织_和_可共享_三个基本特点。

2. 数据库管理系统是数据库系统的一个重要组成部分,它的功能包括_数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。

3. 数据库系统是指在计算机系统中引入数据库后的系统,一般由_数据库_、_数据库管理系统_、_应用系统_和_数据库管理员_构成。

4. 数据库管理技术的发展是与计算机技术及其应用的发展联系在一起的,它经历了三个阶段:_人工管理_阶段,_文件系统_阶段和_数据库系统_阶段。

5. 数据库具有数据结构化、最小的_冗余度_、较高的_数据独立性_等特点。

6. DBMS 还必须提供_数据的安全性_保护、_数据的完整性_检查、_并发控制_、_数据库恢复_等数据控制功能。

7. 模式(Schema)是数据库中全体数据的_逻辑结构_和_特征_的描述,它仅仅涉及到_型_ 的描述,不涉及到具体的值。

8. 三级模式之间的两层映象保证了数据库系统中的数据能够具有较高的_逻辑独立性_和_ 物理独立性_。

9. 根据模型应用的不同目的,可以将这些模型划分为两类,它们分别属于两个不同的层次。

第一类是_概念模型_,第二类是_逻辑模型和物理模型(数据模型)_。

10. 数据模型的三要素是指_数据结构_,_数据操作_,_数据完整性_。

实际数据库系统中所支持的主要数据模型是_层次模型_,_关系模型_,_网状模型_。

11. 数据模型中的_数据结构_是对数据系统的静态特征描述,包括数据结构和数据间联系的描述,_数据操作_是对数据库系统的动态特征描述,是一组定义在数据上的操作,包括操作的涵义、操作符、运算规则及其语言等。

14. 关系的完整性约束条件包括三大类:_实体完整性_、_参照完整性_和_用户定义完整性_。

15. 关系数据模型中,二维表的列称为_属性_,二维表的行称为_记录(元组)_。

16. 用户选作元组标识的一个候选码为_主码_,其属性不能取_空值_。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文章编号:1000-2375(2005)01-0019-05事务并发控制中的两段锁和可串行化冲突图的对比金 蓉,李跃新(湖北大学数学与计算机科学学院,湖北武汉430062)摘 要:数据库中并发操作一般分为数据级和事务级两种,由于资源的竞争可能引起数据级的冲突和事务级的冲突,因此需要对并发执行的事务转化为某个可串行化调度,从而确保数据库的一致性.目前并发控制的方法有很多,从锁和非锁机制两个方面分析了两段锁和可串行化冲突图两种并发控制的规则和数据结构及分类,并从事务的冲突可串行化方面和结构上分析了各自的性能和优缺点.关键词:锁;两段锁协议;可串行化冲突图中图分类号:TP311 文献标志码:A收稿日期:2004-03-25作者简介:金 蓉(1979- ),女,硕士生1 引 言数据库中的并发操作一般分为数据级和事务级两种,一方面在微观数据级上有数据对象的读(Read )操作和写(Write )操作,另一方面在宏观事务级上有事务的操作原语:终止(Abort ),开始(Begin ),提交(C ommit ),结束(End ),实质上事务中包含着对一系列数据对象的操作,因为一个事务系统主要由3个部分构成:数据项集、对数据项集的操作和控制事务存取数据的管理器(我们称为事务管理器T M ).并发控制的作用是正确协调同一时间里多个事务对数据库的并发操作,解决资源竞争问题以保证数据库的一致性和完整性.并发控制是通过调度来确保事务的并发执行的效果等同于没有并发执行时的执行效果,也就是使事务的并发执行调度等价于事务的某个可串行化调度,从而确保数据库的一致性.可串行化简单的说就是一个并发操作等效于某个串行执行的效果,也即有相同的输出结果,与串行操作对数据库有同样的效果.冲突有数据级的冲突和事务级的冲突,数据间的冲突体现在数据库中同时对相同的数据对象操作,事务间的冲突是由事务的数据相关性及在共享数据对象上的交互作用而引起的,通常用事务的“冲突关系”来表示.定义1 数据对象d 上的两个操作p 、q 是“冲突”的,记为CT (d ,p ,q ),当且仅当S (S (s ,p ),q )≠S (S (s ,q ),p )∨R (s ,p )≠R (S (s ,q ),p )∨R (s ,q )≠R (S (s ,p ),q ).其中,S (s ,p )和R (s ,p )分别表示操作p 对d 的给定状态s 所产生的结果状态和结果输出(返回).由定义可知,两个或多个数据操作产生冲突的条件是1)它们属于不同的事务;2)都访问数据库中相同的数据对象;3)并且至少有一个是写操作否则就不会产生冲突.定义2 两个事务t 1、t 2是“冲突”的,记为t 1CR t 2,是指它们包含了(至少)一对冲突操作.即对于任何t 1≠t 2,t 1CR t 2,当且仅当ϖd 、ϖp ,q (p (d )∈t 1∧q (d )∈t 2∧CT (d ,p ,q ).事务间的冲突归根结底集中在数据操作的冲突上,因此解决冲突最初的方法是对数据对象采用锁机制,而锁可以分为读锁和写锁,当数据对象加了读锁后可以再加读锁但不能加写锁,因此读锁是共享的,当数据对象加了写锁后就不能加其他任何锁,因此写锁是排它的,显然读锁较写锁的并发度高.第27卷第1期2005年3月湖北大学学报(自然科学版)Journal of Hubei University (Natural Science ) V ol.27 N o.1 Mar.,2005目前解决事务间冲突和数据冲突的并发控制算法有很多,本文主要从锁(Locking )的和非锁(N on -Locking )的并发控制机制这两个方面比较两种并发控制方法:两段锁协议(T w o -Phase Locking 简称2P L ),可串行化图检测方法(Serialization G raph T esting ).2 锁机制(Locking Mechanism)首先介绍两段锁协议的定义:一个日志L =<D ,T ,Σ,S ,Π>是2P L 的当且仅当n 个事务T 1,T 2,…,T n 存在序列α1,β1,…,αn ,βn 满足以下条件:S1:αn <βn for i =1,…,n.S2:αi <Π(W i ),and Π(R i )<βi for i =1,…,n.S3:如果CT (p i ,q j )and Π(p i )<Π(q j ),那么存在序列U i 和L j 满足a )Π(p i )<U i <L j <Π(q j );b )βi ≤U i and L j ≤αj .这里D 表示数据项集,T 表示事务集,Σ是原子操作集,S 是存取函数,它给出被原子操作访问的数据项集,Π是排列函数,它分配操作顺序.一个事务在读数据项前必须加读锁,在写数据前加写锁.同时两个事务如果其中一个是写锁时不能同时对相同的数据加锁.事务在释放一个锁后不再获得锁了.如图1所示2P L 的几何描述,其中上升边表示事务T i 的上锁,下降边表示事务T i 的放锁,我们可以看出事务T i 对数据项的上锁都在放锁之前,αi 图1 两段锁序列的几何描述为事务T i 最大的上锁点,βi 为事务T i 最小的放锁点.实现2P L 需要使用两个的数据结构是锁表和等待列表.锁表是为了找出事务目前所有持有的锁,锁表的结构包括锁的类型(数据库,关系,页,关键区)、锁的模式(共享,排他)、关系标识、事务标识和等待标记等.等待标记是用来指示其他事务等待获得该关系上的锁,如果标记是集合,那么在等待列表中有等待那个事务的入口.锁表是固定大小的数组,事务可能因为数组大小有限而阻塞,锁表在等待队列中也有入口.等待列表是一个链表它连接阻塞锁申请,每一入口标识事务或关系锁申请和进入阻塞事务锁表的索引.当事务阻塞时作为新的结点加入到列表的开始处.当事务释放锁时,顺序扫描等待列表看是否有事务等待这种关系或类型的锁.以上2P L 数据结构导致其缺点:持有锁的事务在阻塞队列中产生一个阻塞链,它们也阻塞系统中的其他事务,显然这种现象会降低系统性能和使事务的阻塞时延失去控制也就是死锁.但2P L 是达到事务一致性协议T CP [1](T ransactional C onsistency Protocol )中的1SR 的一致性的,因为它要求事务只有在提交或终止后才能释放它所持有的所有的锁.任何2P L 的事务是可串行化的,但不能避免死锁.所以2P L 可以根据其等待列表构造等待图(WFG )来检测死锁.在2P L 基础上有D2P L 和S2P L ,它们都是基于2P L 协议通过静态和动态方法处理阻塞事务,两者性能比较在文献[2]中做了详细描述.针对2P L 采用锁机制的缺点,我们可以采用非2P L 的方法来克服,它的优点就是避免了死锁,不需限制数据结构,不需重读数据,这些就是下面将介绍非2P L 方法的非锁机制所具备的.3 非锁机制(N on -Locking Mechanism)非锁并发控制方法有很多,这里我们讨论一种比较典型的非锁机制是SG T (Serialization G raph T est 2ing )叫可串行化图或冲突图,冲突图中结点表示事务集中处于活跃状态的冲突事务,边用有向箭头表示即t i →t j ,i ≠j 当且仅当ϖp i ∈t i ,q j ∈t j ((p i CT q j )∧(p i <H q j )),其中p i <H q j 表示冲突事务i 中p 操作在冲突事务j 中q 操作前面.并发控制维护事务集所形成的可串行化图,并且使用SG T 方法保证该图是无环的,这样就可使事务经历H 是可串行化的,因为环图表明数据库操作(事务间和事务内部)间有数据依赖。

其中SG T 规则如下:(1)对于读操作R i (x ): if T i exits in SG then02湖北大学学报(自然科学版)第27卷 Add T i in SG; for T j ∈SG T T j ≠T i {if x ∈W SCH[T j ]then add edge T j →T i ; end if if CY C LE T (SG )=1 /3SG is Cyclic 3/ then Abort T i ; else Send R i (x )to DO ; R SCH[T i ]=R SCH[T i ]∪{X}; end if ; }(2)对于写操作W i (x ): if T i exits in SG then Add T i in SG; for T j ∈SG T ,T j ≠T i {if x ∈W SCH[T j ]∨x ∈R SCH[T j ] then Abort T i ; else Send W i (x )to DO W SCH[T i ]=W SCH[T i ]∪{x} end if }该方法在检测冲突图时需要借助预先定义活跃事务的读集R SCH[T i ]和写集W SCH[T i ]来判断冲突操作,另外当冲突图中事务T i 终止时要从图中移去该结点以及与之相连的边.该SG T 与等待图有着本质区别,除了本身结点和边意义不同外,等待图用于检测死锁,它包含的是阻塞的事务,而SG T 中是活跃的事务,SG 保证是可串行化的,不干扰执行的事务.4 两种并发控制方法的比较从锁和非锁两种机制来说,封锁算法(2P L 协议)是一种保守的策略,不论有无冲突,在存取对象前都要加锁,而且所有的锁只有在事务结束时才能释放,由于对象拥有锁的时间长,使事务可能发生阻塞和死锁,另外还要为数据对象保存大量锁控制信息,增加了系统开销,使得其响应时间比非锁机制慢.非锁控制方法比锁方法增加了事务处理的并发度,而且比较可靠,没有死锁的危险.两段封锁(2P L )技术可简单认为是一种保证事务执行的串行性次序的方法,它用上锁和开锁来执行,并用事务得到锁的先后次序作为事务操作执行的次序.SG T 的并发控制通过检测可串行化图无环允许任何交叉的读写操作是可串行的,因此比2P L 约束更加宽厚些.而2P L 约束相对要苛刻些,它不允许某些交叉的读写操作.由以上算法可以看出2P L 不需为了达到事务的可串行化而强制事务卷回,而SG T 是要通过强制终止或夭折实现事务的可串行化.2P L 虽然概念简单,但有死锁和降低并发度的缺点,需要构造等待图来检测死锁或预先申请所需的所有资源,但这样必定造成事务串行执行,降低了事务的并发度.SG T 能克服以上问题,保证并发控制技术一致性,可串行化和非2P L ,从而减少额外开销.例如一个由T 1:R (x )W (y )和T 2:W (x )R (y )事务并发执行时的调度:T 1 T 2 RL (x )W L (y )r 1(x )w 2(y )::12第1期金 蓉等:事务并发控制中的两段锁和可串行化冲突图的对比在此情况下由于T 1等待T 2释放数据对象y 的写锁而T 2也在等待T 1释放数据对象x 的读锁双方陷入等待状态从而造成死锁,2P L 应用的锁表格式(其中R L 表示读锁,W L 表示写锁)如下:Data Locks granted Locks requested (Waited )x〈T 1,RL 〉〈T 2,W L 〉y〈T 2,W L 〉〈T 1,RL 〉………图2 等待图为了防止死锁情况的发生,可以在不影响其并发度情况下建立等待图如图2所示.由图2可知经过检验该等待图,发现T 1和T 2构成环从而会造成死锁,因此2P L 还需辅助手段来检测死锁.而如果是采用SG T 方法只需对每个事务设立相应读写集就可以了,如R-SCH[T 1]={x},W -SCH[T 1]={y},R -SCH[T 2]={y},W -SCH [T 2]={x},如果T i →T j 有边就表示事务T i 与T j 有读写,写读或写写冲突,事务T 1和T 2经读写集判断冲突后构造可串行化冲突图如图3所示,根据算法规则判断事务T 1和T 2构成了环,因此需要终止其图3 可串行化冲突图中一事务而防止执行时事务间产生死锁.由实际应用对比可知,2P L 无预处理和事后处理需要,而SG T 需要预先定义数据操作的读集和写集.2P L 使用两个数据结构是锁表和等待列表,较SG T复杂,SG T 只需读集和写集数据结构就可以了,只不过SG T 的读写集是事务的读写对象.此外2P L 在阻塞操作解除时,2P L 必须查找整个等待列表去发现阻塞事务然后企图获得锁,这不仅费时而且也不保证事务在同样的关系上又一次阻塞.同样的事务可能持续阻塞,放在等待列表中,然后从表中删除,试图再次获得锁,又被阻塞,没有理论上限制这种情况发生的次数.因此2P L 又可能造成活锁现象.SG T 中表示活跃事务的结点没有入边时,该事务就可从冲突图中删除并且移去相连边,因为如果该结点无入边就将在冲突图中不会加到形成的环中,这样就提高了事务的执行效率和并发度.所以SG T 的负载随着冲突的增大能保持稳定而2P L 则提高,SG T 的响应时间随着数据共享水平的提高而更好,SG T 的吞吐率在大多数情况下比2P L 好,SG T 在较高冲突情况下有较好的性能.2P L 在无冲突,无死锁环境下可能比SG T 少一些CPU 负载,而在高冲突系统中隐含许多死锁,SG T 性能将好些[3,4].5 结 论SG T 比2P L 具有较高的并发度,在低冲突情况下,2P L 性能要好些,而在高冲突情况下,SG T 性能要好些.SG T 方法是用可串行化图获得数据流的可串行化调度.从结构上来看,2P L 虽简单但数据结构较SG T 复杂,因此响应时间和吞吐率会比SG T 差些,但目前许多大型数据库例如Oracle8i 和分布式数据库中仍采用2P L 方法.除此以外,2P L 还有一些扩展和改进的并发控制技术,在实时数据库和分布式数据库中都有应用.参考文献:[1]Ngamsuriyaroj S ,K eefe T ,Hurs on A.Maintaining consistency of the security policy using timestam p ordering[A].Bob Werner.C od 2ing and com puting[C].Las Vegas :IEEE C om puter S ociety ,2002.164~170.[2]Hung S L ,Lam K W ,Lam K Y.E fficient technique for per formance analysis of locking protocols[A ].Vijay K Madisetti ,Erol G e 2lenbe ,Jean C Walrand.M odeling analysis and simulation of com puter and telecommunication systems[C].Durham ,NC US A :IEEE C om puter S ociety ,1994.276~283.[3]K ozak P ,W onham W M.Design of transaction management protocols[J ].IEEE T ransactions on Automatic C ontrol ,1996,41(9):1330~1335.22湖北大学学报(自然科学版)第27卷[4]Margaret Heich.G raph directed locking[J ].IEEE T ransaction on S oftware Engineering ,1988,14(2):133~140.The comparison of tw o -phase locking and serialization graphtesting in concurrency control of transactionJ I N R ong ,LI Y ue 2xin(School of Mathematics and C om puter Science ,Hubei University ,Wuhan 430062China )Abstract :The concurrent operations are classified into data level and transaction level.Due to the com petition of res oures ,the data level and transaction level conflicts can be brought.S o the execution of concurrent transactions have to be trans ferred s ome serializable schedule s o as to insure the consistency of database.At present there are many concurrency control methods in database system ,analyse tw o concurrency control methods including tw o -phase locking and serialization graph from the aspect of locking mechanism and non -locking mechanism ,introduce the rules and data structures ,and then com pare their strongpoints and drawbacks of performance from the conflict se 2rializability of transaction and the structures of concurrency control.K ey w ords :locking ;tw o -phase locking ;serialization graph testing (责任编辑 肖 铿)(上接第5页)从而M ∈J 2(G ),由已知θ(M )中存在一个正规极大θ-子群偶(C ,D )使得Δ1(G/D )≠1,由引理4,有N ≤D ,由引理1,有(C/N ,D/N )为θ(M/N )中的正规极大θ-子群偶且Δ1((G/N )/(D/N ))≠1,根据归纳法G/N 可解,设N 为G 的唯一极小正规子群.若N ≤Δ2(G ),则G 可解;若N ⁄Δ2(G ),则存在M 1∈J 2(G )且N ⁄M 1使得G =M 1N 且C ore M 1=1,(N ,1)为M 1的唯一正规极大的θ-子群偶,由已知Δ1(G )≠1,因Δ1(G )ΔG ,所以N ≤Δ1(G ),由Δ1(G )之超可解性知N 可解,从而G 可解.参考文献:[1]Mukherjee N P ,Bhattacharya P.On theta pairs for a maximal subgroup[J ].Proc Amer Math S oc ,1990,109(3):589~596.[2]杨立英.关于有限群可解的几个定理[J ].广西师范学院学报(自然科学版),2003,20(1):5~7.[3]赵耀庆.有限群极大子群的θ-子群偶[J ].数学学报,1997,40(1):67~72.[4]樊 恽.关于极大子群的三个问题[J ].数学学报,1986,29(5):628~631.Several conditions about the solvability of finite groupW ANGJun 2xia(School of Mathematics ,and C om puter Science ,Hubei University ,Wuhan 430062,China )Abstract :Studied the s olvabilty of finite group by the theta pairs of only one special maximal subgroups ,ob 2tained a series of new results about the s olvability of finite group.K ey w ords :finite group ;maximal subgroups ;θ-pairs for a maximal subgroup(责任编辑 肖 铿)32第1期金 蓉等:事务并发控制中的两段锁和可串行化冲突图的对比。

相关文档
最新文档