AI活用の教科書
データベース設計開発ふつう3分で読了

トランザクション

Transactionとらんざくしょん

ひとことで言うと

複数の処理を「ぜんぶ成功」か「ぜんぶ取り消し」かの、まとまった1単位として扱うしくみです。

📖 もうちょい詳しく

何が新しいの?

トランザクションは、いくつかの処理をまとめて「ぜんぶ成功」か「ぜんぶ取り消し」かのどちらかにする、データベースのしくみです。
たとえば送金では「Aさんから1万円を引く」と「Bさんに1万円を足す」の2つがセットです。もし片方だけ済んで途中で止まると、お金が消えたり増えたりして大問題です。こうした「中途半端」を防ぐために昔からある、データを正しく保つための基本のしくみです。

どうやって動いてるの?

トランザクションは「開始」してから複数の処理を進め、すべてうまくいけば コミット(確定)し、途中で失敗したら ロールバック(取り消し)して始める前の状態に戻します。
このとき、確定するまでの変更はまだ正式な記録にせず、いつでも戻せるように記録(ログ)を残しておくのが一般的です。だから途中で電源が落ちても、中途半端な状態を残さずに戻せます。

何ができるの?

「全部やるか、全部やらないか」をきっちり守れるので、お金やモノの数が合わなくなる事故を防げます。
銀行の振込、ネット通販の在庫の引き当てと注文確定、ポイントの加算など、「複数の更新をセットで正しく済ませたい」場面で広く使われています。私たちが安心して送金や買い物ができる裏側を、このしくみが支えていることが多いのです。

🌱 身近なたとえ

引っ越しの荷物の積み下ろしで例えると分かりやすいです。
「古い家から運び出す」と「新しい家に運び入れる」はセットで、片方だけ終わって途中で投げ出すと荷物が宙に浮きます。トラブルが起きたら、いったん全部もとの家に戻してやり直す——トランザクションもこれと同じで、ひとまとまりの作業を「全部完了」か「もとどおり」のどちらかに保ちます。

✅ まず覚えるポイント

  • トランザクションは「全部成功」か「全部取り消し」かの1単位
  • すべて成功したら確定(コミット)する
  • 途中で失敗したら取り消し(ロールバック)して元に戻す
  • お金や在庫など、数が合わないと困る処理で重要
  • 確定までの変更は、いつでも戻せるよう記録しておく

🧭 よくある勘違い

トランザクションは1つの処理のことなの?

逆で、ふつうは複数の処理をまとめたものを指します。
1つだけの更新でもトランザクションにはなりますが、本領を発揮するのは「引く」と「足す」のように複数がセットの場面です。それらを切り離さず、ひとかたまりとして扱うのが目的です。

コミットすれば、もう取り消せないの?

基本的には、確定(コミット)した時点でその内容は正式な記録になります。
ロールバックで自動的に戻せるのは、まだ確定していない最中の変更だけです。確定後に取り消したいときは、別のトランザクションで打ち消す処理(差し戻し)を改めて行う、という形になります。

失敗しても自分で元に戻さないといけないの?

多くの場合、戻す作業はデータベースがやってくれます。
途中でエラーが出たり接続が切れたりすると、確定していなかった変更は自動でロールバックされることが多いです。開発者は「どこからどこまでが1単位か」を決めておくのが主な役割です。

🧩 関連して覚えると楽な言葉

  • RDB: 表でデータを管理するデータベース。トランザクションが活躍する場
  • SQL: データベースに指示を出す言葉。開始・確定・取り消しもこれで書く
  • ロールバック: 失敗時に処理を取り消し、元の状態へ戻すこと
  • クエリ: データベースへの問い合わせ。これをまとめた単位がトランザクション

🏁 ひとことでまとめ

トランザクションは、複数の処理を切り離さず「全部やるか、全部やらないか」で守るしくみです。
引っ越しの積み下ろしのように、途中で投げ出さず最後まで終えるか、きれいに元へ戻すか。このどちらかを保つから、送金や買い物のデータが食い違わずに済むのです。