Linux豆知識 076

トランザクション

公開日:2011年03月04日

今回は「トランザクション」について。

トランザクションとは、主にデータベースなどにおいて使われる用語で、「複数の処理を一つの処理としてまとめたもの」のことを指します。

よく引き合いに出されるのが、「銀行振り込み」の例です。たとえば、【A】という口座から【B】という口座に、3000円を振り込むという作業を考えます。この作業では、1)【A】から3000円を引き、2)【B】に3000円を足す、という操作を行うことになります。ここで、1)か2)のいずれか一方だけが失敗する、という事態は絶対に避けなければなりません。

もし1)だけが失敗すると【A】の残高が減らずに【B】の残高が増えてしまい、2)だけが失敗すると【A】の残高が減り【B】の残高は増えない、となってしまいます。これは、『1)と2)の両方の処理が失敗する』よりもはるかに性質の悪い事態となります。

そこで、『1)と2)の処理を、トランザクションとして1つにまとめる』ということを行います。この場合、トランザクションとしてまとまった処理は、「すべて成功」もしくは「すべて失敗」として処理されます。

このように、トランザクションとなった処理は、その中の1つでも失敗した場合、全部の処理を「失敗」として扱わせるところがポイントとなります。
全ての処理が成功したときのみ、全ての処理を「成功」として扱うことになるわけです。

トランザクションは、データベースのみならず、ファイルシステムなどにも応用される考え方ですので、その仕組みは是非理解しておいてください。


ページトップへ