トランザクション (transaction) は、ユーザインタフェースとアプリケーションプログラムと永続性記憶資源と各種I/O間で実行される不可分な情報処理単位である。 永続性記憶資源にはトランザクショナルなファイルやデータベースが使われ、自分自身のローカルトランザクションを管理する能力が必要とされる。 その理由は複数の不揮発性データの更新の途中で処理が中断したら、不揮発性データ値が中途半端な状態で残ってしまい、二度と正常値に戻すことができなくなるからである。 永続性記憶資源管理は複数のデータ項目の更新操作列をすべて実行するか、まったく実行しないように制御しなければならない。(アトミック実行) ユーザインタフェースにトランザクションが実行されたか、されなかったかの結果を明確に表示しなければならない。 バッチジョブのような処理形態でも出力結果はアトミック実行の概念を満たさなければならない。 たとえば月末の領収証の一括印刷処理を行っているときに各種プリンタエラーでジョブが中断したとしても、安易な位置から再実行して、同じ領収証を複数印刷してはならない。
トランザクションとは、関連する複数の処理を一つの処理単位としてまとめたもの。
金融機関のコンピュータシステムにおける入出金処理のように、一連の作業を全体として一つの処理として管理するために用いる。
トランザクションとして管理された処理は「すべて成功」か「すべて失敗」のいずれかであることが保証される。
例えば、資金移動システムをコンピュータで処理する場合、出金処理と入金処理は「どちらも成功」か「どちらも失敗」のどちらかであることが要求される。
「出金に成功して入金に失敗」すると、出金された資金が宙に浮いてしまうからである。
ある目的に関する複数の処理を一つの処理としてまとめて扱う単位。 #一つ一つは単独の処理だが、ある目的の元に一つの流れ=トランザクションとなる 例えば、オークションである出品を落札したいと言う目的には 次の処理が発生する。 (1)オークションの現在の価格を見る (2)自分の預金残高が入札価格に足りるか確認する (3)入札する という流れの場合、1から3までの処理の中で、オークションの現在の価格が変動してしまっては困ります。 具体的には、現在の預金残高が\2000で、現在のオークション価格が\1900とします。次の入札には\2000あれば参加できるので入札しようとしたのですが、 預金残高の確認中に誰か別の人が入札をしてしまい、3の処理がうまくいかない場合があります。 このようなときに、1〜3までの複数の処理を1つの処理単位としてまとめる必要があり、このまとめる処理のことを、トランザクション処理といいます。 身の回り、特にお金がたくさん動く情報処理の分野において、絶対に知っていなければならない知識のひとつです。