A Vision for Management of Complex Models
Many problems encountered when building applications of database systems involve the manipulation of models. By “model,” we mean a complex structure that represents a design artifact, such as a relational schema, object-oriented interface, UML model, XML DTD, web-site schema, semantic network, complex document, or software configuration. Many uses of models involve managing changes in models and transformations of data from one model into another. These uses require an explicit representation of “mappings” between models. We propose to make database systems easier to use for these applications by making the “model” and “model mapping” first-class objects with special operations that simplify their use. We call this capability management. In addition to making the case for model management, our main contribution is a sketch of a proposed data model. The data model consists of formal, object-oriented structures for representing models and model mappings, and of high-level algebraic operations on those structures, such as matching, differencing, merging, function application, selection, inversion and instantiation. We focus on structure and semantics, not implementation.