网络数据库_12事务管理基础讲述.ppt
文本预览下载声明
事务的概念 一、事务概念??? 事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。 事务的概念 二、事务属性事务4大属性:1?? 原子性(Atomicity):事务是一个完整的操作。2?? 一致性(Consistency):当事务完成时,数据必须处于一致状态。3?? 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。4?? 持久性(Durability):事务完成后,它对于系统的影响是永久性的。 事务的概念 三、创建事务T-SQL中管理事务的语句:1 开始事务: begin transaction2 提交事务:commit transaction3 回滚事务: rollback transaction 事务的概念 事务分类:1 显式事务:用begin transaction明确指定事务的开始。2 隐性事务: 打开隐性事务:set implicit_transactions on,当以隐性事务模式操作时,SQL Servler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。3 自动提交事务:SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务。如果成功执行,则自动提交,否则回滚。? 事务的例子 事务例一 事务的例子 事务例二 并发控制 并发的影响: (1)更新丢失 (2)不可以重复读 (3)幻读 (4)脏读 并发控制的类型: 悲观并发控制 乐观并发控制 事务隔离级别 READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE create table table1 ( a char(5), b char(5), c char(5)) insert into table1 values(a1,b1,c1) insert into table1 values(a2,b2,c2) insert into table1 values(a3,b3,c3) 事务隔离级别 READ UNCOMMITTED: 连接一 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED select * from table1 begin tran update table1 set c=c select * from table1 waitfor delay 00:00:10 --等待秒 rollback tran select * from table1 连接二 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED print 脏读 select * from table1 if @@rowcount0 begin waitfor delay 00:00:10 print 不重复读 select * from table1 end 事务隔离级别 READ COMMITTED 连接一 SET TRANSACTION ISOLATION LEVEL READ COMMITTED select * from table1 begin tran update table1 set c=c select * from table1 waitfor delay 00:00:10 --等待秒 rollback tran select * from table1 连接二 SET TRANSACTION ISOLATION LEVEL READ COMMITTED print 脏读 select * from table1 if @@rowcount0 begin waitfor delay 00:00:10 print 不重复读 select * from table1 end 事务隔离级别 REPEATABLE READ 连接一 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ begin tran print 初始 select * from table1 waitfor delay 00:00:10 --等待秒 print 幻像读 select * from table1 rollback tran 连接二 SET TRANSACTION ISOLATI
显示全部