見出し画像

データベースの排他制御「楽観ロック」と「悲観ロック」


排他制御とは、複数の人が同時に同じデータにアクセスするときに、データの不整合を防ぐための制御方法です。


主に「楽観ロック」と「悲観ロック」という2つの排他制御の方法について説明しています。

楽観ロックは、

他の人が同じデータを同時に更新することはほとんどないという前提のもと、データの更新を行います。

データそのものにロックはかけず、更新する前にデータが取得時と同じ状態であることを確認します。

これにより、データの整合性を保つことができます。

悲観ロックは、

他の人が同じデータに頻繁に変更を加えるという前提のもと、データの更新を行います。

更新するデータを取得する際にロックをかけ、他の人から更新されないようにします。これにより、データの整合性を保つことができます。

これらの方法は、それぞれ異なる状況や要件に適しています。

どちらの方法を選ぶべきかは、システムの要件やデータの更新頻度などを考慮する必要があります。

では、これを小学生に理解できるように説明してみましょう。
データベースの排他制御は、図書館で本を借りるときのルールに似ています。


一冊の本は一度に一人しか借りることができませんよね。

これは、本(データ)が同時に複数の人(トランザクション)によって借りられると、どちらが本を持っているのかわからなくなってしまうからです。

楽観ロックは、

図書館が空いていて、他の人が同じ本を借りようとすることはほとんどないと考え、本を探しに行く方法です。

本棚に行って、本がそこにあることを確認したら、その本を借りることができます。

一方、悲観ロックは、

図書館が混んでいて、他の人が同じ本を借りようとする可能性が高いと考え、本を探しに行く方法です。

本を借りる前に、まず図書館のスタッフにその本を予約してもらいます。

これにより、他の人がその本を借りることはできません。



いいなと思ったら応援しよう!