【データベース】トランザクション処理とは

テクノロジー

トランザクション処理( transaction processing)とは、トランザクションと呼ばれる不可分な操作から構成される情報処理の形態。

トランザクションとは

トランザクション (transaction) とは、商取引、売買、執行、取扱、議事録という意味の単語。コンピュータ用語としては、情報システムにおける業務に存在する不可分な処理も指すことがある。

コンピュータシステムではコンピュータ内で実行される、分けることのできない一連の情報処理の一単位を意味する。この一連の処理を分割して実行した場合、結果の整合性を保てなくなる。

一般的なトランザクションは、プログラム中心で分類すると、業務処理をプログラムした「アプリケーションプログラム」、利用者がそのプログラムにアクセスしたりデータを出し入れするために使う「ユーザインタフェース」、データが保管される場所である「永続性記憶資源(ストレージ)」、データが上記の各部を行き交うために必要な「各種I/O」といったものが実行される。

永続性記憶資源は、業務データを保管するため、ファイルやデータベースが使われる。複数の不揮発性データが更新の途中で処理が中断した場合に不揮発性データ値が中途半端な状態で残ってしまい、データを正常値に戻すことができなくなるためである。

トランザクション処理における永続性記憶資源の管理では、複数のデータ項目の更新操作列をすべて実行するか、まったく実行しないように制御する必要がある。これをアトミック実行[1]という。実行前の状態に戻す処理を一般的なデータベース管理システムでは「ロールバック」という。バッチジョブのような処理形態でも、出力結果はアトミック実行の概念を満たさなければならない。たとえば、月末の領収証の一括印刷処理を行っているときにプリンタエラーでジョブが中断した場合でも、安易な位置から再実行してはならない。

【データベース】トランザクション処理とは

トランザクションは、データベースをある一貫した状態から別の一貫した状態へ変更するアクションを1つに束ねたもの。トランザクション処理は、既知の一貫した状態のデータベースを維持するよう設計されており、相互依存のある複数の操作が全て完了するか、全てキャンセルされることを保証する。

トランザクション処理では、データベースの個々の操作が自動的に1つに連結され、不可分のトランザクションとされることがある。トランザクション処理システムは、1つのトランザクション内の全操作がエラー無しに成功するか、全操作が実行されないことを保証する。

トランザクション処理は、ハードウェアやソフトウェアの障害によってトランザクションが部分的に実行され、データベースが不明で一貫しない状態になるのも防ぐ。コンピュータシステムがトランザクションを処理中にクラッシュしてしまった場合、トランザクション処理システムはコミットされていない全トランザクションがキャンセルされることを保証する。

【トランザクション処理】具体例

1.利用者が銀行のATMで決済を依頼

2.銀行内のシステム上の口座の処理

3.バッチ処理の結果を利用者に示す

トランザクションを使用すると分散アプリケーションを簡単に作成でき、通信の結果を 1 つの単位としてコミットできる。マシン、プログラム、およびネットワークに関する障害など、分散環境で発生するおそれがある問題に対して、すばやく対処。エラーが発生しても、簡単なプログラムを使って、処理を元に戻すことができる。

ACID 特性とは

銀行口座からの引き出し処理などのトランザクションでは、トランザクションを構成する操作がすべて成功するか、またはすべて失敗しなければならない。

たとえば、トランザクションを構成する操作のうち、1 つの操作が成功し、別の操作が失敗するとします。つまり、銀行口座から預金を引き出しても、引き出し後の金額が預金残高に反映されないとすれば、その銀行は営業を続けることができない。

トランザクションを構成する操作は、すべて成功するか、または失敗しなければならない、という特性を「原子性」と言う。Oracle Tuxedo システムのすべてのトランザクションは、原子性という特性を持ち、さらに、「一貫性」、「隔離性」、および「持続性」という関連する特性を備えている。Oracle Tuxedo システムで実行されるトランザクションのこうした 4 つの属性を ACID 特性と呼ぶ。

まとめ

1.トランザクション開始

2.「在庫テーブル」で保持している商品の在庫を減らす

3.「注文テーブル」に購入者情報を登録

4.トランザクション終了

ACID特性とはトランザクション処理において必要とされる4つの要素、Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)を頭字語で表したもの。トランザクション開始~終了までの一連の処理のことをトランザクションという。

そしてトランザクションを終了するときは一連の処理を「確定させるのか(コミット)」「破棄するのか(ロールバック)」の命令を実行しトランザクションを終了。

タイトルとURLをコピーしました