| 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.