UW-Madison CS 764 - Applying Model Management to Classical Meta Data Problems

Unformatted text preview:

Applying Model Management to Classical Meta Data Problems Philip A. Bernstein Microsoft Research One Microsoft Way Redmond, WA 98052-6399 [email protected] Abstract Model management is a new approach to meta data management that offers a higher level programming interface than current techniques. The main abstrac-tions are models (e.g., schemas, interface defini-tions) and mappings between models. It treats these abstractions as bulk objects and offers such opera-tors as Match, Merge, Diff, Compose, Apply, and ModelGen. This paper extends earlier treatments of these operators and applies them to three classical meta data management problems: schema integra-tion, schema evolution, and round-trip engineering. 1 Introduction Many information system problems involve the design, integration, and maintenance of complex application artifacts, such as application programs, databases, web sites, workflow scripts, formatted messages, and user interfaces. Engineers who perform this work use tools to manipulate formal descriptions, or models, of these artifacts, such as object diagrams, interface definitions, database schemas, web site layouts, control flow diagrams, XML schemas, and form definitions. This manipulation usually involves designing transformations between models, which in turn requires an explicit representation of mappings, which describe how two models are related to each other. Some examples are: • mapping between class definitions and relational schemas to generate object wrappers, • mapping between XML schemas to drive message translation, • mapping between data sources and a mediated schema to drive heterogeneous data integration, • mapping between a database schema and its next release to guide data migration or view evolution, • mapping between an entity-relationship (ER) model and a SQL schema to navigate between a database design and its implementation, • mapping source makefiles into target makefiles, to drive the transformation of make scripts from one programming environment to another, and • mapping interfaces of real-time devices to the interfaces required by a system management environ-ment to enable it to communicate with the device. Following conventional usage, we classify these as meta data management applications, because they mostly involve manipulating descriptions of data, rather than the data itself. Today’s approach to implementing such applications is to translate the given models into an object-oriented representation and manipulate the models and mappings in that representation. The manipulation includes designing mappings between the models, generating a model from another model along with a mapping between them, modifying a model or mapping, interpreting a mapping, and generating code from a mapping. Database query languages offer little help for this kind of manipulation. Therefore, most of it is programmed using object-at-a-time primitives. We have proposed to avoid this object-at-a-time programming by treating models and mappings as abstractions that can be manipulated by model-at-a-time and mapping-at-a-time operators [6]. We believe that an implementation of these abstractions and operators, called a model management system, could offer an order-of-magnitude improvement in programmer productivity for meta data applications. The approach is meant to be generic in the sense that a single implementation is applicable to all of the data models in the above examples. This is possible because the same modeling concepts are used in virtually all mod-eling environments, such as UML, extended ER (EER), and XML Schema. Thus, an implementation that uses a representation of models that includes most of those concepts would be applicable to all such environments. There are many published approaches to the list of meta data problems above and others like them. We borrow from these approaches by abstracting their algorithms into a small set of operators and generalizing them across applications and, to some extent, across data models. We Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the VLDB copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Very Large Data Base Endowment. To copy otherwise, or to republish, requires a fee and/or special permission from the Endowment. Proceedings of the 2003 CIDR Conferencethereby hope to offer a more powerful database platform for such applications than is available today. In a model management system, models and mappings are syntactic structures. They are expressed in a type system, but do not have additional semantics based on a constraint language or query language. Despite this limited expressiveness, model management operators are powerful enough to avoid most object-at-a-time pro-gramming in meta data applications. And it is precisely this limited expressiveness that makes the semantics and implementation of the operators tractable. Still, for a complete solution, meta data problems often require some semantic processing, typically the manipula-tion of formulas in a mathematical system, such as logic or state machines. To cope with this, model management offers an extension mechanism to exploit the power of an inferencing engine for any such mathematical system. Before diving into details, we offer a short preview to see what model management consists of and how it can yield programmer productivity improvements. First, we summarize the main model management operators: • Match – takes two models as input and returns a mapping between them • Compose – takes a mapping between models A and B and a mapping between models B and C, and returns a mapping between A and C • Diff – takes a model A and mapping between A and some model B, and returns the sub-model of A that does not participate in the mapping • ModelGen – takes a model A, and returns a new model B based on A (typically in a different data model than A’s) and a mapping between A and B • Merge – takes two models A and B and a mapping between them, and returns the union C of A and B along with mappings between C and A, and C and B. Second, to see how the operators might be used, consi-der the following example [7]: Suppose we are given a mapping map1 from a data source S1 to a data warehouse SW, and want to map a second


View Full Document
Download Applying Model Management to Classical Meta Data Problems
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Applying Model Management to Classical Meta Data Problems and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Applying Model Management to Classical Meta Data Problems 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?