并发控制课后答案

合集下载

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

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

计算机操作系统在线学堂•得分: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组成。

数据库原理及应用第7章课后习题答案

数据库原理及应用第7章课后习题答案

习题71、试述事务的概念及事务的四个特性。

事务(Transaction)是用户定义的一个数据库操作序列,这些操作是一个完整的工作单元,一个事务内的所有语句被作为一个整体,这些操作要么全做,要么全不做。

事务是数据库环境的中的逻辑单元,相当于操作系统中的进程。

为了保证数据库中数据的正确性,一个事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability )。

这四个特性简称ACID 特性。

2、试述事务的状态及转换。

3、在数据库中为什么要并发控制并发控制能保证事务的哪些特性数据库的一个明显的特点是多个用户共享数据库资源,尤其是多用户可以同时存取相同的数据。

在这样的系统中,在同一时刻并发运行的事务数可达数百个。

若对事务的并发操作不加以控制,就会造成数据存、取的错误,破坏了数据的一致性和完整性。

并发控制可以防止数据不一致性出现。

4、并发操作可能会产生哪几类数据不一致用什么方法可以避免不一致性的情况并发操作带来的数据不一致性分为四种情况:丢失数修改、读“脏”数据、不可重复读和产生“幽灵”数据。

在数据库环境下,进行并发控制的主要技术有封锁(Locking)、时间戳(Timestamp)和乐观控制法。

商用的DBMS一般都采用封锁方法。

5、什么是封锁基本的封锁类型有哪些试述它们的含义。

封锁机制,即加锁(Locking),是一种并发控制机制,是用来调整对共享目标的并行存取的技术。

事务通过向封锁管理程序的系统组成部分发出请求而对事务加锁。

基本封锁类型有两种:共享锁(Share Locks,简记为S锁或读锁)和排它锁(Exclusive Locks,简记为X锁或写锁)。

6、如何用封锁机制保证数据的一致性在运用X锁和S锁对数据对象加锁时,还需要约定一些规则,这些规则为封锁协议或加锁协议(Locking Protocol)。

对封锁方式加不同的规则,就形成了各种不同级别的封锁协议。

并发控制

并发控制

第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只能等待。

课后练习题及答案

课后练习题及答案

一、填空练习1.程序的执行是现代操作系统的基本特征之一,为了更好地描述这一特征而引入了这一概念。

2.进程存在的标志是。

3.进程的静态实体由、和三部分组成。

4.用于进程控制的原语主要有、、和。

5.进程被创建后,最初处于状态,然后经选中后进入状态。

6.进程创建工作主要完成的是创建进程控制块(PCB),并把它挂到队列中。

7.如果系统中有n个进程,则在就绪队列中进程的个数最多。

8.进程的同步和互斥反映了进程间和的关系。

9.死锁产生的四个必要条件是、、和四种。

10.操作系统中信号量的值与的使用情况有关,它的值仅能由来改变。

11.进程至少有三种基本状态:、和。

12.每执行一次P操作,信号量的数值S减1。

若S>0,则该进程;若S<0,则该进程。

13.每执行一次V操作,信号量的数值S加1。

若,则该进程继续执行;否则从对应的队列中移出一个进程并将状态赋予该进程。

14.利用信号量实现进程的,应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于和原语之间。

15. Windows NT是采用结构的操作系统,它的进程的功能发生了变化,它只是资源分配的单位,不是的单位,后者的功能由完成。

16. 通常,线程的定义是____________________________________。

在现代操作系统中,资源的分配单位是__________________,而处理机的调度单位是________________,一个进程可以有___________线程。

17. 计算机系统一般都设计有两种运行状态,和。

18. 目前,在操作系统设计中采用的结构模型主要有四种:、、和。

