事务的概念
一、事务
所谓事务是用户定义的一个数据操作序列,这些操作要么全做要么全部做,是一个不可分割的工作单位。例如:在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或是整个程序。
事务和程序
一个程序包含多个事务
事务的特性
1.原子性
2.一致性
3.隔离性
4.持续性
事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLL结束。
故障的种类
一、事务内部的故障
事务内部的更多的故障是非预期的,是不能由应用程序处理。如运算溢出、并发事务发生死锁而被选中撤销该事物、违反了某些完整性限制。事务故障仅指这类非预期的故障
这类恢复操作称为事务撤销(UNDO)
二、系统故障
情况一、发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,从而造成数据库可能处于不正确的状态。为保证数据i一致性,需要清除这些事务对数据库的所有修改。系统恢复子系统必须在系统重新启动时,让所有非正常终止的事务回滚,强行撤销(UNDO)
情况二、发生故障系统,有些已完成的事务可能有一部分甚至全部留在缓存区中,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失,这也会使数据库处于不一致的状态,因此应将这些事务已经提交的结果重新写入数据库。在系统重新启动后,恢复子系统需要撤销所有未完成的事务外,还需要重做(REDO)所有已提交的事务
终结的说:没有提交的要撤销(UNDO),已经提交的要重做(REDO)
####三、介质故障 #####系统故障常称为软故障(Soft Crash),介质故障常称为硬故障(Hard Crash)。硬故障指外存故障,如磁盘损坏、磁头碰撞、瞬间强磁场干扰等。这类故障破坏数据库或部分数据库。并影响正在存取这部分数据的所有事务。这类故障毕业前两类故障发生的可能性小,但破坏性最大