并发控制 课后答案

合集下载

智慧树 计算机操作系统 网课章节测试答案

智慧树 计算机操作系统 网课章节测试答案

计算机操作系统在线学堂•得分:8••评语:••名称计算机操作系统•成绩类型百分制•截止时间2022-07-22 23:59•题目数5•总分数10说明第二次见面课课后测验提示:选择题选项顺序为随机排列•第1部分•总题数:51【单选题】 (2分)关于同步和互斥关系,以下叙述错误的是:A.并发进程推进过程中由于共享互斥资源可能形成互斥关系B.互斥表现的是一种竞争关系,互斥进程不能同时使用互斥资源C.并发进程推进过程中围绕共享资源可能形成合作关系D.同步表现的是进程之间的合作关系,同步进程可以同时使用临界资源2【单选题】 (2分)关于临界区和临界资源的说法,错误的是A.并发进程体中关于同一临界资源的临界区称为相关临界区B.临界区指的是进程体中使用临界资源的代码段C.一个进程体中只能有一块临界区D.临界资源指的是并发进程并发推进过程中需要共享但是不能同时共享的资源3【多选题】 (2分)PV操作可用来实现A.并发进程间的互斥B.进程间少量信息的传递C.并发进程间的同步D.进程间大量信息的传递4【判断题】 (2分)为了让用户进程互斥地进入临界区,可以把整个临界区实现成不可中断的过程,即让用户具有屏蔽所有中断的能力。

每当用户程序进入临界区的时候,屏蔽所有中断。

当出了临界区的时候,再开放所有中断A.对B.错5【判断题】 (2分)互斥是指不但不能同时用,谁先用谁后用也有严格约束A.错B.对总分8第1部分12345Copyright © 2003-现在Zhihuishu. All rights reserved.沪ICP备10007183号-5沪公网备31010402003974号电子营业执照计算机操作系统在线学堂•得分:10••评语:••名称计算机操作系统•成绩类型百分制•截止时间2022-07-22 23:59•题目数5•总分数10说明第一次见面课课后测验提示:选择题选项顺序为随机排列•第1部分•总题数:51【单选题】 (2分)以下关于进程的表述错误的是A.进程具有独立性,进程是分配资源和参与CPU调度的独立单位B.进程具有动态性,操作系统为了描述和管理程序动态的执行过程才引入了“进程”C.进程是一个程序的一次动态执行过程,进程由要执行的代码和要处理的数据组成D.进程具有并发性和异步性,每个进程的推进速度都是不可预知的2【单选题】 (2分)下列哪一种进程状态转换是不可能的A.阻塞态→运行态B.就绪态→运行态C.运行态→就绪态D.运行态→阻塞态3【判断题】 (2分)进程是按异步方式运行的,即,它的推进速度是不可预知的A.对B.错4【判断题】 (2分)一个进程由程序代码、数据集和进程控制块TCB组成。

并发控制

并发控制

第11章 并发控制一、选择题:1、.设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是 。

A .该操作不存在问题B .该操作丢失修改C .该操作不能重复读D .该操作读“脏”数据 答案:B2、设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是 。

A .该操作不存在问题B .该操作丢失修改C .该操作不能重复读D .该操作读“脏”数据答案:C3、设有两个事务T1、T2,其并发操作如下所示,下列评价正确的是 。

A .该操作不存在问题B .该操作丢失修改C .该操作不能重复读D .该操作读“脏”数据 答案:D4、解决并发操作带来的数据不一致性总是普遍采用 。

A .封锁B .恢复C .存取控制D .协商 答案:A5、若事务T 对数据R 已经加X 锁,则其他事务对数据R 。

A.可以加S锁不能加X锁B.不能加S锁可以加X锁 C.可以加S锁也可以加X锁D.不能加任何锁答案:D6、关于“死锁”,下列说法中正确的是。

A.死锁是操作系统中的问题,数据库操作中不存在 B.在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库C.当两个用户竞争相同资源时不会发生死锁 D.只有出现并发操作时,才有可能出现死锁答案:D7、对并发操作若不加以控制,可能会带来问题。

A.不安全B.死锁C.死机D.不一致答案:D8、并发操作会带来哪些数据不一致性。

A.丢失修改、不可重复读、脏读、死锁 B.不可重复读、脏读、死锁C.丢失修改、脏读、死锁 D.丢失修改、不可重复读、脏读答案:D二、填空题1、DBMS的基本工作单位是事务,它是用户定义的一组逻辑一致的程序序列;并发控制的主要方法是机制。

答案:封锁2、有两种基本类型的锁,它们是共享锁和排它锁。

答案:①共享锁②排它锁三、简答题1、叙述数据库中死锁产生的原因和解决死锁的方法。

答:死锁产生的原因:封锁可以引起死锁。

比如事务T1封锁了数据A,事务T2封锁了数据B。

T1又申请封锁数据B,但因B被T2封锁,所以T1只能等待。

数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞新)机械

数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞新)机械

数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞新)机械习题88.1答:数据库的安全性是指保护数据库,以防止不合法的使用数据泄密、更改或破坏。

