オラクルのブロックについて少し理解しています - トランザクションが完了するまで更新が他の更新をブロックする方法、ライターがリーダーをブロックしない方法など。
悲観的ロックと楽観的ロックの概念、および失われた更新を失うことに関する典型的な銀行の教科書の例などを理解しています。
また、JDBC トランザクションの分離レベルについても理解しています。たとえば、コミットされていないデータが表示されることに満足しています。
ただし、これらの概念がどのように関連し、相互作用するかについては、少しあいまいです。例えば:
- Oracle はデフォルトで悲観的ロックまたは楽観的ロックを提供していますか (2 つの TOAD セッションでの実験に基づいて、個別の更新をブロックしているように見えます)。
- 私が思うに、これらがアプリケーション レベルの概念であるとすれば、とにかくデータベースにトランザクションの更新を同期させることができるのに、ロック戦略を実装するのに苦労するのはなぜでしょうか?
- アプリケーション以外の他のクライアントが異なる分離レベルでアクセスしている場合、トランザクション分離レベル (接続で設定) はデータベースの動作をどのように変更しますか。
これらのトピックを明確にするための言葉をいただければ幸いです。