数据库事务管理 课件.ppt
《数据库事务管理 课件.ppt》由会员分享,可在线阅读,更多相关《数据库事务管理 课件.ppt(76页珍藏版)》请在三一办公上搜索。
1、1,事务管理,2,事务管理,问题的引入 事务 并发控制 数据库恢复,3,问题的引入,多用户同时操作数据库系统在执行用户的请求时出现故障,例如:帐户A转帐给帐户B10000元。,UPDATE YHZH SET 余额=余额-10000 WHERE 帐号=AUPDATE YHZH SET 余额=余额+10000 WHERE 帐号=B,4,事务的基本概念,事务(Transaction)用户定义的一个对数据库读写操作序列一个不可分割的工作单位在关系数据库中,事务可以是一条、一组SQL语句,或整个程序。事务和程序的区别?程序包含多个事务,5,事务的性质,原子性(Atomicity)事务中的操作要么都做,要
2、么都不做(All or None)一致性(Consistency)事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态与原子性密切相关隔离性(Isolation)并发执行的各事务不能相互干扰持续性/永久性(Durability)事务一旦提交,它对数据库的更新不再受后继操作或故障的影响 DBMS中事务处理必须保证其ACID特性,这样才能保证数据库中数据的安全和正确。,6,银行转帐:从帐号A中取出一万元,存入帐号B。定义一个事务,该事务包括两个操作这两个操作要么全做,要么全不做全做或者全不做,数据库都处于一致性状态。如果只做一个操作,数据库就处于不一致性状态。,事务的性质,7,T1的修改
3、被T2覆盖了!,事务的性质,8,事务的基本概念,事务的开始和结束可以由用户显式控制。SQL定义事务的语句Begin transaction(事务开始)Commit transaction(事务提交,正常结束,将更新结果写入磁盘)Rollback transaction(事务回滚,撤销事务中所有已完成的更新)Save transaction(保存点,可以只撤消部分事务),9,事务的基本概念,显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2。COMMIT ROLLBACK,10,COMMIT事务正常
4、结束 提交事务的所有操作(读+更新)事务中所有对数据库的更新永久生效ROLLBACK事务异常终止事务运行的过程中发生了故障,不能继续执行,回滚事务的所有更新操作事务回滚到开始时的状态,事务的基本概念,11,事务的基本概念,隐含事务与自动提交 ALTER INSERT CREATE DELETE DROP SELECT UPDATE TRUNCATE TABEL,12,例:删除仓库“WH1”,并将职工T表当中所有在“WH1”仓库中职工记录删除。,事务案例,BEGIN TRANSACTION MYDELDELETE FROM 仓库TWHERE 仓库号=WH1DELETE FROM 职工TWHERE
5、 仓库号=WH1IF ERROR0ROLLBACK TRANSACTION MYDELELSECOMMIT TRANSACTION MYDEL,13,恢复机制与并发控制机制的提出事务在运行过程中因某种故障被强行终止,数据库一致性被破坏,需进行恢复。多个事务并行运行时,不同事务的各种操作交叉进行,为保证各事务的执行互不干扰,需进行并发控制。事务是恢复和并发控制的基本单位,事务的基本概念,14,干扰问题 解决干扰封锁 封锁不当死锁 封锁与隔离级别,并发控制,15,干扰问题,丢失更新问题未提交依赖(读“脏”数据)问题不一致分析问题幻象读问题,16,丢失更新问题,例:旅客A来到A售票处,要买一张15日
6、北京到上海的13次直达快速列车的软卧车票,售票员A(下称用户A)在终端A查看剩余票信息;几乎在同时,旅客B来到B售票处,也要买一张15日北京到上海的13次直达快速列车的软卧车票,售票员B(下称用户B)从终端B查到了同样的剩余票信息;旅客A买了一张15日13次7车厢5号下铺的软卧票,用户A更新剩余票信息并将它存入数据库;这时用户B不知道用户A已经将15日13次7车厢5号下铺的软卧票卖出,使旅客B也买了一张15日13次7车厢5号下铺的软卧票,用户B更新剩余票信息并将它存入数据库(重复了用户A已经做过的更新)。,总的效果:15日13次7车厢5号下铺的软卧票卖了两次。其原因是:允许了用户B在过时的信息
7、基础上去更新数据库,而没有迫使他去看最新的信息。,17,丢失更新问题,用SQL术语描述丢失更新问题,18,未提交依赖问题,未提交依赖问题也称为读“脏”(Dirty Read)数据问题,查询一个已经被其他事务更新、但尚未提交的元组,将会引起未提交依赖问题。,19,不一致分析问题,不一致分析问题也称为不可重复读问题,很多应用可能需要校验功能,这时往往需要连续两次或多次读数据进行校验和分析,结果由于其他事务的干扰,使得前后结果不一致,从而产生校验错误(即不一致的分析)。,20,幻象读问题,幻象读问题与不一致分析问题有关,当事务A读数据时,事务B在对同一个关系进行插入或删除操作,这时事务A再读同一条件
8、的元组时,会发现神秘地多出了一些元组或丢失了一些元组,把这种现象称作幻象读。,21,可串行性,各单个事务如能将数据库从一个正确状态转变为另一个正确状态,则认为该事务是正确的;按任何一个串行顺序依次执行多个事务是正确的。事物交叉过程是正确的,当且仅当其与串行执行过程等价,则事务是可串行化的。,22,可串行性,例子:两个事务:初值:A=10,B=10。,T1:SELECT A UPDATE A=A-5 SELECT B UPDATE B=B+5,T2:SELECT B UPDATE B=B-5,23,可串行性,T1:SELECT A UPDATE A=A-5 SELECT B UPDATE B=B
9、+5,T2:SELECT B UPDATE B=B-5,24,可串行性,T1:SELECT A UPDATE A=A-5 SELECT B UPDATE B=B+5,T2:SELECT B UPDATE B=B-5,25,可串行性,T1:SELECT AUPDATE A=A-5SELECT BUPDATE B=B+5,T2:SELECT BUPDATE B=B-5,26,可串行性,T1:SELECT AUPDATE A=A-5SELECT BUPDATE B=B+5,T2:SELECT BUPDATE B=B-5,不可串行化,27,封锁,封锁的基本技术 封锁机制 SQL Server中与封锁有
10、关的命令 封锁粒度 意向锁,28,封锁的基本技术,当需要查询或更新数据时,先对数据进行封锁,以避免来自其他事务的干扰。针对不同的干扰问题可以有不同的封锁机制。以丢失更新问题为例,实施封锁的基本思想是:当一个用户对一个表或记录进行更新时,封锁该表或记录,使其他用户不能在同一时刻更新相同的表或记录,迫使其他用户在更新后的基础上(而不是在更新前的基础上)再实施另外的更新操作。,29,封锁的基本技术,实施封锁以后的事件进程,30,封锁机制,共享封锁 独占封锁 更新封锁,有些封锁在执行完相应操作后就自动释放封锁,有些封锁则保持到事务结束(提交或撤消)时才释放(无论如何,所有的封锁都会在事务结束时自动释放
11、)。,31,共享封锁,共享封锁是为读操作设置的一种封锁,所以也称作读封锁,或简称S锁,目的是想读到一组不变的数据,也就是在读数据的过程中,不允许其他用户对该数据进行任何修改操作。这种封锁可以保证最大的并发性,任何数量的用户都可以同时对同样的数据施加这种共享锁。已经实施共享锁的表拒绝来自其他事务的独占封锁和更新封锁。,32,独占封锁,独占封锁也叫排他封锁,它是为修改操作设置的一种封锁,也称为写封锁,或简称为X锁,这是最严格的一类封锁。当需要对表实施插入、删除或修改操作时,应该使用独占封锁。已经实施独占封锁的表,拒绝来自其他用户的任何封锁。,33,更新封锁,当需要对一个记录或一组记录进行更新时(只
12、是修改,不包括插入和删除)使用更新封锁,该封锁的目的是防止其他用户在同一时刻修改同一记录。已经实施更新封锁的记录,拒绝来自其他用户的任何封锁。,34,SQL Server中与封锁有关的命令,SQL Server的封锁操作是在相关语句的“WITH()”子句中完成的,该短语可以在SELECT、INSERT、UPDATE和DELETE等语句中指定表级锁定的方式和范围。,35,SQL Server中与封锁有关的命令,常用的封锁关键词有:TABLOCK:对表施行共享封锁,在读完数据后立刻释放封锁,此类封锁可以避免读“脏”数据,但不具有可重复读的特性。HOLDLOCK:与TABLOCK一起使用,可将共享锁
13、保留到事务完成,而不是在读完数据后立即释放锁,这样可以保证数据的可重复独特性。,36,SQL Server中与封锁有关的命令,NOLOCK:不进行封锁,此关键词仅应用于SELECT语句,这样可能会读取未提交事务的数据,即有可能发生“脏”读。TABLOCKX:对表实施独占封锁。UPDLOCK:对表中的指定元组实施更新封锁;这时其他事务可以对同一表中的其他元组也实施更新封锁,但是不允许对表实施共享封锁和独占封锁。,37,SQL Server中与封锁有关的命令,R(日期,车次,座别,座位号,状态)状态初值为:NULLDECLARE d datetime,t char(6),s char(2),n c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库事务管理 课件 数据库 事务管理
链接地址:https://www.31ppt.com/p-2137298.html