第08章事务管理课件.ppt
《第08章事务管理课件.ppt》由会员分享,可在线阅读,更多相关《第08章事务管理课件.ppt(56页珍藏版)》请在三一办公上搜索。
1、第8章 事务管理,事 务 并发控制 恢 复,事 务,事务的概念 事务的性质 可串行性和隔离级别 SQL对事务的支持,事务的概念,事务是构成单一逻辑工作单元的操作集合。为什么需要事务的概念呢?恢复的需要并发操作的需要,事务的性质,原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability),事务的这些性质通常称为ACID特性,原子性,事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。,一致性,一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状
2、态。在事务执行前,总是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。,隔离性,如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。,持久性,事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。,可串行性,可串行性通常看作是多个事务并发执行的正确性准则。具体判定方法如下:各单个事务如能将数据库从一个正确状态转变为另一个正确状态,则认为该事务是正确的;按任何一个串行顺序依次执行多个事务也是正确的(这里的串行顺序假定各个事务间彼此独立、不交叉);事务的交叉执行过程是正确的,当且仅当其与串行执行过程等价,则事务
3、是可串行化的。,SQL对事务的支持,开始事务 结束事务 事务保存点 隐含事务与自动提交,开始事务,使用BEGIN TRANSACTION命令显式说明一个事务开始,它说明了对数据库进行操作的一个单元的起始点。在事务完成之前出现任何操作错误和故障,都可以撤销事务,使事务回退到这个起始点。,结束事务,成功结束事务的命令是COMMIT TRANSACTION,它的作用是提交或确认事务已经完成,所以该命令也称作事务提交。撤消事务的命令是ROLLBACK TRANSACTION,即撤消在该事务中对数据库所做的更新操作,使数据库回退到事务的起始点。,事务保存点,SQL标准还支持“事务保存点”技术,所谓事务保
4、存点就是在事务的过程中插入若干标记,这样当发现事务中有操作错误时,可以不撤消整个事务,只撤消部分事务,即将事务回退到某个事务保存点。,并发控制,干扰问题 解决干扰封锁 封锁不当死锁 封锁与隔离级别,干扰问题,丢失更新问题 未提交依赖问题 不一致分析问题 幻象读问题,丢失更新问题,例:旅客A来到A售票处,要买一张15日北京到上海的13次直达快速列车的软卧车票,售票员A(下称用户A)在终端A查看剩余票信息;几乎在同时,旅客B来到B售票处,也要买一张15日北京到上海的13次直达快速列车的软卧车票,售票员B(下称用户B)从终端B查到了同样的剩余票信息;旅客A买了一张15日13次7车厢5号下铺的软卧票,
5、用户A更新剩余票信息并将它存入数据库;这时用户B不知道用户A已经将15日13次7车厢5号下铺的软卧票卖出,使旅客B也买了一张15日13次7车厢5号下铺的软卧票,用户B更新剩余票信息并将它存入数据库(重复了用户A已经做过的更新)。,总的效果:15日13次7车厢5号下铺的软卧票卖了两次。其原因是:允许了用户B在过时的信息基础上去更新数据库,而没有迫使他去看最新的信息。,丢失更新问题,用SQL术语描述丢失更新问题,未提交依赖问题,未提交依赖问题也称为读“脏”(Dirty Read)数据问题,查询一个已经被其他事务更新、但尚未提交的元组,将会引起未提交依赖问题。,不一致分析问题,不一致分析问题也称为不
6、可重复读问题,很多应用可能需要校验功能,这时往往需要连续两次或多次读数据进行校验和分析,结果由于其他事务的干扰,使得前后结果不一致,从而产生校验错误(即不一致的分析)。,幻象读问题,幻象读问题与不一致分析问题有关,当事务A读数据时,事务B在对同一个关系进行插入或删除操作,这时事务A再读同一条件的元组时,会发现神秘地多出了一些元组或丢失了一些元组,把这种现象称作幻象读。,封锁,封锁的基本技术 封锁机制 SQL Server中与封锁有关的命令 封锁粒度 意向锁,封锁的基本技术,当需要查询或更新数据时,先对数据进行封锁,以避免来自其他事务的干扰。针对不同的干扰问题可以有不同的封锁机制。以丢失更新问题
7、为例,实施封锁的基本思想是:当一个用户对一个表或记录进行更新时,封锁该表或记录,使其他用户不能在同一时刻更新相同的表或记录,迫使其他用户在更新后的基础上(而不是在更新前的基础上)再实施另外的更新操作。,封锁的基本技术,实施封锁以后的时间序列,封锁机制,共享封锁 独占封锁 更新封锁,有些封锁在执行完相应操作后就自动释放封锁,有些封锁则保持到事务结束(提交或撤消)时才释放(无论如何,所有的封锁都会在事务结束时自动释放)。,共享封锁,共享封锁是为读操作设置的一种封锁,所以也称作读封锁,或简称S锁,目的是想读到一组不变的数据,也就是在读数据的过程中,不允许其他用户对该数据进行任何修改操作。这种封锁可以
8、保证最大的并发性,任何数量的用户都可以同时对同样的数据施加这种共享锁。已经实施共享锁的表拒绝来自其他事务的独占封锁和更新封锁。,独占封锁,独占封锁也叫排他封锁,它是为修改操作设置的一种封锁,也称为写封锁,或简称为X锁,这是最严格的一类封锁。当需要对表实施插入、删除或修改操作时,应该使用独占封锁。已经实施独占封锁的表,拒绝来自其他用户的任何封锁,但不拒绝一般的查询操作。,更新封锁,当需要对一个记录或一组记录进行更新时(只是修改,不包括插入和删除)使用更新封锁,该封锁的目的是防止其他用户在同一时刻修改同一记录。已经实施更新封锁的记录,拒绝来自其他用户的任何封锁,但不拒绝一般的查询操作。,封锁粒度,
9、封锁的对象可以是表、也可以是元组等,我们把封锁对象的大小称为封锁粒度(Granularity)。封锁的对象可以是逻辑单元(如表和元组等),也可以是物理单元(如数据页和数据块等)。数据库管理系统一般都具有多粒度锁定功能,允许一个事务锁定不同类型的资源。,意向锁,为了降低封锁的成本,提高并发的性能,数据库管理系统还支持一种意向锁(Intention Lock)。意向锁表示一种封锁意向,当需要在某些底层资源上(如元组)获取封锁时,可以先对高层资源(如表)实施意向锁。,意向锁,意向共享(IS)意向排它(IX)共享意向排它(SIX),死锁,产生死锁的原因 避免死锁 发现死锁解决死锁,产生死锁的原因,右图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第08章 事务管理课件 08 事务管理 课件
链接地址:https://www.31ppt.com/p-2163170.html