基本情報技術者試験 練習問題 5:ACID特性の理解
トランザクション処理の特性(ACID特性)について述べた文として、正しいものはどれか。
- Atomicity(原子性)は、トランザクション内のすべての操作が成功するか、すべて失敗するかのいずれかであることを保証する。
- Consistency(一貫性)は、複数トランザクションが同時実行された場合、結果が非決定的になる可能性を許容する特性である。
- Isolation(分離性)は、各トランザクションが他のトランザクションの処理中の状態を参照することを許可する特性である。
- Durability(永続性)は、一度コミットされたデータベースの変更は、システム障害が発生しても永続的に保持されることを保証する。
- すべてのトランザクション処理は必ずACID特性を満たす必要があり、一部の特性を緩和することはできない。
正解と解説を見る
正解:Atomicity(原子性)は、トランザクション内のすべての操作が成功するか、すべて失敗するかのいずれかであることを保証する。
トランザクション処理のACID特性は、データベースの信頼性を保証するための4つの重要な特性です。
Atomicity(原子性):トランザクション内の操作は「すべてが成功」するか「すべてが失敗」するかのいずれかで、部分的に成功する状態は存在しません。銀行送金で「口座Aから減額」だけ実行されて「口座Bへの加算」が実行されない、という状況を防ぎます。
Consistency(一貫性):トランザクション実行前後でデータベースの完全性が保たれます。制約違反や不正な状態にならないことを保証します。
Isolation(分離性):複数のトランザクションが同時実行されても、相互に干渉しません。各トランザクションは他の進行中のトランザクションの中間状態を参照しません。
Durability(永続性):一度コミットされたデータは、システム障害・電源切断・ディスク故障が発生しても失われません。
正しいのは「Atomicity(原子性)は、トランザクション内のすべての操作が成功するか、すべて失敗するかのいずれかであることを保証する」です。
実務では、パフォーマンスとの折り合いをつけるため、Isolationの厳密さを調整する場合があります(例:ReadCommitted分離レベル)。