データベースの基礎
トランザクションが持つべきACID特性のうち、「口座Aから引き落として口座Bに入金する振替の処理が、途中で障害が起きても、両方とも行われるか、まったく行われないかのどちらかになる」という性質はどれか。
- A一貫性(Consistency)
- B耐久性(Durability)
- C原子性(Atomicity)
答えと解説を見る
正解:C. 原子性(Atomicity)
ACID特性は、トランザクションが満たすべき4つの性質の頭文字をとったものです。原子性(Atomicity)は、トランザクションの中の処理がすべて実行されるか、まったく実行されないかのどちらかになる性質で、障害が起きたときは途中までの更新を取り消します。一貫性(Consistency)は、トランザクションの前後で、データが整合性の制約(残高が負にならない、外部キーの参照先があるなど)を満たし続ける性質です。独立性(Isolation、隔離性)は、同時に実行される複数のトランザクションが互いに干渉せず、1つずつ順に実行した場合と同じ結果になる性質です。耐久性(Durability、永続性)は、コミットしたトランザクションの結果が、その後に障害が起きても失われない性質です。設問の「全部か無か」の性質は原子性です。
- A. 一貫性は、トランザクションの前後でデータが整合性の制約を満たし続ける性質です。
- B. 耐久性は、コミットした結果が障害のあとも失われない性質です。
- C. 正しい。すべて実行されるか、まったく実行されないかのどちらかになる性質が原子性です。