8.2数据库安全性和计算机系统的安全性有什么关系?8.2答:数据库安全性是计算机系统的安全性的一部分,数据库系统不仅要利用计算机系统的安全性保证自己系统的安全性,同时还会提供专门的手段和方法,使安全性能更好。

例如,在用户要求进入计算机系统时,系统首先根据用户输入的用户标识进行身份鉴定,只有合法的用户才准许进入计算机系统;对已进入的用户,DBMS还要进行存取控制,只允许用户执行合法操作;操作系统也会提供相应的保护措施;数据最后还可以以密码形式存储到数据库中。

8.3答:①用户标识与鉴别;②存取控制;③自主存取控制方法;④强制存取控制方法;⑤视图机制;⑥审计;⑦数据加密。

8.4答:①GRANT(授权)语句例:GRANTSELECT,INSERTON学生TO张勇WITHGRANTOPTION;②REVOKE(收回)语句例:REVOKEINSERTON学生FROM张勇;8.5答:数据库的完整性是指数据的正确性和相容性。

8.6答:数据库的完整性是指数据的正确性和相容性。

数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。

其相同点是两者都是对数据库中的数据进行控制,各自所实现的功能目标不同。

8.9答:①外码能够接受空值的问题;②在被参照关系中删除元组时,采用级联删除、受限删除或置空值删除的方法处理参照关系;③在参照关系中插入元组时,可以使用受限插入、递归插入两种方法处理参照关系;④修改关系的主码时,可以采用不允许修改主码、或允许修改关系主码,但必须保证主码的惟一性和非空性方法处理参照关系;⑤修改被参照关系时,可以采用级联修改、拒绝修改和置空值修改方法处理参照关系。

8.10答:数据库的并发控制就是为了控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。

数据库基础与应用第二版课后答案王珊李盛恩编著

数据库基础与应用第二版课后答案王珊李盛恩编著

数据库基础与应用1.数据(DB):数据实际上是描述事物的符号纪录。

2.数据库: 数据库实际上是长期存储在计算机内的有组织的、可共享的数据集合。

3.从文件系统的视角上看去,文件是无结构的,文件只是一个字节流,因此,我们经常把文件叫做流式文件,实际上文件的数据是有结构的,数据的结构需要程序员通过编写程序来建立和维护。

4.数据库应用可以分为两大类:联机事务处理(OLTP),联机分析处理(OLAP).联机事务处理解决了组织结构业务自动化问题,而联机分析处理帮助管理层更好的分析组织结构的运站情况。

5. 数据库管理系统(DBMS):数据库管理系统是一类重要的软件,由一组程序组成。

其主要功能是完成对数据库的定义、数据操作。

提供给用户一个简明的接口,实现事务处理等。

6.数据库管理系统的基本功能:数据的定义功能数据操作功能数据库的运行和管理数据库的建立和维护功能7.数据库管理系统由两大部分组成:查询处理器存储管理器8.层次结构:应用层语言翻译层数据存取层数据存储层操作系统数据库9. 数据库系统:数据库系统是基于数据库的计算机应用的系统,有四部分组成数据库数据管理系统应用系统用户。

10. 数据库管理员的职责:(1)决定数据库中要存储的数据及数据结构(2)决定数据库的存储结构和存取策略(3)保证数据的安全性和完整性(4)监控数据库的使用和运行(5)数据库的改进和重组重构11.数据模型的三要素:数据结构数据操作完整性约束12. 数据结构是所研究的对象的类型的集合,这些对象是数据库的组成成分,他们包含两类:一类是与数据之间联系有关的对象。

一类是与数据之间联系有关的对象。

13. 数据操作:数据库主要有检索和更新(插入、删除、修改)两大类操作。

14.在关系模型中任何关系都要满足实体完整性和参照完整性。

15.三种数据模型:概念模型逻辑模型物理模型逻辑模型中有:层次模型网状模型关系模型面向对象模型对象关系模型其中层次模型和网状模型统称为非关系模型。

课后简答题答案 (1)

课后简答题答案 (1)

第一章三、简答题12、数据模型的主要作用是什么三类基本数据模型的划分依据是什么各自哪些优缺点答:数据模型对现实世界中的事物及其联系的一种模拟和抽象表示,对数据、数据间联系以及有关语义约束规程进行形式化描述。

三类基本数据模型划分的依据是它们的数据结构,按数据结构的不同分为层次模型、网状模型和关系模型。

层次模型的优点有:(1)、层次模型结构比较简单,层次分明,便于在计算机内实现。

(2)、结点间联系简单,从根结点到树中任何一结点均存在一天唯一的层次路径,因此其查询效率很高。

(3)、提供了良好的数据完整性支持。

层次模型的缺点有:(1)、不能直接表示两个以上的实体间的复杂联系和实体型间的多对多联系,只能通过引入沉于数据或创建虚拟结点的方法来解决,易产生不一致性。

(2)、对数据插入和删除的操作限制太多。

(3)、查询子女结点必须通过双亲结点。

