トランザクション

提供: RAD Studio
移動先: 案内検索

データベースの使用 への移動


トランザクションとは、データベース内の 1 つまたは複数のテーブルに対して実行されるアクションの集合で、すべてが成功しなければコミットされない(永続化されない)もののことです。グループの中のアクションが 1 つでも失敗すると、すべてのアクションがロールバックされます(元に戻されます)。

トランザクションを使用することで以下が保証されます。

  • 1 つのトランザクション内の更新は、すべてコミットされるか、すべて中止されて元の状態にロールバックされます。これを原子性と呼びます。
  • トランザクションはシステムの状態の正しい変化であり、これによって状態の不変条件が維持されます。これを一貫性と呼びます。
  • 並行するトランザクションには互いの部分的な結果やコミット前の結果が見えず、アプリケーションの状態の一貫性が損なわれることがありません。これを独立性と呼びます。
  • レコードへのコミットが済んだ更新は、通信障害、プロセス障害、サーバー システム障害などの障害があっても、そのまま残ります。これを永続性と呼びます。

このように、トランザクションを使用することで、1 つまたは複数のデータベース コマンドの途中で発生するハードウェア障害に対して保護されます。トランザクション ログ機能により、ディスク媒体で障害が起きても、永続状態を復元できます。トランザクションは、SQL サーバーにおけるマルチユーザー並行制御の基礎にもなっています。各ユーザーが必ずトランザクションを使ってデータベースとやり取りしていれば、1 人のユーザーのコマンドが他のユーザーのトランザクションの統一性を乱すことはありません。SQL サーバーは受け取ったトランザクションをスケジューリングし、トランザクションは全体が成功するか全体が失敗します。

トランザクション サポートは、大抵のローカル データベースでは含まれていませんが、ローカル InterBase では提供されています。

トランザクション管理の詳細については、次を参照してください:

多層アプリケーションでは、データベース操作以外のアクションを含むトランザクションや、複数のデータベースにまたがるトランザクションを作成することができます。多層アプリケーションでトランザクションを使用する方法は、「多層アプリケーションでのトランザクション管理」を参照してください。

関連項目