ImageVerifierCode 换一换
格式:PPT , 页数:18 ,大小:86.50KB ,
资源ID:946633      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-946633.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库原理.PPT)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

数据库原理.PPT

1、 数据库原理第 十一章 数据库并发控制数据库是可以共享的资源,即供多个用户使用。允许多个用户同时使用的数据库系统称为多用户数据库系统。为了充分利用系统资源,如 CPU, 内存等,应该允许多个事务并发执行。事务并发执行分为两种:o 交叉并发方式:并行事务的并行操作轮流交叉进行,如单处理机系统中的并行事务o 同时并发方式:在多处理机系统中,可以同时运行多个事务,实现多个事务真正的并行运行 11.1 并发控制概述并发操作可能带来数据的不一致性,包括三种情况: 丢失修改 不可重复读:修改,删除,插入 读 “脏 ”数据产生以上不一致性的主要原因是并发操作破坏了事务的隔离性,并发控制就是要用正确的方式调度

2、并发操作,使事务的执行不会相互干扰。但有时对数据库允许某些不一致性,如有些统计工作涉及数据量很大,这时读一些不正确的数据对统计精度影响不大,这时可以降低一致性的要求以减少系统开销。为了解决以上问题,主要采用的技术是给数据加锁。11.2 封锁一 定义:封锁就是对事务 T在对某个数据对象例如表,记录等操作之前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在事务 T释放它的锁之前,其它的事务不能更新此数据对象。二 类型: 排它锁( X锁):又称为写锁。如果事务 T对数据对象 加上 X锁,则只允许 T读取和修改 A, 其它任何事务都不能 再对 A加任何类型的锁,直到 T释放 A

3、上的锁。这就保证了其它事务在 T释放 A上的锁之前不能再读取和修改 A。 共享锁( S锁):又称读锁。若事务 T对数据对象 A加上S锁,则事务 T可以读取 A但不能修改 A, 其它事务只能对 A加 S锁而不能加 X锁,直到 T释放 A上的 S锁。这就保证了其它事务可以读 A, 但在 T释放 A上的 S锁之前不能修改 A。11.3 封锁协议一 定义对数据加锁时约定的一些规则称为封锁协议。二 分类v 一级封锁协议:事务 T在修改数据 R之前必须对其加 X锁,直到事务结束(包括 COMMIT和 ROLLBACK) 才释放。一级封锁协议可以解决丢失修改。v 二级封锁协议:一级封锁协议加上事务 T在读取

4、数据 R之前必须先对其加 S锁,读完后可立即释放 S锁。二级封锁协议不仅可以解决丢失修改,还可以解决读“脏数据 ”问题。v 三级封锁协议:一级封锁协议加上事务 T在读取数据 R之前必须先对其加 S锁,直到事务结束才释放。三级封锁协议不仅可以解决丢失修改和读 “脏数据 ”问题,还可以防止不可重复读。11.4 活锁和死锁一 活锁如果事务 T1封锁了数据 R, 接着事务 T2也请求封锁 R, 那么 T2只能等待。接着 T3也请求封锁 R, 当 T1释放了 R上的锁之后系统首先批准了 T3的请求, T2只能再次等待。然后 T4也请求封锁 R, 当 T3释放了 R上的锁之后系统又批准了 T4的请求, T

5、2仍然等待。这样 T2有可能永远等待而无法获得对 R加锁的权利,这就是活锁的情况。解决活锁的简单办法就是 “先来先服务 ”。二 死锁如果事务 T1封锁了数据 R1, T2封锁了数据 R2。 然后T1又请求封锁 R2, 但此时 R2已被封锁,于是 T1等待 T2释放 R2上的锁。接着 T2请求封锁 R1, 但此时 R1已被封锁,于是 T2等待 T1释放 R1上的锁。这样就出现了 T1等待 T2,而 T2又在等待 T1的局面, T1和 T2两个事务永远不可能结束,形成死锁。死锁的解决办法有两种:1. 预防 一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续下去。存在的问题:一次将以后要用到的数据全部加锁,扩大了封锁的范围,从而降低了系统的并发度。 数据库中的数据是不断变化的,很难精确地判断每个事务所要封锁的数据对象,为此只能加大封锁范围,将事务在执行中可能要封锁的对象都加上锁,这就进一步降低了并发度。 顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序进行封锁。存在的问题:数据库系统的数据对象很多且不断变化,要维护一个特定的封锁顺序很困难。很难预先确定某个事务要封锁哪些对象,因此也就很难按规定的顺序进行封锁了。 在数据库中预防这种方法用得并不多。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。