トランザクション
トランザクション (英: transaction) とは、商取引、売買、執行、取扱、議事録という意味の単語である。コンピュータ用語としては、情報システムにおける業務に存在する不可分な処理も指す(一般的な用語のトランザクションには一貫したなどの意味合いは無い。)。
コンピュータシステムにおけるトランザクション処理
[編集]コンピュータシステムではコンピュータ内で実行される、分けることのできない一連の情報処理の一単位を意味する。この一連の処理を分割して実行した場合、結果の整合性を保てなくなる。
一般的なトランザクションは、プログラム中心で分類すると、業務処理をプログラムした「アプリケーションプログラム」、利用者がそのプログラムにアクセスしたりデータを出し入れするために使う「ユーザインタフェース」、データが保管される場所である「永続性記憶資源(ストレージ)」、データが上記の各部を行き交うために必要な「各種I/O」といったものが実行される。
永続性記憶資源は、業務データを保管するため、ファイルやデータベースが使われる。複数の不揮発性データが更新の途中で処理が中断した場合に不揮発性データ値が中途半端な状態で残ってしまい、データを正常値に戻すことができなくなるためである。
トランザクション処理における永続性記憶資源の管理では、複数のデータ項目の更新操作列をすべて実行するか、まったく実行しないように制御する必要がある。これをアトミック実行[1]という。実行前の状態に戻す処理を一般的なデータベース管理システムでは「ロールバック」という。バッチジョブのような処理形態でも、出力結果はアトミック実行の概念を満たさなければならない。たとえば、月末の領収証の一括印刷処理を行っているときにプリンタエラーでジョブが中断した場合でも、安易な位置から再実行してはならない。
オンライントランザクション処理 (OLTP)
[編集]ネットワーク経由でのコンピュータトランザクション処理をオンライントランザクション処理 (OLTP)という。オンラインとは「ネットワークを経由したコンピュータ利用」を表し、英語圏では(2010年末においても)日本での「ネット(あるいはネットワーク)」と同義として広く一般用語としてあるいは公式な用語として使用されている(つまり、英語圏ではネットワークよりもオンラインの方がコンピュータ・ネットワークを利用しているということを表す一般的な用語である)。
ネットワーク経由が一般化する以前は、コンピュータはコンソールからの利用、あるいはエンドユーザーと呼ばれる人々が端末と呼ばれる機器と同軸ケーブルなどで配線され、ホストコンピュータの置かれている場所と同一あるいは比較的近い場所で使用するのが一般的であった。ネットワーク利用により、遠隔地からのコンピュータ利用が可能となった。オンラインでのトランザクション処理は、通常は、バッチ処理ではなく、対話処理でおこなわれる。しかし、オンラインでのバッチ処理もあり得る。
分散コンピューティングが普及して以降、従来のOLTPと分散コンピューティングでのOLTPを区別する必要がある場合、「ユーザインターフェイス端末(ユーザ端末)が永続性記憶域を分担しないで集中処理サーバにつながっている形態のオンライン処理」を単にOLTPといい、
一方、ユーザインターフェイス端末、各種処理サーバ、永続性記憶資源、I/O装置を「複数の遠隔装置」として構成する処理形態を「分散トランザクション処理」という。「複数のコンピュータで一つのトランザクション処理」をおこなう場合がこれにあたる。さらに論理的な狭義では、複数の永続性記憶資源を使うトランザクション処理の事を指す。データが複数箇所に保管されるトランザクション処理がこれにあたる。
トランザクション処理が満たすべき技術的要件としてACID特性がある。