問題
問46
データベースのトランザクションが、完全に実行されるか、全く実行されないかのどちらかの結果になることを保証する特性はどれか。
- 原子性
- 一貫性
- 独立性
- 耐久性
正解
正解は「ア」です。
解説
正解は「ア」の原子性です。原子性(Atomicity)は、トランザクション処理に求められる4つの性質「ACID特性」の一つで、トランザクションに含まれる一連の処理が「すべて成功する」か「すべて失敗する」かのどちらかであり、中途半端な状態で終わらないことを保証する特性です。その名前は、物質の最小単位である「原子(Atom)」がそれ以上分割できないことに由来します。
例えば、銀行の振込処理を考えてみましょう。この処理は「Aさんの口座からお金を引く」処理と「Bさんの口座にお金を足す」処理の2つで構成されるトランザクションです。原子性が保証されていれば、Aさんの口座からお金が引かれたのにBさんの口座に足されない、といった矛盾した状態は絶対に発生しません。途中で何らかのエラーが発生した場合は、すべての処理が取り消され(ロールバック)、処理を始める前の状態に戻ります。これにより、データベースの整合性が保たれます。
イ(一貫性):
Consistency。トランザクションの前後で、データベースの整合性が保たれていることを保証する特性です。
ウ(独立性):
Isolation。複数のトランザクションを同時に実行した場合でも、互いに影響を与えず、あたかも一つずつ順番に実行されたかのような結果になることを保証する特性です。
エ(耐久性):
Durability。正常に完了したトランザクションの結果は、その後システムに障害が発生しても失われないことを保証する特性です。
解法のポイント
データベースのトランザクション処理におけるACID特性(原子性、一貫性、独立性、耐久性)は、非常に重要な頻出テーマです。それぞれのアルファベットがどの特性を指すのか、そしてその特性が何を保証するのかを正確に理解しておく必要があります。
- A (Atomicity):All or Nothing(全部か無か)
- C (Consistency):矛盾しない
- I (Isolation):互いに干渉しない
- D (Durability):結果が消えない
このように、各特性を象徴するキーワードとセットで覚えるのが効果的です。
用語補足
原子性:
処理が分割できず、中途半端な状態で終わらないことです。「やるなら全部やる、やらないなら全くやらない」という、”All or Nothing”の性質です。
トランザクション:
データベースに対する、互いに関連し、分けることのできない一連の処理のまとまりのことです。一連の処理がすべて成功して初めて、処理結果が確定(コミット)されます。
一貫性:
データの矛盾が生じないことです。例えば、振込処理の前後で、口座全体の総額が変わらない(お金が消えたり増えたりしない)といったルールが守られることを指します。
独立性:
他の処理から影響を受けないことです。複数の人が同時にATMを操作しても、お互いの処理が混ざり合って残高がおかしくなることがない、という性質です。


