Hi,
There are three tables in DSO. New table, Changelog and active. When a data is loaded into a DSO, it first goes to new data table. During activation This data is compared with data and active table and depending on the data present in new and active table changelog and active table is filled. The change log has all the changes. So the DTP which has this DSO as source reads the data from change log and moves this changelog data to furthur infoproviders. Also if your source is cube, then each and every load has unique request number assigned to it. So if you trigger the DTP, it will check what all request has been moved furthur and it will fetch the unmoved data. Hope this clarifies your doubt. You can get a lot of additional info by searching in SCn
Regards,
Raghavendra.