文档介绍:数据库原理及应用
Principles and Application of Database
第十章数据库恢复技术
An Introduction to Database System
第十章数据库恢复技术
事务的基本概念
数据库恢复概述
故障的种类
恢复的实现技术
恢复策略
具有检查点的恢复技术
数据库镜像
小结
An Introduction to Database System
事务的基本概念
一、什么是事务
二、如何定义事务
三、事务的特性
An Introduction to Database System
一、什么是事务
事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
操作系列中对数据库的操作可多可少,执行这些操作以后须将数据库从一个正确状态带到另外一个正确状态。
事务和程序是两个概念
在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序
一个应用程序通常包含多个事务
事务是恢复和并发控制的基本单位
An Introduction to Database System
对事务的解释
事务中可能包括一个操作可能包括多个操作,这些操作要不都做,要么都不做,始终要让数据库从一个正确状态变化到另一个正确状态。数据库中的数据变化后,仍然满足约束条件,满足数据库中对数据的要求。
事务是数据库运行的最小单位
数据库中所有的操作都是以事务为单位来进行计算的
An Introduction to Database System
事务的分类
按事务的启动和执行方式,事务可以分为3类:
显式事务:也称为用户定义或用户指定的事务,即可以显式的定义启动和结束的事务。
自动提交事务:自动提交模式是sql server的默认事务管理模式。每个sql语句在完成时,都被提交或回滚。如果一个语句成功的完成,则提交该语句;如果遇到错误,则回滚该语句。
隐式事务:当连接以隐式事务模式进行操作时,sql server将在提交或回滚当前事务后自动启动新事务。
An Introduction to Database System
显式事务
显式事务需要显式定义事务的启动和结束。通过begin transaction、 commit transaction 、commit work 、rollback transaction或rollback work等sql语句完成。
1 启动事务
启动事务用begin transaction语句,其语法格式如下:
Begin transaction [事务名|***@tran_name_variable[with mark[‘description’]]]
An Introduction to Database System
显式事务
事务名:给事务分配的名称,必须遵循标识符规则,但不允许标识符多余32个字符。
***@tran_name_variable:是用户定义的、含有有效事务名称的变量名,必须是char、varchar、nchar或nvarchar数据类型声明该变量。
With mark[‘description’]:指定在日志中标记事务。Description是描述该标记的字符串。
注意:如果使用了With mark[‘description’],则必须指定事务名, With mark允许将事务日志还原到命名标记。
An Introduction to Database System
显式事务
结束事务:如果没有遇到错误,mit transaction语句成功结束事务,该事务中的所有数据修改在数据库中都将永久有效。mit transaction 语句的语法如下:
Commit [transaction [事务名|***@tran_name_variable]]
事务名:sql server 忽略该参数,是指由前面的begin transaction指派的事务名称。
***@tran_name_variable:是用户定义的、含有有效事务名称的变量名称。必须用char、varchar、nchar、或nvarchar数据类型声明该变量。
An Introduction to Database System
显式事务
回滚事务:如果事务中出现错误,或者用户决定取消事务,可回滚该事务。通过rollback 语句完成,语法格式如下:
Rollback[transaction][事务名| |***@tran_name_variable|savepoint_name|***@savepoint_variable]
事务名:是在b