网状模型的优点有:(1)、能更为直接地描述客观世界,可表示实体间的多种复杂联系。

(2)、具有良好的性能和存储效率。

网状模型的缺点有:(1)、数据结构复杂,并且随着应用环境的扩大,数据库的结构变得越来越复杂,不便于终端用户掌握。

(2)、器数据定义语言(DDL)、数据操纵语言(DML)语言极其复杂,不易使用户掌握。

(3)、由于记录间的联系本质上是通过存储路径实现的,应用程序再访问数据库时要指定存取路径,即用户需要了解系统结构的细节,加重了编写应用程序的负担。

关系模型的优点有:(1)、其有严格的数学理论依据。

(2)、数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系,此外,对数据的操纵结构也是关系。

(3)、关系模型的存取路径对用户是透明的,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发工作。

关系模型的缺点有:查询效率不如非关系模型。

14解释模式、内模式、外模式的含义答:模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

数据库原理与技术课后答案

数据库原理与技术课后答案

数据库原理与技术课后答案1. 简述数据库管理系统(DBMS)的作用和优点。

数据库管理系统是一种软件工具,用于管理和控制数据库的创建、维护、访问和使用等各个方面。

其主要作用如下:- 数据组织:DBMS通过定义数据结构和类型,实现数据的有序组织和存储,提高数据的组织性和结构性。

- 数据共享:DBMS可以为多个用户提供并发访问数据库的能力,实现数据共享和协同工作。

- 数据安全:DBMS提供了权限管理、数据备份和恢复等功能,保护数据库的安全性和一致性。

- 数据一致性:DBMS能够确保数据的一致性,维护数据库中各个数据之间的联系和完整性。

- 数据查询和处理:DBMS提供了灵活的查询语言和数据处理功能,方便用户对数据库进行查询、分析和操作。

DBMS的优点包括:- 数据共享和协作:多个用户可以同时访问和使用数据库,提高了工作效率和资源利用率。

- 数据一致性和完整性:DBMS确保数据库中的数据一致性和完整性,避免了数据冗余和错误。

- 数据安全和可靠性:DBMS提供了权限管理、数据备份和恢复等功能,保护数据库的安全和可靠性。

- 数据的易管理性和可维护性:DBMS提供了管理和维护数据库的工具和功能,简化了数据管理和维护的工作。

- 数据的高效访问和处理:DBMS提供了高效的数据访问和处理能力,提高了数据的查询和处理效率。

2. 简述关系型数据库和非关系型数据库的特点和应用场景。

关系型数据库特点:- 数据存储:关系型数据库使用表格形式存储数据,表格由行和列组成,每行表示一个记录,每列表示一个字段。

- 结构化数据:关系型数据库要求数据先定义表结构,再进行数据录入,确保数据的一致性和完整性。

- 支持SQL查询:关系型数据库使用结构化查询语言(SQL)进行数据查询和操作,具有较高的查询灵活性和表达能力。

- ACID特性:关系型数据库支持ACID(原子性、一致性、隔离性和持久性)特性,保证数据的一致性和可靠性。

关系型数据库应用场景:- 需要严格的数据一致性和完整性的应用,如金融系统、电子商务系统等。

王珊《数据库系统概论》章节题库(并发控制)【圣才出品】

王珊《数据库系统概论》章节题库(并发控制)【圣才出品】

第11章并发控制一、选择题1.实现数据库并发控制的主要方法是()。

A.授权B.索引C.日志D.封锁【答案】D【解析】数据库管理系统对事务的并发执行进行控制,以保证数据库一致性,最常用的方法是封锁的方法,即当一个事务访问某个数据项时,以一定的方式锁住该数据项,从而限制其他事务对该数据项的访问。

2.在并发控制技术中最常用的是封锁,对于共享锁(S)和排他锁(X)来说,下面列出的相容关系中,哪一个是正确的()。

A.X-X:相容B.S-S:相容C.S-X:相容D.X-S:相容【答案】B【解析】为了避免发生并发操作引起的数据不一致性问题,则采用数据封锁技术实现并发控制。

封锁是防止存取同一资源的用户之间相互干扰的机制,即当一个用户对数据库某个数据对象执行修改操作时,对该部分数据加锁,拒绝其他用户对该部分的并发访问要求,直至该事务执行完毕才释放数据对象;所以只有当两事务都是读取数据且都加S锁时才相容。

3.如果系统发生死锁,参与死锁的进程的个数至少是()个。

A.3B.1C.2D.4【答案】C【解析】由于各进程互相独立地活动,不断申请和释放软硬件资源,可能会出现这样一种状态:两个或两个以上的进程彼此等待对方拥有的而又不会释放的资源,则所有进程都不能进一步向前运行,这种状态就称为死锁。

因此,参与死锁的进程至少是两个。

4.对数据对象施加封锁可能会引起活锁和死锁问题,避免活锁的简单方法是采用()的策略。

A.顺序封锁法B.依次封锁法C.优先级高先服务D.先来先服务【答案】D【解析】活锁:某个事务永远得不到对某个数据资源的封锁,从而永远处于等待状态的现象;采用先来先服务的策略可以有效地避免活锁。

