1) Every database table must have a primary key.
2) The primary keys of the data table and the messagedigest table have an identical value for a given row.
3) A new row is inserted into the mobile database andanother one into the server-side database; the primarykey
values of the two rows cannot be identical.
The relational database model involves every table having arestrictions 1) and 2) are basic conditions. Restriction3)
implies that there is no integrity collision for the primarykey during the synchronization process between the
mobiledatabase and the server-side database. Even though identicalprimary key values can be inserted at both ends,
this problemis not taken into consideration since it can easily be resolvedby application-level processing or the
synchronization policy.Fig. 4 exhibits the flow chart for the SAMDsynchronization algorithm.Steps S1~S3 represent
the Synchronization 2 stage of Fig. 3.When the DSDT and DSMDT are FullOuterJoined, DSDTrows, for which
Steps S1, S2 and S3 should be applied, can beidentified by dangling rows.Step S1 is the synchronization process
with the DSMDTwhen a row of the DSDT has been modified. The messagedigest value is calculated for the DSDT
row, which iscompared to the MDV column value of the DSMDT. If thetwo values are identical, it means that there
has not been achange at the DSDT row, and vice versa. If a change isdetected, DSMDT's MDV column value is
replaced with themessage digest value of DSDT's row, and the flag column isset to 1.Steps S2~S3 are the