「トランザクション」という言葉、ITの勉強をしているとよく出てきますよね。
データベースの本を開いても、ブロックチェーンの記事を読んでも、銀行のシステムの話でも登場します。
でも、いざ「トランザクションって何?」と聞かれると、うまく説明できない…そんな方も多いのではないでしょうか。
この記事では、トランザクションの意味や仕組み、そしてなぜ大切なのかを、できるだけやさしい言葉でお伝えしていきます。
専門用語が出てきても丁寧にかみ砕いていきますので、安心して読み進めてくださいね。
なんかITパスポートの試験で見たな

トランザクションってそもそも何?
トランザクション(transaction)を直訳すると「取引」や「処理」という意味になります。ITの世界では、「ひとまとまりの処理」のことをトランザクションと呼んでいます。
ここで大切なのは「ひとまとまり」という部分です。
複数の作業をひとつのカタマリとしてまとめて扱い、
「全部成功するか、全部やらなかったことにするか」のどちらかにする、というのがトランザクションの基本的な考え方なんです。
たとえば、銀行でAさんからBさんに1万円を振り込む場面を想像してみてください。
このとき、システムの中では次のような処理が行われています。
ひとつ目は「Aさんの口座から1万円を減らす」処理、ふたつ目は「Bさんの口座に1万円を増やす」処理です。
一見シンプルですが、もしAさんの口座から1万円が引かれたあとに、システムがエラーで止まってしまったらどうなるでしょうか?
Aさんの口座からはお金が消えたのに、Bさんの口座にはお金が届かない…これでは大変ですよね。
1万円がどこかに消えてしまったことになってしまいます。
こうした問題を防ぐために、「ふたつの処理をまとめてひとつの取引として扱おう」というのがトランザクションの考え方なんです。
トランザクションが守ってくれる「ACID特性」
トランザクションには、安全に処理を行うための4つの大切なルールがあります。
これを頭文字をとってACID特性(アシッドとくせい)と呼びます。
少し難しそうに聞こえますが、ひとつずつ見ていけば大丈夫です。
ひとつ目はAtomicity(原子性)です。「全部やるか、全部やらないか」というルールですね。さきほどの振り込みの例のように、途中で失敗したら最初の状態に戻してくれます。
ふたつ目はConsistency(一貫性)です。処理の前後でデータのつじつまが合っていることを保証してくれます。たとえば、口座の合計金額がおかしくならないように、ということですね。
3つ目はIsolation(独立性)です。複数のトランザクションが同時に動いても、お互いに邪魔をしないように管理してくれます。AさんとCさんが同時にBさんに振り込んでも、ちゃんと正しい結果になるのはこのおかげです。
4つ目はDurability(永続性)です。一度成功した処理の結果は、たとえシステムが停電などで止まっても消えない、というルールです。
この4つの特性がそろっているからこそ、わたしたちは安心して銀行のATMやネットショッピングを使えているんですね。
身近な例で見るトランザクション
「データベースの話と言われてもピンとこない…」という方のために、もう少し身近な例で考えてみましょう。
たとえば、ネットショップで買い物をするときも、裏ではトランザクションが大活躍しています。
商品をカートに入れて購入ボタンを押すと、システムでは「在庫を1つ減らす」「ユーザーの購入履歴に追加する」「決済情報を記録する」「ポイントを加算する」といった複数の処理が一気に行われます。
もしこのうちのどれかひとつでも失敗したら、全部なかったことにする必要がありますよね。
お金だけ引き落とされて商品が届かない、なんてことになったら困ります。
これもトランザクションのおかげで守られているんです。
ほかにも、コンサートのチケット予約システムを思い浮かべてみてください。
人気のチケットには大勢の人が同時にアクセスします。
同じ席を複数人が同時に予約してしまわないように、トランザクションがしっかりと交通整理をしてくれているんです。
このように、わたしたちの生活のあちこちで、トランザクションは目に見えないところで活躍しています。
トランザクションの基本的な流れ
ここからは、トランザクションが実際にどのような流れで動いているのかを見ていきましょう。
少し技術的な話になりますが、ゆっくり進めていきますね。
トランザクションは、「開始(BEGIN)」→「処理の実行」→「確定(COMMIT)またはやり直し(ROLLBACK)」という流れで動きます。
まず「BEGIN」でトランザクションをスタートします。「これから一連の処理を始めますよ」という宣言ですね。次に、データの読み書きなどの処理を順番に実行していきます。
すべての処理が問題なく完了したら「COMMIT」で結果を確定させます。この時点で初めて、変更内容がデータベースに正式に記録されます。
逆に、途中で何か問題が起きたら「ROLLBACK」で処理を取り消します。
すると、トランザクションを始める前の状態にきれいに戻してくれるんです。
まるで、メモ書きで下書きしてから清書するような感じですね。
下書きの段階ならいくらでも消せますが、清書(COMMIT)したらもう確定、というイメージです。
この仕組みのおかげで、プログラマーは「途中で失敗したらどうしよう…」と細かく心配しなくても、安心して処理を書けるようになっています。
ブロックチェーンでも使われる「トランザクション」
最近よく耳にする「ブロックチェーン」や「仮想通貨」の世界でも、トランザクションという言葉が登場します。こちらは少し意味合いが変わってきます。
ブロックチェーンでのトランザクションは、「誰が誰にいくら送ったか」という取引データそのものを指します。たとえばビットコインで送金すると、その記録が1件のトランザクションとしてネットワークに流れていきます。
これらのトランザクションがいくつも集まって「ブロック」になり、それが鎖(チェーン)のようにつながっていくので「ブロックチェーン」と呼ばれているんですね。
データベースのトランザクションとは少し違いますが、「取引のひとまとまり」という根っこの意味は共通しています。
文脈によって少しずつ意味が変わるので、どちらの話をしているのかを意識して読むと混乱しにくいですよ。
まとめ
今回は「トランザクション」について見てきました。最後にポイントを振り返っておきましょう。
トランザクションとは「ひとまとまりの処理」のこと。
トランザクションとは「ひとまとまりの処理」のことで、「全部成功するか、全部なかったことにするか」をきっちり管理してくれる仕組みでした。そして、ACID特性という4つのルールによって、データの安全性が守られていることも分かりましたね。
銀行の振り込みやネットショッピング、チケット予約など、わたしたちの身近なサービスはトランザクションのおかげで安心して使えています。最初は難しそうに感じる言葉ですが、「処理をまとめて安全に実行する仕組み」とイメージしておけば大丈夫です。
ITの学習では、こうした基礎の概念を少しずつ自分のものにしていくことが大切です。焦らず、ひとつずつ理解を深めていきましょうね。この記事が、あなたの学びの一歩になればうれしいです。
あざした