データベースの明示的ロックと暗黙的ロックの違いは何ですか?
3 に答える
通常、暗黙的なロックは DBMS によって自動的に設定されます。ほとんどの DBMS では、開発者またはアプリケーションが明示的ロックと呼ばれるロックを発行できます。
暗黙のロック
Objectivity/DB は、必要な時点でアプリケーションに適切なロックを暗黙的に取得します。オブジェクトを読み取る操作は、読み取りロックを取得します。オブジェクトを変更する操作は、書き込みロックを取得します。
明示的なロック
暗黙的ロックは、アプリケーションが必要とするリソースへのアクセス権を取得します。一般に、Objectivity/DB による自動ロックは、ほとんどのアプリケーションにとって十分なレベルの連合データベースの同時実行性を提供します。
ただし、一部のアプリケーションでは、必要なすべてのリソースへのアクセスを事前に予約する必要があります。そうする理由は、操作を開始する前に必要なオブジェクトへの必要なアクセス権を確保するため、または操作に重要なオブジェクトを他のセッションが変更するのを防ぐためです。
必要なすべてのオブジェクトへのアクセスを事前に予約する必要があるアプリケーションは、オブジェクトを明示的にロックできます。アプリケーションが特定の時点での多くのオブジェクトの状態に基づいて値を計算する必要があるとします。アプリケーションは、必要なすべてのオブジェクトを同時にチェックすることはできませんが、オブジェクトの状態を凍結してから順番にチェックすることで、同じ効果を得ることができます。オブジェクトがロックされている限り、他のセッションはオブジェクトを変更できないため、明示的なロックはオブジェクトを効果的に凍結します。
- 明示的なロック: - レコードまたはテーブルに対してロックが明示的に要求されています。
- Implicit Lock: - ロックは暗示されていますが、取得されていません