The present invention creates a model that maps object classes in an
object-oriented environment to a data source. The model maps the
relationship between properties of each object class and data of the data
source. The present invention can be used with a data source such as a
relational database, user interface, file system, or object-oriented
database. An application's object classes and data source schema are
designed independent of the other since the model can be used to map one
to the other. The model is comprised of entities and attributes. An
entity maps to an object class and to at least one table of the DBMS. An
entity contains attributes either simple or derived. A simple attribute
maps to a DBMS column. A derived attribute is a combination of other
attributes and does not directly map to a DBMS column. A relationship
creates a link between entities of the model. A relationship can be used
to flatten an attribute or flatten a relationship. A flattened attribute
is an attribute of one entity that is added to another entity. A
flattened relationship is created by the elimination of intermediate
relationships between two entities. Relationships can be either
unidirectional or bi-directional. A unidirectional relationship has a
single traversal path that has a source entity and a destination. A
bi-directional relationship has two traversal paths. A reflexive
relationship can be created using a single entity. The model is used to
synchronize object properties and the data of the data source.