0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Spring Boot入門 - トランザクション概要 -

Posted at

#トランザクションとは何か?

互いに関連する一連の処理を一つの処理としてまとめる事をいう。
例えば出入金を管理するプログラムがあり、Aの口座に5000円入金するとした場合図のような一連の処理が必要となる。

Untitled Diagram (3).png

これらの一連の処理を一つのブロック(トランザクション)として捉え、一括で管理してしまおうというのがトランザクション
の基本理念である。

Untitled Diagram (4).png

##トランザクションのメリット

一つの塊として処理されたトランザクションは必ず**『すべて失敗』あるいは『すべて成功』のどちらかを保証してくれる**。
先ほどのたとえを使ってみよう、例えばトランザクションを利用せずに送金処理で失敗したとする

Untitled Diagram (7).png

この場合は5000円が出金され、Bの口座に5000円が送金される前に処理が失敗し、中断されるためにAの口座からは5000円が減りBの口座は変わらないままになる。このようなエラーによるリスクを低減してくれるのがトランザクションである。
トランザクションで管理されているプログラムで同様のエラーが起こった例を見てみよう。

Untitled Diagram (6).png

先ほど記述したようにトランザクションで管理している場合は**『すべて失敗』『すべて成功』かを保証してくれる。
これがどういうことかというと、図のように送金に失敗しても出入金の一連の処理を一括で管理しているので
送金が失敗した時点で関連した動作すべてを失敗したとして、任意で巻き戻したりすべての処理を中断したりできるのである。**
トランザクションはDB処理やWebアプリケーションなど、複数のユーザーが操作するようなすべての動作において有効な処理であると言えるだろう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?