5.二级封锁协议可防止()。

A.不可重复读、丢失修改B.读“脏”数据C.读“脏”数据、丢失修改D.不可重复读、读“脏”数据【答案】C【解析】一级封锁协议可防止丢失修改;二级封锁协议可以防止丢失修改和读“脏”数据;三级封锁协议可防止丢失修改、读“脏”数据和不可重复读。

安徽工业大学数据库第十一章习题解答

安徽工业大学数据库第十一章习题解答
T1 :A:= A + 2 ;
T2 :A:= A* 2 ;
T3 :A:= A* *2 ( A←A 2 )
设 A 得初值为 0。
⑴ 若这三个事务允许并发执行,则有多少种可能得正确结果,请一一列举出
来;
⑵ 请给出一个可串行化得调度,并给出执行结果;
⑶ 请给出一个非串行化得调度,并给出执行结果;
⑷ 若这三个事务都遵守两段锁协议,请给出一个不产生死锁得可串行化调
最后结 果 A 为 0, 为非 串行化 得调度 。

T1
Slock A Y=A=0 Xlock A A=Y+2 写回 A(=2) Unlock A
Unlock A
T2
Slock A 等待
等待 Y=A=2 Xlock A 等待 A=Y*2 写回 A(=4) Unlock A
Unlock A

T1
Slock A Y=A=0
第十一章 并发控制
1、 并发操作可能会产生哪几类数据不一致性?用什么方法能避免各种不一致
性得情况。
答 : 数据库得并发操作所带来得数据不一致性有三类 : 丢失更新问题、不一致性分析问题 与读“脏”数据问题。对于并发操作带来得问题 , 通常采用并发控制得方法调度并发操作 , 避 免造成数据得不一致性 , 使一个用户事务得执行不受其她事务得干扰。
2 、 为什么 D M L 锁只能提供解除 S 封锁得操作,而不提供解除 X 封锁得操作。
答 : 为防止由事务得 ROLLBAC操K 作引起得丢失更新操作 ,X 封锁必须保留到事务终点。即 X 封锁不就是用 UNLOCK操作解除得 , 而就是在事务结束得语义中包含了对 X 封锁得解除 , 因 此,DML不提供解除 X 封锁得操作。而为增加事务并发操作得程度 , 未到事务终点时 , 用户可以 使用 DML提供得专门解除 S 封锁得操作 , 随时解除事务得 S 封锁 , 这就是因为被 S 封锁得数据 不可能就是未提交得修改。

分布式数据库并发控制考试

分布式数据库并发控制考试

分布式数据库并发控制考试(答案见尾页)一、选择题1. 分布式数据库中的并发控制主要采用了哪种技术来保证数据的一致性?A. 串行处理B. 并发控制C. 分布式事务D. 锁机制2. 在分布式数据库中,通常采用哪种一致性模型来确保所有节点上的数据保持一致?A. 强一致性B. 弱一致性C. 最终一致性D. 最终一致性加上补偿事务3. 以下哪个选项描述了分布式数据库中常见的分布式事务协议?A. PaxosB. RaftC. ZooKeeperD. all of the above4. 在分布式数据库中,如何实现数据的水平扩展?A. 数据复制B. 数据分片C. 数据分区D. 数据压缩5. 分布式数据库中的分片主要有哪两种方式?A. 基于范围的分片B. 基于哈希的分片C. 基于策略的分片D. 基于范围和哈希的分片6. 在分布式数据库中,如何处理跨分片的数据一致性?A. 使用分布式事务B. 使用分布式锁C. 使用全局事务D. 使用局部事务7. 以下哪个选项描述了分布式数据库中的读写分离策略?A. 将读操作和写操作分开在不同的节点上执行B. 将读操作放在远程节点上进行,而写操作放在本地节点上进行C. 将所有的写操作放在一个节点上,所有的读操作放在另一个节点上D. 使用读写分离技术8. 在分布式数据库中,如何避免过多的网络通信开销?A. 使用缓存技术B. 使用消息队列C. 使用数据压缩技术D. 使用分布式数据库中间件9. 分布式数据库中的分布式锁主要用于解决什么问题?A. 避免数据不一致B. 提高系统性能C. 控制并发访问D. 保证数据安全性10. 以下哪个选项描述了分布式数据库中的数据同步策略?A. 定期将数据从主节点复制到从节点B. 实时同步数据C. 使用增量同步技术D. 使用全量同步技术11. 分布式数据库中的并发控制主要涉及到哪些方面?A. 事务隔离B. 锁机制C. 事务调度D. 数据一致性12. 在分布式数据库中,什么是乐观锁态?A. 事务未提交前,其他事务可以读取到修改的数据。

第八章 数据库并发控制练习和答案

第八章 数据库并发控制练习和答案

第八章数据库并发控制一、选择题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要读AB、T1正在写A,T2也要写AC、T1正在读A,T2要写AD、T1正在读A,T2也要读A8。

