トランザクションとは、データベースの処理をひとまとまりで扱う考え方です。
かんたんに言うと、「途中で失敗したときに、中途半端な状態で残さないための仕組み」です。
たとえば銀行振込では、自分の口座からお金だけ引かれて、相手の口座に入らないと困ります。このようなことを防ぐために、関係する処理をまとめて扱います。
この記事では、トランザクションの意味、トランザクション処理、コミット、ロールバック、トランザクションデータとの違いを、初心者向けにわかりやすく解説します。
ここだけ読めばOK
トランザクションとは、複数の処理を「ひとまとまり」にして扱う考え方です。
すべて成功したら確定します。途中で失敗したら、始める前の状態に戻します。
ほかのIT用語も知りたい方は、初心者向けのIT用語辞典もあわせてご覧ください。
トランザクションとは
かんたんに言うと「途中で終わらせないための処理のまとまり」
トランザクションとは、いくつかの処理をまとめて、1つの作業として扱うことです。
ここでいう処理とは、コンピューターが行う作業のことです。たとえば、データを保存する、直す、消すといった作業です。
データベースとは、たくさんの情報を整理して保存する場所です。会員情報、注文履歴、商品一覧などをしまっておく場所と考えると分かりやすいです。
データベースの基本を先に知りたい場合は、データベースの記事も参考になります。
トランザクションの意味
トランザクションは、英語では「取引」や「処理」という意味で使われます。
ITでは、特にデータベースでよく使われます。お金、注文、予約、在庫など、正しく記録したい場面で大切な考え方です。
トランザクションの大切な点は、「全部成功するか、全部取り消すか」です。途中まで進んだ状態で残さないことが目的です。
トランザクションを身近な例でわかりやすく
銀行振込で考えるトランザクション
銀行振込では、次の2つの処理が行われます。
- 自分の口座からお金を引く
- 相手の口座にお金を入れる
この2つは、どちらも正しく終わる必要があります。
自分の口座からお金だけ引かれて、相手に入金されないと困ります。反対に、自分のお金が減らないまま、相手にだけ入金されるのも正しくありません。
そのため、2つの処理をひとまとまりとして扱います。これが、IT用語としてのトランザクションのイメージです。
ネットショッピングで考えるトランザクション
ネットショッピングでも、トランザクションの考え方が使われます。
商品を注文するときには、次のような処理が関係します。
- 注文情報を保存する
- 商品の数を減らす
- 支払い情報を確認する
- 注文完了の記録を残す
商品の数だけ減って、注文情報が残らないと困ります。注文だけ残って、支払いが確認できていないのも困ります。
そのため、関係する処理をまとめて扱います。すべて正しく終わったときだけ、注文完了として記録します。
ITで使うトランザクション処理とは
トランザクション処理は「まとめて行う処理」のこと
トランザクション処理とは、複数の処理をひとまとまりとして行うことです。
むずかしく考えすぎる必要はありません。「関連する作業をまとめて行い、失敗したら元に戻す仕組み」と考えると分かりやすいです。
たとえば、予約サイトでは、予約情報を保存するだけでは足りません。空いている席や部屋の数も、あわせて変える必要があります。
このように、いくつかのデータを同時に正しく変えたいときに、トランザクション処理が使われます。
処理が途中で止まると困る例
コンピューターの処理は、いつも最後まで進むとは限りません。
通信が切れることもあります。入力内容にまちがいがあることもあります。システム側で一時的に処理できないこともあります。
このとき、途中まで進んだ処理がそのまま残ると、データが分かりにくい状態になります。
トランザクション処理では、すべて成功したときだけ確定します。途中で失敗したら、元の状態に戻します。
コミットとは
コミットは「これで決定」とすること
コミットとは、トランザクションの処理を確定することです。
かんたんに言うと、ここまでの処理を「これで決定」とすることです。
たとえば、注文情報の保存、商品の数の更新、支払い確認がすべて正しく終わったとします。このとき、処理を確定するのがコミットです。
コミットされると、データベースの内容が正式に変わります。
買い物でいうと「注文を確定する」イメージ
ネットショッピングでは、商品をカートに入れただけでは注文は終わっていません。
住所や支払い方法を確認し、最後に注文を確定します。この「確定」に近い考え方がコミットです。
IT用語としては、処理が正しく終わったことを確認し、データベースの内容を変えることを指します。
ロールバックとは
ロールバックは「取り消して元に戻す」こと
ロールバックとは、途中まで進んだ処理を取り消して、始める前の状態に戻すことです。
かんたんに言うと、うまくいかなかったときの「取り消しボタン」のようなものです。
たとえば、注文処理の途中で支払いが確認できなかったとします。この場合、商品の数だけ減ったまま残ると困ります。
そこで、商品の数を元に戻します。このような取り消しがロールバックです。
コミットとロールバックはセットで覚える
トランザクションでは、コミットとロールバックをセットで考えます。
- 成功したらコミット
- 失敗したらロールバック
この2つがあることで、データを中途半端な状態にしにくくなります。
一言でいうと
コミットは「確定」です。ロールバックは「取り消し」です。
トランザクションデータとは
日々の行動や取引で増える記録データ
トランザクションデータとは、日々の行動や取引によって増えていく記録データのことです。
たとえば、次のようなものがあります。
- 注文履歴
- 購入履歴
- お金を入れたり出したりした記録
- 予約履歴
- アクセス履歴
これらは、毎日の動きに合わせて増えていきます。
マスタデータとの違い
マスタデータとは、基本となるデータのことです。
たとえば、商品名、会員名、店舗名、料金プランなどです。毎日どんどん増えるというより、土台として使われる情報です。
| 種類 | 意味 | 例 |
|---|---|---|
| トランザクションデータ | 日々の動きで増える記録データ | 注文履歴、購入履歴、予約履歴 |
| マスタデータ | 基本となるデータ | 商品一覧、会員情報、店舗情報 |
トランザクションは「処理のまとまり」を指すことが多いです。トランザクションデータは「その処理によって生まれる記録」と考えると分かりやすいです。
SQLで使うトランザクションの基本
SQLはデータベースに命令するための言葉
SQLとは、データベースに命令するための言葉です。
たとえば、データを探す、追加する、直す、消すといった操作で使われます。
SQLの書き方をここで覚える必要はありません。まずは、トランザクションの流れだけ分かれば大丈夫です。
BEGIN・COMMIT・ROLLBACKは流れだけ分かればよい
SQLでは、トランザクションを始める、確定する、取り消すという考え方があります。
| 言葉 | かんたんな意味 |
|---|---|
| BEGIN | トランザクションを始める |
| COMMIT | 処理を確定する |
| ROLLBACK | 処理を取り消して元に戻す |
流れはシンプルです。
- トランザクションを始める
- 必要な処理を行う
- 成功したら確定する
- 失敗したら元に戻す
この流れを押さえると、トランザクション処理の全体像が見えやすくなります。
トランザクションでデータを正しく守る考え方
専門的にはACIDと呼ばれる
トランザクションには、データを正しく扱うための考え方があります。
専門的には、ACIDと呼ばれます。読み方は「アシッド」です。
ただし、初心者のうちは英語の意味をすべて覚える必要はありません。「データを正しく、安全に扱うためのルール」と考えれば大丈夫です。
初心者向けに言い換えると
| 考え方 | かんたんな意味 |
|---|---|
| 全部まとめる | 全部成功するか、全部取り消す |
| 決めたルールを守る | 残高がマイナスになってはいけない、などの約束を破る変更を認めない |
| 混ざらないようにする | 同時に処理しても、順番に処理したときと同じように正しい結果にする |
| 結果を残す | 確定した内容をきちんと保存する |
たとえば、同じ口座に対して複数の処理が同時に行われても、結果がおかしくならないようにします。
ここは少し専門的な内容です。最初は、「トランザクションはデータを正しく守るために使う」と理解すれば十分です。
基本情報技術者試験でよりくわしく学ぶ場合は、基本情報技術者試験のデータベースの記事も参考になります。
トランザクションと似た言葉の違い
トランザクションとトランザクション処理の違い
トランザクションは、処理をひとまとまりにする考え方です。
トランザクション処理は、その考え方を使って実際に処理することです。
| 言葉 | 意味 |
|---|---|
| トランザクション | 処理をひとまとまりにする考え方 |
| トランザクション処理 | その考え方を使って行う処理 |
トランザクションデータとマスタデータの違い
トランザクションデータは、日々の行動や取引で増える記録データです。
マスタデータは、基本として使うデータです。
たとえば、商品一覧はマスタデータです。今日だれが何を買ったかは、トランザクションデータです。
トランザクションIDとの違い
トランザクションIDとは、1つひとつの処理を見分けるための番号や文字列です。
IDとは、ものを区別するための目印のことです。注文番号や受付番号に近いものです。
たとえば、決済でエラーが出たときに、サポート窓口から「トランザクションIDを教えてください」と言われることがあります。
この場合のトランザクションIDは、どの処理で起きたことなのかを調べるための目印です。
トランザクションは「処理のまとまり」です。トランザクションIDは、その処理を見分けるための目印です。
この記事で出てきた用語をかんたんに整理
ここまでに出てきた言葉を、かんたんに整理します。
| 用語 | かんたんな意味 |
|---|---|
| データベース | 情報を整理して保存する場所 |
| 処理 | コンピューターが行う作業 |
| コミット | 処理を確定すること |
| ロールバック | 処理を取り消して元に戻すこと |
| SQL | データベースに命令するための言葉 |
| マスタデータ | 基本となるデータ |
| トランザクションデータ | 日々の行動や取引で増える記録データ |
| トランザクションID | 処理を見分けるための目印 |
初心者が間違えやすい点
株価や会社名の「トランザクション」とは別の意味
「トランザクション」と検索すると、株価や会社名が出てくることがあります。
しかし、この記事で扱っているのはIT用語としてのトランザクションです。
株価や会社名の情報を探している場合は、検索の目的が別です。データベースの意味とは分けて考えましょう。
別分野でも同じ言葉が使われることがある
トランザクションという言葉は、ブロックチェーンや金融でも使われます。
ただし、この記事ではデータベースで使う意味にしぼって説明しています。
まずは、データベースの処理をひとまとまりにする考え方として覚えると分かりやすいです。
コミットとロールバックはセットで覚える
コミットだけを覚えると、トランザクションの意味が少し分かりにくくなります。
トランザクションでは、成功したらコミットします。失敗したらロールバックします。
この2つをセットで覚えると、全体の流れが理解しやすくなります。
トランザクションに関するよくある質問
トランザクションとは何ですか?
トランザクションとは、複数の処理をひとまとまりで扱う考え方です。
すべて成功したら確定し、途中で失敗したら元に戻します。データベースでよく使われます。
トランザクション処理とは何ですか?
トランザクション処理とは、複数の処理をまとめて実行することです。
銀行振込、ネット注文、予約、在庫の管理などで使われます。
コミットとは何ですか?
コミットとは、処理を確定することです。
トランザクション内の処理がすべて成功したときに、データベースの内容を正式に変えます。
ロールバックとは何ですか?
ロールバックとは、途中まで進んだ処理を取り消して、元の状態に戻すことです。
処理が失敗したときに、データを中途半端な状態にしないために使います。
トランザクションデータとは何ですか?
トランザクションデータとは、日々の取引や行動によって増える記録データです。
注文履歴、購入履歴、入出金の記録、予約履歴などが例です。
トランザクションIDとは何ですか?
トランザクションIDとは、1つひとつの処理を見分けるための目印です。
注文番号や受付番号のように、あとから確認するときに使われます。
トランザクションIDは何に使いますか?
トランザクションIDは、処理をあとから確認するために使います。
注文、決済、予約などで問題が起きたときに、どの処理だったのかを調べる目印になります。
まとめ|トランザクションとは処理をひとまとまりで守る考え方
トランザクションとは、データベースの処理をひとまとまりで扱う考え方です。
すべて成功したらコミットします。途中で失敗したらロールバックして、元の状態に戻します。
銀行振込やネット注文のように、途中で止まると困る処理で役立ちます。
最初は、次の3つを覚えておけば十分です。
- トランザクションは、処理のまとまり
- コミットは、成功した処理を確定すること
- ロールバックは、失敗した処理を元に戻すこと
