Relationships have been repeatedly identified as an important object-orient
ed modeling construct. Most emerging modeling standards such as the object
database management group (ODMG) object model and UML have some support for
relationships. However object-oriented database (OODB) systems have largel
y ignored the existence of relationships during schema evolution. We are th
e first to propose comprehensive support for relationship evolution. A comp
lete schema evolution facility for any OODB system must provide primitives
to manipulate all object model constructs, and maintenance strategies for t
he structural and referential integrity of the database under such evolutio
n. We propose a set of basic evolution primitives for relationships as well
as a compound set of changes that can be applied to the same. However, giv
en the myriad of possible change semantics a user may desire in the future,
any predefined set is not sufficient. Rather we present a flexible schema
evolution framework that allows the user to define new relationship transfo
rmations as well as to extend existing ones. Addressing the second problem,
namely of updating schema evolution primitives to conform to the new set o
f invariants, can be a very expensive re-engineering effort. In this paper
we present an approach that de-couples the constraints from the schema evol
ution code, thereby enabling their update without any re-coding effort. We
also present an approach that can be used to verify the correctness of thes
e complex evolution operations using the de-coupled constraints. (C) 2001 P
ublished by Elsevier Science B.V.