この概念が出た関連問題

この試験の対策ガイド

情報セキュリティマネジメント試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

データベースのトランザクションでは,複数のトランザクションが同じデータをロックして互いに相手の解放を待ち続ける『デッドロック』が発生することがあります。デッドロックが起きると処理が進まなくなるため,DBMSはいずれかのトランザクションを強制的に取り消し(ロールバックし)て,デッドロックを解消します。したがって正解はd『複数のトランザクション間でデッドロックが発生したので,トランザクションをDBMSがロールバックした』です。選択肢aは,他から更新されないようにするにはロックを『解放』ではなく『取得(保持)』すべきで記述が逆。bは,障害で異常終了したトランザクションは,更新前の状態に戻すロールバックで回復するもので,ロールフォワード(更新後の状態へ進める回復)は誤り。cは,更新結果を『確定』するのはコミットであり,ロールバック(取消し)は逆です。デッドロック解消にDBMSがロールバックする点が要点です。

なぜ他の選択肢は違うのか

選択肢 ア
他のトランザクションに更新されないようにするには,テーブルへのロックを取得(保持)する必要があります。ロックを解放すると他から更新できてしまうため,記述が逆で誤りです。
選択肢 イ
障害で異常終了したトランザクションは,更新前の状態に戻すロールバックで回復します。更新後の状態へ進めるロールフォワードを行うという記述は誤りです。
選択肢 ウ
トランザクションの更新結果を確定するのはコミットです。ロールバックは更新を取り消す操作であり,更新結果を確定するという記述は逆で誤りです。

解くときのポイント

デッドロック→DBMSが一方を『ロールバック』して解消。確定はコミット,取消しはロールバック。ロックは更新防止のため『取得』する。