In the book "Oracle Database Concepts", Oracle gives an example to explain Read Committed Isolation Level
.
In the example, transaction 1 updates row 1, then transaction 2 updates the same row before transaction 1 commits. So, transaction 2 waits until transaction 1 commits. Then transaction 1 commits. Transaction 2 commits after that. Of course, after transaction 2 commits, update of row 1 by transaction 1 is overridden by transaction 2.
It consider this situation as a lost update
. But in my view, it should not be a "lost update" since transaction 1 has committed. Lost update is considered in one single transaction. The schedule is even equal to a serializable schedule regardless of read operations.
The example is here, or more specifically, here.
In Oracle's glossary, lost update is -
A data integrity problem in which one writer of data overwrites the changes of a different writer modifying the same data.
So, what do you think of this? Is it a "lost update" and if so, could this kind of lost update be avoided by concurrency control of database?
Any comments and help would be appreciated.