データベース内の分離プロパティ

分離は、データベースの変更方法と時期を制御します

分離は、データベースのトランザクションプロパティの不可欠な部分です。 これはACID(原子性、一貫性、分離、耐久性)の3番目の特性であり、これらの特性はデータが一貫して正確であることを保証します。

Isolationは、データベースレベルのプロパティーで、変更の方法と時期、およびそれらが互いに見えるようになるかどうかを制御します。 隔離の目的の1つは、お互いの実行に影響を与えることなく、同時に複数のトランザクションを実行できるようにすることです。

アイソレーションのしくみ

たとえば、Maryが別のトランザクションを発行すると同時にJoeがデータベースに対してトランザクションを発行する場合、両方のトランザクションはデータベース上で独立した方法で動作する必要があります。 MaryはMaryを実行する前にJoeのトランザクション全体を実行するか、またはその逆を実行する必要があります。 これにより、Joeのトランザクションは、最終的にデータベースにコミットされないMaryのトランザクションの一部の副作用として生成された中間データを読み取ることができなくなります。 分離プロパティは、最初に実行されるトランザクションを保証するものではなく、相互に干渉しないことを保証するだけであることに注意してください。

分離レベル

隔離には4つのレベルがあります。

  1. Serializableは最高レベルです。つまり、別のトランザクションを開始する前にトランザクションが完了することを意味します。
  2. 反復可能な読み取りは、トランザクションが開始された後でトランザクションが終了していなくてもアクセスできるようにします。
  3. コミットされた読取りは、データがデータベースにコミットされた後にアクセスされることを可能にするが、その前にはアクセスされない。
  4. 読み取りコミットされていないのは、最低レベルの分離であり、変更が行われる前にデータにアクセスできるようにします。