In "ORACLE 9i DBA Fundermentals-1",page 1-33,the following description about checkpoint can be found :
"An event called a checkpoint occurs when the Oracle background process DBWn writes all the modified database buffers in the SGA,including both committed and uncommitted data,to the data files."
Why would DBWn write uncommitted data to data files ?
I think that only committed data should be written from data buffers to the data files,because executing "commit" by a user means that his confirmation to the changes to the data,which would make the data permanent in the datafiles and can ensure that every other users see the identical copy of the data.