如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突得操作就是() .A、一个就是DELETE,一个就是SELECTB、一个就是SELECT,一个就是DELETEC、两个都就是UPDATED、两个都就是SELECT9.在数据库系统中,死锁属于()。

A、系统故障B、事务故障C、介质故障D、程序故障二、简答题1、在数据库中为什么要并发控制?答:数据库就是共享资源,通常有许多个事务同时在运行。

当多个事务并发地存取数据库时就会产生同时读取与/或修改同一数据得情况.若对并发操作不加控制就可能会存取与存储不正确得数据,破坏数据库得一致性。

所以数据库管理系统必须提供并发控制机制。

2、并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致得情况?答: 并发操作带来得数据不一致性包括三类:丢失修改、不可重复读与读“脏”数据.(1)丢失修改(LostUpdate)两个事务T1与T2读入同一数据并修改,T2提交得结果破坏了(覆盖了)T1提交得结果,导致T1得修改被丢失。

数据库系统:事务与并发控制期末单元测试与答案

数据库系统:事务与并发控制期末单元测试与答案

一、单选题1、若事务T获得了数据对象R的X锁控制权,则T对RA.只可读B.可读也可写C.只可写D.不可读也不可写正确答案:B2、成功提交事务的短语是mitB. rollbackC.abortD.fail正确答案:A3、为了防止数据库的不一致性,对多个运行的事务需要A.完整性B.安全性C.并发控制D.恢复正确答案:C4、关于串行调度下面说法正确的是A.任何调度都是串行的B.串行调度不一定是正确的调度C.串行调度一定是正确的调度D.串行调度一定不是正确的调度正确答案:C5、一级封锁协议可以保证A.所有的数据不一致B.不丢失修改C.不读脏数据D.可重复读正确答案:B6、关于封锁协议,下面说法不正确的是A.三级封锁协议的要求最高B.三级封锁协议可以解决所有并发执行可能导致的问题C.一级封锁协议的要求最低D.一级封锁协议可以解决所有并发执行可能导致的问题正确答案:D7、下面关于冲突可串行化说法不正确的是A.冲突可串行化是不可串行化调度B.冲突可串行化是可串行化调度C.冲突可串行化是与一个串行调度冲突等价的D.冲突可串行化是正确的调度正确答案:A8、下面可以解决活锁的是A.先来先服务B.一次封锁法C.检测和解除策略D.顺序封锁法正确答案:A二、多选题1、基本锁类型包括A.意向锁B.读锁C.多粒度锁D.写锁正确答案:B、D2、检测死锁的方法有A.顺序方法B.等待图法C.一次封锁法D.超时法正确答案:B、D3、关于并发调度下面说法不正确的是A.一个并发调度是正确的如果它和某个串行调度结果相同B.一个并发调度一定是正确的C.一个并发调度是正确的如果它和某个串行调度结果不相同D.一个并发调度一定是不正确的正确答案:B、C、D三、判断题1、不可串行化的调度一定是不正确的调度正确答案:√2、顺序封锁发能够解决死锁正确答案:√3、封锁协议越严格,并发程度越低正确答案:√4、先来先服务可以解决死锁正确答案:×。

《数据库技术与应用》第9章 并发控制 习题答案

《数据库技术与应用》第9章 并发控制 习题答案

第9章并发控制1. 试述DBMS中采用并发控制的目的。

解:并发控制是以事务为单位进行的。

DBMS中的并发控制的目的是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。

2. 试述共享锁和排他锁的含义。

解:排它锁又称为写锁。

排他锁是最严格的一类封锁,当需要对表进行插入、删除或更新操作时,应该使用排他锁。

当一个事务对某数据加上排他锁后,其他事务不得对该数据对象施加任何封锁。

共享锁又称为读锁。

当一个事务队某数据对象加上共享锁后,其他事务可以读取该数据,不能对该数据对象做任何修改。

共享锁可以保证最大的并发性,任何数量的用户可以同时对相同的数据施加共享锁。

3. 试述死锁是如何产生的,列举一些常见的预防死锁的方法。

解:产生死锁的原因是两个或多个事务都锁定了一些数据库对象,然后又都需要锁定对方的数据库对象失败而需要等待所造成的。

预防死锁通常有两种方法:一次封锁法和顺序封锁法。

一次封锁法要求每个事务一次就将要操作的数据库对象全部锁定,否则就不继续执行。

该方法会降低系统的并发度。

顺序封锁法要求预先对数据库对象规定一个封锁顺序,所有事务都按这个顺序来实行封锁。

该方法算法复杂,成本高。

4. 简述数据库系统中经常用到检测和解除死锁的方法。

解:数据库系统中检测死锁一般使用超时法或事务等待图法。

数据库管理系统一般采用如下方法来解除死锁:在循环等待的事务中,选择一个事务作为牺牲者,给其他事务“让路”。

回滚牺牲的事务,释放其获得的锁及其他资源。

将释放的锁让给等待它的事务。

5. 简述多粒度封锁的含义以及优点。

解:同时支持多种锁定粒度供事务选择的封锁方法叫做多粒度封锁。

其中,封锁对象可以是数据库、表、记录、列、索引等的逻辑单元,也可以是数据页或索引页、块等的物理单元。

