第8章事务与并发性new.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章事务与并发性new

第8章 事务与并发性 目录 8.1事务 8.2事务的并发性 8.3基于锁的并发控制 8.1事务 8.1.1事务的概念 8.1.2事务特性 8.1.3事务的状态 8.1.4 SQL Server 2000中的事务模式 8.1.1事务的概念 事务是用户定义的数据库操作的集合,这些操作作为一个完整的有机的工作单元,要么全部正确执行,要么全部不执行。 8.1.2事务特性 事务作为保证数据库一致性的基本手段、数据库并发控制和恢复的基本单位,具有四个基本特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称事务的ACID特性。 8.1.2事务特性 原子性 事务的原子性是指事务是数据库的逻辑工作单位,事务中所有的操作构成一个有机整体,对系统而言这些操作要么都做,要么都不做,不存在第三种情况。如转账事务中的两个子操作,或者都成功完成,或者都不做,是作为一个整体来进行的。 8.1.2事务特性 一致性 事务的一致性是指事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态,不存在中间的状态。因此,数据库以事务为单位进行操作就可以保证数据库始终处于一致性状态。即使由于系统故障导致事务中的一些操作没有成功执行,引起事务内部数据库处于不一致状态,但是由于事务的原子性,当事务中的某些操作没有成功执行时,系统会自动撤销该事务中已经成功完成的操作,保证事务中所有操作被取消,从而保证了事务操作之前和事务操作之后,数据库保持一致性。 8.1.2事务特性 隔离性 事务的隔离性是指数据库中一个事务的执行不受其他事务干扰,每个事务都感觉不到还有其他事务在并发执行。即一个事务内部的操作及使用的数据对其他事务是隔离的,并行运行的多个事务之间互不干扰。 如果并发事务之间没有隔离性,那么即使每个事务具有原子性与一致性,也无法保证整个数据库的一致性。 8.1.2事务特性 持久性 事务的持久性是指一个事务一旦提交,则对数据库中数据的改变是永久性的,以后的操作或故障不会对事务的操作结果产生任何影响。 8.1.3事务的状态 在数据库中,一个事务从开始执行到事务的提交(执行成功)或被撤销(执行失败)可能经过如图所示的几个状态。 8.1.4 SQL Server 2000中的事务模式 在SQL Server 2000中事务可以分为显式事务、隐式事务和自动提交事务3种模式。 显式事务 显式事务是指由用户定义事务的开始与结束,以BEGIN TRANSACTION语句开始一个事务,以COMMIT提交一个事务或以ROLLBACK回滚一个事务。 如:BEGIN TRANSACTION UPDATE 账户表 SET 金额-1000 WHERE 账户名=‘A’ UPDATE 账户表 SET 金额+1000 WHERE 账户名=‘B’ COMMIT(或ROLLBACK) 隐式事务 隐式事务是指当前事务在提交或回滚后,自动启动一个新的事务,而不需使用BEGIN TRANSACTION开始一个新事务。 通过SET IMPLICIT_TRANSACTIONS ON/OFF设置来启动或关闭隐式事务模式。 自动提交事务 自动提交模式是SQL Server 2000的默认事务管理模式。每条单独的语句都是一个事务,如果成功完成则被提交;如果遇到错误则被回滚。 8.2事务的并发性 8.2.1 概述 8.2.2事务并发执行存在的问题 8.2.1 概述 数据库系统的一个重要特性就是数据共享,允许多个用户同时使用数据库中的数据,这样的数据库系统称为多用户数据库系统。 当多个用户并发地存取数据库时就可能产生多个事务同时存取同一数据的情况,若不对并发操作进行控制的话就可能会导致存取不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。并发控制机制是衡量一个数据库管理系统性能的重要指标之一。 8.2.2事务并发执行存在的问题 事务并发执行过程中,由于不正确的调度,导致事务之间相互干扰,破坏了事务的隔离特性,可能产生三种类型的数据库不一致性:丢失修改、读“脏”数据和不可重复读。 8.2.2事务并发执行存在的问题 8.3基于锁的并发控制 8.3.1概述 8.3.2封锁协议 8.3.3 活锁和死锁 8.3.4并发调度的可串行化 8.3.5封锁粒度 8.3.6 SQL Server 2000中的并发控制 8.3.1概述 在数据库中,事务并发控制机制包括基于锁的协议、基于时间戳的协议、基于有效性检查的协议等几种方式,其中最常用的为基于锁的协议。 基于锁的协议中最重要的思想是封锁,即对数据库中共享的数据加锁,以控制事务对该数据进行存取操作,只有对数据具有特定的锁的事

文档评论(0)

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

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

1亿VIP精品文档

相关文档