Previous | Table of Contents | Next |
A primary objective of the CWM is to define a metamodel (or, equivalently, a “metadata model?) of a generic data warehouse
architecture. Thus, the CWM metamodel defines formal rules for modeling instances of data warehouses. However, there is also
a requirement for the CWM metamodel to be expressed in MOF (and thus enabled for interchange via either CORBA interfaces or
XMI).
The CWM metamodel includes an Object Model package, which is based on the UML metamodel. It consists of a version of the UML
metamodel in which those aspects that are not relevant in a data warehouse scenario have been removed. This Object Model serves
two purposes:
• as the base on which the CWM metamodel is built, and
• as the metamodel for object-oriented data resources.
The CWM metamodel is effectively an extension of the UML-based Object Model. Any metaclass within CWM ultimately (if not
directly) inherits from some metaclass of the Object Model. For example, consider the CWM Relational Package. The Relational
metamodel defines a metaclass called “Table? that represents any relational database table. This metaclass derives from the
Object Model metaclass “Class.? Similarly, the Relational metaclass “Column? derives from the Object Model metaclass “Attribute.?
This formally establishes the semantic relationship between the relational concepts of Table and Column that it is well understood
intuitively; that is, thata Table is “something? that has properties (or attributes) and serves as a template for a collection
of “things;? that is, rows that all share that same set of properties but supply their own “values? of those properties. The
semantic equivalent in UML is the notion of a Class and its Attributes, and this equivalence is established by defining Table
as a specialization of the notion of Class, and Column as a specialization of Attribute.
The UML specification is also used in the following ways:
• The UML notation is used in the diagrammatic representations of the CWM metamodel.
• Additional constraints on the CWM metamodel are represented in Object Constraint Language (OCL), as defined in the UML specification.