采用多种粒度封锁能够提高并发度和减少锁的数量。

6. 试述意向锁的含义,简要介绍几种常见的意向锁。

解:意向锁的含义是,如果对一个节点加某种意向锁,则会对该节点的各级下级节点加这种锁;如果对一个节点加某种锁,则必须先对该节点的各级上级节点加这种意向锁。

数据库系统概论要求的课后题答案

数据库系统概论要求的课后题答案

作业1:P37、P38 教材第一章课后习题3、9、10、18、22、233 .试述文件系统与数据库系统的区别和联系。

答:文件系统与数据库系统的区别是:文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。

数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。

文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件。

解析文件系统是操作系统的重要组成部分;而 DBMS 是独立于操作系统的软件。

但是DBMS 是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的。

9 .定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图( E一 R 图)答:实体:客观存在并可以相互区分的事物叫实体。

实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。

实体集:同型实体的集合称为实体集。

属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。

码:惟一标识实体的属性集称为码。

实体联系图( E 一 R 图):提供了表示实体型、属性和联系的方法:·实体型:用矩形表示,矩形框内写明实体名;·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型( 1 : 1 , 1 : n 或 m : n )。

10 .试给出 3 个实际部门的 E 一 R 图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。

答:18 .试述关系模型的概念,定义并解释以下术语: ( l )关系( 2 )属性( 3 )域( 4 )元组 ( 5 )主码( 6 )分量( 7 )关系模式答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

第3章进程并发控制作业题参考答案

第3章进程并发控制作业题参考答案

第3章进程并发控制作业题参考答案作业题题1进程间的互斥与同步表示了各进程间的______。

A.竞争与协作B. 相互独立与相互制约C .临界区调度原则 D. 动态性与并发性题2 若执行信号量S操作的进程数为3,信号量S初值为2,当前值为-1,表示有____个等待相关临界资源的进程。

A 0B 1C 2D 3题 3 由于并发进程执行的随机性,一个进程对另一个进程的影响是不可预测的,甚至造成结果的不正确,_________。

A.造成不正确的因素与时间有关B. 造成不正确的因素只与进程占用的处理机有关C.造成不正确的因素与执行速度无关D. 造成不正确的因素只与外界的影响有关题4 下列机构中不能用于进程间数据通信的是____________。

A.消息B.共享存储区C. 信号量D.管道题5 下面有关管程的说法,不正确的是________A.管程是种进程同步机制B. 管程是一种编程语言成分C. 管程是一种系统调用D.管程比信号量更容易保证并行编程的正确性题6 什么是临界资源和临界区?一个进程进人临界区的调度原则是什么?题7 进程之间存在哪几种制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)图书馆借书。

属于互斥关系。

(2)两队举行篮球赛。

既有互斥关系,又有同步关系。

(3)流水生产线。

属于同步关系。

(4)乐队演奏。

属于同步关系。

(5)购买火车票。

属于互斥关系。

题8 在生产者消费者问题中,如果将两个P操作即生产者程序流程中的P(buffers)和P(mutex)互换位置.结果会如何? 形成死锁。

题9 试用P、V操作描述下列理发师和顾客之间的同步问题。

某个理发师当没有顾客时,去睡觉;当有顾客来理发,若理发师正在睡觉时,这个顾客会叫醒他,理发师给该顾客理发,理发期间若还有顾客到达则等待理发师依次理发,直到没有顾客到来,理发师又去睡觉。

wakeup,wait,mutex:semaphore;wakeup:=0;wait:=0;mutex:=1;cobegin顾客进程:{p(mutex);rc=rc+1;if(rc==1) v(wakeup);else p(wait);v(mutex);理发;}理发师进程:{P(wakeup);While(rc!=0){理发;p(mutex);rc=rc-1;if(rc!=0)v(wait);v(mutex);}}coend自测题一、选择题1.并发性是指若干事件在______发生。

并发掌握 课后答案

