データベースの分離レベルに関するウィキのドキュメントによると、4 つの異なるレベルが異なるロック構成に一致します。
しかし、ロック自体は何ですか?データベースはこの読み取り/書き込みロック メカニズムを提供しますか?それとも読み取り/書き込みロックは、分離レベルとコミットに基づく単なる抽象化ですか?
この分離レベルが db 自体でどのように機能するかについて、詳細な説明が得られるとよいでしょう。これには少し躊躇してください。ありがとう。
データベースの分離レベルに関するウィキのドキュメントによると、4 つの異なるレベルが異なるロック構成に一致します。
しかし、ロック自体は何ですか?データベースはこの読み取り/書き込みロック メカニズムを提供しますか?それとも読み取り/書き込みロックは、分離レベルとコミットに基づく単なる抽象化ですか?
この分離レベルが db 自体でどのように機能するかについて、詳細な説明が得られるとよいでしょう。これには少し躊躇してください。ありがとう。
分離レベルは、データベース内のデータへの同時アクセスと変更を透過的に行う方法を抽象化したものです。データベースが分離できる場合、さまざまなシナリオで一貫性のない状態になることはありません。
例: 銀行口座のデータベースを想像してください。簡単にするために、口座番号と合計残高の 2 つの行を持つテーブルを想像してみてください。
では、誰かが口座 1 から口座 2 に送金する [プロセス 1] と同時に、別の誰かが口座 2 から口座 3 に送金する [プロセス 2] としたら、何が起こるでしょうか。[1] が最初で、アカウント 1 と 2 の合計を読んでいるとします。次に、[2] が彼の番になり、完全に実行されます。[1] は現在古い値で動作しているため、アカウント 2 の合計が間違った値に設定されています。
トランザクションでは、[2] は [1] が完全な手順を完了するまで待たなければなりません。通常、これはロックで実装されるため、データベースは [1] がこれまでに使用したすべてのものをロックします。