令和2年免除試験問題 問29
問29解説へ
"商品"表に対して,更新SQL文を実行するトランザクションが,デッドロックの発生によって異常終了した。異常終了後の"商品"表はどれか。ここで,"商品"表に対する他のトランザクションは,参照は行うが更新はしないものとする。〔更新SQL文〕
DELETE FROM 商品 WHERE 商品コード = 'B020'
正解 イ問題へ
広告
解説
トランザクションには「トランザクション内の処理がすべて実行されるか、または全く実行されないというどちらかの状態で終了しなければならない」という特性が要求されます。この特性をトランザクションの原子性(Atomicity)といいます。
障害やデッドロックによってトランザクションが正常終了しなかったときは、原子性を保証するために、DBMSはトランザクションの更新前ログを使用してデータベースをトランザクション開始直前の状態に戻すロールバックを行います。これにより、データベースは何の処理も行わなかったのと同じ状態に戻ります。
したがって、異常終了後の表の状態はSQL文実行前と同じ状態の「イ」となります。
障害やデッドロックによってトランザクションが正常終了しなかったときは、原子性を保証するために、DBMSはトランザクションの更新前ログを使用してデータベースをトランザクション開始直前の状態に戻すロールバックを行います。これにより、データベースは何の処理も行わなかったのと同じ状態に戻ります。
したがって、異常終了後の表の状態はSQL文実行前と同じ状態の「イ」となります。
広告