参考答案:1、并发,进程2、进程控制块PCB3、程序,数据集合,进程控制块PCB4、建立原语、撤消原语,挂起原语,激活原语5、就绪,进程调度程序,执行6、就绪7、n-18、直接制约,间接制约9、互斥使用,保持和等待,非剥夺性,循环等待10、相应资源,P、V操作11、执行态,就绪态,等待态12、继续执行,等待13、S>0,等待,就绪14、互斥,P(mutex),V(mutex)15、微内核,调度运行,线程16、是进程中执行运算的最小单位,进程,线程,多个17、用户态,核心态18、层次模块模型,整体内核模型,进程模型,对象模型二、选择练习1. 操作系统中,可以并行工作的基本单位是[1],[1]也是系统核心调度及资源分配的基本单位,它是由[2]组成的,它与程序的主要区别是[3]。

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

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

数据库基础与应用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. 数据库事务的基本特性包括()。

A. 原子性B. 一致性C. 隔离性D. 持久性2. 在数据库系统中,事务必须满足的条件有()。

A. 原子性B. 一致性C. 隔离性D. 持久性3. 下列哪些选项是数据库事务的正确隔离级别?()A. 读未提交B. 读已提交C. 可重复读D. 串行化4. 在并发控制中,死锁是指两个或多个事务在互相等待对方释放资源的情况下,无法继续执行的状态。

