見出し画像

トランザクションとは

トランザクションとは

処理が始まってから終わるまでの一連の流れのこと。
よく銀行の入金処理とかで例えられてるのを見ます。

例えば、銀行とかだと
「振り込み処理の開始から完了までの一連の流れ」のことになります。

振り込み処理は完了するか、しないかのどちらかになると思います。
口座のお金が足りていれば、自分の口座残高が減って相手の口座残高が増えるし、逆にお金が足りなければ振り込みはできず、自分の口座残高がマイナスになることはないし、相手の口座残高が増えることもありません。

この銀行の例を当てはめて以下を読むと、なんとなくしっくりきました。

原子性(Atomicity)
トランザクションは,すべてが完全に実行されるか,全く実行されないかどちらかです。つまり,トランザクションを構成する「一連の処理」は,これ以上分割できない最小単位です。

一貫性(Consistency)
トランザクションの開始時と終了時で,データが整合性を保っていなければなりません。データは以前の「有効な状態」から新しい「有効な状態」に変化します。

隔離性(Isolation)
複数のトランザクションを同時に並行して実行しても,終了するまでトランザクション同士はお互いに干渉しません(あるトランザクションからほかのトランザクションは見えません。あるいは,ほかのトランザクションの影響を受けません)。

持続性(Durability)
トランザクションが正常に終了した結果は必ず「永続化」され,障害によって失われることはありません。

(引用:トランザクション管理とは何か

トランザクション管理とは

「トランザクション管理」というのは
この一連の流れが完了したらちゃんとその状態を確定させる、
完了しなかった場合はちゃんと元の状態にもどせるようにする、
という状態になるように、管理することみたいです。

トランザクションの終了方法は,トランザクションの処理結果が正常な場合と異常な場合で異なります。正常終了の場合は,トランザクションの結果を永続化します。これを「コミット(commit)」と言います。

異常終了の場合は,トランザクションの取り消し,つまり開始前の状態に戻す
必要があります。この処理を「ロールバック(rollback)」と言います。
トランザクションの開始,終了を含めて,ACID特性を保証するための仕組みを「トランザクション管理」と呼びます。
(引用:トランザクション管理とは何か

また、詳しいことが理解できたら追記します。

この記事が気に入ったらサポートをしてみませんか?