データの整合性を確保するには、データベースの情報が「一貫している」状態を識別できることが重要です。一貫性の概念は例によってよく理解できます。
預金口座を扱うデータベースを使っていて、ある顧客の口座から別の口座に送金したいとします。送金前と送金後では、データベースの状態は一貫しています。しかし、引き落としの後、次の口座に振り込まれるまでのデータベースの状態は一貫していません。送金処理において、顧客の口座残高が送金前と同じ段階では、データベースの状態は一貫性があります。ある程度送金されると、データベースの状態は一貫性がなくなります。引き落としと振り込みの両方を処理するか、またはどちらも処理しないようにする必要があります。
「トランザクション」は、作業の論理単位です。各トランザクションは、1 つのタスクを実行し、データベースをある一貫した状態から別の状態へ変更する、論理的に関連する一連のコマンドです。一貫した状態の性質は、使用しているデータベースに依存します。
各トランザクション内の文は不可分の単位として処理されます。すべての文が実行されるか、またはどの文も実行されません。各トランザクションの最後に、変更を「コミット」し確定します。トランザクション内のコマンドのいくつかが正しく処理されない場合は、途中の変更が取り消されるか、または「ロールバック」されます。これを、トランザクションが「アトミック」であるといいます。
複数の文をトランザクションにグループ分けすることは、メディア障害またはシステム障害時にデータの一貫性を保護するため、またはデータベースの同時操作を管理するために重要です。トランザクションは安全にインタリーブされ、各トランザクションが完了すると、データベース内の情報が一貫しているポイントにマークが付けられます。データベースを 1 つの一貫した状態から別の状態へ変更するタスクを実行するために各トランザクションを設計します。
通常の操作においてシステム障害やデータベース・クラッシュが発生した場合、SQL Anywhere はそのデータベースが次に起動されたときにデータを自動的にリカバリします。自動リカバリでは、完了済みのすべてのトランザクションをリカバリし、障害発生時にコミットされていなかったトランザクションをロールバックします。トランザクションのアトミックな性質により、データベースは確実に一貫した状態にリカバリされます。
データベースのバックアップとデータ・リカバリの詳細については、バックアップとデータ・リカバリを参照してください。
データベースの同時使用の詳細については、同時実行性の概要を参照してください。
トランザクションの使用
同時実行性の概要
トランザクション内のセーブポイント
独立性レベルと一貫性
トランザクションのブロックとデッドロック
ロックの仕組み
独立性レベルの選択
独立性レベルのチュートリアル
プライマリ・キーの生成と同時実行性
データ定義文と同時実行性
まとめ
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |