has two advantages. First, it allows the identifica-
tion of different abstraction levels and secondly, it
describes a relationship from non-functional system
characteristics down to lower level mapping strategy
aspects. Because we observed arbitrary switches be-
tween different levels of abstraction across and even
within the analyzed documents, we propose a number
of extensions to the existing approach. The main pur-
pose of these extensions is to resolve possible misun-
derstandings or misinterpretations, which result from
imprecise definitions or abstractions. Sections 3.3.1
through 3.3.3 elaborate on our proposed extensions.
3.3.1 Efficiency
Efficiency can be subdivided into Time behavior and
Resource utilization. Holder et al. map Resource uti-
lization to Additional null values, which is often used
synonymously for storage space consumption. Doc-
uments that broached the issue of null values always
related it to memory consumption, that is why we de-
cided to replace Additional null values with Memory
consumption. Time behavior is an abstraction of the
query performance of the database, regarding the cho-
sen data model. Holder et al. chose Polymorphic,
Non-polymorphic queries, and DB insert and updates
as appropriate subdivisions of Time behavior. We
believe this subdivision to be sufficient, but to pre-
vent any misunderstandings, we chose a more precise
and elaborate naming. We subdivide Time behavior
into the CRUD operations Insert, Lookup, Update,
and Delete and the Set operations polymorphic and
non-polymorphic read. From a database perspective,
this categorization is more suited, because it allows a
more precise distinction of the actual mapping aspects
discussed.
3.3.2 Maintainability
Following ISO/IEC 25010 (ISO, 2010), Maintain-
ability can be subdivided into Changeability, Stabil-
ity, and Analysability. We disregard Stability, since
there are no inheritance mapping related aspects that
impact this characteristic. For a detailed discus-
sions on that topic, we refer to (Holder et al., 2008).
Changeability aggregates any system behavior that is
related to change. Change in this context means a
structural adaptation of the domain model and its ef-
fects on both O/R middleware and data model. Holder
et al. propose two characteristics - Change isola-
tion and Change propagation. These two character-
istics are a good example for vague definition and
loose semantics that we criticize. Holder et al. de-
fine Change propagation “as the extent to which it is
necessary to adapt the relational schema and the O/R
mappings to changes in the object model” (Holder
et al., 2008). Change isolation on the other hand is
defined as “the need to modify tables for adding or
deleting classes” (Holder et al., 2008). The deletion
of a class is a change in the object model, which raises
the question why this aspect is considered to be part of
Change propagation. We decided to adapt Holder’s
definition to make it more concrete. Change prop-
agation reflects operations, which change the struc-
ture of a class, e.g., adding or deleting an attribute.
Change isolation reflects all operations that change
the structure of the inheritance hierarchy, neglecting
the structure of the individual classes, e.g., adding or
deleting a class. The resulting mapping aspects are
derived from a simple enumeration of object model
changes, which can occur in an OO programming
language. The last subdivision of Maintainability is
Analysability. Holder redefines this as Mapping un-
derstandability and further into Mapping uniformity
and Schema correspondence. Mapping uniformity in-
dicates the degree of hybridness, which reflects the
variation of mapping strategies used for the hierarchy.
It refers to the overall mapping specification and is
not applicable to individual mapping strategies. That
is why we do not regard it for further considerations.
Schema correspondence reflects the object model’s
resemblance in the relational schema.
3.3.3 Usability
Usability is translated into Operability and is rede-
fined by Holder to Ad-hoc queries. In its essence,
Usability reflects the complexity to formulate queries
for a particular strategy. Working with relational
databases requires a fairly sophisticated under-
standing of relational algebra. This presents an
increased complexity for a developer. Even though
an ORM middleware is able to hide a good part of the
complexity of SQL, there are very few systems that
are able to hide the underlying relational database
completely. Depending on the chosen strategy, the
complexity to formulate efficient database queries
varies. The aspect Query complexity reflects that.
With the structure depicted in Table 1, a developer
can directly see, which mapping aspect impacts what
non-functional characteristic of the system. With re-
spect to our literature analysis, this structure allows
to compare arguments and discussion points on dif-
ferent levels of abstraction. We will show that this is
beneficial, because we are able to present reasonable
explanations why some of the inconsistencies can be
observed. It also helps authors of guidelines to struc-
ture and organize their documents, so developers have
a more precise understanding of the guidelines scope
Object-relational Mapping Revised - A Guideline Review and Consolidation
163