データベースのトランザクションに関する記述のうち、適切なものはどれか。
ア |
他のトランザクションにデータを更新されないようにするために、テーブルに対するロックをアプリケーションプログラムが解放した。 |
イ |
トランザクション障害が発生したので、異常終了したトランザクションをDBMSがロールフォワードした。 |
ウ |
トランザクションの更新結果を確定するために、トランザクションをアプリケーションプログラムがロールバックした。 |
エ |
複数のトランザクション間でデッドロックが発生したので、トランザクションをDBMSがロールバックした。 |
答え エ
【解説】
ア |
他のトランザクションにデータを更新されないようにするために、テーブルに対するロックをし、トランザクション終了時にアプリケーションプログラムが解放します。(×) |
イ |
トランザクション障害が発生した場合、異常終了したトランザクションをDBMSがロールバックします。(×) |
ウ |
トランザクションの更新結果を確定するためには、トランザクションをアプリケーションプログラムがコミットします。(×) |
エ |
複数のトランザクション間でデッドロックが発生した場合、デッドロックが発生したトランザクションをDBMSがロールバックします。(〇) |
【キーワード】
・ロールフォワード
・ロールバック
【キーワードの解説】
- ロールフォワード(roll forward)
データベースに障害が発生したときに、データベースのバックアップファイルとジャーナル(ログ)ファイルから障害直前のデータまで戻すこと。
- ロールバック(roll back)
データベースに障害が発生したときに、障害の直前に行ったチェックポイント(データを確定させる処理)まで、データを元に戻す処理のことです。
元に戻すための情報として、データベースの操作をしたときの記録(ジャーナル)を使用します。
ジャーナルには、操作前のデータベースの状態を記録する更新前ジャーナルと、操作後の状態を記録する更新後ジャーナルがあります。
チェックポイントはトランザクション処理の完了後に行われることが一般的です。
もっと、「ロールバック」について調べてみよう。
戻る
一覧へ
次へ
|