トランザクション データ処理を調べる

完了

多くの場合、トランザクション データ処理システムは、ビジネス コンピューティングの主要な機能と考えられています。 トランザクション システムは、組織が追跡する必要がある特定のイベントをカプセル化する "トランザクション" を記録します。トランザクションは、銀行取引システムのアカウント間での料金の移動のような金銭的なものや、商品やサービスに対する顧客からの支払いを追跡する小売システムの一部である場合があります。 トランザクションは、小さな個別の作業単位であると考えてください。

多くの場合、トランザクション システムは大量であり、1 日で数百万件のトランザクションを処理する場合があります。 処理中のデータには、すぐにアクセスできるようにする必要があります。 トランザクション システムによって実行される作業は、多くの場合、オンライン トランザクション処理 (OLTP) と呼ばれます。

データベースのデータを読み取りと書き込みを行うユーザーを示す図。

OLTP ソリューションは、データ レコードの作成、取得、更新、削除 (CRUD 操作と呼ばれることもあります) が行われるトランザクション ワークロードをサポートするために、データ ストレージが読み取りおよび書き込み操作の両方に対して最適化されているデータベース システムに依存しています。 これらの操作は、データベースの格納データの整合性を確保するように、トランザクション的に適用されます。 これを実現するために、OLTP システムでは、次のような、いわゆる ACID セマンティクスをサポートするトランザクションが適用されます。

  • 原子性 – 各トランザクションは 1 つの単位として扱われ、完全に成功するか完全に失敗します。 たとえば、1 つのアカウントの資金を引き落とし、別のアカウントに同じ金額を入金するトランザクションでは、両方のアクションを完了する必要があります。 いずれかの操作を完了できない場合、もう一方のアクションは失敗する必要があります。
  • 一貫性 – トランザクションでは、1 つの有効な状態から別のそれに移る場合のみ、データベースのデータを取得することができます。 上記の借方と貸方の例を続けると、トランザクションの完了状態に、あるアカウントからもう一方のアカウントへの資金の転送が反映されている必要があります。
  • 分離性 – 同時実行トランザクションが相互に干渉することはなく、一貫性のあるデータベースの状態になる必要があります。 たとえば、あるアカウントから別のアカウントに資金を転送するトランザクションが処理中である場合、これらのアカウントの残高を確認する別のトランザクションでは、一貫性のある結果が返される必要があります。残高確認のトランザクションでは、送金 "前" の残高を反映する 1 つのアカウントの値や、送金 "後" の残高を反映する他のアカウントの値を取得することはできません。
  • 持続性 – トランザクションがコミットされると、トランザクションはコミットされたままになります。 アカウント送金トランザクションが完了すると、変更されたアカウントの残高が保持されます。これにより、データベース システムをオフにした場合でも、コミットされたトランザクションは再びオンになったときに反映されるようになります。

OLTP システムは通常、ビジネス データを処理するライブ アプリケーションをサポートするために使用されます。これは、"基幹業務" (LOB) アプリケーションと呼ばれることもあります。