事務
定義:用戶定義的一個數據庫操作序列,這些操作要麼全做,要麼全不做,是一個不可分割的工作單位。
定義事務的語句一般有三條:
BEGIN TRANSACTION;
COMMIT;
ROLLBACK;
事務通常以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結束
COMMIT表示提交,即提交事務的所有操作。將事務中所有對數據庫的更新寫回到磁盤上的物理數據庫中去。事務正常結束。
ROLLBACK表示回滾,系統將事務中對數據庫的所有已完成的操作全部撤銷,回滾到事務開始時的狀態。
事務的ACID特性
- 原子性(atomicity)
- 一致性(Consistency)
- 隔離性(Isolation)
- 持續性(Durability)
(1)原子性
事務是數據庫的邏輯工作單位,事務中包括的操作要麼都做,要麼都不做。
(2)一致性
事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。
(3)隔離性
一個事務的執行不能被其他事務干擾。即一個事務的內部操作及使用的數據對其他併發事務是隔離的,
併發執行的各個事務之間不能相互干擾。
(4)持續性
一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。
數據庫發生故障的種類:
- 事務內部的故障
- 系統故障
- 介質故障
- 計算機病毒
(1)事務內部的故障
事務內部更多的故障是非預期的,是不能由應用程序處理的。事務故障僅指這類非預期的故障。
意味着沒有達到預期的終點(COMMIT或ROLLBACK),因此恢復程序一般是強制回滾該事務(UNDO)
(2)系統故障
系統故障是指造成系統停止運轉的任何事件,使得系統要重新啓動。
解決方案:重做(REDO)
(3)介質故障
磁盤損壞,磁頭碰撞,瞬時強磁場干擾等,破壞性很大
(4)計算機病毒
恢復的基本原理:冗餘
數據庫中任何一部分被破壞或不正確的數據可以根據存儲在系統別處的冗餘數據來重建。實現的技術細節相當複雜。
待續...