問題
問100
データベースにおいて、トランザクションの処理結果が、他のトランザクション処理の影響を受けないことを保証する特性はどれか。
- 原子性
- 一貫性
- 独立性
- 耐久性
正解
正解は「ウ」です。
解説
正解は「ウ」の独立性です。独立性(Isolation)は、トランザクション処理に求められる4つの性質「ACID特性」の一つで、複数のトランザクションが同時に実行されたとしても、それぞれのトランザクションは互いに干渉することなく、あたかも一つずつ順番に実行されたかのような結果を保証する特性です。これにより、あるトランザクションが処理中のデータ(まだ確定していないデータ)を、他のトランザクションが読み書きしてしまうといった問題を防ぎます。
例えば、複数の人が同時に同じ銀行口座にアクセスしてATMで操作を行ったとしても、各人の処理が混ざり合って残高がおかしくなることはありません。データベース管理システムがロックなどの仕組みを使って、各トランザクションが独立した空間で実行されるように制御しているためです。問題文の「他のトランザクション処理の影響を受けない」という説明は、この独立性の性質を的確に表しています。
ア(原子性):
Atomicity。トランザクションの処理が「すべて実行される」か「まったく実行されない」かのどちらかになることを保証する特性です。
イ(一貫性):
Consistency。トランザクションの前後で、データベースの整合性(データ間の矛盾がない状態)が保たれることを保証する特性です。
エ(耐久性):
Durability。正常に完了したトランザクションの結果は、システム障害が発生しても失われないことを保証する特性です。
解法のポイント
データベースのトランザクション処理におけるACID特性(原子性、一貫性、独立性、耐久性)は、非常に重要な頻出テーマです。それぞれのアルファベットがどの特性を指すのか、そしてその特性が何を保証するのかを正確に理解しておく必要があります。
- A (Atomicity):All or Nothing(全部か無か)
- C (Consistency):矛盾しない
- I (Isolation):互いに干渉しない
- D (Durability):結果が消えない
このように、各特性を象徴するキーワードとセットで覚えるのが効果的です。問題文の「影響を受けない」が「干渉しない」に繋がります。
用語補足
独立性:
他の処理から影響を受けないことです。複数のシェフが同じキッチンで同時に調理していても、お互いの料理が混ざらないように、それぞれの作業スペースが確保されている状態に似ています。
トランザクション:
データベースに対する、分けることのできない一連の処理のまとまりのことです。銀行振込のように「Aから引く」「Bに足す」という一連の処理を指します。
原子性:
処理が「All or Nothing」で実行されることです。振込の途中でエラーが起きたら、お金を引く処理もなかったことになる、という性質です。
耐久性:
一度完了した処理結果は消えない、という性質です。振込完了の通知が出た後に停電が起きても、振込の記録はちゃんと残っていることを保証します。


