数据库并发控制练习和答案计算机数据库_计算机-数据库.pdf
《数据库并发控制练习和答案计算机数据库_计算机-数据库.pdf》由会员分享,可在线阅读,更多相关《数据库并发控制练习和答案计算机数据库_计算机-数据库.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章 数据库并发控制 一、选择题 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 如果事务
2、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.两个都是 SELE
3、CT 9 在数据库系统中,死锁属于()。A.系统故障 B.事务故障 C.介质故障 D.程序故障 二、简答题 1.在数据库中为什么要并发控制?答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。(1)丢失修改(Lost Update)两个事务 T1 和 T2 读入同一数据
4、并修改,T2 提交的结果破坏了(覆盖了)T1 提交的结果,导致 T1的修改被丢失。(2)不可重复读(Non-Repeatable Read)不可重复读是指事务 T1 读取数据后,事务 T2 执行更新操作,使 T1 无法再现前一次读取结果。(3)读“脏”数据(Dirty Read)读“脏”数据是指事务 T1修改某一数据,并将其写回磁盘,事务 T2读取同一数据后,T1 由于某种原因被撤销,这时 T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则 T2读到的数据就为“脏”数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的并发控制技术是封锁技术。也可以用其他技术,
5、例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。3.什么是封锁?答:封锁就是事务 T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务 T就对该数据对象有了一定的控制,在事务 T释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。4.基本的封锁类型有几种?试述它们的含义。答:基本的封锁类型有两种:排它锁(Exclusive Locks,简称 X锁)和共享锁(Share Locks,简称 S 锁)。排它锁又称为写锁。若事务 T对数据对象 A加上 X锁,则只允许 T读取和修改 A,其他任何事务都不能再对 A 加任何类型的锁,直
6、到 T 释放 A上的锁。这就保证了其他事务在 T释放 A上的锁之前不能再读取和修改 A。共享锁又称为读锁。若事务 T对数据对象 A加上 S 锁,则事务 T可以读 A但不能修改 A,其他事务只能再对 A加 S 锁,而不能加 X锁,直到 T释放 A上的 S 锁。这就保证了其他事务可以读 A,但在 T释放 A上的 S 锁之前不能对 A做任何修改。5.什么是封锁协议?不同级别的封锁协议的主要区别是什么?答:在运用封锁技术对数据加锁时,要约定一些规则。例如,在运用 X锁和 S 锁对数据对象加锁时,要约定何时申请 X锁或 S 锁、何时释放封锁等。这些约定或者规则称为封锁协议(Locking Protoco
7、l)。对封锁方式约定不同的规则,就形成了各种不同的封锁协议。不同级别的封锁协议,例如概论中介绍的三级封锁协议,三级协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。一级封锁协议:事务 T在修改数据 R之前必须先对其加 X锁,直到事务结束才释放。二级封锁协议:一级封锁协议加上事务 T 在读取数据 R之前必须先对其加 S 锁,读完后即可释放 S 锁。三级封锁协议:一级封锁协议加上事务 T 在读取数据 R之前必须先对其加 S 锁,直到事务结束才释放。6.不同封锁协议与系统一致性级别的关系是什么?答:不同的封锁协议对应不同的一致性级别。一级封锁协议可防止丢失修改,
8、并保证事务 T是可恢复的。在一级封锁协议中,对读数据是不加 S 锁的,所以它不能保证可重复读和不读“脏”数据。二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据。在二级封锁协议中,由于读完数据后立即释放 S 锁,所以它不能保证可重复读。在三级封锁协议中,无论是读数据还是写数据都加长锁,即都要到事务结束时才释放安全性控制并发控制解决并发操作带来的数据不一致问题普遍采用技术封锁存取控制恢复协商下列不属于并发操作带来的问题是丢失修改不可重复读死锁脏读普遍采用方法来保证调度的正确性索引授权封锁日志事务在修改数据之前数据项上的排他锁则对只读不写只写不读既可读又可写不读也不写设事务和对数据库中地数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 并发 控制 练习 答案 计算机
限制150内