Systems and methods for comparing one database structure to another to
identify differences between the two. In one embodiment, tree structures
corresponding to each database are generated. The tree structures have
nodes corresponding to objects in the databases. Each node has an
individual check value based on the node attributes and a cumulative
check value based on the attributes of the node and its sub-nodes.
Beginning with the uppermost nodes of each tree, the check values are
compared to identify differences in the check values, hence the node/tree
attributes. If the cumulative check values match, the sub-nodes match and
do not need to be compared directly. Only the portions of the tree
structures that do not have matching check values are traversed. If
individual check values do not match, the attributes of the corresponding
nodes are compared to determine the exact differences.