1.事务的概念
事务是一个数据库操作序列,这么事务要么全做要么都不做,是一个不可分割的工作单位。用户可以显式地定义事务的开始与结束,如果用户没有定义,DBMS按缺省规定自动划分事务。
2.事务的特点(ACID)
(1)原子性:事务的操作序列要么全做要么全不做,是一个不可分割的工作单位。
(2)一致性:事务执行的结果必须使数据库从一个一致性状态变成另一个一致性状态。
(3)隔离性:一个事务的执行不被其他事务影响,并行运行的事务互不影响。
(4)持久性:事务一旦提交,对数据库数据的改变是永久性的。
3.故障的种类
(1)事务故障
事务故障说明事务没有达到预期的终点,因此,数据库可能处于不正确的状态。恢复程序应该在不影响其他事务的情况下,强行回滚该事务。
(2)系统故障
系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。
恢复子系统要在系统重新启动时让所有未正常终止的事务回滚,强行撤销所有未完成操作。
(3)介质故障
系统故障是软故障,介质故障是硬故障,硬件坏了,比如磁盘损坏等
4.恢复实现的技术
主要有两个,一个是备份,一个是记日志。当登记日记文件时,必须遵循两个原则:
(1)登记的次序严格按照并发事务执行的顺序;
(2)先写日记文件,再写数据库
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件是两个不同的操作。有可能在这两个操作之间发生故障,即这两个操作只完成一个。如果先写数据库的话,那么发生故障后就没法恢复了。如果先写日记文件,按日记文件恢复时顶多是执行一条不必要的UNDO操作,不会影响数据库的正确性。