并发掌握 课后答案
对象加锁时,要约定何时申请 X 锁或 S 锁、何时释放封锁等。这些约定或者规则称为封锁协 议(locking Proto同 级别的封锁协议,例如《概论》8.3 中介绍的三级封锁协议,三级协议的主要区别在于什么 操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。
更新后的值,再按此新的 A 值进行运算。这样就 不会丢失 T1 的更新。
DBMS 按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可 以避免丢失修改、不可重复读和读"脏"数据等数据不一致性。
6.什么是封锁协议?不同级别的封锁协议的主要区别是什么? 答:在运用封锁技术对数据加锁时,要约定一些规则。例如,在运用 X 锁和 S 锁对数据
答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读"脏"数据。 (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

数据库实用教程课后习题参考答案(1-4章)

数据库实用教程课后习题参考答案(1-4章)

数据库实用教程课后习题参考答案(1-4章)第1、2章1.1 名词解释:◆ DB:数据库(Database),DB是统一管理的相关数据的集合。

DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。

◆ DBMS:数据库管理系统(Database Management System),DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。

DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。

◆ DBS:数据库系统(Database System),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。

◆ 1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,好么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。

◆ 1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。

◆ M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。

◆ 数据模型:表示实体类型及实体类型间联系的模型称为“数据模型”。

它可分为两种类型:概念数据模型和结构数据模型。

◆ 概念数据模型:它是独门于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。

◆ 结构数据模型:它是直接面向数据库的逻辑结构,是现实世界的第二层抽象。

这类模型涉及到计算机系统和数据库管理系统,所以称为“结构数据模型”。

结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。

并发控制 课后答案

并发控制 课后答案

第八章并发控制习题解答和解析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 锁)。

并发控制-课后答案

并发控制-课后答案

并发控制■课后答案数据T2读入同一数 °T1和 (覆盖了 )T1 可 读是使重复无 roll 0 复读疋读包括 ⑶读表、' 表。

重4. 4.要基第八章并发控制「答:本本锁封类型Exclusive Lock 匚 Share Locks,简称 S排它锁又称为写锁。

若事篦旅T 对数据对象A *排锁锁又对为加任if!锁对其他任& 加上共锁卅和可以读事但不能修改居对其A加上但如何释封锁机制保证之据不 先对该进能样之前操!求对 绝,T 2锁。

这时待它当 按此新的A 值进 新。

_ .......... 的加新才进行运算。

这样就不会丢 锁新才,丁w① ZlDck 3②读A=16*'in&ck Mv^vVTrwv^rv③ A-*-JL-l務J写回A=15Commit 等待*Unlock A荻得切读 A=15-' 写回A=14t⑤Unlock 2制议uw 锁 序地执行就可以避性修改、不可重复读和读"脏"数据等数据不一致 区别是是么是么锁协议?不同级别的封锁协议的主要 一些规答则:在运如 加锁等则要约 (lockin封议;疋或Protocol:口封锁技术对数据加加锁 在运用则X !和 论的封锁协中么操三级封的请封锁/何时申请封锁以及何时释放锁(即持锁。

R之前必事完后即可在请封锁丿何时时间一长封锁协议:善务T 须先数级封之前必须到事对封读放数级R之刖必须先对封读取释级封之前必须先级封7.不同封锁协议与系统一致性级别的关系是什答:不同的封锁协议对应不同的一致性级修改复读和不读么?别。

不加可恢脏"数据II完数良封后立致性保证操事操事作务作务结结结结束束束束释释释释放放放放不丢失修改不读"脏"数据可重复读8.什么是活锁?什么是死锁?答:TI T2 T3 T4lockR的封锁远等系统这批准■lock R■等待lock R .Un lock 等待■lock R■等待■等待■等待■等待■等待Un lock 等待■等待■lock R■等待.活锁的含实是该 R2,然于封锁R 1等因. 封锁等待因锁 结束等待成-一T2T1务等待时间太长,似乎被 R2待lock R1等待9试述活活锁产 照其待某顺序: 策略避当 数略子系 10.请待个被其他 的条防止预[原因和解决方法。

事务调度与并发控制

事务调度与并发控制

事务调度与并发控制(总分:80.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:29,分数:58.00)1.某系统中事务T1从账户A转出资金到账户B中,在此事务执行过程中,另一事务T2要进行所有账户金额统计操作。

在T1和T2事务成功提交后,数据库服务器突然掉电重启。

为了保证T2事务统计结果及重启后A,B两账户金额正确,需利用到的事务性质分别是______。

∙ A.一致性和隔离性∙ B.隔离性和持久性∙ C.原子性和一致性∙ D.原子性和持久性(分数:2.00)A.B. √C.D.解析:[解析] 本题考查的知识点是事务性质。

两个事务并发执行时,隔离性保证其并行结果的正确。

当事务提交后断电,则持久性保证其对数据库的改变是永久的,结果不受影响。

即本题的答案为B。

2.在SQL Server 2000中,某数据库中有教师表(教师号,姓名,职称),其中教师号的数据类型是整型,其他均为字符类型。

若教师表中当前没有数据,用户在数据库中依次执行下列语句:Ⅰ.BEGIN TRANSACTION T1Ⅱ.INSERT INTO 教师表 VALUES(1000, '张三', '助教');Ⅲ.INSERT INTO 教师表 VALUES(1001, '王二', '助教');Ⅳ.COMMIT T1;Ⅴ.BEGIN TRANSACTION T2;Ⅵ.INSERT INTO 教师表 VALUES(1002, '王三', '讲师');Ⅶ.INSERT INTO 教师表 VALUES(1003, '李四', '讲师');Ⅷ.COMMIT T2;在Ⅶ执行的时候数据库所在的服务器突然掉电,当数据库系统重新启动后,教师表中包含的数据条数为______。

∙ A.4条∙ B.3条∙ C.2条∙ D.0条(分数:2.00)A.B.C. √D.解析:[解析] 一个事务由一系列操作组成,事务的执行表现为事务中各个操作的执行,包括对数据库对象的读写操作,此外每个事务还应该具有结束操作。

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

第八章并发控制习题解答和解析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的更新。

DBMS按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读和读"脏"数据等数据不一致性。

6.什么是封锁协议?不同级别的封锁协议的主要区别是什么?答:在运用封锁技术对数据加锁时,要约定一些规则。

例如,在运用X锁和S锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等。

这些约定或者规则称为封锁协议(locking Protocol)。

对封锁方式约定不同的规则,就形成了各种不同的封锁协议、不同级别的封锁协议,例如《概论》8.3中介绍的三级封锁协议,三级协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。

一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。

二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。

三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。

7.不同封锁协议与系统一致性级别的关系是什么?答:不同的封锁协议对应不同的一致性级别。

一级封锁协议可防止丢失修改,并保证事务T是可恢复的。

在一级封锁协议中,对读数据是不加S锁的,所以它不能保证可重复读和不读"脏"数据。

二级封锁协议除防止了丢失修改,还可进一步防止读"脏"数据。

在二级封锁协议中,由于读完数据后立即释放S锁,所以它不能保证可重复读。

在三级封锁协议中,无论是读数据还是写数据都加长锁,即都要到事务结束才释放封锁。

所以三级封锁协议除防止了丢失修改和不读"脏"数据外,还进一步防止了不可重复读。

下面的表格清楚地说明了封锁协议与系统一致性的关系。

8.什么是活锁?什么是死锁?答: TI T2 T3 T4lock R . . .. lock R . .. 等待 lock R .Unlock 等待 . lock R. 等待 . 等待. 等待 . 等待. 等待 Unlock 等待. 等待 . lock R. 等待 . .如果事务T1封锁了数据R,事务T2飞又请求封锁R,于是T2等待。

T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。

然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求……T2有可能永远等待,这就是活锁的情形。

活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。

如果事务Tl封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁。

接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放Rl上的锁。

这样就出现了T1在等待T2,而T2又在等待Tl的局面,T1和T2两个事务永远不能结束,形成死锁。

T1 T2lock R1 .. lock R2. .lock R2 .等待 .等待 lock R1等待等待9.试述活锁的产生原因和解决方法。

答:活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。

避免活锁的简单方法是采用先来先服务的策略。

当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。

10.请给出预防死锁的若干方法。

答:在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,从而出现死等待。

防止死锁的发生其实就是要破坏产生死锁的条件。

预防死锁通常有两种方法:(1)一次封锁法,要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行;(2)顺序封锁法,预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。

不过,预防死锁的策略不大适合数据库系统的特点,具体原因可参见《概论》8.4。

11.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?答:数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法。

DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。

超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。

超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。

若时限设置得太长,又不能及时发现死锁发生。

DBMS并发控制子系统检测到死锁后,就要设法解除。

通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。

当然,对撤销的事务所执行的数据修改操作必须加以恢复。

12.什么样的并发调度是正确的调度?答:可串行化(Sertalizable)的调度是正确的调度。

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

13.设T1,T2,T3是如下的3个事务:T1:A:=A+2;T2:A:=A*2;T3:A:=A**2;设A的初值为0。

(1)若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。

答:A的最终结果可能有2、4、8、16。

因为串行执行次序有T1 T2 T3、T1 T3 T2、T2 T1 T3、T2 T3 T1、T3 T1 T2、T3 T2 T1。

对应的执行结果是16、8、4、2、4、2。

(2)请给出一个可串行化的调度,并给出执行结果答:T1 T2 T3slock AY=A=OUnlock AXlock ASlock AA=Y+2 等待写回 A(=2) 等待Unlock A 等待Y=A=2Unlock AXlock ASlock AA=Y*2 等待写回 A(=4) 等待Unlock A 等待Y=A=4Unlock AXlock A写回 A(=16)Unlock A最后结果A为16,是可串行化的调度。

(3)请给出一个非串行化的调度,并给出执行结果。

答:T1 T2 T3Slock AY=A=0Unlock ASlock AY=A=0Xlock A等待 Unlock AA=Y+2写回 A(=2) Slock AUnlock A 等待Y=A=2Unlock AXlock AXlock A等待 A=Y**2等待写回 A(=4)等待 Unlock AA=Y*2写回 A(=0)Unlock A最后结果 A 为 0, 为非串行化的调度。

(4)若这3个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。

答: T1 T2 T3Slock AY=A=OXlock AA=Y+2 Slock A写回 A(=2) 等待Unlock A 等待Y=A=2Xlock A等待 Slock AA=Y*2 等待写回A(=4) 等待Unlock A 等待Y=A=4Xlock AA=Y**2写回 A(=16)Unlock A(5)若这3个事务都遵守两段锁协议,请给出一个产生死锁的调度。

答:T1 T2 T3Slock AY=A=0Slock AY=A=0Xlock A等待Xlock A等待Slock AY=A=0Xlock A等待14.试述两段锁协议的概念。

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

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

"两段"的含义是,事务分为两个阶段:第一阶段是获得封锁,也称为扩展阶段,在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁;第二阶段是释放封锁,也称为收缩阶段,在这阶段,事务释放已经获得的锁,但是不能再申请任何锁。

相关文档
最新文档