トランザクション処理とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > トランザクション処理の意味・解説 

トランザクション‐しょり【トランザクション処理】

読み方:とらんざくしょんしょり

transaction processing企業情報システムなどにおいて、複数関連する作業をひとつの単位として処理すること。銀行顧客間の出金入金理など、一方の処理だではなく両方の処理が完全に遂行されることを必要とする場合用いられる。→トランザクション


トランザクション処理

別名:tp
【英】transaction processing

トランザクション処理とは、データベース利用するシステムにおいて、処理の一貫性保証するために、関連する一連の処理全体一個の処理単位として管理する仕組みのことである。

業務用途用いられるデータベースシステムでは、複数の処理が関連するため、個々小さな処理単位成功失敗管理するだけでは不十分な場合がある。例えば、ある銀行口座から別の銀行口座振り込む処理を考えると、送金元の銀行口座では金額を減らす、資金移動情報送金先の銀行通知する送金先の銀行口座金額増やす、など複数の処理が関係している。ところが、例えば、資金移動情報通知する、という処理が失敗したままにしておくと、送金元の口座では金額減っているのに、送金先の銀行口座では金額変わらず処理結果矛盾したままになってしまう。このような事態生じることを防ぐため、トランザクション処理は、一連の理において一部失敗した場合関連する全ての処理を元の状態に戻すという考え方用いている。

トランザクション処理において、データベースシステムは、処理ごとに、その結果、状態、履歴などを永続的なデータとして記録していく。途中で処理が失敗した場合関連したデータ同士矛盾起こすこともあり得るため、適切にエラー処理を行うことが重要となる。一連の処理をまとめて管理する場合、最も単純明解方法が、トランザクション考え方で、「あったか、なかったかどちらかにする」という方法である。なお、トランザクション処理を実現するソフトウェアTPモニタ呼ばれており、トランザクション一連の関連する処理の状態を監視し全体として成功しているか否か管理する役割担っている。また汎用コンピュータシステムにおいて、ネットワーク接続され端末からトランザクション要求ホストコンピュータ送信しホストコンピュータトランザクション結果を各端末通知するような形態は、オンライントランザクション処理OLTP)と呼ばれている。

トランザクション処理が備えるべき特性表現した言葉に、「ACID」(ACID特性)がある。これは、Atomicity(原子性)、Consistency一貫性)、Isolation独立性)、Durability永続性からなる頭字語である。

データベースのほかの用語一覧
トランザクション処理:  ダーティーリード  ディレードオンライン処理  データベースサーバー  トランザクション処理  トランザクション
リレーショナルデータベース:  DBMS  外部キー

トランザクション処理

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/15 08:56 UTC 版)

ナビゲーションに移動 検索に移動

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

解説

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

例えば、顧客の普通預金口座から当座預金口座に500ドルを移動させる典型的な銀行のトランザクションを考えて見る。このトランザクションは銀行側から見れば1つの操作であるが、コンピュータから見れば少なくとも2つの操作から構成される。普通預金口座から500ドルを引き落とし、当座預金口座に500ドルを入金するのである。引き落としが成功して入金が失敗した場合(あるいは逆の場合)、銀行の帳簿はその日の営業完了時点で不整合を生じる。したがって、2つの操作が両方成功するか、両方失敗することを保証する必要があり、それによって銀行のデータベースに不整合が生じないようにする。トランザクション処理はそのような保証をするよう設計されている。

トランザクション処理では、データベースの個々の操作が自動的に1つに連結され、不可分のトランザクションとされることがある。トランザクション処理システムは、1つのトランザクション内の全操作がエラー無しに成功するか、全操作が実行されないことを保証する。一部の操作が成功し、他の操作でエラーが発生した場合、トランザクション処理システムはそのトランザクションの「全」操作を「ロールバック; roll back」し、そのトランザクションによる痕跡を消去してデータベースを一貫した状態(そのトランザクションを開始する前の状態)にリストアする。あるトランザクションの全操作が完了した場合、そのトランザクションはシステムによって「コミット; commit」され、データベースに加えられた更新内容が恒久的なものとなる。コミットされたトランザクションがロールバックされることはない。

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

トランザクションは厳密に時間順に処理される。n+1 番目のトランザクションが n 番目のトランザクションと同じデータベース内のデータにアクセスする場合、n 番目のトランザクションがコミットされるまで n+1 番目のトランザクションは開始されない。あるトランザクションが開始される前にそのトランザクションが操作する予定のデータベースの部分を更新している全トランザクションは先にコミットされなければならない。先行するトランザクション群には hole は全く存在しない。

技法

トランザクション処理システムの基本原則は、どのようなシステムであっても同じである。しかし、システムによって用語が異なる可能性があり、以下で使用する用語は必ずしも常に通用するとは限らない。

