阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 中華郵政股份有限公司_職階人員甄試試題_營運職/資料庫管理:關聯式資料庫系統技術#106508
科目:關聯式資料庫系統技術
年份:110年
排序:0

申論題內容

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

詳解 (共 1 筆)

詳解 提供者:hchungw

在資料庫系統中,交易(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,可以避免因為部分成功的交易操作導致資料庫進入不一致狀態,從而保護資料完整性。