ロック

レコードは、データの整合性を確保し、各ユーザに共通のビューを提供するためにロックされ、その一方で最大の同時実行性を実現します。ロックすることにより、ユーザが参照したり修正したりしている時に、レコードが変更されることを回避できます。

Magic xpaは、以下の3種類のロックを提供しています。

トランザクションとロックは、RDBMSで密接に関連しています。SQLデータベースはマルチユーザ環境で実行されるので、無計画なロックによって、ユーザのアプリケーションへのアクセスが極端に制限されてしまうことがあります。全てのRDBMSでは、さまざまなロックのレベルを設定できます。

ISAMでは、更新の際にレコードがロックされ、更新が完了するとすぐに解放されます。RDBMSでは、トランザクションの開始時には必ずロックが行われ、COMMITまたはROLLBACK処理コマンドによってのみ解放されます。

通常の処理中は、RDBMSはビュー構造をロックします。暗黙のロックが自動的に実行されて、他のユーザからのアクセスからデータを保護します。

デフォルトのロックを変更する機能は、明示的ロックとして知られています。SQLステートメントが実行されると、暗黙のロックが自動的に発生します。たとえば、INSERT、UPDATE、DELETEの各ステートメントは、トランザクション中データの一貫性と完全性を維持するように、暗黙のロックを発行します。

いくつかのRDBMS(例えばOracle)は、レコードレベルでロックされます。RDBMSによってはページレベルのロックのみを行います。この場合、同じページ内の他のレコードがロックの原因になります。

ロックレベル

SQLのロックには、主に2つのレベルがあります。

デフォルトのロック

Magic xpaには、物理および遅延トランザクションモードの概念が導入されています。両方のモードでのMagic SQLゲートウェイのデフォルトの動作は次のとおりです。

トランザクションモード

デフォルトの動作

物理

ODBCを除くSQLゲートウェイでは、デフォルトのロック方式として物理ロックが使用されます。

ODBCでは、トランザクションモードに関係なく、常に論理ロックが使用されます。

遅延

全てのSQLゲートウェイで、ロック方式として論理ロックが使用されます。

関連トピック: