"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)