![点击分享此内容可以赚币 分享](/master/images/share_but.png)
数据库事务管理-.ppt
《数据库事务管理-.ppt》由会员分享,可在线阅读,更多相关《数据库事务管理-.ppt(76页珍藏版)》请在咨信网上搜索。
1、事事务管理管理1事务管理 l问题的引入的引入l事事务l并并发控制控制l数据数据库恢复恢复2问题的引入l多用多用户户同同时时操作数据操作数据库库l系系统统在在执执行用行用户户的的请请求求时时出出现现故障故障例如:例如:帐户A转帐给帐户B10000元。元。UPDATEYHZHSET余余额=余余额-10000WHERE帐号号=AUPDATEYHZHSET余余额=余余额+10000WHERE帐号号=B3 事事务的基本概念的基本概念l事事务(Transaction)l用用户定定义的一个的一个对数据数据库读写写操作序列操作序列l一个一个不可分割不可分割的工作的工作单位位l在关系数据在关系数据库中,事中,事
2、务可以是一条、一可以是一条、一组SQL语句,或整个程序。句,或整个程序。l事事务和程序的区和程序的区别?l程序包含多个事程序包含多个事务4 事事务的性的性质l原子性原子性(Atomicity)l事务中的操作要么都做,要么都不做(All or None)All or None)l一致性一致性(Consistency)l事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态l与原子性密切相关l隔离性隔离性(Isolation)l并发执行的各事务不能相互干扰l持持续性性/永久性永久性(Durability)l事务一旦提交,它对数据库的更新不再受后继操作或故障的影响DBMS中事中事务处理必理必
3、须保保证其其ACID特性,特性,这样才能保才能保证数据数据库中数中数据的安全和正确。据的安全和正确。5银行行转帐:从:从帐号号A中取出一万元,存入中取出一万元,存入帐号号B。l定定义一个事一个事务,该事事务包括两个操作包括两个操作l这两个操作要么全做,要么全不做两个操作要么全做,要么全不做l全做或者全不做,数据全做或者全不做,数据库都都处于一致性状于一致性状态。l如果只做一个操作,数据如果只做一个操作,数据库就就处于不一致性状于不一致性状态。B=B+1A=A-1BA 事事务的性的性质6T1的修改被的修改被T2覆盖了!覆盖了!读A=16AA-3写回写回A=13读A=16AA-1写回写回A=15T
4、2T1 事事务的性的性质7 事事务的基本概念的基本概念l事事务的开始和的开始和结束可以由用束可以由用户显式控制。式控制。lSQL定定义事事务的的语句句lBegin transactionBegin transaction(事事务开始开始)lCommit transaction Commit transaction(事事务提交,正常提交,正常结束,将更新束,将更新结果写入磁果写入磁盘)lRollback transactionRollback transaction(事事务回回滚,撤,撤销事事务中所有已完中所有已完成的更新成的更新)lSave transactionSave transactio
5、n(保存点,可以只撤消部分事保存点,可以只撤消部分事务)8 事事务的基本概念的基本概念l显式定式定义方式方式BEGINTRANSACTIONBEGINTRANSACTIONSQL语句句1SQL语句句1SQL语句句2SQL语句句2。COMMITROLLBACK9COMMIT事事务正常正常结束束提交提交事事务的所有操作(的所有操作(读+更新更新)事事务中所有中所有对数据数据库的更新的更新永久永久生效生效ROLLBACK事事务异常异常终止止l事事务运行的运行的过程中程中发生了故障,不能生了故障,不能继续执行,回行,回滚事事务的所有的所有更新更新操作操作l事事务回回滚到到开始开始时的状的状态 事事务的
6、基本概念的基本概念10事事务的基本概念的基本概念l隐含事含事务与自与自动提交提交ALTERINSERTCREATEDELETEDROPSELECTUPDATETRUNCATETABEL11例:例:删除除仓库“WH1”,并将并将职工工T表当中所有在表当中所有在“WH1”仓库中中职工工记录删除。除。事事务案例案例BEGINTRANSACTIONMYDELDELETEFROM仓库TWHERE仓库号号=WH1DELETEFROM职工工TWHERE仓库号号=WH1IFERROR0ROLLBACKTRANSACTIONMYDELELSECOMMITTRANSACTIONMYDEL12l恢复机制与并恢复机制
7、与并发控制机制的提出控制机制的提出l事务在运行过程中因某种故障被强行终止,数据库一致性被破坏,需进行恢复。l多个事务并行运行时,不同事务的各种操作交叉进行,为保证各事务的执行互不干扰,需进行并发控制。l事事务是恢复和并是恢复和并发控制的基本控制的基本单位位 事事务的基本概念的基本概念13l干干扰问题l解决干解决干扰封封锁l封封锁不当不当死死锁l封封锁与隔离与隔离级别并发控制14干扰问题l丢丢失更新失更新问题问题l未提交依未提交依赖赖(读读“脏脏”数据数据)问题问题l不一致分析不一致分析问题问题l幻象幻象读问题读问题15丢失更新问题l例:例:l旅客旅客A A来到来到A A售票售票处,要,要买一一
8、张1515日北京到上海的日北京到上海的1313次直次直达快速列达快速列车的的软卧卧车票,售票票,售票员A A(下称用下称用户A A)在在终端端A A查看剩余票信息;看剩余票信息;l几乎在同几乎在同时,旅客,旅客B B来到来到B B售票售票处,也要,也要买一一张1515日北京日北京到上海的到上海的1313次直达快速列次直达快速列车的的软卧卧车票,售票票,售票员B B(下称下称用用户B B)从从终端端B B查到了同到了同样的剩余票信息;的剩余票信息;l旅客旅客A A买了一了一张1515日日1313次次7 7车厢5 5号下号下铺的的软卧票,用卧票,用户A A更新剩余票信息并将它存入数据更新剩余票信息
9、并将它存入数据库;l这时用用户B B不知道用不知道用户A A已已经将将1515日日1313次次7 7车厢5 5号下号下铺的的软卧票卧票卖出,使旅客出,使旅客B B也也买了一了一张1515日日1313次次7 7车厢5 5号下号下铺的的软卧票,用卧票,用户B B更新剩余票信息并将它存入数据更新剩余票信息并将它存入数据库(重复了用(重复了用户A A已已经做做过的更新)。的更新)。总的效果:的效果:1515日日1313次次7 7车厢5 5号下号下铺的的软卧票卧票卖了两次。其原因是:允了两次。其原因是:允许了用了用户B B在在过时的的信息基信息基础上去更新数据上去更新数据库,而没有迫使他去,而没有迫使他
10、去看最新的信息。看最新的信息。16丢失更新问题 用用SQL术语描述描述丢失更新失更新问题17未提交依赖问题 l未提交依未提交依赖问题也称也称为读“脏”(DirtyRead)数据数据问题,查询一个已一个已经被其他事被其他事务更新、但尚未提交的元更新、但尚未提交的元组,将会引起未提交依,将会引起未提交依赖问题。18不一致分析不一致分析问题 l不一致分析不一致分析问题也称也称为不可重复不可重复读问题,很多,很多应用可能需要校用可能需要校验功能,功能,这时往往需要往往需要连续两次两次或多次或多次读数据数据进行校行校验和分析,和分析,结果由于其他果由于其他事事务的干的干扰,使得前后,使得前后结果不一致,
11、从而果不一致,从而产生生校校验错误(即不一致的(即不一致的分析)。分析)。19幻象幻象读问题l幻象幻象读问题与不一致分析与不一致分析问题有关,当事有关,当事务A读数据数据时,事,事务B在在对同一个关系同一个关系进行插入或行插入或删除操作,除操作,这时事事务A再再读同一条件的元同一条件的元组时,会会发现神秘地多出了一些元神秘地多出了一些元组或或丢失了一些元失了一些元组,把,把这种种现象称作幻象象称作幻象读。20可串行性l各各单个事个事务如能将数据如能将数据库从一个正确状从一个正确状态转变为另一个正确状另一个正确状态,则认为该事事务是正确的;是正确的;l按任何一个串行按任何一个串行顺序依次序依次执
12、行多个事行多个事务是正确是正确的。的。l事物交叉事物交叉过程是正确的,当且程是正确的,当且仅当其与串行当其与串行执行行过程等价,程等价,则事事务是可串行化的。是可串行化的。21可串行性例子:两个事例子:两个事务:初:初值:A=10,B=10。T1:SELECTAUPDATEA=A-5SELECTBUPDATEB=B+5T2:SELECTBUPDATEB=B-522可串行性T1:SELECTAUPDATEA=A-5SELECTBUPDATEB=B+5T2:SELECTBUPDATEB=B-523可串行性T1:SELECTAUPDATEA=A-5SELECTBUPDATEB=B+5T2:SELEC
13、TBUPDATEB=B-524可串行性T1:SELECTAUPDATEA=A-5SELECTBUPDATEB=B+5T2:SELECTBUPDATEB=B-525可串行性T1:SELECTAUPDATEA=A-5SELECTBUPDATEB=B+5T2:SELECTBUPDATEB=B-5不可串行化不可串行化26封锁 l封封锁的基本技的基本技术l封封锁机制机制lSQLServer中与封中与封锁有关的命令有关的命令l封封锁粒度粒度l意向意向锁27封封锁的基本技的基本技术l当需要当需要查询或更新数据或更新数据时,先,先对数据数据进行封行封锁,以避免来,以避免来自其他事自其他事务的干的干扰。针对不同
14、的干不同的干扰问题可以有不同的封可以有不同的封锁机制。机制。l以以丢失更新失更新问题为例,例,实施封施封锁的基本思想是:当一个用的基本思想是:当一个用户对一个表或一个表或记录进行更新行更新时,封,封锁该表或表或记录,使其他,使其他用用户不能在同一不能在同一时刻更新相同的表或刻更新相同的表或记录,迫使其他用,迫使其他用户在更新后的基在更新后的基础上(而不是在更新前的基上(而不是在更新前的基础上)再上)再实施另施另外的更新操作。外的更新操作。28封封锁的基本技的基本技术实施封施封锁以后的事件以后的事件进程程29封封锁机制机制 l共享封共享封锁l独占封独占封锁l更新封更新封锁 有些封有些封锁在在执行
15、完相行完相应操作后就自操作后就自动释放封放封锁,有些,有些封封锁则保持到事保持到事务结束(提交或撤消)束(提交或撤消)时才才释放(无放(无论如如何,所有的封何,所有的封锁都会在事都会在事务结束束时自自动释放)。放)。30共享封共享封锁 l共享封共享封锁是是为读操作操作设置的一种封置的一种封锁,所以也,所以也称作称作读封封锁,或,或简称称S锁,目的是想,目的是想读到一到一组不不变的数据,也就是在的数据,也就是在读数据的数据的过程中,不允程中,不允许其他用其他用户对该数据数据进行任何修改操作。行任何修改操作。这种封种封锁可以保可以保证最大的并最大的并发性,任何数量的用性,任何数量的用户都都可以同可
16、以同时对同同样的数据施加的数据施加这种共享种共享锁。已。已经实施共享施共享锁的表拒的表拒绝来自其他事来自其他事务的独占封的独占封锁和更新封和更新封锁。31独占封独占封锁 l独占封独占封锁也叫排他封也叫排他封锁,它是,它是为修改操作修改操作设置置的一种封的一种封锁,也称,也称为写封写封锁,或,或简称称为X锁,这是最是最严格的一格的一类封封锁。当需要。当需要对表表实施插入、施插入、删除或修改操作除或修改操作时,应该使用独占封使用独占封锁。已。已经实施独占封施独占封锁的表,拒的表,拒绝来自其他用来自其他用户的任何的任何封封锁。32更新封更新封锁 l当需要当需要对一个一个记录或一或一组记录进行更新行更
17、新时(只(只是修改,不包括插入和是修改,不包括插入和删除)使用更新封除)使用更新封锁,该封封锁的目的是防止其他用的目的是防止其他用户在同一在同一时刻修改刻修改同一同一记录。已。已经实施更新封施更新封锁的的记录,拒,拒绝来来自其他用自其他用户的任何封的任何封锁。33SQLServer中与封中与封锁有关的命令有关的命令 lSQLServer的封的封锁操作是在相关操作是在相关语句的句的“WITH()”子句中完成的,子句中完成的,该短短语可以在可以在SELECT、INSERT、UPDATE和和DELETE等等语句中指定表句中指定表级锁定的方式和范定的方式和范围。34SQLServer中与封中与封锁有关
18、的命令有关的命令l常用的封常用的封锁关关键词有:有:lTABLOCKTABLOCK:对表施行共享封表施行共享封锁,在,在读完数据后立刻完数据后立刻释放放封封锁,此,此类封封锁可以避免可以避免读“脏”数据,但不具有可数据,但不具有可重复重复读的特性。的特性。lHOLDLOCKHOLDLOCK:与与TABLOCKTABLOCK一起使用,可将共享一起使用,可将共享锁保留到事保留到事务完成,而不是在完成,而不是在读完数据后立即完数据后立即释放放锁,这样可以可以保保证数据的可重复独特性。数据的可重复独特性。35SQLServer中与封中与封锁有关的命令有关的命令lNOLOCKNOLOCK:不不进行封行封
19、锁,此关,此关键词仅应用于用于SELECTSELECT语句,句,这样可能会可能会读取未提交事取未提交事务的数据,即有可能的数据,即有可能发生生“脏”读。lTABLOCKXTABLOCKX:对表表实施独占封施独占封锁。lUPDLOCKUPDLOCK:对表中的指定元表中的指定元组实施更新封施更新封锁;这时其他其他事事务可以可以对同一表中的其他元同一表中的其他元组也也实施更新封施更新封锁,但是,但是不允不允许对表表实施共享封施共享封锁和独占封和独占封锁。36SQLServer中与封中与封锁有关的命令有关的命令R(日期日期,车次次,座座别,座位号座位号,状状态)状状态初初值为:NULLDECLAREd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 事务管理
![提示](https://www.zixin.com.cn/images/bang_tan.gif)
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。