#トランザクションとは何か?
互いに関連する一連の処理を一つの処理としてまとめる事をいう。
例えば出入金を管理するプログラムがあり、Aの口座に5000円入金するとした場合図のような一連の処理が必要となる。
これらの一連の処理を一つのブロック(トランザクション)として捉え、一括で管理してしまおうというのがトランザクション
の基本理念である。
##トランザクションのメリット
一つの塊として処理されたトランザクションは必ず**『すべて失敗』あるいは『すべて成功』のどちらかを保証してくれる**。
先ほどのたとえを使ってみよう、例えばトランザクションを利用せずに送金処理で失敗したとする
この場合は5000円が出金され、Bの口座に5000円が送金される前に処理が失敗し、中断されるためにAの口座からは5000円が減りBの口座は変わらないままになる。このようなエラーによるリスクを低減してくれるのがトランザクションである。
トランザクションで管理されているプログラムで同様のエラーが起こった例を見てみよう。
先ほど記述したようにトランザクションで管理している場合は**『すべて失敗』か『すべて成功』かを保証してくれる。
これがどういうことかというと、図のように送金に失敗しても出入金の一連の処理を一括で管理しているので送金が失敗した時点で関連した動作すべてを失敗したとして、任意で巻き戻したりすべての処理を中断したりできるのである。**
トランザクションはDB処理やWebアプリケーションなど、複数のユーザーが操作するようなすべての動作において有効な処理であると言えるだろう。