Which of the following scenarios may lead to an irrecoverable error in a database system?
A transaction writes a data item after it is read by an uncommitted transaction
Blind Write. So commit or not, does not matter.
@aiyyar.aarushi I think the reason is that since unrepeatable error is against the isolation property, database will undo the changes that was introduced , using the logs .In case of option (d) it is not that every dirty read leads to unrecoverable schedule, but it "may lead to an irrecoverable error" as the question has asked about "may lead to'' therefore option d is the right one since "if transaction reading uncommitted data commits, before the other transaction that did the write commits, then irrecoverable error occurs if uncommitted transaction fails".
@aiyyar.aarushi in option D, if you abort the transaction which performed dirty read (after the other transaction has committed) no issue. If you abort the transaction which performed the write (after the other transaction has committed), you must rollback both transactions to ensure atomicity but if you abort the committed transaction, you would violate durability.
I hope now it is clear which is the only case where IRRECOVERABILITY ARISES.
That is only when a particular transaction reads from a uncommited Transacation and , commits before the commit of the transaction whose data it was reading.