ロールバック

トランザクション処理システムはデータベースの整合性を保証するため、データベース更新の中間状態を記録し、トランザクションがコミットできなかった場合にデータベースを既知の状態にリストアするためにそのような記録を活用する。例えば、トランザクションによる更新前のデータベースの情報のコピーを事前に取って置く(これをbefore imageと呼ぶ)。トランザクションがコミット前に失敗した場合、そのコピーを使ってデータベースをトランザクション開始前の状態に戻す。これを「ロールバック」と呼ぶ。

ロールフォワード

また、データベースへの更新毎に別にジャーナルを保持することも可能である(これをafter imageと呼ぶ)。これはトランザクション失敗時のロールバックには不要だが、データベースの障害発生時のアップデートには便利である。そのためトランザクション処理システムでもこれを提供している場合がある。データベース全体の障害が発生した場合、最近とられたバックアップからデータベースを復元する。バックアップは、バックアップ採取後にコミットされたトランザクションによる更新を反映していない。しかし、データベースをリストアした後、after imageのジャーナルをデータベースに適用してデータベースを最新状態にすることができる。これを「ロールフォワード」と呼ぶ。障害発生時に処理中だったトランザクションはロールバックされる。これにより、障害発生直前までにコミットされた全トランザクションが反映された一貫した状態のデータベースが復旧できる。

デッドロック

場合によっては、2つのトランザクションの処理中にデータベース内の同じ部分に同時にアクセスしようとして、互いの処理の進行を妨げる場合がある。例えば、トランザクション A が X にアクセスし、トランザクション B が Y にアクセスしているとしよう。その状態で、A が Y にアクセスしようとし、B が X にアクセスしようとしたとき「デッドロック」が発生し、どちらのトランザクションも先に進めなくなる。トランザクション処理システムはそのようなデッドロックが発生するのを検出するよう設計されている。通常、両方のトランザクションをキャンセルし、ロールバックする。そして、自動的に順序を変えて再実行し、デッドロックが再度発生しないようにする。

ACID 標準

トランザクション処理システムがデータベースの一貫性を保つ手法には様々な微妙な差異があるが、基本原則に違いはない。あらゆるトランザクション処理システムはACID属性(アトミック性、一貫性、独立性、永続性)と呼ばれる機能をサポートしている。

実装

IBMIMSなどの標準的なトランザクション処理ソフトウェア1960年代に開発が始まった。それらは特定のデータベース管理システム (DBMS) と密に結合されていることが多い。1980年代には同様の基本機能を実装したクライアントサーバシステムが成功を収めた。しかし近年、分散クライアントサーバシステムの保守が益々困難となってきた。(特に ウェブによる)オンラインサービスの増加に伴ってトランザクション数が増加し、単一のデータベースは現実的な選択ではなくなってきた。さらにクライアントサーバモデルでは単一のサーバがトランザクション処理を行うのに対して、多くのオンラインシステムは各種プログラムが協調動作することで構成されるようになってきた。今日ではプログラムレベルのトランザクション処理システムが数多く稼動しており、それをメインフレームを含む巨大なシステムにまで適用可能である。

業界標準としては、X/Open Distributed Transaction Processing (DTP) が重要である。しかし、IBM の CICS のようなプロプライエタリなトランザクションシステムも依然として多数利用されている。もっとも、CICS はオープンな業界標準も取り入れてきた。

脚注

[脚注の使い方]
  1. ^ A transaction groups a set of actions that transform the database from one consistent state to another.

参考文献

  • Jim Gray, Andreas Reuter, Transaction Processing - Concepts and Techniques, 1993, Morgan Kaufmann, ISBN 1558601902
  • Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, 1997, Morgan Kaufmann, ISBN 1-55860-415-4
  • Ahmed K. Elmagarmid (Editor), Transaction Models for Advanced Database Applications, Morgan-Kaufmann, 1992, ISBN 1558602143

関連項目


トランザクション処理

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/22 05:15 UTC 版)

関係データベース管理システム」の記事における「トランザクション処理」の解説

ACID特性基づいたトランザクション処理を行う。複数ユーザ同時に同一データ参照更新した場合でも、矛盾なく正常に処理をこなす。

※この「トランザクション処理」の解説は、「関係データベース管理システム」の解説の一部です。
「トランザクション処理」を含む「関係データベース管理システム」の記事については、「関係データベース管理システム」の概要を参照ください。

ウィキペディア小見出し辞書の「トランザクション処理」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「トランザクション処理」の関連用語

トランザクション処理のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



トランザクション処理のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【トランザクション処理】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのトランザクション処理 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの関係データベース管理システム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS