午前問63
トランザクション処理におけるロールバックの説明として、適切なものはどれか。
| あるトランザクションが共有データを更新しようとしたとき、そのデータに対する他のトランザクションからの更新を禁止すること | |
| トランザクションが正常に処理されたときに、データベースへの更新を確定させること | |
| 何らかの理由で、トランザクションが正常に処理されなかったときに、データベースをトランザクション開始前の状態にすること | |
| 複数の表を、互いに関係付ける列をキーとして、一つの表にすること |
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- ウ
解説
ロールバックは、処理の途中でアプリケーションの不具合や強制終了などによりトランザクションが正常完了できなかった場合に、更新前ログを用いてデータベースをトランザクション開始直前の状態に戻す処理です。トランザクションは、振込での出金と入金のように関連する複数処理をひとまとまりにした単位で、「全て完了」か「まったく反映しない」のどちらかで終わる必要があります。続行不能になったとき、DBMSはロールバックにより「実行前と同じ」状態に戻します。
| ア. | あるトランザクションが共有データを更新しようとしたとき、そのデータに対する他のトランザクションからの更新を禁止すること |
| 共有データに対する他トランザクションからの更新を禁止する仕組みの説明で、排他制御です。ロールバックの説明ではありません。 | |
| イ. | トランザクションが正常に処理されたときに、データベースへの更新を確定させること |
| トランザクションが正常終了したときに更新結果を確定させる処理の説明で、コミットです。ロールバックの説明ではありません。 | |
| ウ. | 何らかの理由で、トランザクションが正常に処理されなかったときに、データベースをトランザクション開始前の状態にすること |
| 正しいです。トランザクションが正常に完了しなかったときに、データベースをトランザクション開始前の状態に戻すロールバックの説明です。 | |
| エ. | 複数の表を、互いに関係付ける列をキーとして、一つの表にすること |
| 複数の表を関連するキーで結び付けて一つの表にする操作の説明で、結合演算です。ロールバックの説明ではありません。 |