数据库原理与SQL Server教程第13章 事务和锁—保证数据完整性.ppt

数据库原理与SQL Server教程第13章 事务和锁—保证数据完整性.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 数据库原理与SQL Server教程 13.4.1 并发问题 2.脏读 当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。 * 数据库原理与SQL Server教程 13.4.1 并发问题 3.不可重复读 当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。不一致的分析与未确认的相关性类似,因为其它事务也是正在更改第二个事务正在读取的数据。然而,在不一致的分析中,第二个事务读取的数据是由已进行了更改的事务提交的。而且,不一致的分析涉及多次(两次或更多)读取同一行,而且每次信息都由其它事务更改;因而该行被非重复读取。 * 数据库原理与SQL Server教程 13.4.1 并发问题 4.幻像读 当对某行执行插入或删除操作,而该行属于某个事务正在读取的行的范围时,会发生幻像读问题。事务第一次读的行范围显示出其中一行已不复存在于第二次读或后续读中,因为该行已被其它事务删除。同样,由于其它事务的插入操作,事务的第二次或后续读显示有一行已不存在于原始读中 。 * 数据库原理与SQL Server教程 13.4.2 并发控制 1.悲观并发控制 2.乐观并发控制 3.隔离级别 * 数据库原理与SQL Server教程 13.4.2 并发控制 1.悲观并发控制 锁定系统阻止用户以影响其它用户的方式修改数据。如果用户执行的操作导致应用了某个锁,则直到这个锁的所有者释放该锁,其它用户才能执行与该锁冲突的操作。该方法主要用在数据争夺激烈的环境中,以及出现并发冲突时用锁保护数据的成本比回滚事务的成本低的环境中,因此称该方法为悲观并发控制。 * 数据库原理与SQL Server教程 13.4.2 并发控制 2.乐观并发控制 在乐观并发控制中,用户读数据时不锁定数据。在执行更新时,系统进行检查,查看另一个用户读过数据后是否更改了数据。如果另一个用户更新了数据,将产生一个错误。一般情况下,接收错误信息的用户将回滚事务并重新开始。该方法主要用在数据争夺少的环境内,以及偶尔回滚事务的成本超过读数据时锁定数据的成本的环境内,因此称该方法为乐观并发控制。 * 数据库原理与SQL Server教程 13.4.2 并发控制 3.隔离级别 事务准备接受不一致数据的级别称为隔离级别。隔离级别是一个事务必须与其它事务进行隔离的程度。较低的隔离级别可以增加并发,但代价是降低数据的正确性。相反,较高的隔离级别可以确保数据的正确性,但可能对并发产生负面影响。应用程序要求的隔离级别确定了SQL Server使用的锁定行为。 SQL Server支持的隔离级别: 未提交读(事务隔离的最低级别,仅可保证不读取物理损坏的数据)。 提交读(SQL Server默认级别)。 可重复读。 可串行读(事务隔离的最高级别,事务之间完全隔离)。 * 数据库原理与SQL Server教程 13.4.2 并发控制 3.隔离级别 隔 离 级 别 脏 读 不可重复读取 幻 像 读 未提交读 是 是 是 提交读 否 是 是 可重复读 否 否 是 可串行读 否 否 否 事务隔离级别与并发问题的可能性 * 数据库原理与SQL Server教程 本章小结 事务是单独的工作单元,该单元中可以包含多个操作以完成一个完整的任务。锁是在多用户环境中对数据访问的限制。事务和锁确保了数据的完整性。 事务确保了对数据的多个修改能够一起处理。 加锁防止了更新冲突,使得事务是可串行化,允许数据的并发使用,加锁是自动实现的。 当管理事务和加锁时,应该注意以下事项: 保持事务尽可能的短,这样可以尽量地减少与其他事务的加锁冲突,但事务同时决不能小于工作的逻辑单位。 把事务设置得使死锁极小化,以便防止由于死锁而必须重新提交事务。 使用服务器的加锁缺省设置,以应用查询优化器基于特定事务和数据库中其他活动而使用最好的锁。 使用加锁选项时要谨慎小心,对事务进行测试,确保加锁选择优于SQL Server的缺省加锁选项。 * 数据库原理与SQL Server教程 实训13 应用事务 目标 准备工作 场景 练习1 创建更新订单的存储过程 * 数据库原理与SQL Server教程 实训13 应用事务 目标 完成本实验后,将掌握以下内容: (1)应用事务 * 数据库原理与SQL Server教程 准备工作 建立DsCrmDB数据库。 在进行本实验前,必须先建立DsCrmDB数据库。如果还没有创建这个数据库,请先通过练习前创建数据库的脚本创建数据库到数据库管理系统中。 实训13 应用事务 * 数据库原理与SQL Server教程 场景

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档