From what I read to analyze transactions the basic approach is the concept of conflict serializable.
So the database system must ensure that the scheduling of transaction is equivalent to a serializable via this approach.
But I can not see how this model works in this trivial example.
Assume the following:
T1
READ(A)
A = A - 50
WRITE(A)
and transaction 2:
T2
READ(A)
A = A - 50
WRITE(A)
According to conflict serializability only WRITE(A)
are conflicting. But besides or a possible execution may be:
T1 and T2 do READ(A)
concurrently. As a result each read the original value. So the final result is A - 50
and not A -50 -50
as is the outcome of a serial execution.
So from my point of view these 2 reads are conflicting (but the theory of conflict equivalency considers them non conflicting)
So I don't understand how this basic example is covered by the approach, moreover this is the standard execution in databases with REPEATABLE READ isolation level.