応用情報技術者 2015年 春期 午前2 問30
問題文
DBMSに実装すべき原子性(atomicity)を説明したものはどれか。
選択肢
ア:同一データベースに対する同一処理は、何度実行しても結果は同じである。
イ:トランザクション完了後にハードウェア障害が発生しても、更新されたデータベースの内容は保証される。
ウ:トランザクション内の処理は、すべてが実行されるか、すべてが取り消されるかのいずれかである。(正解)
エ:一つのトランザクションの処理結果は、他のトランザクション処理の影響を受けない。
DBMSに実装すべき原子性(atomicity)の説明【午前2 解説】
要点まとめ
- 結論:原子性とはトランザクション内の処理が全て実行されるか全て取り消されるかのどちらかであることです。
- 根拠:原子性はACID特性の一つで、部分的な処理の反映を防ぎデータの整合性を保ちます。
- 差がつくポイント:原子性と混同しやすい整合性や独立性との違いを正確に理解することが重要です。
正解の理由
選択肢ウ「トランザクション内の処理は、すべてが実行されるか、すべてが取り消されるかのいずれかである。」は、原子性の定義そのものです。トランザクションは一連の処理単位であり、途中で失敗した場合は全処理を取り消してデータの不整合を防ぎます。これにより、データベースの信頼性が保たれます。
よくある誤解
原子性は「処理結果が常に同じになる」や「障害後もデータが保証される」といった意味ではありません。これらは別のACID特性に該当します。
解法ステップ
- ACID特性の4つ(原子性、一貫性、独立性、耐久性)を確認する。
- 原子性の定義を思い出す:「全て実行 or 全て取り消し」。
- 選択肢を原子性の定義と照らし合わせる。
- 原子性以外の特性に関する選択肢を除外する。
- 最も正確に原子性を表す選択肢を選ぶ。
選択肢別の誤答解説
- ア:同一処理の結果が同じになるのは「決定性」や「冪等性」に近く、原子性の説明ではない。
- イ:障害後のデータ保証は「耐久性」の説明であり、原子性とは異なる。
- ウ:正解。原子性の定義そのものである。
- エ:他のトランザクションの影響を受けないのは「独立性(分離性)」の説明である。
補足コラム
原子性はトランザクション処理の基本であり、部分的な更新がデータの不整合を招くのを防ぎます。例えば銀行の振込処理では、送金元の口座からの引き落としと送金先の口座への入金が両方成功するか、どちらも行われないかが保証されます。
FAQ
Q: 原子性と耐久性はどう違いますか?
A: 原子性は処理の全体成功か全体失敗かを保証し、耐久性は成功した処理結果が障害後も保持されることを保証します。
A: 原子性は処理の全体成功か全体失敗かを保証し、耐久性は成功した処理結果が障害後も保持されることを保証します。
Q: 原子性はどのように実現されますか?
A: ロールバックやログ管理などの機構により、途中失敗時に処理を取り消すことで実現されます。
A: ロールバックやログ管理などの機構により、途中失敗時に処理を取り消すことで実現されます。
関連キーワード: 原子性、トランザクション、ACID特性、データベース、ロールバック、耐久性、独立性

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

