戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2011年 春期 午前232


問題文

トランザクションの原子性 (atomicity)の説明として、適切なものはどれか。

選択肢

データの物理的格納場所やアプリケーションプログラムの実行場所を意識することなくトランザクション処理が行える。
トランザクションが完了したときの状態は、処理済みか未処理のどちらかしかない。(正解)
トランザクション処理においてデータベースの一貫性が保てる。
複数のトランザクションを同時に処理した場合でも、個々の処理結果は正しい。

🔒 解説は解答すると表示されます

トランザクション原子性【午前2解説】

正解の理由

トランザクションの原子性(atomicity)は「全体が一括して適用されるか、まったく適用されないかのどちらかである」という性質を示します。したがって、選択肢のうち処理の結果が「処理済みか未処理かのどちらかしかない」と述べている が直接的に原子性の定義に一致します。原子性はコミット(全適用)かロールバック(全取消)のいずれかで終わることを保証します。

解法ステップ

  1. 問題のキーワード「原子性(atomicity)」を確認する。
  2. ACID の各要素(原子性・一貫性・分離性(独立性)・永続性)の定義を思い出す。
  3. 各選択肢をACIDのどの要素と対応するか対応付ける。
  4. 原子性の定義と一致する選択肢を選ぶ(他は別の性質を表すため除外)。

選択肢別の誤答解説

  • ア: データの物理的格納場所やアプリケーションの実行場所を意識しないで処理できる、というのは「場所透過性」やミドルウェアの抽象化に関する話であり、原子性とは無関係です。
  • : 「処理済みか未処理かのどちらかしかない」は原子性の定義そのものです。トランザクションは途中で部分的に永続化される状態を許さず、失敗時は全て取り消されます。
  • ウ: 「データベースの一貫性が保てる」は ACID の「一貫性(consistency)」に関する記述です。原子性は一貫性の達成に寄与しますが、両者は別の概念です。具体的には一貫性は制約(キー制約や参照整合性など)を満たす状態遷移を指します。
  • エ: 「複数のトランザクションを同時に処理した場合でも個々の処理結果は正しい」は「分離性(独立性、isolation)」に関する記述です。並行実行時の干渉を防ぐ性質で、原子性とは異なります。

よくある誤解

  • 原子性と一貫性を同じ意味で捉える:原子性は「全か無か」の実行原則、一貫性は「データが常に整合した状態にあること(制約の維持)」で別概念です。
  • 原子性=分離性と混同する:分離性は並行実行時の相互作用を制御する性質で、原子性はトランザクション単位の完遂保証です。
  • 原子性は分散環境で自動的に保証されると思い込む:分散トランザクションでは2フェーズコミットなど追加の仕組みが必要です。

補足コラム

具体例(口座振替)
  • 操作1: 口座Aの残高から100を引く
  • 操作2: 口座Bの残高に100を加える
    この2操作が一つのトランザクションで行われ、途中で障害が発生したら両方とも取り消される(ロールバック)。これが原子性です。
SQLでの基本的な操作例:
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 'A';
UPDATE accounts SET balance = balance + 100 WHERE id = 'B';
-- 問題なければ
COMMIT;
-- 問題があれば
ROLLBACK;
実装面では、原子性はログ(Write-Ahead Logging)やジャーナリング、チェックポイント、ロック、分散トランザクションでは2フェーズコミット(2PC)などにより実現されます。分散環境やマイクロサービスでは長時間のトランザクションを避け、補償トランザクションで実装する設計(最終整合性)も用いられます。

FAQ

Q: 原子性があると必ずデータの整合性が保たれますか?
A: 原子性は途中で部分的な変更が残らないことを保証しますが、データの一貫性(制約の維持)は別の要素です。正しいアプリケーションロジックや制約設定が必要です。
Q: システム障害で途中停止した場合、どうやって未完了の変更を戻すのですか?
A: DBMSはログを参照して未完了トランザクションについてロールバック処理を行い、コミット済みの変更のみを永続化します。
Q: 分散トランザクションで原子性を保証する仕組みは?
A: 代表的には2フェーズコミット(2PC)や分散トランザクション協調プロトコルが使われます。性能や可用性とのトレードオフがあります。

関連キーワード: トランザクション, 原子性, ACID, ロールバック, コミット, 分離性, 永続性, 一貫性, 2PC, WAL
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について