情報セキュリティマネジメント 令和元年度 秋期 午前 問46
データベース
トランザクションに関する記述
データベースのトランザクションに関する記述のうち,適切なものはどれか。
- ア 他のトランザクションにデータを更新されないようにするために,テーブルに対するロックをアプリケーションプログラムが解放した。
- イ トランザクション障害が発生したので,異常終了したトランザクションをDBMSがロールフォワードした。
- ウ トランザクションの更新結果を確定するために,トランザクションをアプリケーションプログラムがロールバックした。
- エ 複数のトランザクション間でデッドロックが発生したので,トランザクションをDBMSがロールバックした。
答えと解説
✓ これが正解エ 複数のトランザクション間でデッドロックが発生したので,トランザクションをDBMSがロールバックした。
解説
デッドロック時はDBMSがトランザクションをロールバックします。
複数のトランザクションが、互いに相手が確保しているデータの解放を待ち合って動けなくなる状態がデッドロックです。この状態は放置しても解消しないため、DBMSがどちらかのトランザクションを選んで処理を取り消すロールバックを行い、確保していたロックを解放させることで解決します。だから、デッドロックの発生時にDBMSがトランザクションをロールバックしたという記述が適切です。データベースの一貫性を守るためのロックの管理や取消しの処理は、アプリケーションプログラムが個々に行うのではなく、DBMSが担うところに意味があります。
ほかの選択肢の解説
- ア 他のトランザクションにデータを更新されないようにするために,テーブルに対するロックをアプリケーションプログラムが解放した。:ロックを解放すると、他のトランザクションはそのデータを更新できるようになります。更新されないようにするためという目的に対して、解放という行為は正反対です。目的と行為がかみ合っていないので、この記述は適切ではありません。
- イ トランザクション障害が発生したので,異常終了したトランザクションをDBMSがロールフォワードした。:異常終了したトランザクションに行われるのは、更新を取り消して元に戻すロールバックです。ロールフォワードは、バックアップから復元したデータベースを障害の直前まで進める操作を指します。
- ウ トランザクションの更新結果を確定するために,トランザクションをアプリケーションプログラムがロールバックした。:ロールバックは、更新を取り消して元に戻す操作です。更新結果を確定したいときに行う操作ではないので、確定するためにロールバックしたという記述では意味が逆になっています。
関連用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。
- DBMSデータベースを管理するソフト。
- ロールフォワード障害の後に、控えと記録を使って障害の直前の状態まで復元する操作です。
- ロールバック処理の途中で具合が悪くなったときに、始める前の状態まで戻す操作です。
- デッドロック互いに相手の解放を待ち合って、どちらの処理も進めなくなる状態です。
出典:令和元年度 秋期 情報セキュリティマネジメント試験 午前 問46
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和7年度 科目A 問5:
DNSに 関する 問題 (トランザクション) - 令和元年度 秋期 午前 問45:
応答時間の 説明 (トランザクション) - 平成31年度 春期 午前 問45:
DBMSの 機能 (DBMS) - 平成30年度 春期 午前 問46:
トランザクションに 関する 問題 (DBMS)
同じ分野の問題
誤りを見つけたら報告する