トランザクション管理はデータベース管理システム(DBMS)の不可欠なプロセスであり、トランザクション管理ソフトウェアは、試行されたすべてのトランザクションを監視、調整、実行します。
ワークフローを自動化するためのトランザクション管理ソフトウェアは、eコマース、金融、ホスピタリティー、正確なデータベース管理を必要とする企業など、トランザクション処理を伴うあらゆる業界にとって重要な役割を果たします。
重要な点として、トランザクション管理ソフトウェアは原子性の概念に基づいて、単一のトランザクションを、すべて完了する必要がある一連の操作として、または何も完了していないと見なされる一連の操作として定義します。つまり、トランザクション管理システムはデータの一貫性を維持するために、トランザクションが部分的に完了することがないようにします。
例えば、ある人がATMからお金を引き出そうとすると、トランザクション管理ソフトウェアは、口座残高を確認し、要求された金額を差し引き、銀行の記録を更新し、出金した現金を引き出すために必要なデータベース・クエリーと変更を処理してます。これらのステップはすべて1つの新しいトランザクションと見なされ、トランザクション管理システムによってプロセス全体が確実に完了し、銀行のデータベースに矛盾が生じるのを防ぎ、正確な台帳を保存します。
トランザクション中、相関状態のデータベースは流動的であり、一貫性がないとみなされます。この間、トランザクションは、データベースを読み取って情報を提供する(銀行口座残高の確認など)か、新しい情報をデータベースに書き込む(引き出し後の口座残高の更新など)ことによって、どのような数の読み取り操作や書き込み操作を実行できます。トランザクションが完全に完了して初めて、データベースは新しい一貫した状態に戻ることができます。
原子性の原理により、トランザクション管理ソフトウェアは、データベースの整合性を保護しながら、個別の一連の操作を単一のトランザクションとして扱うことができます。
原子性により、不完全なトランザクションまたは中断されたトランザクションによって発生する可能性のあるエラーが防止されます。ATMの例に戻ると、原子性は、トランザクションが実際の現金を引き出す前にユーザーの銀行口座からお金を引き落とすのを防ぎます。システム・クラッシュなどによりATMがお金を引き出せなくなると、トランザクション全体が中止され、データベースやユーザーの口座は変更されません。
トランザクションが進行中でデータベースが流動的である間、トランザクションはいくつかの連続したトランザクション状態に分類できます。
トランザクションが開始されると、アクティブ状態になり、その間にデータベースの読み取りおよび書き込み操作が実行されます。
トランザクションに必要な手順がすべて完了すると、マスター・データベースが更新されるまで、トランザクションは部分的にのみコミットされたとみなされます。
トランザクションが正常に完了すると、トランザクションはデータベースにコミットされ、コミット済み状態になります。
トランザクションが1つ以上の操作の実行に失敗するか、中止されると、トランザクションは失敗した状態とみなされます。トランザクションが失敗するとロールバックがトリガーされ、進行中のデータベースの変更がすべて元に戻されます。
すべてのトランザクションの最終状態。終了状態のトランザクションはシステムから削除され、データベース操作を実行できなくなります。
トランザクションはすべてアクティブ状態から始まり、問題がなければ、部分コミット状態、コミット状態、終了状態と進みます。トランザクションの処理中に問題が発生した場合、トランザクションは失敗状態になり、トランザクション中に行われたすべての変更がロールバックされます。その後、トランザクションは実行を再試行するか、中止することができます。中止されたかコミットされたかに関係なく、コミットされたすべてのトランザクションは最終的に終了状態になり、DBMSが新しいトランザクションを処理できるようにリソースを解放します。
データベース管理の分野では、原子性はデータベースの整合性を維持するために必要な4つの重要な特性の1つにすぎません。ACID 頭字語で呼ばれる、原子性(atomicity)、一貫性(consistency)、分離性(isolation)、持続性(durability)の4つの特性は次のとおりです。
DBMSの一側面として、トランザクション管理システムは、自動化、テンプレート、チェックリストなど、さまざまなレベルの最適化を実現する多数のデータベース・テクノロジーとソフトウェアを利用しています。IBM、Microsoft、Oracleなどのベンダーは、幅広いトランザクション管理ソリューションを競争力のある価格で提供しています。より広範なトランザクション管理テクノロジには次のようなものがあります。
SQLは、リレーショナル・データベースに情報を保存および処理するための標準プログラミング言語です。典型的なSQLコマンドには、BEGIN TRANSACTION、COMMIT、ROLLBACKなどがあります。
JTAは企業向けアプリケーション用の標準アプリケーション・プログラミング・インターフェース(API)で、トランザクション管理アプリケーションが原子性と一貫性を確保しながら、データベースやメッセージング・システムなどの他のアプリケーション・タイプと通信できるようにします。
さまざまな業界が、リレーショナル・データベースと、それが表す重要な物理的(在庫)運用リソースと一時的(情報)運用リソースの両方を効果的かつ効率的に管理するために、トランザクション管理を使用しています。
一般的なトランザクション管理ユースケースの簡単なリストを以下に示します。
証券会社や銀行機関を含む金融サービスは、日常業務だけでなく、マイクロ秒単位のビジネスにおいてもトランザクション管理に依存しています。トランザクション管理がなければ、最新の当座預金口座や株式取引プラットフォームなどの一般的な製品は実現できません。
オンライン小売プラットフォームでは、トランザクション管理によって注文処理、支払い、在庫管理が容易になり、eコマースの注文を効果的に処理できます。
複雑な不動産の世界では、プロの取引コーディネーターはトランザクション管理ソフトウェアを利用して不動産の購入、販売、リースを効率化します。
SalesforceのようなCRMシステムは、大企業にとって、見込み客、顧客とのやり取り、販売注文、DBSMやトランザクション管理を通じてアクセスできるその他さまざまなタッチ・ポイントを追跡、管理する上で極めて重要です。
トランザクション管理は、現代の多くの事業運営に欠かせないものです。ただし、信頼性の高いトランザクション管理では、次のような特定の重要な課題を軽減できる必要があります。