事務的概念
一、事務
所謂事務是用戶定義的一個數據操作序列,這些操作要么全做要么全部做,是一個不可分割的工作單位。例如:在關系數據庫中,一個事務可以是一條SQL語句、一組SQL語句或是整個程序。
事務和程序
一個程序包含多個事務
事務的特性
1.原子性
2.一致性
3.隔離性
4.持續性
事務通常是以BEGIN TRANSACTION開始,以COMMIT或ROLL結束。
故障的種類
一、事務內部的故障
事務內部的更多的故障是非預期的,是不能由應用程序處理。如運算溢出、並發事務發生死鎖而被選中撤銷該事物、違反了某些完整性限制。事務故障僅指這類非預期的故障
這類恢復操作稱為事務撤銷(UNDO)
二、系統故障
情況一、發生系統故障時,一些尚未完成的事務的結果可能已送入物理數據庫,從而造成數據庫可能處於不正確的狀態。為保證數據i一致性,需要清除這些事務對數據庫的所有修改。系統恢復子系統必須在系統重新啟動時,讓所有非正常終止的事務回滾,強行撤銷(UNDO)
情況二、發生故障系統,有些已完成的事務可能有一部分甚至全部留在緩存區中,尚未寫回到磁盤上的物理數據庫中,系統故障使得這些事務對數據庫的修改部分或全部丟失,這也會使數據庫處於不一致的狀態,因此應將這些事務已經提交的結果重新寫入數據庫。在系統重新啟動后,恢復子系統需要撤銷所有未完成的事務外,還需要重做(REDO)所有已提交的事務
終結的說:沒有提交的要撤銷(UNDO),已經提交的要重做(REDO)
####三、介質故障 #####系統故障常稱為軟故障(Soft Crash),介質故障常稱為硬故障(Hard Crash)。硬故障指外存故障,如磁盤損壞、磁頭碰撞、瞬間強磁場干擾等。這類故障破壞數據庫或部分數據庫。並影響正在存取這部分數據的所有事務。 這類故障畢業前兩類故障發生的可能性小,但破壞性最大