阿摩線上測驗 登入

申論題資訊

試卷:108年 - 108 臺灣菸酒股份有限公司_從業職員及從業評價職位人員甄試_從業職員/系統開發:資料庫管理與應用#74345
科目:資料庫管理與運用
年份:108年
排序:0

申論題內容

第二題: 資料庫異動(Transaction)必須符合 AICD 四個特性,請分別說明 AICD 所代表的意義為 何?又,AICD 之中「I」若未解決會產生哪些問題?【25 分】

詳解 (共 1 筆)

詳解 提供者:hchungw

資料庫交易(Transaction)需要符合 ACID 四個特性,以確保資料的一致性和可靠性。ACID 分別代表:

A - 原子性 (Atomicity)

意義:原子性確保每個交易要麼完全執行,要麼完全不執行。如果交易中的任何一部分操作失敗,整個交易將回滾 (rollback) 到交易開始之前的狀態。這意味著,資料庫不會部分地反映交易操作的結果。

問題

  • 如果未能實現原子性,部分完成的交易會導致資料不一致。例如,在銀行轉帳操作中,若扣款成功但存款失敗,會導致金額不平衡。

C - 一致性 (Consistency)

意義:一致性確保在交易完成後,資料庫必須從一個一致的狀態轉換到另一個一致的狀態。這意味著,所有資料庫的規則(如約束、觸發器等)必須在交易完成後仍然成立。

問題

  • 如果未能保持一致性,資料庫可能會進入不一致的狀態,導致資料完整性被破壞。例如,違反唯一性約束或外鍵約束。

I - 隔離性 (Isolation)

意義:隔離性確保在多個交易同時執行時,彼此之間不會相互干擾。這意味著,每個交易都應該看起來像是獨立執行的,即使它們實際上是並行執行的。

問題:

如果未能實現隔離性,會出現以下問題:

  1. 髒讀 (Dirty Read):一個交易讀取了另一個未提交的交易所修改的數據,如果後者回滾,前者讀取的數據就會無效。
  2. 不可重複讀 (Non-Repeatable Read):一個交易在多次讀取同一數據時,若另一個交易在此期間對該數據進行了修改,前者的讀取結果會不一致。
  3. 幻影讀 (Phantom Read):一個交易在兩次查詢期間,另一個交易插入或刪除了符合條件的數據,導致前者兩次查詢結果不一致。

這些問題會導致數據不一致和邏輯錯誤,破壞數據的完整性和可靠性。

D - 持久性 (Durability)

意義:持久性確保一旦交易提交 (commit),其結果將永久保存到資料庫中,不會因為系統崩潰或其他問題而丟失。這意味著,交易的結果必須被持久化到穩定的儲存中,保證即使在系統故障後也能夠恢復。

問題

  • 如果未能實現持久性,系統崩潰或故障可能導致已提交交易的數據丟失,進而損害資料庫的完整性和可靠性。

總結

ACID 特性是確保資料庫交易正確執行和維護數據完整性的重要基礎。每個特性都針對特定的問題提供解決方案:

  • 原子性 (Atomicity) 確保交易要麼全有要麼全無。
  • 一致性 (Consistency) 確保交易前後資料庫處於一致狀態。
  • 隔離性 (Isolation) 確保並行交易不互相干擾。
  • 持久性 (Durability) 確保交易結果永久保存。

特別是隔離性 (Isolation),如果未能解決,會導致髒讀、不可重複讀和幻影讀等問題,從而破壞數據的一致性和正確性。