CH08管理多用户数据库.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第8章管理多用户数据库8.1并发控制8.2数据库安全8.3数据库恢复8.4Web服务器数据环境小结参考8.1并发控制并发和并行事务并发执行的问题资源加锁死锁和活锁并发调度的可串行性多粒度加锁1.并发和并行背景:CPU是共享资源;CPU速度远高于外设速度.如何提高CPU的利用率?并发:单CPU环境下,宏观上多个事务处于执行状态,微观上只有一个事务真正获得CPU并处于执行状态.并行:多CPU环境下,多个事务在不同CPU上执行.如何提高CPU利用率每个程序由输入(I),处理(P)和输出(O)构成.执行A和B两个程序需要的时间如下A:I(10),P(5),O(15),合计:30B:I(15),P(5),O(10),合计:302.事务并发执行的问题(1)丢失修改(2)不可重复读(3)读“脏”数据并发控制:用正确的方式调度并发操作,使一个事务的执行不受其它事务的干扰,从而避免数据的不一致性.(Isolation)并发控制的主要技术:加锁(Locking).(1)丢失修改丢失修改

(LostUpdate):两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失.飞机订票例子两个事务交叉执行(2)不可重复读不可重复读

(Non-RepeatableRead):事务T1读取数据后,事务T2执行更新操作(增,删,改),使T1无法再现前一次读取的结果.增加和删除引起的不可重复读,又称幻影现象.(3)读“脏”数据读“脏”数据

(DirtyRead):事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据与数据库中的数据不一致,则T2读到的数据为“脏”数据.3.资源加锁锁的使用过程申请锁?加锁?数据操作?释放锁基本的锁类型共享锁(Share):S锁,读锁,读数据前加S锁.排它锁(Exclusive):X锁,写锁,写数据前加X锁.相容矩阵加锁协议一级加锁协议二级加锁协议三级加锁协议相容矩阵说明最左一列:T1已经获得的某一数据对象的锁类型.横线(—):表示没有加锁.最上面一行:T2准备对同一数据对象加的锁类型.一级加锁协议一级加锁协议事务T在修改数据之前必须先对其加X锁,直到事务结束后释放.事务结束包括正常结束和非正常结束.一级加锁协议的能力可以防止丢失修改无法避免不可重复读和读“脏”数据一级加锁协议没有限制读操作.防止丢失修改二级加锁协议二级加锁协议一级加锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁.二级加锁协议的能力可以防止丢失修改和防止读“脏”数据.无法避免不可重复读.读完数据即可释放S锁.防止读“脏”数据三级加锁协议三级加锁协议一级加锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放.三级加锁协议的能力可防止丢失修改,读“脏”数据和不可重复读.防止不可重复读运用三级加锁协议防止不可重复读(续)4.死锁和活锁死锁:循环等待导致所有事务饿死.事务T1和T2均需要对数据R1和R2进行操作,T1对R1加锁,T2对R2加锁,T1等待T2释放R2,T2等待T1释放R1,由于两个事务都无法结束导致封锁无法释放.(P238)活锁:调度导致个别事务饿死.竞争调度方法导致活锁:事务T1,T2,T3对数据R操作,T1和T2总是在竞争中获胜,导致T3始终无法对数据进行操作.5.并发调度的可串行性可串行化调度多个事务的并发执行结果与这些事务的某一次序的串行执行结果相同.(保证数据一致性)可串行化调度和不可串行化调度可串行性是并发事务正确性的准则.两段加锁协议三级加锁协议解决三个并发事务执行的问题串行调度次序可能产生不同结果可串行化调度和不可串行化调度两段加锁协议事务必须分两个阶段对数据项加锁和解锁在对任何数据进行读,写之前,首先要申请并获得对该数据的锁;在释放一个锁之后,事务不再申请和获得任何其它锁.两段加锁协议是可串行化调度的充分条件,而不是必要条件.(时间戳法,乐观法)两段加锁协议不解决死锁问题.两段加锁协议不解决死锁问题6.多粒度加锁加锁粒度与并发度的关系加锁粒度:加锁的对象的大小(表,行,…)加锁粒度越小,并发度越高.多粒度加锁显式锁:直接加到数据对象上的锁.隐式锁:数据对象的上级对

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档