トランザクション(transaction)

結論

分割できない一連の処理のまとまり。全部成功か全部取消のどちらかにする単位。

試験ではこう出る

科目A(旧・午前)では定義問題とACID特性の組合せ問題が定番です。「障害発生時にロールバック/ロールフォワードのどちらを行うか」を問う障害回復の問題も繰り返し出ます。応用情報の科目Bではデータベース設計の中で、どこからどこまでを1つのトランザクションにするかという設計判断として問われます。

現場のたとえ

出庫処理と在庫データの更新を「両方成功か、両方なかったことに」する単位です。倉庫から部品を100個出したのに在庫データの更新に失敗すれば、帳簿上は100個あるのに現物がない状態になります。逆に在庫だけ減らして出庫を止めれば、現物はあるのに帳簿にはない。どちらも棚卸しで発覚する事故です。だから「出庫を記録する」「在庫を減らす」の2つは、必ずセットで成立させるか、セットで無かったことにするかのどちらかにする。この「セットにする範囲の宣言」がトランザクションです。

もう少し正確に言うと

トランザクションは BEGIN で始まり、COMMIT で確定するか ROLLBACK で取り消すかのどちらかで終わります。処理の途中経過はログ(ジャーナル)に記録され、障害が起きたときの回復に使われます。障害回復には2種類あり、コミット前に落ちた処理を開始前の状態に戻すのがロールバック(後退復帰)、コミット済みの処理をバックアップに再適用して障害直前まで進めるのがロールフォワード(前進復帰)です。この2つは試験で必ず混同を狙われます。また、トランザクションが満たすべき性質をまとめたものがACID特性です。

よくある勘違い

用語違い
コミットトランザクションを確定させる操作。トランザクションそのものではない
ロールバックコミット前の処理を取り消して開始前に戻す。障害後の再適用ではない
ロールフォワードコミット済みの処理をバックアップに再適用する。取り消しではない

過去問での問われ方

障害の種類(媒体障害・システム障害)と回復方法(ロールバック・ロールフォワード)の対応を選ばせる形式が定番です。「コミット済みかどうか」で判断すれば迷いません。

出典:引用時は「年度・期・試験区分・時間区分・問番号」まで明記すること。

関連用語

ミニクイズ

トランザクション処理でコミットとロールバックの説明として正しいものはどれか。

正解は1番目。トランザクション内の処理がすべて成功したときにコミットして確定し、途中で失敗したらロールバックして開始前の状態に戻します。「両方成功か、両方なかったことに」がトランザクションの本質です。

間違えた用語の復習リストを見る →

最終更新:2026-08-20