The effects of uncommitted transactions are hidden by maintaining access to the latest committed state of objects. Readers will see only the latest committed state of an object at any time.
To hide the effects of uncommitted transactions, access to uncommitted objects in the three update states is handled as follows.
Created object
A dirty read of a created object causes an exception
Deleted object
A dirty read of a deleted object returns the object in its undeleted form.
Updated object
A dirty read of an updated object returns the object as it existed prior to the update.