网络数据库_12事务管理基础讲述.ppt

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

事务的概念 一、事务概念 ??? 事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。 事务的概念 二、事务属性 事务4大属性: 1?? 原子性(Atomicity):事务是一个完整的操作。 2?? 一致性(Consistency):当事务完成时,数据必须处于一致状态。 3?? 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。 4?? 持久性(Durability):事务完成后,它对于系统的影响是永久性的。 事务的概念 三、创建事务 T-SQL中管理事务的语句: 1 开始事务: begin transaction 2 提交事务:commit transaction 3 回滚事务: 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

文档评论(0)

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

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

1亿VIP精品文档

相关文档