占有ロックとは?
占有ロックとは、対象データを占有し、他からのアクセスを禁止するものの基本概念の一つです。データベース管理システムにおいて、複数のトランザクションが同時に同じデータにアクセスし、処理を行う場合、データの不整合を防ぐために、トランザクション同士が干渉しないように制御する必要があります。そのために使用されるのが、占有ロックです。
占有ロックは、トランザクションがデータを読み込む際にデータに対してかけるもので、読み込み処理が完了するまでそのデータに対して排他的にアクセスする権利を持ちます。占有ロックがかかっているデータに対しては、他のトランザクションからの読み込みや更新ができなくなります。ただし、同じトランザクション内であれば、占有ロックを解除することができます。
占有ロックの種類
占有ロックには、以下の2種類があります。
共有占有ロック
共有占有ロックは、トランザクションがデータを読み込む際にかけるもので、読み取り専用のロックです。共有占有ロックがかかっているデータに対しては、他のトランザクションからの読み込みは可能ですが、更新はできません。
排他占有ロック
排他占有ロックは、トランザクションがデータを更新する際にかけるもので、書き込み専用のロックです。排他占有ロックがかかっているデータに対しては、他のトランザクションからの読み込みや更新ができません。
まとめ
占有ロックは、データの整合性を保つために必要な機能の一つです。複数のトランザクションが同時に同じデータにアクセスし、処理を行う場合に、問題を防ぐために占有ロックを使用します。共有占有ロックと排他占有ロックの2種類があり、トランザクションの種類に合わせて使い分けることが重要です。
参考記事
合わせて読みたい
【Google Chrome】右クリックで翻訳がでなくなった時の対策方法の決定版