第08章 事务管理4

第08章 事务管理4

ID:45134867

大小:244.00 KB

页数:86页

时间:2019-11-10

第08章 事务管理4_第1页
第08章 事务管理4_第2页
第08章 事务管理4_第3页
第08章 事务管理4_第4页
第08章 事务管理4_第5页
资源描述:

《第08章 事务管理4》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、*第8章事务管理事务并发控制恢复事务事务的概念事务的性质可串行性和隔离级别SQL对事务的支持事务的概念事务是构成单一逻辑工作单元的操作集合。为什么需要事务的概念呢?恢复的需要并发操作的需要事务的性质原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)事务的这些性质通常称为ACID特性原子性事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。一致性一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状态。在事务执行前,总

2、是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。隔离性如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。持久性事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。可串行性可串行性通常看作是多个事务并发执行的正确性准则。具体判定方法如下:各单个事务如能将数据库从一个正确状态转变为另一个正确状态,则认为该事务是正确的;按任何一个串行顺序依次执行多个事务也是正确的(这里的串行顺序假定各个事务间彼此独立、不交叉);事务的交叉执行过程是正确的,当且仅当其与串行执行过程等价,则事务是可串行化的

3、。隔离级别隔离性虽然是事务的基本性质之一,但是彻底的隔离意味着并发操作效率的降低。所以人们设想在避免干扰的前提下,适当地降低隔离的级别,从而提高并发的操作效率。隔离级别越低,并发操作的效率越高,但是产生干扰的可能性也越大;隔离级别越高,则并发操作的效率越低,同时产生干扰的可能性也越小。在设计应用时,可以在所能容忍的干扰程度范围内,尽可能的降低隔离级别,从而提高应用的执行效率。隔离级别在SQL标准中定义了下列四种隔离级别,SQLServer支持所有这些隔离级别:未提交读(READUNCOMMITTED):事务隔离的最低级别,仅可保证不读取物理损坏的数据,这是四个隔离级别中限制

4、最小的级别。提交读(READCOMMITTED):SQLServer默认级别,可以保证不读取“脏”数据。可重复读(REPEATABLEREAD):可以保证读一致性,避免不一致分析问题。可串行化(SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离;如果事务在可串行化隔离级别上运行,则可以保证任何并发重叠事务均是串行的。隔离级别四种隔离级别所允许的不同类型的行为事务必须运行于可重复读或更高的隔离级别才可以防止丢失更新。隔离级别设置隔离级别的命令是:SETTRANSACTIONISOLATIONLEVEL{READCOMMITTED

5、READUNCOMMITTED

6、

7、REPEATABLEREAD

8、SERIALIZABLE}SQL对事务的支持开始事务结束事务事务保存点隐含事务与自动提交开始事务使用BEGINTRANSACTION命令显式说明一个事务开始,它说明了对数据库进行操作的一个单元的起始点。在事务完成之前出现任何操作错误和故障,都可以撤销事务,使事务回退到这个起始点。结束事务成功结束事务的命令是COMMITTRANSACTION,它的作用是提交或确认事务已经完成,所以该命令也称作事务提交。撤消事务的命令是ROLLBACKTRANSACTION,即撤消在该事务中对数据库所做的更新操作,使数据库回退到事务的起始点。事务保存点SQL标准还

9、支持“事务保存点”技术,所谓事务保存点就是在事务的过程中插入若干标记,这样当发现事务中有操作错误时,可以不撤消整个事务,只撤消部分事务,即将事务回退到某个事务保存点。事务保存点SQLServer支持事务保存点技术,设置保存点的命令是SAVETRANSACTION(在SQL标准中是SAVEPOINT命令),具体格式是:SAVETRANSACTIONsavepoint_name撤消部分事务或回退到事务保存点的命令也是ROLLBACKTRANSACTION,具体格式是:ROLLBACKTRANSACTIONsavepoint_name事务保存点在SQL标准中还支持取消事务保存点的

10、命令RELEASESAVEPOINT,在SQLServer目前的版本中不支持取消事务保存点。隐含事务与自动提交SQL标准规定事务的开始是隐含的,在发出COMMIT(提交事务)或ROLLBACK(撤消事务)命令之前,该事务将一直保持有效。一个事务被提交或撤消之后,又将自动启动下一个新事务。隐含事务与自动提交SQLServer也可以设置成隐含事务方式,设置隐含事务方式的命令是:SETIMPLICIT_TRANSACTIONSON取消隐含事务方式的命令是:SETIMPLICIT_TRANSACTIONSOFF隐含事务与自

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。