Before going through this article.Plz refer to the oracle 9i architecture.. for better understanding.
@> Assume a user issues an update stmt on the table such that more than 1 user is affected by the update .This stmt is passed to the USER process .Then the server(rather Query processor )will check whether the SQL stmt is already contained in the library cache such that corresponding info(parse tree, execution plan) can b used .If the stmt can not be found , it is parsed aftr verifying the stmt (usr privileges, affected tables and columns) using data from the data dictionary cache, a query execution plan is generated by the query optimizer .Together with the parse tree, this plan is stored in the library cache.
@> For the objects affected by the stmt (table) it is cheked, whether the corresponding data blocks already exist in the database buffer .If not , the user process reads the data blocks into the database buffer .If thr is not enough space in the buffer , the least recently used blocks of other objects are written back to the disk by the “DBWR” process.
@> The modifications of the tuples affected by the update, occurs in the database buffer.Before the database blocks are modified the “before image” of the tuples is written to the rollback segments by the DBWR process.
@> While the redo-log buffer is filled during the data blocks modifications ,LGWR process writes entries from the redo-log buffer to the redo-log files.
@> Aftr all tuples (or data blocks ) have been modified in the database buffer , the modifications can be committed by the user using the commit command.
@> As long as no commit has been issued by the user , modifications can be undone using the rollback stmt. In this case , the modified data blocks in the database buffers are overwritten by the original blocks stored in the rollback segments.
@> If the user issues a commit , the space allotted for the blocks in the rollback segments is deallocated and can be used by other transactions . Furthermore the modifications in the database buffers are unlocked such that other users now can read the modified blocks.The end of the transaction (more precisely the commit) is recorded in the redo-log files.The modified blocks are only written to the disk by the DBWR process ,if the space allocated for the blocks is needed.
...Referred from Oracle Fundamentals