08第八章SQL Server 事务及并发控制new.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章SQL Server事务和并发控制 8.1 事务 8.2 事务的分类和控制 8.3 事务处理实例分析 8.4 并发控制 8.1 事务 8.1.1 事务的概念 8.1.2 事务对并发控制和保障数据完整的重要性 8.1.1 事务的概念 事务是一个用户定义的完整的工作单元,一个事务内的所有语句被作为整体执行,要么全部执行,要么全部不执行。遇到错误时,可以回滚事务,取消事务内所做的所有改变,从而保证数据库中数据的一致性和可恢复性。 事务的特性 原子性:事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做。 一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。 隔离性:一事务的执行不能被其它事务干扰。 持续性(永久性):指事务一旦提交,则其对数据库中数据的改变就应该是永久的 8.1.2 事务对并发控制和 保障数据完整的重要性 1.事务与并发控制的关系 如果在用户并发访问期间没有保证多个事务正确的交叉运行,用户操作相同的数据时可能会产生一些意想不到的问题。包括: (1)丢失修改或被覆盖 (2)读脏数据 (3)不能重复读 (4)幻影读 2.事务对保障数据一致和完整性的作用 故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失 。 影响事务正常运行的故障有: (1)事务内部的故障 (2)系统故障 (3)介质故障 (4)计算机病毒 8.2 事务的分类和控制 8.2.1 事务的分类 8.2.2 事务控制 8.2.1 事务的分类 SQL Server 的事务模式可分为显式事务、隐式事务和自动事务三种。 1) 显式事务 显式事务是指由用户执行T-sql事务语句而定义的事务,这类事务又称做用户定义事务。定义事务的语句包括: BEGIN TRANSACTION:标识一个事务的开始,即启动事务。 COMMIT TRANSACTION、COMMIT WORK:标识一个事务的结束,事务内所修改的数据被永久保存到数据库中。 ROLLBACK TRANSACTION、ROLLBACK WORK:标识一个事务的结束,说明事务执行过程中遇到错误,事务内所修改的数据被回滚到事务执行前的状态。 8.2.2 事务控制 SQL Server中有关事务的处理语句有: 【例】定义事务,使事务回滚到指定的保存点,分批执行,观察执行的过程。 USE stu GO SELECT times=0, * FROM student --检查当前表中的结果 GO BEGIN TRANSACTION demo INSERT into student(sno,sname,ssex,sage,sdept) VALUES(S060106,关汉青,男,20,cs) SAVE TRANSACTION save_demo 【例】创建数据表stu_test3,生成三个级别的嵌套事务,并提交该嵌套事务。观察变量@@TRANCOUNT的值的变化。 USE stu --选择数据库必须单独在一个批中 GO SELECT @@TRANCOUNT --变量@@TRANCOUNT的值为0 BEGIN TRANSACTION inside1 SELECT @@TRANCOUNT --变量@@TRANCOUNT的值为1 INSERT student(sno,sname,ssex,sage,sdept) VALUES(S060106,关汉青,男,19,cs) GO BEGIN TRANSACTION inside2 SELECT @@TRANCOUNT --变量@@TRANCOUNT的值为2 INSERT student(sno,sname,ssex,sage,sdept) VALUES(S060107,杨理华,女,19,cs) GO 8.4 并发控制 8.4.1 SQL Server锁的粒度及模式 8.4.2 封锁协议 8.4.3 事务隔离 8.4.4 死锁处理 8.4 并发控制 在大型分布式数据库应用程序中,对数据库的并发访问操作是一个普遍存在的问题。SQL Server使用资源锁定的方法管理用户的并发操作。 SQL Server 提供了两种并发控制方法: ▲乐观并发控制:该方法假想用户之间不太可能发生资源冲突(事实上不是不可能),所以允许用户在不锁定任何资源的情况下执行事务。只有当用户试图修改数据时才检查资

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档