文档介绍:第七章数据库恢复技术
事务
事务定义
事务是用户定义的一个数据库操作序列构成,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务与应用程序是两个概念,一般来说,一个应用程序可以包含多个事务。
事务的开始与结束可以由用户显式控制。如果用户没有显式定义事务,则由DBMS按缺省规定自动划分事务。
SQL中事务的定义
事务以Begin transaction开始,以Commit work或 Rollback work结束。
Commit work表示提交,事务正常结束。
Rollback work表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态。
事务的特性(ACID)
原子性(Atomicity)
事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。
一致性(Consistency)
事务执行的结果应当使数据库从一个一致性状态转变为另一个一致性状态。
事务的特性(ACID)
隔离性(Isolation)
一个事务的执行不能被其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能相互干扰。
事务的特性(ACID)
持久性(Durability)
一个事务一旦提交之后,它对数据库的影响必须是永久的。事务提交后,系统发生故障不能改变事务的持久性。
故障的种类
事务内部的故障
事务内部的故障包括可预期的和不可预期的。可预期的是指可以通过事务程序本身发现和处理的故障。而不可预期的错误是指那些不能由应用程序处理的事务故障,如死锁,运算溢出,违反完整性规则等。
故障的种类
系统故障
系统故障是指造成系统停止运行的任何事情,使得系统要重新启动。如硬件错误,操作系统故障,停电等。这类故障影响正在运行的所有事务,所有事务都非正常终止,但不会破坏数据库。恢复子系统必须清除所有未完成的事务对数据库的修改,同时重做所有已完成的事务,保证数据库的一致性。