欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年数据库并发控制练习和答案 .pdf

    • 资源ID:39724933       资源大小:51.01KB        全文页数:4页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年数据库并发控制练习和答案 .pdf

    第八章数据库并发控制一、选择题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 页,共 4 页 -(1)丢失修改(Lost Update)两个事务T1 和 T2 读入同一数据并修改,T2 提交的结果破坏了(覆盖了)T1 提交的结果,导致T1 的修改被丢失。(2)不可重复读(Non-Repeatable Read)不可重复读是指事务T1 读取数据后,事务 T2 执行更新操作,使 T1 无法再现前一次读取结果。(3)读“脏”数据(Dirty Read)读“脏”数据是指事务T1 修改某一数据,并将其写回磁盘,事务T2 读取同一数据后,T1 由于某种原因被撤销,这时T1 已修改过的数据恢复原值,T2 读到的数据就与数据库中的数据不一致,则T2 读到的数据就为“脏”数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的并发控制技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。3.什么是封锁?答:封锁就是事务T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T 就对该数据对象有了一定的控制,在事务T 释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。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.什么是封锁协议?不同级别的封锁协议的主要区别是什么?答:在运用封锁技术对数据加锁时,要约定一些规则。例如,在运用X 锁和 S 锁对数据对象加锁时,要约定何时申请X 锁或 S 锁、何时释放封锁等。这些约定或者规则称为封锁协议(Locking Protocol)。对封锁方式约定不同的规则,就形成了各种不同的封锁协议。不同级别的封锁协议,例如概论 中介绍的三级封锁协议,三级协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。一级封锁协议:事务T 在修改数据R 之前必须先对其加X 锁,直到事务结束才释放。二级封锁协议:一级封锁协议加上事务T 在读取数据R 之前必须先对其加S 锁,读完后即可释放S 锁。三级封锁协议:一级封锁协议加上事务T 在读取数据R 之前必须先对其加S 锁,直到事务结束才释放。6.不同封锁协议与系统一致性级别的关系是什么?答:不同的封锁协议对应不同的一致性级别。一级封锁协议可防止丢失修改,并保证事务T 是可恢复的。在一级封锁协议中,对读数据是不加S 锁的,所以它不能保证可重复读和不读“脏”数据。二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据。在二级封锁协议中,由于读完数据后立即释放S 锁,所以它不能保证可重复读。在三级封锁协议中,无论是读数据还是写数据都加长锁,即都要到事务结束时才释放名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -封锁。所以三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。7.试述活锁的产生原因和解决方法。答:活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。8.请给出预防死锁的若干方法。答:在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,从而出现死等待。防止死锁的发生其实就是要破坏产生死锁的条件。预防死锁通常有两种方法:(1)一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。(2)顺序封锁法预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。不过,预防死锁的策略不大适合数据库系统的特点。9.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?答:数据库系统一般采用允许死锁发生,DBMS 检测到死锁后加以解除的方法。DBMS 中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。若时限设置得太长,又不能及时发现死锁发生。DBMS并发控制子系统检测到死锁后,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。10.什么样的并发调度是正确的调度?答:可串行化(Serializable)的调度是正确的调度。可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调度。11.试述两段锁协议的概念。答:两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。“两段”的含义是,事务分为两个阶段:第一阶段是获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务释放已经获得的锁,但是不能再申请任何锁。12.为什么要引进意向锁?意向锁的含义是什么?名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -答:引进意向锁是为了提高封锁子系统的效率。该封锁子系统支持多种封锁粒度。原因是:在多粒度封锁方法中一个数据对象可能以两种方式加锁显式封锁和隐式封锁。因此系统在对某一数据对象加锁时不仅要检查该数据对象上有无(显式和隐式)封锁与之冲突;还要检查其所有上级结点和所有下级结点,看申请的封锁是否与这些结点上的(显式和隐式)封锁冲突;显然,这样的检查方法效率很低。为此引进了意向锁。意向锁的含义是:对任一结点加锁时,必须先对它的上层结点加意向锁。例如事务T 要对某个元组加X 锁,则首先要对关系和数据库加IX锁。换言之,对关系和数据库加IX 锁,表示它的后裔结点某个元组拟(意向)加X 锁。引进意向锁后,系统对某一数据对象加锁时不必逐个检查与下一级结点的封锁冲突了。例如,事务T 要对关系 R 加 X 锁时,系统只要检查根结点数据库和R 本身是否已加了不相容的锁(如发现已经加了IX,则与 X 冲突),而不再需要搜索和检查R 中的每一个元组是否加了 X 锁或 S 锁。13.试述常用的意向锁:IS锁,IX锁,SIX锁,给出这些锁的相容矩阵。答:IS 锁如果对一个数据对象加IS 锁,表示它的后裔结点拟(意向)加S 锁。例如,要对某个元组加 S 锁,则要首先对关系和数据库加IS 锁IX 锁如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)加 X 锁。例如,要对某个元组加 X 锁,则要首先对关系和数据库加IX 锁。SIX锁如果对一个数据对象加SIX锁,表示对它加S 锁,再加IX 锁,即 SIX=S+IX。相容矩阵(略)14.理解并解释下列术语的含义:封锁,活锁,死锁,排它锁,共享锁,并发事务的调度,可串行化的调度,两段锁协议。答:(略,已经在上面有关习题中解答)*25.试述你了解的某一个实际的DBMS 产品的并发控制机制。答:(略,参见概论第8 节,简单介绍了有关Oracle的并发控制机制。)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -

    注意事项

    本文(2022年数据库并发控制练习和答案 .pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开