基本情報技術者OS・データベースの実践オリジナル・公式資料照合難易度★★☆☆☆

同じDB内で口座Aを1000円減らし、口座Bを1000円増やす送金を行う。Bの更新で障害が起きたとき、Aの減額も含めて取り消すための基本設計はどれか。

A
Aの更新だけ先にCOMMITする

先にAだけ確定するとBの失敗時に片方だけ反映された状態が残り、原子性を保てません。

B
二つの更新を一つのトランザクションにし、失敗時にROLLBACKする★ 正解

両更新を同一トランザクションにまとめ、両方成功ならCOMMIT、失敗ならROLLBACKして原子性を保ちます。

C
更新前に画面の文字色を変える

表示上の変更はデータベースの確定・取消しを制御しません。

D
Aの更新結果をログに書けばBの更新は不要とする

ログの記録だけではBの残高は増えません。送金処理の整合性は保てません。

解説

トランザクションの原子性は「全体を反映するか、全体を取り消すか」です。独立した二つのCOMMITでは片側更新を防げません。

根拠資料・確認情報

対応範囲:2026年度 基本情報技術者試験 科目A・B

資料確認日:2026-10-28

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで 基本情報技術者 合格を目指す。無料・課金なし。

更新: 2026/10/28