请判断以下哪些情况可能导致死锁?()A. 先请求资源R1,再请求资源R2B. 先请求资源R1,再请求资源R2,然后释放资源R1C. 先请求资源R1,再请求资源R2,然后请求资源R3D. 先请求资源R1,再请求资源R2,然后释放资源R1,接着请求资源R25. 什么是ACID属性?()A. 原子性(Atomicity)B. 一致性(Consistency)C. 隔离性(Isolation)D. 持久性(Durability)6. 数据库事务具有哪些特性?(ACID)A. 原子性(Atomicity)B. 一致性(Consistency)C. 隔离性(Isolation)D. 持久性(Durability)7. 在数据库系统中,如何实现事务的隔离性?(ABC)A. 使用锁机制(Locking Mechanism)B. 使用多版本并发控制(Multi-Version Concurrency Control, MVCC)C. 使用时间戳(Timestamp)D. 使用死锁检测(Deadlock Detection)8. 什么是死锁?(D)A. 两个或多个事务互相等待对方释放资源B. 一个事务无法完成执行C. 数据库系统崩溃D. 以上都不是9. 如何解决死锁问题?(AB)A. 避免长时间持有锁B. 使用锁超时(Lock Timeout)C. 回滚事务(Rollback Transaction)D. 重新启动事务10. 什么是并发控制?(C)A. 确保数据库系统的安全性B. 确保数据库系统的完整性C. 确保数据库系统的并发性和性能D. 确保数据库系统的可靠性11. 在数据库系统中,如何处理并发访问冲突?(ABC)A. 使用锁机制(Locking Mechanism)B. 使用乐观锁(Optimistic Locking)C. 使用悲观锁(Pessimistic Locking)D. 使用时间戳(Timestamp)12. 什么是乐观锁?(B)A. 一种并发控制策略,通过假设冲突很少发生来减少锁的使用B. 一种并发控制策略,通过在读取数据时检查数据是否被其他事务修改来判断是否存在冲突C. 一种并发控制策略,通过在提交事务时检查数据是否被其他事务修改来判断是否存在冲突D. 一种并发控制策略,通过在写入数据时检查数据是否被其他事务修改来判断是否存在冲突13. 什么是悲观锁?(C)A. 一种并发控制策略,通过在读取数据时检查数据是否被其他事务修改来判断是否存在冲突B. 一种并发控制策略,通过在提交事务时检查数据是否被其他事务修改来判断是否存在冲突C. 一种并发控制策略,通过在写入数据时检查数据是否被其他事务修改来判断是否存在冲突D. 一种并发控制策略,通过在读取数据时检查数据是否被其他事务修改来判断是否存在冲突14. 在数据库系统中,如何优化查询性能?(ABCD)A. 使用索引(Indexing)B. 使用分区(Partitioning)C. 使用缓存(Caching)D. 使用连接查询(Join Query Optimization)15. 在数据库系统中,如何确保数据的完整性?(ABD)A. 使用约束(Constraints)B. 使用触发器(Triggers)C. 使用存储过程(Stored Procedures)D. 使用事务(Transactions)16. 数据库事务的基本特性包括哪些?A. 原子性B. 一致性C. 隔离性D. 持久性17. 在数据库系统中,如何实现事务的隔离性?A. 使用锁机制B. 使用多版本并发控制(MVCC)C. 使用时间戳排序D. 使用行级锁18. 什么是死锁?如何避免死锁?A. 死锁是指两个或多个事务互相等待对方释放资源的情况B. 避免死锁的方法包括按照固定顺序访问资源、使用锁超时、检测并解决死锁C. 死锁只发生在并发事务中D. 死锁是数据库系统的正常现象19. 什么是事务的持久性?如何确保事务的持久性?A. 持久性是指事务处理结束后,其结果仍然存在于数据库中B. 确保事务持久性的方法是使用日志记录和恢复技术C. 持久性只适用于本地数据库D. 持久性与并发控制无关20. 在数据库系统中,如何处理事务的回滚操作?A. 回滚操作是将事务的所有更改撤销,使数据库回到事务开始前的状态B. 回滚操作通常由用户手动执行C. 回滚操作只在发生错误时才需要D. 回滚操作总是自动执行21. 什么是并发控制?为什么需要并发控制?A. 并发控制是指在多个事务同时运行时,确保它们不会相互干扰的技术B. 并发控制可以防止数据不一致和破坏C. 并发控制只适用于数据库系统D. 并发控制与操作系统性能无关22. 在数据库系统中,如何实现并发控制中的安全性控制?A. 使用访问控制列表(ACL)来限制用户对资源的访问B. 使用加密技术来保护数据的机密性C. 使用时间戳排序来避免冲突D. 使用多版本并发控制(MVCC)来提高并发性能23. 在数据库系统中,如何实现并发控制中的完整性控制?A. 使用约束条件来限制用户的输入B. 使用触发器来强制数据的一致性C. 使用事务来保证数据的一致性D. 使用存储过程来限制用户的操作24. 在数据库系统中,如何实现并发控制中的可靠性控制?A. 使用备份和恢复技术来恢复丢失的数据B. 使用日志记录和恢复技术来保证数据的一致性C. 使用事务的原子性和一致性来保证数据的可靠性D. 使用多副本技术来提高数据的可靠性25. 在数据库系统中,如何实现并发控制中的可用性控制?A. 使用缓存技术来提高查询性能B. 使用负载均衡技术来分配系统资源C. 使用索引优化技术来提高查询速度D. 使用分布式技术来扩展系统容量26. 数据库事务必须具备的特性中,哪个不是?A. 原子性(Atomicity)B. 一致性(Consistency)C. 隔离性(Isolation)D. 持久性(Durability)27. 在数据库系统中,事务的隔离级别由低到高依次是什么?A. 读未提交、读已提交、可重复读、串行化B. 读未提交、读已提交、串行化、可重复读C. 读未提交、读已提交、可重复读、串行化D. 读已提交、读未提交、可重复读、串行化28. 下面哪个不是数据库事务处理的关键要素?A. 隔离性(Isolation)B. 持久性(Durability)C. 原子性(Atomicity)D. 一致性(Consistency)29. 在数据库系统中,实现事务的隔离性需要考虑哪些因素?A. 数据库锁机制B. 数据库索引C. 数据库设计D. 数据库性能30. 什么是事务的ACID属性?请简要解释每个属性的含义。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据库简答题答案

数据库简答题答案

一、简答题1、简述数据库系统的特点。

(P9)答:数据结构化;数据的共享性高,冗余度低,易扩充;数据独立性高;数据由DBMS统一管理和控制。

2、数据库管理系统的主要功能有哪些?(P11)(1)数据的安全性保护(2)数据的完整性保护(3)并发控制(4)数据库恢复3、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?(P10)物理独立性:是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。

逻辑独立性:是指用户的应用程序与数据的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。

