第09章 事务及锁.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server 2005 数据库应用与开发 制作:姜桂洪 联系方式:jghget@ * 第09章 事务和锁 内容提要 事务是由一系列的数据操作命令组成,是数据库应用程序的基本逻辑单元。SQL Server 2005在对数据库进行操作时,通过事务来保证数据的一致性和完整性。 用户访问数据库时,经常出现并发的情况。数据库系统的并发处理能力是衡量其性能的重要标志之一。 数据库系统通过适当的并发控制机制协调并发操作,保证数据的一致性。在SQL Server 2005中,以事务为基本操作单位,使用锁来实现并发控制。 第09章 事务和锁 9.1 事务概述 9.2 管理事务 9.3 管理并发数据访问 9.4 管理锁 9.5小结 9.1 事务概述 在计算机系统设计过程中,与一个商业事务相关的数据必须保证可靠性、一致性和完整性,以符合实际的商业过程。 在SQL Server 2005中,通常由事务来完成相关操作,以确保多个数据的修改作为一个单元来处理。 事务(Transaction)是单个的工作单元。如果某一事务执行成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被还原。 9.1 事务概述 9.1.1 事务的特点 定义事务必须符合如下的典型特征。 原子性(Atomicity):事务包含的一系列数据操作是是一个整体。执行部分操作则数据会回滚到原来的状态。 一致性(Consistency) :事务执行完成后,将数据库从一个一致状态转变到另一个一致状态,事务不能违背定义在数据库中的任何完整性检查。 隔离性(Isolation) :一一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰 持久性(Durability):要求一旦事务提交,那么对数据库所做的修改将是持久的,无论发生何种机器和系统故障,都不应该对其有任何影响。 9.1 事务概述 9.1.2事务的分类 任何对数据的修改都是在事务环境中进行的。按照事务定义的方式可以将事务分为系统定义事务和用户定义事务。SQL Server 2005支持3种事务模式分别对应上述两类事务:自动提交事务、显式事务和隐式事务。 (1)自动提交事务。 SQL Server 2005将一切操作作为事务处理,它不会在事务以外更改数据。如果没有用户定义事务,SQL Server会自己定义事务,称为自动提交事务。每条单独的语句都是一个事务。 (2)显式事务。显式事务是指显式定义了启动和结束的事务。在实际应用中,大多数的事务是由用户来定义的。事务结束分为提交(COMMIT)和回滚(ROLLBACK)两种状态。 9.1 事务概述 9.1.2事务的分类 (3)隐式事务。 在隐式事务中,SQL Server在没有事务定义的情况下会开始一个事务,但不会像在自动提交模式中那样自动执行COMMIT或ROLLBACK语句,事务必须显式结束。Transact-SQL 脚本使用SET IMPLICIT_TRANSACTIONS ON / OFF语句可以启动/关闭隐式事务模式。 (4)分布式事务。一个比较复杂的环境,可能有多台服务器,那么要保证在多服务器环境中事务的完整性和一致性,就必须定义一个分布式事务。在分布式事务中,所有的操作都可以涉及对多个服务器的操作,当这些操作都成功时,那么所有这些操作都提交到相应服务器的数据库中,如果这些操作中有一条操作失败,那么这个分布式事务中的全部操作都被取消。 9.1 事务概述 9.1.2事务的分类 跨越两个或多个数据库的单个数据库引擎?实例中的事务实际上也是分布式事务。该实例对分布式事务进行内部管理;对于用户而言,其操作就像本地事务一样。 对于应用程序而言,分布式提交必须由事务管理器管理,以尽量避免出现因网络故障而导致事务由某些资源管理器成功提交,另一些资源管理器回滚的情况。通过准备阶段和提交阶段管理提交进程可避免这种情况,这称为两阶段提交。 9.2 管理事务 事务的基本操作包括启动、保存、提交或回滚等。 9.2.1 启动事务 1.显式事务的定义 显式事务需要明确定义事务的启动。显式事务的定义格式如下: BEGIN {TRAN | TRANSACTION} [{transaction_name | @tran_name_variable } [WITH MARK[ description ]] ] 9.2 管理事务 9.2.1 启动事务 2.隐式事务的定义 默认情况下,隐式事务是关闭的。使用隐式事务需先将事务模式设置为隐式事务模式。不再使用隐式事务时,要退出该模式。 SET IMPLICIT_TRANSACTIONS {ON | OFF} 需要注意的是

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档