Object-relational mapping is the process of transforming
between object and relational modeling approaches and between the
systems that support those approaches. Doing a good job at
object-relational mapping requires a solid understanding of object
modeling and relational modeling, how they are similar, and how
they are different. Ideally we should have a single integrated
model that described both approaches. This would make sure we
understand and explicitly document both concepts and their
relationships. This document will present what we believe to be the
only correct integration of the two worlds that is suitable for
implementation on a relational database.
Difficulties occur when we have to deal with the real systems
implementing object and relational models. These systems have
implementations that are deficient or inconsistent with the
theoretical approaches. Relational databases have been deficient
for multiple decades in correctly implementing the core concepts of
relational theory. On the other hand, object modeling is not
standardized, so each programming environment implements its own
variation. Because of these deficiencies object-relational mapping
is more complicated than it needs to be.
Fortunately, object modeling and relational modeling have such
different concerns that they are actually extremely compatible.
Relational theory is concerned with knowledge and object techniques
are concerned with (primarily) behavior. Mapping between the two
models requires deciding how the two worlds can refer to each
other. We will first describe the two worlds in more detail and
then show how they can be integrated. (Mark L. Fussell)