为什么:数据独立性是由DBMS的二级映像功能来保证的(外模式/模式映像,模式/内模式映像),这两层映像机制保证了数据库系统中数据的逻辑独立性和物理独立性。

4、试述数据库系统的组成。

(P5)数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员。

5、简述文件系统与数据库系统的区别和联系。

(P6)区别:数据的管理者:文件系统;数据库管理系统数据面向的对象:某一应用;现实世界数据的共享程度:共享性差,冗余度大;共享性高,冗余度小数据的独立性:独立性差;具有高度的物理独立性和逻辑独立性数据的结构化:记录内有结构,整体无结构;整体结构化,数据模型描述数据的控制能力:应用程序自己控制;由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力联系:(1)均为数据组织的管理技术(2)均由数据管理软件管理数据,程序与数据之间用存取方法进行转换(3)数据库系统是在文件系统的基础上发展而来的6、DBA的职责是什么?(P35)(1)决定数据库中的信息内容和结构(2)决定数据库中的存储结构和存取策略(3)定义数据库的安全性要求和完整性约束条件(4)监控数据的使用和运行(5)数据库的改进和重组重构7、什么是基本表?什么是视图?两者的区别和联系是什么?(P81)基表:是本身独立存在的表,在SQL中一个关系就对应一个基表。

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

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

第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【解析】一级封锁协议可防止丢失修改;二级封锁协议可以防止丢失修改和读“脏”数据;三级封锁协议可防止丢失修改、读“脏”数据和不可重复读。

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

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

第八章数据库并发控制一、选择题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、先来先服务可以解决死锁正确答案:×。

数据库系统原理课后答案第一章

数据库系统原理课后答案第一章

数据库系统原理课后答案第⼀章1.1 名词解释(1) DB:即数据库(Database),是统⼀管理的相关数据的集合。

DB能为各种⽤户共享,具有最⼩冗余度,数据间联系密切,⽽⼜有较⾼的数据独⽴性。

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

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

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

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

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

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

(7) 数据模型:模型是对现实世界的抽象。

在数据库技术中,表⽰实体类型及实体类型间联系的模型称为“数据模型”。

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

(6) 概念数据模型:是独门于计算机系统的模型,完全不涉及信息在系统中的表⽰,只是⽤来描述某个特定组织所关⼼的信息结构。

(9) 结构数据模型:是直接⾯向数据库的逻辑结构,是现实世界的第⼆层抽象。

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

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

课后简答题答案 (1)

课后简答题答案 (1)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

作业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 )关系模式答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

操作系统教程课后习题参考答案

操作系统教程课后习题参考答案

操作系统教程课后习题参考答案习题一习题二习题三习题四习题五习题六习题一1.设计操作系统的主要目的是什么?设计操作系统的目的是:(1)从系统管理人员的观点来看,设计操作系统是为了合理地去组织计算机工作流程,管理和分配计算机系统硬件及软件资源,使之能为多个用户所共享。

因此,操作系统是计算机资源的管理者。

(2)从用户的观点来看,设计操作系统是为了给用户使用计算机提供一个良好的界面,以使用户无需了解许多有关硬件和系统软件的细节,就能方便灵活地使用计算机。

2.操作系统的作用可表现在哪几个方面?(1) 方便用户使用:操作系统通过提供用户与计算机之间的友好界面来方便用户使用。

(2) 扩展机器功能:操作系统通过扩充硬件功能和提供新的服务来扩展机器功能。

(3) 管理系统资源:操作系统有效地管理系统中的所有硬件和软件资源,使之得到充分利用。

(4) 提高系统效率:操作系统合理组织计算机的工作流程,以改进系统性能和提高系统效率。

(5)构筑开放环境:操作系统遵循国际标准来设计和构造一个开放环境。

其含义主要是指:遵循有关国际工业标准和开放系统标准,支持体系结构的可伸缩性和可扩展性;支持应用程序在不同平台上的可移植性和互操作性。

3.试叙述脱机批处理和联机批处理工作过程(1)联机批处理工作过程用户上机前,需向机房的操作员提交程序、数据和一个作业说明书,后者提供了用户标识、用户想使用的编译程序以及所需的系统资源等基本信息。

