1

Oracle Database Concepts』という本の中で、オラクルは例を挙げて説明していますRead Committed Isolation Level

この例では、トランザクション 1 が行 1 を更新し、トランザクション 1 がコミットされる前に、トランザクション 2 が同じ行を更新します。したがって、トランザクション 2 は、トランザクション 1 がコミットされるまで待機します。次に、トランザクション 1 がコミットされます。その後、トランザクション 2 がコミットされます。もちろん、トランザクション 2 がコミットされた後、トランザクション 1 による行 1 の更新は、トランザクション 2 によってオーバーライドされます。

この状況を と見なしlost updateます。しかし、私の見解では、トランザクション 1 がコミットされているため、「失われた更新」であってはなりません。失われた更新は、1 つのトランザクションで考慮されます。スケジュールは、読み取り操作に関係なく、シリアル化可能なスケジュールと同じです。

例はhere、またはより具体的にはhereです。

オラクルの用語集では、失われた更新は -

データの 1 つのライターが、同じデータを変更する別のライターの変更を上書きするデータ整合性の問題。

それで、あなたはこれについてどう思いますか?それは「失われた更新」ですか?もしそうなら、この種の失われた更新は、データベースの同時実行制御によって回避できますか?

コメントやヘルプをいただければ幸いです。

4

1 に答える 1