調查局三等申論題
109年
[資訊科學組] 資料庫應用
第 一 題
📖 題組:
有關資料庫交易(Transaction)管理與同步控制,請回答下列問題:
有關資料庫交易(Transaction)管理與同步控制,請回答下列問題:
📝 此題為申論題,共 2 小題
小題 (一)
在資料庫的交易(Transaction)管理中何謂序列排程(Serial Schedule)?符合序列排程對資料庫有何影響?又何謂可循序列排程(Serializable Schedule)?兩者關係為何?(10分)
思路引導 VIP
看到此題應直覺聯想到交易的「隔離性(Isolation)」與並行控制。解題時先明確定義「序列排程(無交錯)」與「可循序列排程(有交錯但結果等價於序列排程)」,接著論述序列排程雖然絕對正確但效能極差的影響,最後比較兩者「兼顧正確性與並行效能」的實務關係。
小題 (二)
在同步控制中結果等價(Result Equivalent)與衝突等價(Conflict Equivalent)意義上有何差異?並請說明下列二個排程是否具備衝突等價及說明原因,其中 T1與 T2代表不同的兩個交易,read()代表讀取資料,write()代表寫入資料,→代表事件執行先後順序。(15分)
Schedule A: T1:read(x) → T1:read(y) → T2:read(x) → T1:write(x) → T1:write(y) → T2:write(x) → T1:commit → T2:read(y) → T2:write(y) →T2:commit
Schedule B: T1:read(x) → T1:read(y) → T1:write(x) → T2:read(x) → T1:write(y) → T2:read(y) → T1:commit → T2:write(x) → T2:write(y) →T2:commit
思路引導 VIP
遇到同步控制題,首先釐清「結果等價」(最終狀態相同)與「衝突等價」(衝突操作順序相同)的理論定義。接著分析排程,抓出「不同交易、操作同資料、至少一寫入」的衝突操作組合,比對兩個排程中這些衝突對的相對先後順序是否完全一致即可得證。