第9章事务和锁(论文资料).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文档。上传文档
查看更多
第9章 事务和锁 事物和锁是数据库的重要组成部分。在T-SQL中,通过事务将一系列不可分割的数据库操作作为整体来执行,从而保证了数据库数据的完整性和有效性。而在多用户的应用条件下,要保证事务的完整性和一致性,就需要应用锁。本章将对事务和锁的相关知识展开学习。 9.1 事务的概念 事务是指一个工作单元,该单元可以包含多个步骤来完成全部所需的任务。在执行事务时,事务中的所有操作都会被执行。当遇到错误时,事务所执行的操作将会全部取消,同时将对事务执行回滚操作。本节将对事务的基本概念展开学习。 9.1.1 引入事务的原因 在SQL Server 2008中,通过事务处理,能够保证数据库操作的一致性和完整性。例如,由于数据库是可共享的信息资源,会出现有多个用户在同一时刻访问或修改同一数据库中的同一部分数据。那么可能会由于某一个用户的行为,使另外的用户使用的数据变得无效。这时产生的数据可能会变得相互矛盾或不精确,而使用数据的用户却不知道这种情况的发生。为了解决这种问题,SQL Server 2008使用事务可以确保同时发生的行为与数据的有效性不发生冲突,而且这些数据同时也可以被其他使用的用户看到。 9.1.2 ACID特性 ACID,是指在数据库管理系统(DBMS)中事务所具有的四个特性,用来保证数据从一个地方可靠地转移到另一个地方,具体如下: 原子(Atomic):事务中的所有步骤和操作都被当作原子单元。要么全部成功,要么全部失败。 一致(Consistent):任何事务的输出都是可预测的,所有的操作要么失败要么成功。所有操作都遵循一致性规则,并确保数据库内的数据完整性。 隔离(Isolated):任何在事务之前、之中或者之后执行的操作,相关数据都处于一致的状态,而不是处于部分完成的状态。任何用户或者操作查询受事务影响的数据时,都会立即觉察到整个事务被提交了。 持久(Durable):如果事务成功,数据就写到磁盘上,不会回到它原来的状态。数据不会受系统失败的影响。 9.1.3 事务的分类 在SQL Server 2008中,事务分为系统提供的事务和用户自定义事务两大类。 1.系统提供的事务 2.用户自定义的事务 9.1.4 事务日志 事务日志是磁盘上的一个独立文件,用于从所有用户与应用程序处收集所有成功的数据修改请求。在执行数据修改请求的过程中,事务存在于缓冲区缓存与日志缓存中。在更改内存中的数据页的过程中,页面(以及磁盘上代表要修改数据的页面)将被锁定(或者隔离),其他请求或者事务不能对这些页面进行访问。页面保持锁定状态,直到它们从事务中被释放为止。 9.2 事务的管理 SQL Server 2008中通过BEGIN TRANSACTION表示一个事务的开始点,每个事务继续执行直到用COMMTT TRANSACITON提交,从而正确地完成对数据库作永久的改动,或者遇上错误用ROLLBACK TRANSACTION语句撤销所有改动。本节将对这些命令具体进行学习。 9.2.1 事务的开始点:BEGIN TRANSACTION。 BEGIN TRANSACTION语句用来标记一个显式本地事务的开始点,它代表由连接引用的数据在该点逻辑和物理上都保持一致。语法如下: BEGIN { TRAN | TRANSACTION } [ { transaction_name | @tran_name_variable } [ WITH MARK [ description ] ] ] [ ; ] 9.2.2 事务的执行:COMMIT TRANSACTION。 COMMIT TRANSACTION的功能是标识一个成功的隐式事务或用户定义事务的结束,语法如下: COMMIT { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable ] ] [ ; ] 9.2.3 事务的回滚:ROLLBACK TRANSACTION。 ROLLBACK TRANSACTTON的功能是将显式事务或隐性事务回滚到事务的起点或事务内的某个保存点,语法如下: ROLLBACK { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable| savepoint_name | @savepoint_variable ] [ ; ] 9.2.4 SAVE TRANSACTION SAVE TRANSACTION用于给事务指定保存点,其语法如下: SAVE { TRAN | TRANSACTION } { savepoint_name | @savepoint_variable } [ ; ] 9.3 事务模式的分类 任何对数

文档评论(0)

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

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

1亿VIP精品文档

相关文档