Software failures: In such cases, a software error abruptly stops the implementation of the current transaction (or all transactions), therefore leading to losing the state of program implementation and the contents / state of the buffers. But what is a buffer? A buffer is the portion of RAM that kept the partial contents of database that is currently needed by the transaction. The software failures can further be subdivided as:
a) Application or Statement program failure
b) DBMS software failure
c) Failure due to viruses
d) Operating system failure
A Statement of program may cause abnormal termination if it does not implement totally. This happens if during the implementation of a statement, an integrity constraint gets desecrated. This leads to irregular termination of the transaction because of which any prior updates made by the transaction may still get reflected in the database going it in an inconsistent state.
A failure of transaction can happen if some code in a transaction program leads to its abnormal termination. For instance, a transaction can go into an infinite loop.
In such a case the only technique to break the loop is to abort the program. Likewise, the failure can be traced to the DBMS or operating system and transactions are aborted abruptly. Therefore part of the transaction that was implemented before abort may cause some updates in database, and therefore the database is updated only partially which leads to an inconsistent state of database.