開発 分離とは何ですか? -techopediaからの定義

分離とは何ですか? -techopediaからの定義

目次:

Anonim

定義-分離とはどういう意味ですか?

データベースのコンテキストでの分離は、操作で実装された変更が他の並列操作で見えるようになる時期と方法を指定します。 トランザクションの分離は、トランザクションシステムの重要な部分です。 他のユーザーアクションによってユーザーデータに影響を与えないクエリによって取得されたデータの一貫性と完全性を扱います。 データベースは、データのロックを取得して、高レベルの分離を維持します。

Techopediaは分離について説明します

データロックの程度を制御するために、いくつかの分離レベルが定義されています。 高レベルの分離は、システムがデッドロックを作成するためのオーバーヘッドをロックする可能性があります。 4つの主要な分離レベルは次のとおりです。非コミット読み取り:このレベルは、読み取りデータがテーブルまたはクエリの他の部分と一貫性がなく、コミットされないダーティ読み取りを処理します。 ここでは、検証、検証、処理を行わずに、テーブルブロックからデータが直接読み取られます。 したがって、データは可能な限りダーティです。 コミットの読み取り:この場合、クエリが返す行は、クエリの開始時に既にコミットされた行です。 クエリが開始される前にコミットが完了するため、結果はクエリ出力に表示されません。 繰り返し読み取り:この場合、クエリによって返される行は、トランザクションの開始時にコミットされます。 行われた変更はトランザクションに存在しないため、クエリ結果には表示されません。 直列化可能:このレベルでは、トランザクションは完全に分離された状態で、連続して発生します。 OracleやPostgre SQLなどのデータベースは、トランザクションのシリアル順序を保証しない場合がありますが、トランザクションのすべての読み取りがデータベースの一貫したスナップショットであり、スナップショット以降に行われた他の同時更新と競合が発生しない場合にのみトランザクションがコミットされるスナップショット分離をサポートします。 スナップショット分離によって許可された異常は、一貫性を維持するトランザクションをインターリーブすることにより、データの一貫性の違反につながる可能性があります。 これらの異常は、更新の競合または人為的なロックを導入することで解消できます。 すべてのデータベースで、ユーザーはデフォルトの分離レベルを設定できます。 選択された完全な分離レベルは、アプリケーションがダーティリード、反復可能リード、ファントムリードなどのエラーを発生させないようにします。 最初のトランザクションが2番目のトランザクションによって行われたコミットされていない変更を読み取ると、ダーティリードが発生します。 同じトランザクション中に再度読み取られた場合、読み取られたデータが同じままである場合、それは反復可能な読み取りです。 ファントム読み取りは、追加される新しいレコードが挿入前にトランザクションによって指摘されると発生します。 分離レベルが扱うさまざまなデータベースロックは次のとおりです。 他のトランザクションはこのデータを読み取ることができますが、書き込みまたは変更アクセスは提供されません。 書き込みロック:書き込みロックは、トランザクションが終了するまで他のトランザクションがデータを変更できないようにします。 排他的書き込みロック:排他的書き込みロックは、現在のトランザクションが終了するまで、他のトランザクションによるデータの読み取りまたは変更を防ぎます。 スナップショット:スナップショットは、トランザクション開始時のデータのフリーズビューです。 ダーティリード、繰り返し不可のリード、ファントムリードを防ぎます。 この定義は、データベースのコンテキストで記述されました
分離とは何ですか? -techopediaからの定義