Skip to the content.

最終更新日:2026年7月25日

まず結論

トランザクションとは、データベースに対する一連の処理を、ひとまとまりの単位として扱う考え方です。

基本情報技術者試験では、次のように覚えると判断しやすいです。

トランザクション
= 途中で分けてはいけない処理のまとまり

たとえば銀行振込では、出金だけ成功して入金が失敗すると困ります。

そのため、出金と入金をまとめて1つのトランザクションとして扱い、
全部成功したら確定、途中で失敗したら取り消し にします。

直感的な説明

トランザクションは、銀行振込で考えると分かりやすいです。

AさんからBさんへ1万円を振り込むとします。

このとき、データベースでは少なくとも次の2つの更新が必要です。

1. Aさんの残高を1万円減らす
2. Bさんの残高を1万円増やす

もし、1だけ成功して2が失敗するとどうなるでしょうか。

Aさんの残高だけ減る
Bさんの残高は増えない

これでは、お金が消えたように見えてしまいます。

そこで、2つの処理を別々に考えるのではなく、
1つのまとまり として扱います。

Aさんの残高を減らす
Bさんの残高を増やす
ここまで全部で1セット

この1セットがトランザクションです。

すべて成功すれば、結果を確定します。

途中で失敗すれば、最初から何もなかった状態に戻します。

全部成功   → コミット
途中で失敗 → ロールバック

つまり、トランザクションは、データベースに中途半端な更新を残さないための考え方です。

定義・仕組み

トランザクションは、データベースに対する複数の処理を、1つの処理単位として扱う仕組みです。

基本的な流れは次のようになります。

トランザクション開始
  処理1
  処理2
  処理3
成功したらコミット
失敗したらロールバック

代表的な用語は、次の3つです。

用語 意味
トランザクション ひとまとまりとして扱う処理の単位
コミット 処理結果を確定する操作
ロールバック 処理を取り消し、処理前の状態へ戻す操作

例えば、ネットショップの注文処理では、次のような更新が1つのトランザクションになることがあります。

在庫数を減らす
注文履歴を追加する
請求情報を登録する

どれか1つだけ成功して、ほかが失敗すると、データのつじつまが合わなくなります。

そのため、すべて成功したらコミットし、途中で失敗したらロールバックします。

また、トランザクションを安全に扱うための性質として ACID特性 があります。

ACID特性 意味
原子性 全部実行するか、全く実行しない
一貫性 データの矛盾を残さない
独立性 同時実行しても互いに影響しない
耐久性 確定した結果が失われない

トランザクションは、コミット、ロールバック、ACID特性とセットで理解すると整理しやすくなります。

このテーマは、基本情報技術者試験の「データベース」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、トランザクションの意味や、コミット・ロールバック・ACID特性との関係が問われやすいです。

次の表で切り分けると判断しやすくなります。

問題文の表現 関係する用語
一連の処理をひとまとまりとして扱う トランザクション
処理結果を確定する コミット
処理を取り消して処理前に戻す ロールバック
完全に行うか、全く行わない 原子性
データの矛盾を残さない 一貫性
同時実行しても結果が乱れない 独立性
確定後の結果が失われない 耐久性

特に、トランザクションの問題では、次の表現に注意します。

ひとまとまり
中途半端に残さない
すべて実行するか、すべて取り消す
コミット
ロールバック

これらが出てきたら、トランザクション処理を意識します。

どんな場面で使う?

問題文では、トランザクションという用語を選ぶだけでなく、処理の流れを読ませる形で出ることがあります。

見るポイントは、次の3つです。

1. どこからどこまでが1つの処理単位か
2. どの時点でコミットされるか
3. 失敗したときにどこまでロールバックされるか

例えば、次のような処理を考えます。

トランザクション開始
  在庫数を減らす
  注文履歴を追加する
  請求情報を登録する
コミット

この場合、コミットまで到達すれば、3つの更新が確定します。

もし、請求情報の登録で失敗した場合は、在庫数の更新や注文履歴の追加も取り消す必要があります。

在庫数を減らす
注文履歴を追加する
請求情報で失敗
  → ロールバック
  → 在庫数も注文履歴も処理前へ戻す

問題文では、処理を1行ずつ追うだけでなく、 どこまでが1つのトランザクションか を見ることが大切です。

トランザクションの範囲を見落とすと、どの更新が確定し、どの更新が取り消されるのかを間違えやすくなります。

よくある誤解・混同

誤解1:1つのSQL文だけがトランザクションだと思う

トランザクションは、必ずしも1つのSQL文だけとは限りません。

複数の更新処理をまとめて、1つのトランザクションとして扱うことがあります。

在庫を更新する
注文を登録する
請求を登録する

このように、業務上まとめて成功・失敗を判断したい処理が、トランザクションになります。

誤解2:処理が始まったら必ず確定すると考える

トランザクション中の処理は、コミットされるまでは確定とは限りません。

途中でエラーが起きれば、ロールバックで取り消されることがあります。

処理した
でも、まだコミットしていない
  → 確定とは限らない

試験では、コミットされたかどうかを確認します。

誤解3:ロールバックは最後の処理だけを取り消すと思う

ロールバックは、基本的に対象のトランザクションを処理前の状態に戻す操作です。

最後の1処理だけを取り消すというより、トランザクション全体を戻すイメージです。

処理A
処理B
処理Cで失敗
ロールバック
  → 処理A、処理Bも含めて取り消す

この考え方は、ACID特性の 原子性 と関係します。

誤解4:トランザクションとACID特性を別々に覚える

トランザクションとACID特性は、別々に丸暗記するより、セットで理解した方が安全です。

観点 何を見る?
トランザクション どこからどこまでが1つの処理か
コミット どこで確定するか
ロールバック 失敗時にどこまで戻るか
ACID特性 その処理が安全に扱われているか

トランザクションが処理の単位で、ACID特性はその処理を安全に行うための性質です。

まとめ(試験直前用)

  • トランザクションは、一連の処理をひとまとまりで扱う単位
  • 全部成功したらコミットして確定する
  • 途中で失敗したらロールバックして処理前に戻す
  • 中途半端な更新を残さないことが重要
  • ACID特性、コミット、ロールバックとセットで覚える

© 2024-2026 stemtazoo. All rights reserved.