基本情報 平成26年度 秋期 問29:テクノロジ系に関する問題
トランザクションが, データベースに対する更新処理を完全に行うか, 全く処理し なかったかのように取り消すか, のどちらかの結果になることを保証する特性はどれ か。
- a一貫性 (consistency)
- b原子性 (atomicity)正答
- c耐久性 (durability)
- d独立性 Gsolation)
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは b「原子性(atomicity)」 です。
たとえば銀行で「Aさんから1万円引いて、Bさんに1万円足す」というお金の移動を考えてみてください。途中で電源が落ちて「Aさんから引いただけ」で止まってしまったら大変ですよね。
原子性は、こういう一連の作業を「全部やる」か「全部なかったことにする」かの“どちらか”に必ずする仕組みです。中途半端を許しません。
👉 覚え方:原子(アトム)はそれ以上分けられない=「全部やる or 全部やらない」。
ほかの選択肢:a 一貫性=ルールを守ったままにする/c 耐久性=完了したことは消えない/d 独立性=他の作業の影響を受けない。
なぜこれが正解か
正解は b。原子性(Atomicity)は、トランザクション内の全更新が「すべてコミット」または「すべてロールバック」されることを保証する特性。中途半端なコミットは許されない。設問の「完全に行うか、全く処理しなかったかのように取り消す」がまさに原子性の定義に一致する。
各選択肢の解説
- a 一貫性(Consistency):トランザクション前後でDBの整合性制約が維持されること。
- c 耐久性(Durability):コミット済みデータは障害が起きても失われない。
- d 独立性(Isolation):並行実行中の他トランザクションの影響を受けない。
覚え方・ひっかけ注意
トランザクションの4特性は ACID=Atomicity / Consistency / Isolation / Durability。本問は「All or Nothing」のキーワードで原子性と直結させる。一貫性と混同しがちだが、一貫性は「整合性ルール」の話、原子性は「分割不能」の話と切り分ける。
理論的背景
原子性はトランザクション管理機構(TM)がログ先行書き込み(WAL: Write-Ahead Logging)とロールバックセグメント/UNDOログによって実装する。コミット時はREDOログをディスクへフラッシュし、障害時はチェックポイント後のUNDO適用で未コミット分を巻き戻す。ARIESアルゴリズム(Analysis→Redo→Undo)が代表的実装で、商用RDBMS(Oracle・SQL Server・PostgreSQL)の基盤になっている。
実務での使われ方
金融系の振替・在庫減算と注文確定・複数テーブルにまたがる更新で必須。分散環境では2相コミット(2PC)やSAGAパターンで原子性を近似的に保証する(マイクロサービスではSAGAが主流)。
試験での位置づけ
ACID特性は基本情報・応用情報・データベーススペシャリストで毎期出題される頻出論点。近年は分散DB/NoSQLとの絡みで「BASE(Basically Available, Soft state, Eventual consistency)」との対比も出題される。
選択肢の発展補足
- 一貫性(C)はDB制約だけでなくアプリ層の業務ルールも含む広義の概念。
- 独立性(I)にはREAD UNCOMMITTED〜SERIALIZABLEの4分離レベルがあり、ファントムリード・ノンリピータブルリード・ダーティリードとの対応を整理しておくこと。
- 耐久性(D)はディスク書き込みの同期方式(fsync)と密接。クラウドDBではマルチAZレプリケーションで保証することが多い。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成26年度 秋期 問29/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。