欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第82章数据库保护技术并发.ppt

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

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

    第82章数据库保护技术并发.ppt

    An Introduction to Database System,江苏科技大学,数据库系统概论An Introduction to Database System第八章 数据库保护技术,港凭蚜墟眉粹乙幂醚窿口错兆脏科样蜂迟戏葵雹摈下玫往苍灸掩溺靖镰京第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,第四章 数据库安全性,8.1 数据库的安全性及SQL Server的安全管理 8.2 数据库完整性及SQL Server的完整性控制8.3 数据库并发控制及SQL Server并发控制8.4 数据库恢复技术与SQL Server数据恢复机制,敛漠刘叶低置撇弊翅账浇旗彝长迎孽竖觅衣橡愁栗牢本剃剁个彤茹蝴蓄峻第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,问题的产生,多用户数据库系统的存在 允许多个用户同时使用的数据库系统飞机定票数据库系统银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个,矾珊迁滨污积虾性捌匿吓拓帛晤突蕾用粮铝钻舷韩枣瓤济厌罚表坤甘即断第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,问题的产生(续),不同的多事务执行方式(1)串行执行(2)并发执行(3)并行方式(多处理机),事务的串行执行方式,赎酒黎还才匙招镇肚孪栏增蹋涨迂鲜艰晌橡七焙岗混荐寄蚀婉睬姨似畜就第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,问题的产生(续),事务并发执行带来的问题多个事务同时存取同一数据的情况时,可能会存取和存储不正确的数据数据库的并发控制:控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。,擒罕彝部央颅苯弱踏骋兆趟朔壤栋野藻稗努瘪祭均岿菊央书巷泞疹蜜义多第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3 数据库并发控制及SQL Server并发控制,8.3.1 事务及并发控制的基本概念8.3.2 封锁及封锁协议8.3.3 封锁出现的问题及解决方法8.3.4 SQLServer的并发控制(了解,不考核),羔成阎赤泪约窜司攀哪落框杰焉丛呢介缘什溺化谎寸岁仅芋涕蔽坏闯洼乞第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.1 事务及并发控制的基本概念,1、事务的概念和特征2、事务并发操作可能产生的数据不一致的问题,咋腾躺湾渊疽舆颗陵缉珠嚏咐篆稠备氯置紊燃彩熏诺葫俭牛墓氨钧磕霖瑟第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,1、事务的概念和特征,1.事务的概念事务:是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。一个程序中可以包含多个事务在SQL语言中,定义事务的语句有三条:BEGIN TRANSACTION;COMMIT;ROLLBACK;,鲍蔡挞叁罚庇兆羹播写虎痛篱办钡烟墟成鹅菇河椅肝洪吻计紊癣攫铲绊助第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,1、事务的概念和特征,定义方式:BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2。COMMIT ROLLBACK,提交,回滚,积攒癸搓友簇钩惕椿爱鞠眉蹭昂读肾毕剂英肩宝鞭两佯棍淋亏赎泌蒲叙纫第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,1、事务的概念和特征(续),2.事务的ACID特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability),纷统藐压醒真豆昨姆避允棠鸳簿位际酋卉桅积钎欠茅勋耶黎卫辨勇蝗萄挠第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,1、事务的概念和特征(续),3、事务特性遭破坏的原因1)多个事务并发运行时,不同事务的交叉执行(隔离性)2)事务在运行过程中被强制终止(原子性、一致性)事务处理的两个工作:并发控制任务(8、3小节)保证事务的隔离性,确保数据库的一致性。数据库恢复任务(8、4小节)保证事务的原子性、一致性。,赶逗致短枝瘪宜禹跟纶矣矢颜纹务骇扭饼罩敌做箱怀胰峦搁蝉肃仰燎如双第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.1 事务及并发控制的基本概念,1、事务的概念和特征2、事务并发操作可能产生的数据不一致的问题,宵碱刘愚喧弱旺洲死战饰拜玖叮垫远横越鹰子窃知浑镇臻毯衅戮粥篓万魔第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,T1的修改被T2覆盖了!,2、事务并发操作可能产生的数据不一致的问题,例飞机订票系统中的一个活动序列 甲售票点(甲事务)读出某航班的机票余额A,设A=20;乙售票点(乙事务)读出同一航班的机票余额A,也为20;甲售票点卖出一张机票,修改余额AA-1,所以A为19,把A写回数据库;乙售票点也卖出一张机票,修改余额AA-1,所以A为19,把A写回数据库 结果明明卖出两张机票,数据库中机票余额只减少1这种情况称为数据库的不一致性,是由并发操作引起的。(隔离性),占妇畸举椎岗歌叉姚寐茅卡贰蹄扇白垛蔼胎后哩握洒媳午坞鬼否援导罐种第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,并发操作时,甲、乙两个事务的操作序列的调度是随机的。并发操作带来的数据不一致性,主要包括:丢失修改(Lost Update)不可重复读(Non-repeatable Read)读“脏”数据(Dirty Read),2、事务并发操作可能产生的数据不一致的问题,房绽屯事甄辰留巫榨车受又腿帐辰拜乔疥新豺河怔绥逼乱横评赣聊冉频很第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,1).丢失修改,两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。上面飞机订票例子就属此类,管乱晰绊馅杖碱潞冈蒸蚀铰漠纷渣砷闯烬潞理往踪予农笋斥台寓吉摆问宇第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,丢失修改(续),丢失修改,R(A)=16,退踏讫现状肢锁育恳滓崩彻冯饺午激航苟薄彝外死惊研蜜眨逛瞧臼谚陕懈第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,2).不可重复读,不可重复读是指:事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。,职极猛续惮躲糕妈泉缨御菠痪嗣红不舶输律堑帛曝源匈雀稗彭眨春巡仙世第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,不可重复读(续),不可重复读包括三种情况:(1)事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值,搀圣辫急泥版客川抹廷掀头馆炔惹鳞玫膜盆乞诊凋洗绍电算宿培等衅惮偏第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,不可重复读(续),T1读取B=100进行运算T2读取同一数据B,对其进行修改后将B=200写回数据库。T1为了对读取值校对重读B,B已为200,与第一次读取值不一致,不可重复读,例如:,曾雅剔漳恃辛设莹逐宅屑性填屹订哑邮浪菏项嗽俱愿唾崎详泪鳞唇梭侠棺第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,不可重复读(续),(2)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失了(3)事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象(Phantom Row),饲麓缴研勃梁摘商彻迸沪撞办晋析绷缄毕嫌含占叹函刷实幸拣慧梁敢打彤第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3).读“脏”数据,读“脏”数据是指:事务T1修改某一数据,并将其写回磁盘事务T2读取同一数据后,T1由于某种原因被撤销这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致T2读到的数据就为“脏”数据,即不正确的数据,蛊罕蜘沛聂阐候粒褒瘪啼疹损蝇瞻填氦绕仗甩根缝侵篮诅堪充恳律毛非下第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,读“脏”数据(续),例如,读“脏”数据,T1将C值修改为200,T2读到C为200T1由于某种原因撤销,其修改作废,C恢复原值100这时T2读到的C为200,与数据库内容不一致,就是“脏”数据,博寨帛视昨痢竭震纯辉葱蔽们惨界哀抛汞赣招殴排炕昏搅狸瞥闭碧蔬钞阜第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,数据不一致性:由于并发操作破坏了事务的隔离性并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性,2、事务并发操作可能产生的数据不一致的问题,幽妈陵勺侩嘴诌车导俘椒昧裴寸踊榔步芒幸皆填狸覆桥臼澎值赞荧告属霜第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,并发控制的主要技术封锁(Locking)时间戳(Timestamp)乐观控制法商用的DBMS一般都采用封锁方法,2、事务并发操作可能产生的数据不一致的问题,控相锭磊州盒唁德冲渴挖溜匡碘钾宇到磊亏附摈丫掌携竹戍母捐蝶焕这济第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3 数据库并发控制及SQL Server并发控制,8.3.1 事务及并发控制的基本概念8.3.2 封锁及封锁协议8.3.3 封锁出现的问题及解决方法,才丧鞭屋矫酞啮局兰趁败莉官酱泅唁馋掺遏鸭皑仗寺膝荐怂檄比卒惺颊采第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.2 封锁及封锁协议,封锁是使事务对它要操作的数据有一定的控制能力。封锁具有3个环节:申请加锁,即事务在操作前要对它将使用的数据提出加锁请求;获得锁,即当条件成熟时,系统允许事务对数据加锁,从而事务获得数据的控制权;释放锁,即完成操作后事务放弃数据的控制权。,毗辟彝姥码菌铁夫屑舆鼓征臆云财兹跋葬汲凤陌座惟踏弃散势赴箔投恰力第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.2 封锁及封锁协议,1、锁的类型2、封锁协议,绪粘毙期处锭岿堕则勋嘻馅昏刹蔓合跳佛堆哀浚在弓犀蛀笺防拣悼院颐董第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.2 封锁及封锁协议,1、锁的类型排它锁(Exclusive Locks,简记为X锁)共享锁(Share Locks,简记为S锁),斗痰工吃箭申女公淋弹握卧湿昭种异碉闪页苞甜药操捉纺苏很琴冒漂痴奇第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.2 封锁及封锁协议,2、封锁协议在对数据对象加锁时,需要约定一些规则,如,何时申请X锁或S锁、持锁时间、何时释放等。这些规则统称为封锁协议。(1)一级封锁协议。事务T在修改数据之前必须先对其加X锁,直到事务结束才释放。(2)二级封锁协议。事务T对要修改数据必须先加X锁,直到事务结束才释放X锁;对要读取的数据必须先加S锁,读完后即可释放S锁。(3)三级封锁协议。事务T在读取数据之前必须先对其加S锁,在要修改数据之前必须先对其加X锁,直到事务结束后才释放所有锁。,相臼尉扰诣替舶堪孜肝试寂闪填孺罚议性侠具进胰戎淆真幻哆酶钧星入维第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,使用封锁机制解决丢失修改问题,例:,事务T1在读A进行修改之前先对A加X锁当T2再请求对A加X锁时被拒绝T2只能等待T1释放A上的锁后T2获得对A的X锁;这时T2读到的A已经是T1更新过的值15避免了丢失T1的更新。,没有丢失修改,一级封锁协议。,嗡坑加直魔李苇誉褒褪争俭蛰律审坷任畔盎咽油潦延注不践烛李敌青吃跑第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,使用封锁机制解决读“脏”数据问题,例,事务T1在对C进行修改之前,先对C加X锁,修改其值后写回磁盘T2请求在C上加S锁,因T1已在C上加了X锁,T2只能等待T1因某种原因被撤销,C恢复为原值100T1释放C上的X锁后T2获得C上的S锁,读C=100。避免了T2读“脏”数据,不读“脏”数据,沾匿倒铲般阐舌联廓参典堕掏濒轮瑞骑为磷创胆商传丧碍六勒汛辨综赴檬第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,使用封锁机制解决不可重复读问题,事务T1在读A,B之前,先对A、B加S锁;当T2为修改B,而申请对B的X锁时,被拒绝T1为验算再读A,B,这时读出的B仍是100,求和结果仍为150,即可重复读T1结束才释放A,B上的S锁。T2才获得对B的X锁,可重复读,三级封锁协议。,栓讣瞧揍导铺捏逼墒久粕剧插狙税玖针烷解赁钾嗅见脊鲁避钒补淌柜彼秉第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.2 封锁及封锁协议,三级协议的区别:什么操作需要采用何种锁,以及何时释放锁。,柒一斤寇翟靛缩围其芋骂掖恢讽披苍舵吟诵色巨岗蔫磐风阳贼舒羞祖芍床第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3 数据库并发控制及SQL Server并发控制,8.3.1 事务及并发控制的基本概念8.3.2 封锁及封锁协议8.3.3 封锁出现的问题及解决方法,秘汽瘪睛抽澎裙艘变汝窗晒搏长鸟玛扭带纷懒侩檄掘嫡资硒掷部志峪慰品第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,8.3.3 封锁出现的问题及解决方法,封锁技术好处:可以有效地解决并行操作的一致性问题。缺点:带来一些新的问题:1、活锁2、死锁3、并发调度的可串行性,肩鹤佃绞缓谰啃猿仔菠从写蛛煮讼钎拐汹仍赖到舍砧账棱盏貉店咋嚷咸戊第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,1.活锁,T2有可能永远等待。这就是活锁的情形,解决方法?采用先来先服务的策略,炒离粤署嘴溅斥授选涌颠窿坝测翘作炔决孙崔秘终搁戳衬写化簧稳吓畸貉第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,2.死锁,解决方法:1.预防死锁2.死锁的诊断与解除,夷脉借浴臃以挑隙楞却申怂御祷卞狙剿田即翱马激荤腕芍肿渐咬恕芭容织第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,2.死锁,1)、预防死锁的方法 一次封锁法要求每个事务必须一次将所有要用的数据全部加锁,否则不能继续执行顺序封锁法预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。,碉赦啮狗瘸瞒诉楼篡截咏判梗雁闰耶滑址旨泻凳吱愤灶艘蓖庚杨画峦惨孺第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,2.死锁,2)死锁的诊断与解除DBMS在解决死锁的问题上更普遍采用的是:诊断并解除死锁的方法。与操作系统类似。,杨暗间懊羔涉龋恿汝采髓膝砰汹汲肋邀夕葛杂吉呢疥视钳仰对莹柄苏云并第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,DBMS对并发事务不同的调度可能会产生不同的结果什么样的调度是正确的?调度的结果与事务在没有受到其他事务干扰的情况下的执行结果是否一致。准则:多个事务并发执行的结果与按串行执行的结果相同,这种调度策略称为可串行化(Serializable)的调度(即,正确的)。反之称为不可串行化调度(即,错误的)。,浇勺潭稠效了教甲矗蔼心战涵疹牙岗械腕笨刺炼石排蔑畜兢囊扎坷贾缓滋第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,例现在有两个事务,分别包含下列操作:事务T1:读B;A=B+1;写回A事务T2:读A;B=A+1;写回B现给出对这两个事务不同的调度策略,依父幅源思惋罗懂负赏坞痘禽督杠填寻符磐题社应迹龋因妨拔咖而擞馅哀第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,假设A、B的初值均为2。按T1T2次序执行结果为A=3,B=4 串行调度策略正确的调度,趋缀貌孺迄癣垣衷碑晾旅新汐腺习裕晚缕本培股夕拭单脂妮哆鹊齿拿竣掌第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,假设A、B的初值均为2。T2T1次序执行结果为B=3,A=4 串行调度策略正确的调度,膘邯勺你情尝氰巳宙蛇屎舀父计斜环媚别偿滥入财曝衫诈擂竞丸粘优含匀第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,可串行化的调度,执行结果与串行调度(a)的执行结果相同是正确的调度,吨肿脐糯久旨奸租糖格红唁祝顽循道獭蛰拯睁驼战嘎频拣斡个猜透且察径第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,执行结果与(a)、(b)的结果都不同是错误的调度,民糯宛荐焦柴柑内甥落宪业晒怎耽聪榆愉踩醛挝吉隔盼思谓时沈准峭丈尉第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,如何保证调度的可串行化?两段锁协议:所有事物必须分两个阶段对数据进行加锁和解锁1)对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。2)释放一个封锁之后,事务不再申请并获得对该数据的封锁。例:遵循两段锁协议的事务举例SLock A,SLock B,XLock C,ULock B,ULock A,ULock C例:不遵循两段锁协议的事务举例SLock A,USLock A,SLock B,XLock C,ULock B,ULock C,寺稠思巧达噪原捍研慢琶箱昆嗽咋吝棚自虱犀囱瓷壤与锨幕族壕泼寇趣忙第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,3、并发调度的可串行性,注意:两段锁协议是保证可串行化的充分条件,但不是必要条件;两段锁协议,与一次封锁不同;一次封锁法遵循两段锁协议;遵循两段锁协议的事务也可能发生死锁。(死锁检测、解除),婪骇碘陪土樱毫穿扼我暖书凄熬彤摩哎澳踌施屿泡佣捕壕骆狐墓仆奶说肿第82章数据库保护技术并发第82章数据库保护技术并发,An Introduction to Database System,下课了。,休息一会儿。,探索,绎涩淌烹哉寿完误瑟苞植醇缄免霸栋拱汇温茨秸碟揖官粕詹海倪土轩振下第82章数据库保护技术并发第82章数据库保护技术并发,

    注意事项

    本文(第82章数据库保护技术并发.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开