A transaction should always transform the database from one consistent state to another,
although we accept that consistency may be violated while the transaction is in progress.
For example, during the transaction in Figure 20.1(b), there may be some moment when
one tuple of PropertyForRentcontains the new newStaffNovalue and another still contains the
old one, x. However, at the end of the transaction, all necessary tuples should have the new
newStaffNovalue.