Patent ID: 7620664
Filing Date: 2009-11-17
Classification: G06F,Y10S

Abstract:
1. A method for merging, distributing, and versioning databases comprising: selecting a set of source datastores and a set of target datastores; identifying a first source datastore belong to the set of source datastores; reading and acquiring a first source logical representation of the first source datastore; formulating the first source logical representation as a collection of tables and constraints; developing a first symbolic abstraction of the first source logical representation functionally equivalent to a first set of membership abstractions and constraints among them expressed as predicates; identifying a first target datastore belonging to the first set of target datastores; acquiring a first target logical representation of the first target datastore; formulating the first target logical representation as a collection of tables and constraints; developing a second symbolic abstraction of the first target logical representation functionally equivalent to a second set of membership abstraction and constraints among them expressed as predicates; deriving from the second target symbolic abstraction a first set of derived membership abstractions and constraints among them which are equivalent to the first source symbolic abstraction; deriving a first derived target logical representation consistent with the second target symbolic abstraction; providing a set of access methods for reading and writing data having a logical representation as tables, to physical storage of the source and target datastores; reading, using the set of access methods, a first set of data from the first source datastore using the first source logical representation to read, using the access methods, a first set of data from the first source datastore the first source logical representation; deriving a set of write instructions for writing data to tables in the first target logical representation from the set of derived write instructions for writing data to tables in the first derived target logical representation; and, writing the first set of data to the first target datastore via tables in the first derived logical representation using the second set of write instructions.