第12章并发控制 本章导读: 为了避免多用户并行存取数据库时,破坏事物的完整性和数据的一致性 sα L Server提供了并发控制机制。并发控制机制主要通过事务隔离级别 封锁机制来调度并发事务的执行,使一个事务的执行不受其它事务的干 知识要点: SQL Server登录 事务处理 并发访问 锁 事物隔离级别 121事务处理 122并发访问 12.3锁 124事务隔离级别
第12章 并发控制 ⚫ 本章导读: ⚫ 为了避免多用户并行存取数据库时,破坏事物的完整性和数据的一致性, SQL Server 提供了并发控制机制。并发控制机制主要通过事务隔离级别 和封锁机制来调度并发事务的执行,使一个事务的执行不受其它事务的干 扰。 ⚫ 知识要点: SQL Server登录 事务处理 并发访问 锁 ⚫ 事物隔离级别 ⚫ 12.1 事务处理 ⚫ 12.2 并发访问 ⚫ 12.3 锁 ⚫ 12.4 事务隔离级别
121事务处理 SQL Server提供了一种事务处理的机制,用于 确保数据的一致性和完整性。在事务处理过程 中,所有操作序列都作为一个独立的逻辑单元 被执行。只有所有操作序列都正确地执行完毕 事物处理才算成功提交,否则就回滚(撤销) 到事物处理前的数据状态。 1211事务概述 12.12事物模式
12.1 事务处理 SQL Server提供了一种事务处理的机制,用于 确保数据的一致性和完整性。在事务处理过程 中,所有操作序列都作为一个独立的逻辑单元 被执行。只有所有操作序列都正确地执行完毕, 事物处理才算成功提交,否则就回滚(撤销) 到事物处理前的数据状态。 12.1.1 事务概述 12.1.2 事物模式
121.1事务概述 事务( Transaction)是一组不可分割的、可执行的动作序列,是数据处理的逻辑单元,其包含的 动作序列具有一定的偏序,即部分关键动作序列的顺序很重要,会影响事物运行结果。事物 是恢复和并发的基本单位 1.事物特性 事务可以是一条或一组SQL语句,也可以是整个应用程序,而一个应用程序也可能包含多个事务 事务有4个特性:原子性( Atomicity)、一致性( Consistency)、隔离性( Isolation)和持 续性( Durability),它们统称为事务的AC|D特性。 (1)原子性:是指事务中操作序列逻辑上作为一个工作单元整体考虑,要么全都执行,要么全 都不执行 (2)一致性:事务在完成时,所有数据必须从一个一致性状态变到另一个一致性状态。在相关 数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所 有的内部数据结构都必须是正确的。 (3)隔离性:是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据 对并发执行的其他事务是隔离的。一个事务能查看到另一个事物的数据状态,要么是修改它 之前的状态,要么是修改它之后的状态,不会是中间状态的数据。 (4)持续性:也称永久性( Permanence),事务完成之后,它对于系统的影响是永久性的,无 论发生何种操作,即使出现系统故障也将一直保持磁盘上
12.1.1 事务概述 事务(Transaction)是一组不可分割的、可执行的动作序列,是数据处理的逻辑单元,其包含的 动作序列具有一定的偏序,即部分关键动作序列的顺序很重要,会影响事物运行结果。事物 是恢复和并发的基本单位。 1.事物特性 事务可以是一条或一组SQL语句,也可以是整个应用程序,而一个应用程序也可能包含多个事务。 事务有4个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持 续性(Durability),它们统称为事务的ACID特性。 (1)原子性:是指事务中操作序列逻辑上作为一个工作单元整体考虑,要么全都执行,要么全 都不执行。 (2)一致性:事务在完成时,所有数据必须从一个一致性状态变到另一个一致性状态。在相关 数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所 有的内部数据结构都必须是正确的。 (3)隔离性:是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据 对并发执行的其他事务是隔离的。一个事务能查看到另一个事物的数据状态,要么是修改它 之前的状态,要么是修改它之后的状态,不会是中间状态的数据。 (4)持续性:也称永久性(Permanence),事务完成之后,它对于系统的影响是永久性的,无 论发生何种操作,即使出现系统故障也将一直保持磁盘上
121.1事务概述 2.事物和批的区别 个事务中也可以拥有多个批,一个批里可以有多个 SQL语句组成的事务,事务内批的多少不影响事务的 提交或回滚操作。编写应用程序时,一定要区分事务 和批的差别: (1)批是一组整体编译的SQL语句,事务是一组作为逻 辑工作单元执行的SQL语句。 (2)批语句的组合发生在编译时刻,事务中语句的组合 发生在执行时刻。 (3)编译时,批中某条语句存在语法错误,系统将终止 批中所有语句;运行时,事务中某个数据修改违反约 束、规则等,系统默认只回退到产生该错误的语句
12.1.1 事务概述 2.事物和批的区别 一个事务中也可以拥有多个批,一个批里可以有多个 SQL语句组成的事务,事务内批的多少不影响事务的 提交或回滚操作。编写应用程序时,一定要区分事务 和批的差别: (1)批是一组整体编译的SQL语句,事务是一组作为逻 辑工作单元执行的SQL语句。 (2)批语句的组合发生在编译时刻,事务中语句的组合 发生在执行时刻。 (3)编译时,批中某条语句存在语法错误,系统将终止 批中所有语句;运行时,事务中某个数据修改违反约 束、规则等,系统默认只回退到产生该错误的语句
1212事物模式 SQL Server中的事务模式包括3种工作方式:自动提交事务、显式 事务和隐式事务 1.自动提交事务 自动提交事务是由TSQL语句的特点自动划分的事务。它是SQL Server的默认模式,每条单独的T-SQL语句都是一个事务,自动 提交或回滚,无须指定任何控制语句控制事务。 2.显式事务 显式事务是由用户显式定义的事务。在显式事各模式下,每个事物 均以 begin transaction语句定义事务开始,角 commit或 rollback 语句定义事务结束。主要事物控制语句如下 (1) begin transaction[事务名]:启动事务 (2) commit transaction[事务名]:提交事务,提交的数据变成数 据库的永久部分; (3) rollback transaction 「事务名:回滚事务,撤销全部操作,回 滚到事务开始时状态; (4) save transaction 事务名>:可选语句,在事务内设置保存点, 可以使事物回滚到保存点,而不是回滚到事务的起点
12.1.2 事物模式 SQL Server中的事务模式包括3种工作方式:自动提交事务、显式 事务和隐式事务。 1.自动提交事务 自动提交事务是由T-SQL语句的特点自动划分的事务。它是SQL Server 的默认模式,每条单独的T-SQL语句都是一个事务,自动 提交或回滚,无须指定任何控制语句控制事务。 2.显式事务 显式事务是由用户显式定义的事务。在显式事务模式下,每个事物 均以begin transaction 语句定义事务开始,用commit或 rollback 语句定义事务结束。主要事物控制语句如下: (1)begin transaction [事务名]:启动事务; (2)commit transaction [事务名]:提交事务,提交的数据变成数 据库的永久部分; (3)rollback transaction [事务名]:回滚事务,撤销全部操作,回 滚到事务开始时状态; (4)save transaction <事务名>:可选语句,在事务内设置保存点, 可以使事物回滚到保存点,而不是回滚到事务的起点