ITパスポート 2024年 問74
問題文
トランザクション処理に関する記述のうち、適切なものはどれか。
選択肢
ア:コミットとは、トランザクションが正常に処理されなかったときに、データベースをトランザクション開始前の状態に戻すことである。
イ:排他制御とは、トランザクションが正常に処理されたときに、データベースの内容を確定させることである。
ウ:ロールバックとは、複数のトランザクションが同時に同一データを更新しようとしたときに、データの矛盾が起きないようにすることである。
エ:ログとは、データベースの更新履歴を記録したファイルのことである。(正解)
🔒 解説は解答すると表示されます
トランザクション用語【ITパスポート解説】
正解の理由
選択肢のうち、エが正しいのは次の理由です。
ログ(データベースの更新履歴を記録するファイル/変更操作を時系列で保存する記録)は、そのまま「データベースの更新履歴を記録したファイル」を指します。ログは誰が・いつ・どのような更新をしたかを残すため、復旧(障害発生時の元の状態への復帰)や監査に使われます。選択肢エの説明はこの定義と一致するため正解です。
ログ(データベースの更新履歴を記録するファイル/変更操作を時系列で保存する記録)は、そのまま「データベースの更新履歴を記録したファイル」を指します。ログは誰が・いつ・どのような更新をしたかを残すため、復旧(障害発生時の元の状態への復帰)や監査に使われます。選択肢エの説明はこの定義と一致するため正解です。
(用語メモ)
- トランザクション:一連の処理のまとまり。全部成功するか全部なかったことにする単位。
- ログ(log):更新履歴を記録するファイル。誰がいつ何をしたかを残す。
解法ステップ
- 各選択肢に出てくる用語を一つずつ正しく理解する。
- 用語の定義と選択肢の文を照らし合わせる。
- 定義と一致するものを選ぶ。
(本問では「ログ」の定義を覚えていればすぐに選べます。)
選択肢別の誤答解説
-
ア: 誤り。文中の説明は「コミット」の定義と反対です。
- コミット(commit:処理内容を確定し、永続化する操作)は、成功したトランザクションの変更を確定します。アは「正常に処理されなかったときに開始前の状態に戻す」とありますが、それはロールバックの説明です。
-
イ: 誤り。文は「排他制御」の定義になっていません。
- 排他制御(同時に複数の処理が同じデータを不整合なく扱えるように調整する仕組み)は、同時実行の競合を防ぐための仕組みです。イの文は「処理が正常にされたときに確定する」というコミットの説明に近く、排他制御の説明ではありません。
-
ウ: 誤り。文は「ロールバック」や「排他制御」の役割を混同しています。
- ロールバック(rollback:トランザクションの取り消し)は、エラーなどでそのトランザクションの変更を取り消し、開始前の状態に戻します。複数トランザクションの同時更新を調整して矛盾を防ぐのは「排他制御」です。ウの説明は排他制御の目的に近いが語句はロールバックの名前を使っており不正確です。
-
エ: 正しい。先述の通り「ログ」は更新履歴を記録したファイルであり、選択肢の説明と一致します。
よくある誤解
- コミットとロールバックを取り違える
- コミットは「確定」、ロールバックは「取り消し」です。逆に覚えてしまうミスが多いです。
- 排他制御を「確定」の意味だと誤解する
- 排他制御は「同時アクセスの調整」であり、データ確定(コミット)とは別物です。
- ログをバックアップと同一視する
- ログは更新履歴であり、バックアップ(データのコピー)とは用途が異なります。ログは復旧時の操作に使いますが、単にファイルを元に戻すバックアップとは機能が違います。
補足コラム
- ロールフォワードとロールバック
- ロールバック(rollback/undo:操作の取り消し)はトランザクション単位で変更を元に戻す操作です。
- ロールフォワード(rollforward/redo:再実行)は、ログを使って失われた更新を再実行し、障害前の状態まで進める操作です。復旧には両方を組み合わせることがあります。
- WAL(Write-Ahead Logging:書き込み先行ログ)
- データをディスクに書き込む前にログに先に記録する方式。これにより障害発生時の復旧が容易になります。
- ACID特性(トランザクションの基本概念)
- Atomicity(原子性):トランザクションは全体が成功するか全部取り消されるかのどちらか。
- Consistency(一貫性):トランザクション実行後も整合性ルールが保たれる。
- Isolation(独立性):並行実行でも互いに影響を与えないように見える。
- Durability(永続性):コミット後の変更は永続的に保存される。
FAQ
Q1: ログがあればバックアップはいらないですか?
A1: いいえ。ログは変更履歴を残しますが、完全なデータコピー(バックアップ)と併用して保護するのが一般的です。ログで復旧できる範囲と、バックアップからの復元が必要なケースは異なります。
A1: いいえ。ログは変更履歴を残しますが、完全なデータコピー(バックアップ)と併用して保護するのが一般的です。ログで復旧できる範囲と、バックアップからの復元が必要なケースは異なります。
Q2: コミットは自動で行われますか?
A2: システムや設定次第です。多くのDBMSでは「自動コミット」設定があり、1つの操作ごとに自動でコミットされますが、トランザクションをまとめて明示的にコミットする運用もあります。
A2: システムや設定次第です。多くのDBMSでは「自動コミット」設定があり、1つの操作ごとに自動でコミットされますが、トランザクションをまとめて明示的にコミットする運用もあります。
Q3: 障害でデータが壊れたらログで完全に戻せますか?
A3: ログとバックアップの組み合わせで高い確実性で復旧できますが、設定や保存期間に依存します。適切なバックアップポリシーとログ管理が重要です。
A3: ログとバックアップの組み合わせで高い確実性で復旧できますが、設定や保存期間に依存します。適切なバックアップポリシーとログ管理が重要です。
関連キーワード: トランザクション、ログ、コミット、ロールバック、排他制御、ロールフォワード、書き込み先行ログ(WAL)、ACID、復旧、redo、undo

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

