コミットとは?こみっと
コミットとは、トランザクションの更新をすべて確定させ、データベースに正式に反映させる操作。SQLではCOMMIT文で指示する。コミットした結果は、その後に障害が起きても失われない(ACID特性の耐久性)。コミット前なら、ロールバックで処理開始前に戻せる。DBMS(データベース管理システム)はコミットを完了させる前に更新内容をログ(ジャーナル)へ書き出しておき(ログ先書き)、障害後もログから結果を復元できるようにしている。複数のデータベースにまたがる処理では、全員に「確定できるか」を確かめてから一斉に確定させる2相コミットを使う。
最終更新:2026-10-10
この語が出る過去問を解く →背景
書き換えの途中で止まった処理を、どこまで本物として扱うかを決める区切りが必要だった。コミットは「ここで処理は完了、以後は取り消さない」という境目を示す。境目があるので、DBMSは障害のあとに「コミット済みはやり直す、未コミットは取り消す」と機械的に判断できる。
具体例
銀行アプリで友人に5,000円を振り込むと、自分の口座から5,000円引く更新と、友人の口座に5,000円足す更新が1つのトランザクションになる。両方が終わってコミットされた時点で振込は確定し、直後にサーバが停電しても、再起動後に5,000円は友人の口座に入ったままになる。
試験での引っ掛け
コミットされた更新は、ロールバックでは取り消せない。耐久性(コミット結果が障害後も残る)と原子性(全部実行か全部取消しか)を入れ替えた選択肢に注意。2相コミットの第1相は「確定できるか」の問い合わせで、ここではまだ確定しない。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成29年度 秋期 基本情報技術者試験 午前 問30(IPA)解説で登場
トランザクション処理プログラムが、データベース更新の途中で異常終了した場合、ロールバック処理によってデータベースを復元する。このとき使用する情報はどれか。
正解:ログファイルの更新前情報
要点:ロールバックは更新前情報、ロールフォワードは更新後情報を使う
ロールバックは異常終了したトランザクションの変更を取り消し、開始前の状態へ戻す処理である。そのためには更新される前の値が必要なので、ログファイルに記録された更新前情報(before image)を使って元の値を書き戻す。逆に、コミット済みの内容を再現するロールフォワードでは更新後情報を使う。
出典:平成29年度 春期 基本情報技術者試験 午前 問28(IPA)
分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,全てのサイトが確定可能である場合,更新処理…
正解:2相コミット
要点:2相コミットは全サイトの可否確認後にまとめて確定する
2相コミットは、分散した複数サイトの更新をまとめて確定させるための制御方式です。第1段階でコーディネータが各サイトに「コミットできるか」を問い合わせ、全サイトが可と答えた場合だけ第2段階で確定を指示します。1つでも不可があれば全体を取り消すので、サイト間の整合性が保たれます。
出典:令和元年度 秋期 基本情報技術者試験 午前 問28(IPA)
一つのトランザクションはトランザクションを開始した後、五つの状態(アクティブ、アボート処理中、アボート済、コミット処理中、コミット済)を取り得るものとする。この…
正解:遷移前:アボート処理中 → 遷移後:コミット処理中
要点:アボートは不可逆。コミット処理中→アボートはあり得る
トランザクションはコミット処理の途中で障害や制約違反が起きれば、そこからアボート処理へ移って取消しを行うことがある。一方、いったんアボート処理に入った時点で結果を取り消すことが確定しているので、そこからコミット処理へ戻ることはあり得ない。したがってアボート処理中からコミット処理中への遷移だけが起こらない。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。