免費開始練習
地特三等申論題 110年 [資訊處理] 資料庫應用

第 一 題

📖 題組:
在多使用者多工的資料庫管理系統(Database Management System),多個交易(Transactions)在同步執行(Concurrently Performed)時,有可能發生資料讀取之難題(issue)。請回答下列相關問題:
📝 此題為申論題,共 5 小題

小題 (一)

請敘述何謂交易?(4 分)

思路引導 VIP

看到「交易(Transaction)」,應直指其核心定義:「不可分割的邏輯工作單元(Logical Unit of Work)」。除了說明 All-or-Nothing 的概念外,為確保拿到完整4分,建議一併列出交易必須具備的四大特性(ACID)以展現專業度。

🤖
AI 詳解
AI 專屬家教

「交易(Transaction)」是指在資料庫管理系統中,為了完成某一項業務需求而執行的一個「邏輯工作單元(Logical Unit of Work)」,它包含了一連串的資料庫操作指令(如讀取、寫入、修改或刪除等)。 交易的核心特徵為「不可分割性(All-or-Nothing)」,即該組操作要麼全部執行成功並提交(Commit),要麼在發生錯誤時全部取消並回復(Rollback)到執行前的狀態。一個正常的交易必須具備以下四大特性(簡稱 ACID): (1) 原子性(Atomicity):交易內的所有操作視為單一不可分割的整體,不可只執行一部分。

小題 (二)

請敘述何謂更新遺失(Lost Updates)的難題?(4 分)

思路引導 VIP

看到「更新遺失(Lost Updates)」,應直覺聯想到並行控制中多個交易對同一資料進行「讀取-修改-寫入」的衝突。解題關鍵在於明確點出兩個交易同時讀取舊值,且後寫入的交易直接覆蓋了先寫入的交易結果,導致先前的更新失效。

🤖
AI 詳解
AI 專屬家教

「更新遺失(Lost Updates)」指在多個交易並行執行的環境下,兩個(或多個)交易同時讀取同一個資料項目,並各自進行修改與寫回,導致先寫回的資料被後寫回的資料所覆蓋,使得先前的更新操作完全失效的現象。 具體發生情境如下:

  1. 交易 T1 與交易 T2 幾乎同時讀取資料庫中的同一筆資料項目 X(假設原值為 100)。

小題 (三)

請敘述何謂讀到髒資料(Dirty Read)的難題?(4 分)

思路引導 VIP

看到「Dirty Read(讀取髒資料)」,應直覺聯想到並行控制(Concurrency Control)中交易的「隔離性(Isolation)」。破題關鍵在於點出「讀取到尚未 Commit 的資料」,並說明若原交易發生 Rollback 會導致資料狀態不一致的後果。

🤖
AI 詳解
AI 專屬家教

「讀到髒資料(Dirty Read)」是指在多個交易並行執行的環境中,一個交易讀取了另一個交易「已修改但尚未確認(Uncommitted)」的資料。 特徵與影響包含: (1) 發生情境:假設交易 A 更新了某筆資料,在交易 A 執行 Commit(確認)之前,交易 B 就讀取了這筆被更新的資料。

小題 (四)

請敘述何謂無法重複讀取(Non-Repeatable Read)難題?(4 分)

思路引導 VIP

看到此題,應先聯想資料庫交易(Transaction)隔離性(Isolation)所探討的並行問題。答題關鍵在於清楚描述「同一交易內兩次讀取」、「被另一交易修改或刪除並Commit」以及「兩次讀取結果不一致」三個核心要素。

🤖
AI 詳解
AI 專屬家教

「無法重複讀取(Non-Repeatable Read)」指在同一個交易(Transaction)內,對同一筆資料進行先後兩次讀取操作時,因另一個並行交易在這兩次讀取之間修改(Update)或刪除(Delete)了該筆資料並成功確認(Commit),導致原交易的兩次讀取得到不同的資料值。 特徵包含: (1) 核心肇因在於並行交易對「既有資料」的更新或刪除操作(若為新增資料則稱為幻影讀取 Phantom Read)。

小題 (五)

同步控制方法(Concurrency Control Method)可運用來解決前述的難題。其中有一種以鎖為基礎之協定(Lock-Based Protocol),請敘述其運作機制。(4 分)

思路引導 VIP

看到此題應聯想到交易在存取資料前必須先「上鎖」,操作後「解鎖」的基本機制。作答時務必點出兩種主要鎖定模式:共用鎖(Shared lock)用於讀取,互斥鎖(Exclusive lock)用於寫入,並簡述其相容性與等待規則以完整交代運作邏輯。

🤖
AI 詳解
AI 專屬家教

【破題】以鎖為基礎之協定(Lock-Based Protocol)是藉由對資料項目進行「鎖定(Lock)」與「解鎖(Unlock)」,來控管多個交易對同一資料的併發存取,確保資料一致性。 【論述】 一、基本運作原理

升級 VIP 解鎖