文档详情

SQL Server 2008数据库应用与开发教程(第二版) 教学课件 978 7 302 24453 0 第12章 SQL的高级应用.pdf

发布:2015-11-08约字共46页下载文档
文本预览下载声明
第 12 章 SQL 的高级应用  学习目标:  了解事务处理的概念和方法  掌握执行、撤销和回滚事务  了解引入锁的原因和锁的类型  掌握如何设置事务和锁的相关操作 12.1 事务(Transaction) 12.1.1 事务的由来  在SQL Server 2008中使用DELETE或UPDATE语句对数据库进 行更新时,一次只能操作一个表,但SQL Server 2008又允许多 个用户并发使用数据库。因此可能会带来数据库的数据不一致的 问题。  如现实中的转账过程,它需要两条UPDATE语句来完成业务流程:  从转出帐户A里减掉需转账的金额;  在转入帐户B里加上转账的金额。  这两个过程必须全部完成,整个转账过程才完成。否则,款项从A 帐户扣除了,正好此时因为其他原因导致程序中断,这样,B账户 没有收到款项,而A账户的钱也没有了,这样明显是错误的。  为了解决这种类似的情况,数据库管理系统提出了事务的概念: 将一组相关操作绑定在一个事务中,为了使事务成功,必须成功 完成该事务中的所有操作。  事务对上面转账问题的解决方法是:把转出和转入作为一个整体, 形成一个操作集合,这个集合中的操作要么都不执行,要么都执 行。 12.1.2 事务的概念  事务(TRANSACTION )是由对数据库的若 干操作组成的一个逻辑工作单元,这些操作作 为要么都执行,要么都不做,是一个不可分割 的整体。事务用这种方式保证数据满足并发性 和完整性的要求。使用事务可以避免发生有的 语句被执行,而另外一些语句没有被执行,从 而造成数据不一致的情况。 12.1.3 事务的特性  事务的处理必须满足四原则,即原子性(A )、一致性(C)、隔离性(I) 和持久性(D),简称ACID原则:  原子性(Atomicity ):事务必须是原子工作单元,事务中的操作要么全 部执行,要么全不执行,不可只完成部分操作。原子性在数据库系统中, 由恢复机制来实现;  一致性(Consistency):事务开始前,数据库处于一致性的状态;事 务结束后,数据库必须仍处于一致性状态。数据库一致性的定义是由用 户负责的,如前面所述的银行转账,用户可以定义转账前后两个帐户金 额之和应该保持不变;  隔离性(Isolation):系统必须保证事务不受其他并发执行事务的影响, 即当多个事务同时运行时,各事务之间相互隔离,不可互相干扰。事务 查看数据时所处的状态,要么是另一个并发事务修改它之前的状态,要 么是另一个并发事务修改它之后的状态,事务不会查看中间状态的数据。 隔离性通过系统的并发控制机制实现;  持久性(Durability):一个已完成的事务对数据所做的任何变动在系统 中是永久有效的,即使该事务产生的修改是不正确,错误也将一直保持。 持久性通过恢复机制实现,发生故障时,可以通过日志等手段恢复数据 库信息。  事务四原则保证了一个事务或者成功提交,或者失败滚回,二者必居其 一,因此它对数据的修改具有可恢复性。即当事务失败时,它对数据的 修改都会恢复到该事务执行前的状态。 12.1.4 事务的工作原理  事务以BEGIN TRANSACTION开始,以 COMMIT TRANSACTION或ROLLBACK TRANSACTION结束。  其中,COMMIT TRANSACTION表示事务正 常结束,提交给数据库,而ROLLBACK TRANSACTION表示事务非正常结束,撤销 事务已经做的操作,回滚到事务开始时的状态。 12.1.5 事务的执行模式  SQL Server的事务可以分为两类:显式事务和隐性 事务  1. 隐性事务  一条T-SQL语句就是一个隐性事务,也叫系统提供的 事务。  例如执行如下的创建表语句:  CREATE TABLE aa (f1 int not null, f2 char(10), f3 varchar(30))  这条语句本身就构成了一个事务,他要么建立包含3 列的表,要么对数据库没有任何影响。不会出现建立 只含1列或者2列的表的情况。 2. 显式事务  显式事务又称为用户定义的事务。事务有一个开头和
显示全部
相似文档