这些资料必须变成穿孔信息,(例如穿成卡片的形式),操作员把各用户提交的一批作业装到输入设备上(若输入设备是读卡机,则该批作业是一叠卡片),然后由监督程序控制送到磁带上。

之后,监督程序自动输入第一个作业的说明记录,若系统资源能满足其要求,则将该作业的程序、数据调入主存,并从磁带上调入所需要的编译程序。

编译程序将用户源程序翻译成目标代码,然后由连接装配程序把编译后的目标代码及所需的子程序装配成一个可执行的程序,接着启动执行。

数据库原理及应用教程第3版课后题答案

数据库原理及应用教程第3版课后题答案

第一章习题参考答案一、选择题1. C2. B3. D4. C5. D6. A7. A8. B9. D 10. B11. C 12. D 13. A 14. D 15. B16. C 17. D 18. A 19. D 20. A二、填空题1. 数据库系统阶段2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 一对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构第2章习题参考答案一、选择题1. A2. C3. C4. B5. B6. C7. B8. D9. C 10. A11. B 12. A 13. A 14. D 15. D二、填空题1. 选择(选取)2. 交3. 相容(或是同类关系)4. 并差笛卡尔积选择投影5. 并差交笛卡尔积6. 选择投影连接7. σf(R)8. 关系代数关系演算9. 属性10. 同质11. 参照完整性12. 系编号,系名称,电话办公地点13. 元组关系域关系14. 主键外部关系键15. R和S没有公共的属性第3章习题参考答案一、选择题1. B2. A3. C4. B5. C6. C7. B8. D9. A 10. D二、填空题结构化查询语言(Structured Query Language)数据查询、数据定义、数据操纵、数据控制外模式、模式、内模式数据库、事务日志NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束、CHECK 约束聚集索引、非聚集索引连接字段行数定义系统权限、对象权限基本表、视图12.(1)INSERT INTO S VALUES('990010','李国栋','男',19)(2)INSERT INTO S(No,Name) VALUES('990011', '王大友')(3)UPDATE S SET Name='陈平' WHERE No='990009'(4)DELETE FROM S WHERE No='990008'(5)DELETE FROM S WHERE Name LIKE '陈%'13.CHAR(8) NOT NULL14.o=o15.ALTER TABLE StudentADDSGrade CHAR(10)第4章习题参考答案一、选择题1. B2. B3. D4. B5. C6. D7. B8. D9. C 10. A二、填空题1. 超键(或超码)2. 正确完备3. 属性集X的闭包X + 函数依赖集F的闭包F +4. 平凡的函数依赖自反性5. {AD→C} φ6. 2NF 3NF BCNF7. 无损连接保持函数依赖8. AB BC BD9. B→φ B→B B→C B→BC10. B→C A→D D→C11. AB 1NF12. AD 3NF第5章习题参考答案一、选择题1. B2. B3. C4. A5. C6. D7. A8. C9. D 10. D11. B 12. B 13. A 14. D 15. A二、填空题安全性控制、完整性控制、并发性控制、数据库恢复数据对象、操作类型授权粒度、授权表中允许的登记项的范围原始数据(或明文)、不可直接识别的格式(或密文)、密文事务、原子性、一致性、隔离性、持久性丢失更新、污读、不可重读封锁、排它型封锁、共享封锁利用数据的冗余登记日志文件、数据转储事务故障、系统故障、介质故障完整性登录账号、用户账号public服务器、数据库第6章习题参考答案一、选择题1. B2. C3. C4. A5. C6. B7. C8. B9. D 10. C11. D 12. B 13. B 14. D二、填空题数据库的结构设计、数据库的行为设计新奥尔良法分析和设计阶段、实现和运行阶段需求分析概念结构设计自顶向下、自底向上属性冲突、命名冲突、结构冲突逻辑结构设计确定物理结构、评价物理结构数据库加载运行和维护物理数据字典需求分析载入第7章习题参考答案一、选择题1. B2.C3.B4.D5.A二、填空题局部变量、全局变量- -、/*……*/DECLARESQL、流程控制AFTER 触发器、INSTEAD OF 触发器插入表、删除表数据库备份、事务日志备份、差异备份、文件和文件组备份简单还原、完全还原、批日志还原硬盘、磁带、管道下面是古文鉴赏,不需要的朋友可以下载后编辑删除!!谢谢!!九歌·湘君屈原朗诵:路英君不行兮夷犹,蹇谁留兮中洲。

