第四題: 請回答下列問題: 
(一)資料庫系統於執行交易(transition)過程中,視情況需要會下達 COMMIT 或 ROLLBACK 指令,請問執行此兩項指令之時機與目的分別為何?【8 分】

詳解 (共 3 筆)

hchungw
hchungw
詳解 #6128213
2024/06/12

在資料庫系統中,交易(transaction)是一組可以被視為單一邏輯工作單位的操作。交易要麼完全執行,要麼完全不執行,以確保資料的一致性和完整性。交易的管理通常涉及兩個關鍵指令:COMMIT 和 ROLLBACK。以下是這兩個指令的執行時機與目的:

COMMIT

執行時機

  1. 交易成功完成
    • 當交易中的所有操作都成功執行且沒有錯誤時,會下達 COMMIT 指令。
    • 當應用程序邏輯判斷交易中的所有條件都滿足時,會下達 COMMIT 指令。

目的

  1. 永久保存變更
    • COMMIT 指令會將交易中的所有變更永久寫入資料庫,使得這些變更在系統崩潰或重啟後依然存在。
  2. 釋放鎖資源
    • 當 COMMIT 指令執行後,資料庫系統會釋放交易期間持有的所有鎖,以便其他交易可以訪問這些資源。
  3. 確保資料一致性
    • 通過執行 COMMIT,可以確保資料庫從一個一致狀態轉換到另一個一致狀態,維護資料完整性。

ROLLBACK

執行時機

  1. 交易失敗或錯誤

    • 當交易中的某個操作失敗(如違反資料完整性約束、SQL 語法錯誤等)時,會下達 ROLLBACK 指令。
    • 當系統或應用程序檢測到一些異常情況(如資源不可用、連接丟失等)時,會下達 ROLLBACK 指令。
  2. 應用程序邏輯要求

    • 當應用程序邏輯判斷某些條件未滿足,需要回退所有操作時,會下達 ROLLBACK 指令。

目的

  1. 撤銷變更
    • ROLLBACK 指令會撤銷交易中的所有變更,使資料庫恢復到交易開始前的狀態。
  2. 釋放鎖資源
    • 當 ROLLBACK 指令執行後,資料庫系統會釋放交易期間持有的所有鎖,以便其他交易可以訪問這些資源。
  3. 保護資料一致性
    • 通過執行 ROLLBACK,可以避免因為部分成功的交易操作導致資料庫進入不一致狀態,從而保護資料完整性。
CCG
CCG
詳解 #6000989
2024/01/04
COMMIT:資料狀態已確定,儲存進入D...
(共 55 字,隱藏中)
前往觀看
一起撐住一起上榜
一起撐住一起上榜
詳解 #7092664
2025/11/14
(一) COMMIT 與 ROLLBA...
(共 400 字,隱藏中)
前往觀看