難易度・正答率・重要度
- 難易度:★★★☆☆(ACIDの正確な理解)
- 正答率:★★★☆☆(用語対応の見極め)
- 重要度:★★★☆☆(DBトランザクションの基礎)
問題文
データベースのデータ処理では、アプリケーションにおけるひとまとまりの処理単位を「トランザクション」と呼ぶ。たとえば、ある消費者の口座からある小売店の口座に振込送金する場合、⑴消費者の口座残高から振込金額を引き、それを新しい口座残高にすることと、⑵小売店の口座残高に振込金額を足し、それを新たな口座残高にすること、という2つの更新処理が必要になる。このような出金処理と入金処理をまとめて扱う必要がある場合が「トランザクション」の例である。
トランザクションの処理には、一般にACID特性(Atomicity,Consistency,Isolation,Durability)と呼ばれる技術的に満たすべき要件がある。ACID特性に関する記述として、最も適切なものはどれか。
ア
システムに異常が発生したときに、ログなどを用いて異常発生前の状態にまで復旧できることを保証しなければならない。このような特性を「独立性(Isolation)」という。
イ
データの物理的格納場所を意識することなくトランザクションの処理が実行される必要がある。このような特性を「耐久性(Durability)」という。
ウ
トランザクションを構成する全ての処理が正常に終了したときだけ、処理結果をデータベースに反映する必要がある。このような特性を「原子性(Atomicity)」という。
エ
複数のトランザクションを処理する際には、各トランザクションを逐次的に実行する場合と同時に実行する場合で、処理結果が同じである必要がある。このような特性を「一貫性(Consistency)」という。
出典: 中小企業診断協会|2020年度 第1次試験問題|経営情報システム(PDF)
解答
- 正解:ウ(原子性)
解説(選択肢ごとの評価)
- ア:×
異常時に復旧できる保証は「耐久性(Durability)」や障害復旧の概念に関わる。Isolation(独立性)は同時実行時に他トランザクションの影響を受けない特性。 - イ:×
物理配置を意識しないのは透過性の話でACIDではない。Durability(耐久性)はコミット後の結果が永続的に保持される特性。 - ウ:〇
すべての処理が完了したときのみ反映し、途中で失敗したら全体を取り消すのがAtomicity(原子性)。 - エ:×
同時実行・逐次実行で結果が同じになることは直列化可能性(Serializability)に関わり、Isolationの目標。Consistency(一貫性)は整合制約を常に満たす特性。
学習のポイント
- Atomicity(原子性): 成功なら全体コミット、失敗なら全体ロールバック。
- Consistency(一貫性): トランザクションの前後で整合制約が常に満たされる。
- Isolation(分離性): 並行実行でも互いの影響を最小化(直列実行と同等の結果を目指す)。
- Durability(耐久性): コミット済みの結果が障害後も失われない。