数据库第10、11章习题及答案 (1)

数据库第10、11章习题及答案 (1)

第10、11章练习题(数据库恢复技术及并发控制)一、选择题 1.( C )是DBMS 的基本单位,它是用户定义的一组逻辑一致的程序序列。

A .程序B .命令C .事务D .文件 2.事务的原子性是指( A ) 。

A .事务中包括的所有操作要么都做,要么都不做B .事务一旦提交,对数据库的改变是永久的C .一个事务内部的操作及使用的数据对并发的其他事务是隔离的D .事务必须是使数据库从一个一致性状态变到另一个一致性状态 3.事务的一致性是指( D )。

A .事务中包括的所有操作要么都做,要么都不做B .事务一旦提交,对数据为的改变是永久的C .一个事务内部的操作及使用的数据对并发的其他事务是隔离的D .事务必须是使数据库从一个一致性状态变到另一个一致性状态 4.事务的隔离性是指( C )。

A .事务中包括的所有操作要么都做,要么都不做B .事务一旦提交,对数据库的改变是永久的C .一个事务内部的操作及使用的数据对并发的其他事务是隔离的D .事务必须是使数据库从一个一致性状态变到另一个一致性状态 5.事务的持续性是指( B )。

A .事务中包括的所有操作要么都做,要么都不做B .事务一旦提交,对数据库的改变是永久的C .一个事力内部的操作及使用的数据对并发的其他事务是隔离的D .事务必须是使数据库从一个一致性状态变到另一个一致性状态6.若数据库中只包含成功事务提交的结果,则此数据库就称为处于( B )状态。

A .安全B .一致C .不安全D .不一致7.若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为( B )。

A .事务故障B .系统故障C .介质故障D .运行故障 8.若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为( C )。

A .事务故障B .系统故障C .介质故障D .运行故障 9.( B )用来记录对数据库中数据进行的每一次更新操作。

第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.并发性是指若干事件在______发生。

操作系统第四章课后题答案

操作系统第四章课后题答案

第四章1.为什么说多级反馈队列调度算法能较好地满足各类用户的需要(来自百度):答案一:多级反馈队列调度算法能较好地满足各种类型用户的需要。

对终端型作业用户而言,由于他们所提交的大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第1级队列所规定的时间片内完成,便可使终端型作业用户感到满意;对于短批处理作业用户而言,他们的作业开始时像终端型作业一样,如果仅在第1级队列中执行一个时间片即可完成,便可以获得与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;对于长批处理作业用户而言,它们的长作业将依次在第1,2,…,直到第n级队列中运行,然后再按时间片轮转方式运行,用户不必担心其作业长期得不到处理。

答案二:(惠州学院操作系统课后题)与答案一基本相似,可看做精简版。

答:(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。

(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。

对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。

(3)长批处理作业,它将依次在第1 ,2 ,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。

所以,多级反馈队列调度算法能满足多用户需求。

2.分别对以上两个进程集合,计算使用先来先服务(FCFS)、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i<1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。

  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无法再现前一次读取结果。

不可重复读包括三种情况:详见《概论》(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)。

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

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

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

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

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

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

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

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

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

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

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

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

—X锁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)顺序封锁法,预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。

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

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=0—Xlock A等待 Unlock AA=Y+2写回 A(=2) Slock AUnlock A 等待Y=A=2Unlock AXlock A,Xlock 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 A)A=Y**2写回 A(=16)Unlock A(5)若这3个事务都遵守两段锁协议,请给出一个产生死锁的调度。

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

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

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

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

相关文档
最新文档