CWM) Specification

Total Page:16

File Type:pdf, Size:1020Kb

CWM) Specification Common Warehouse Metamodel (CWM) Specification Volume 1 Version 1.0 October 2001 Copyright © 1999, Dimension EDI Copyright © 1999, Genesis Development Corporation Copyright © 1999, Hyperion Solutions Corporation Copyright © 1999, International Business Machines Corporation Copyright © 1999, NCR Corporation Copyright © 2000, Object Management Group Copyright © 1999, Oracle Corporation Copyright © 1999, UBS AG Copyright © 1999, Unisys Corporation The companies listed above have granted to the Object Management Group, Inc. (OMG) a nonexclusive, royalty-free, paid up, worldwide license to copy and distribute this document and to modify this document and distribute copies of the mod- ified version. Each of the copyright holders listed above has agreed that no person shall be deemed to have infringed the copyright in the included material of any such copyright holder by reason of having used the specification set forth herein or having conformed any computer software to the specification. PATENT The attention of adopters is directed to the possibility that compliance with or adoption of OMG specifications may require use of an invention covered by patent rights. OMG shall not be responsible for identifying patents for which a license may be required by any OMG specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. OMG specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents. NOTICE The information contained in this document is subject to change without notice. The material in this document details an Object Management Group specification in accordance with the license and notices set forth on this page. This document does not represent a commitment to implement any portion of this specification in any company's products. WHILE THE INFORMATION IN THIS PUBLICATION IS BELIEVED TO BE ACCURATE, THE OBJECT MAN- AGEMENT GROUP AND THE COMPANIES LISTED ABOVE MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL INCLUDING, BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY OR WARRANTY OF FITNESS FOR PARTICULAR PURPOSE OR USE. In no event shall The Object Management Group or any of the companies listed above be liable for errors contained herein or for indirect, incidental, special, consequential, reliance or cover damages, including loss of profits, revenue, data or use, incurred by any user or any third party. The copyright holders listed above acknowledge that the Object Management Group (acting itself or through its designees) is and shall at all times be the sole entity that may authorize developers, suppliers and sellers of computer software to use certification marks, trademarks or other special designations to indicate compliance with these materials. This document contains information which is pro- tected by copyright. All Rights Reserved. No part of this work covered by copyright herein may be reproduced or used in any form or by any means--graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems--without permission of the copyright owner. RESTRICTED RIGHTS LEGEND. Use, duplication, or disclosure by government is subject to restrictions as set forth in subdivision (c) (1) (ii) of the Right in Technical Data and Computer Software Clause at DFARS 252.227.7013 OMG® and Object Management are registered trademarks of the Object Management Group, Inc. Object Request Broker, OMG IDL, ORB, CORBA, CORBAfacilities, CORBAservices, and COSS are trademarks of the Object Management Group, Inc. X/Open is a trademark of X/Open Company Ltd. ISSUE REPORTING All OMG specifications are subject to continuous review and improvement. As part of this process we encourage readers to report any ambiguities, inconsistencies, or inaccuracies they may find by completing the Issue Reporting Form at http://www.omg.org/library/issuerpt.htm. Contents Preface . xv 1. Design Rationale . 1-1 1.1 Design Overview . 1-1 1.2 CWM and the MOF . 1-2 1.2.1 An Overview of the MOF. 1-2 1.2.2 The Relationship between CWM and MOF . 1-5 1.3 CWM and UML . 1-5 1.3.1 An Overview of UML. 1-5 1.3.2 The Relationship between CWM and UML . 1-6 1.4 CWM and XMI . 1-7 1.4.1 An Overview of XMI . 1-7 1.4.2 The Relationship between CWM and XMI. 1-8 1.5 Major Design Goals and Rationale. 1-8 1.5.1 Reuse of UML Concepts . 1-8 1.5.2 Modularity . 1-9 1.5.3 Generic Model . 1-9 2. Usage Scenarios . 2-1 2.1 Overview . 2-1 2.2 Users of CWM . 2-1 2.3 Usage Scenarios . 2-4 2.3.1 ETL Scenario. 2-4 2.3.2 OLAP Scenario. 2-5 2.3.3 Questionnaire Scenario. 2-5 2.3.4 Warehouse Administration Scenario. 2-6 October 2001 OMG-Common Warehouse Metamodel, v1.0 i Contents 2.3.5 Tool Scenarios . 2-7 3. CWM . 3-1 3.1 Overview . 3-1 3.1.1 The Roles of UML in CWM. 3-3 3.2 Organization of the CWM . 3-3 3.2.1 Modeling Conventions . 3-5 3.3 How the CWM Metamodel is Described . 3-9 3.3.1 Classes . 3-9 3.3.2 Associations . 3-13 4. ObjectModel . 4-1 4.1 Overview . 4-1 4.2 Organization of the ObjectModel Package. 4-2 4.3 Core Metamodel. 4-3 4.3.1 Core Data Types . 4-4 4.3.2 Core Classes . 4-7 4.3.3 Core Associations. 4-25 4.3.4 OCL Representation of Core Constraints . 4-32 4.4 Behavioral Metamodel . 4-35 4.4.1 Behavioral Data Types . 4-35 4.4.2 Behavioral Classes . 4-36 4.4.3 Behavioral Associations . 4-43 4.4.4 OCL Representation of Behavioral Constraints 4-46 4.5 Relationships Metamodel . 4-48 4.5.1 Relationships Data Types . 4-49 4.5.2 Relationships Classes . 4-50 4.5.3 Relationships Associations . 4-54 4.5.4 OCL Representation of Relationships Constraints . 4-55 4.6 Instance Metamodel . 4-57 4.6.1 Instance Classes . 4-61 4.6.2 Instance Associations . 4-64 4.6.3 OCL Representation of Instance Constraints . 4-67 5. Foundation . 5-1 5.1 Overview . 5-1 5.2 Organization of the Foundation . 5-2 5.3 Business Information Metamodel. 5-3 5.3.1 BusinessInformation Classes . 5-6 5.3.2 BusinessInformation Associations . 5-17 ii OMG-Common Warehouse Metamodel, v1.0 October 2001 Contents 5.3.3 OCL Representation of BusinessInformation Constraints . 5-21 5.4 DataTypes Metamodel . 5-21 5.4.1 DataTypes Classes . 5-22 5.4.2 DataTypes Associations . 5-27 5.4.3 OCL Representation of DataTypes Constraints 5-29 5.5 Expressions Metamodel . 5-29 5.5.1 Expressions Classes . 5-31 5.5.2 Expressions Associations . 5-35 5.5.3 OCL Representation of Expressions Constraints 5-38 5.6 KeysIndexes Metamodel . 5-39 5.6.1 KeysIndexes Classes. 5-41 5.6.2 KeysIndexes Associations . 5-46 5.6.3 OCL Representation of KeysIndexes Constraints 5-49 5.7 SoftwareDeployment Metamodel. 5-49 5.7.1 SoftwareDeployment Classes . 5-54 5.7.2 SoftwareDeployment Associations. 5-62 5.7.3 OCL Representation of SoftwareDeployment Constraints . 5-67 5.8 TypeMapping Metamodel . 5-67 5.8.1 TypeMapping Classes . 5-69 5.8.2 TypeMapping Associations. 5-71 5.8.3 OCL Representation of TypeMapping Constraints . 5-72 6. Relational . 6-1 6.1 Overview . 6-1 6.2 Organization of the Relational Package . 6-2 6.2.1 Inheritance . 6-2 6.2.2 Containers. 6-3 6.2.3 Tables, Columns, and Data Types . 6-4 6.2.4 Structured Types and Object Extensions . 6-5 6.2.5 Keys . 6-9 6.2.6 Index. 6-10 6.2.7 Triggers . 6-10 6.2.8 Procedures . 6-11 6.2.9 Instances. 6-12 6.3 Relational Classes . 6-13 6.3.1 Catalog . 6-13 6.3.2 CheckConstraint . 6-14 October 2001 OMG-Common Warehouse Metamodel, v1.0 iii Contents 6.3.3 Column. 6-14 6.3.4 ColumnSet . 6-16 6.3.5 ColumnValue . 6-17 6.3.6 ForeignKey . 6-17 6.3.7 NamedColumnSet. 6-18 6.3.8 PrimaryKey. 6-19 6.3.9 Procedure . 6-19 6.3.10 QueryColumnSet . 6-19 6.3.11 Row . 6-20 6.3.12 RowSet . 6-20 6.3.13 Schema . ..
Recommended publications
  • Design Rationale 1
    Design Rationale 1 Contents This chapter contains the following topics. Topic Page “Design Overview” 1-1 “CWM and the MOF” 1-2 “CWM and UML” 1-5 “CWM and XMI” 1-7 “Major Design Goals and Rationale” 1-8 1.1 Design Overview This specification proposes that XML Metadata Interchange (XMI) is used to interchange data warehouse metadata based on the CWM metamodel. The CWM metamodel is specified using the Meta Object Facility (MOF) Model, allowing XMI to be used to • transform the CWM metamodel into a CWM Document Type Definition (DTD), • transfer instances of warehouse metadata that conform to the CWM metamodel as XML documents, based on the CWM DTD, and • transform the CWM metamodel itself into an XML document, based on the MOF DTD, for interchange between MOF-compliant repositories. Thus these specifications work together to allow warehouse metadata and the CWM metamodel to be interchanged using W3C’s Extensible Markup Language (XML). October 2001 Common Warehouse Metamodel, v1.0 1-1 1 This specification additionally proposes that IDL is used for specifying programmatic access to data warehouse metadata based on the CWM metamodel. Other programming language APIs may be generated based on the CWM IDL and specific IDL- programming language mappings (for example, IDL-Java, CORBA-COM). This specification specifically defines the CWM metamodel. The CWM DTD, CWM XML, and CWM IDL specifications are automatically generated from the CWM metamodel, as defined by the MOF and XMI specifications. Note – Equivalent models have the same data structures and relationships. Equivalent XML documents are documents equivalent models when the Stream Consumption rules are applied to the two documents.
    [Show full text]
  • A Decimal Floating-Point Speciftcation
    A Decimal Floating-point Specification Michael F. Cowlishaw, Eric M. Schwarz, Ronald M. Smith, Charles F. Webb IBM UK IBM Server Division P.O. Box 31, Birmingham Rd. 2455 South Rd., MS:P310 Warwick CV34 5JL. UK Poughkeepsie, NY 12601 USA [email protected] [email protected] Abstract ing is required. In the fixed point formats, rounding must be explicitly applied in software rather than be- Even though decimal arithmetic is pervasive in fi- ing provided by the hardware. To address these and nancial and commercial transactions, computers are other limitations, we propose implementing a decimal stdl implementing almost all arithmetic calculations floating-point format. But what should this format be? using binary arithmetic. As chip real estate becomes This paper discusses the issues of defining a decimal cheaper it is becoming likely that more computer man- floating-point format. ufacturers will provide processors with decimal arith- First, we consider the goals of the specification. It metic engines. Programming languages and databases must be compliant with standards already in place. are expanding the decimal data types available whale One standard we consider is the ANSI X3.274-1996 there has been little change in the base hardware. As (Programming Language REXX) [l]. This standard a result, each language and application is defining a contains a definition of an integrated floating-point and different arithmetic and few have considered the efi- integer decimal arithmetic which avoids the need for ciency of hardware implementations when setting re- two distinct data types and representations. The other quirements. relevant standard is the ANSI/IEEE 854-1987 (Radix- In this paper, we propose a decimal format which Independent Floating-point Arithmetic) [a].
    [Show full text]
  • Data Types and Variables
    Color profile: Generic CMYK printer profile Composite Default screen Complete Reference / Visual Basic 2005: The Complete Reference / Petrusha / 226033-5 / Chapter 2 2 Data Types and Variables his chapter will begin by examining the intrinsic data types supported by Visual Basic and relating them to their corresponding types available in the .NET Framework’s Common TType System. It will then examine the ways in which variables are declared in Visual Basic and discuss variable scope, visibility, and lifetime. The chapter will conclude with a discussion of boxing and unboxing (that is, of converting between value types and reference types). Visual Basic Data Types At the center of any development or runtime environment, including Visual Basic and the .NET Common Language Runtime (CLR), is a type system. An individual type consists of the following two items: • A set of values. • A set of rules to convert every value not in the type into a value in the type. (For these rules, see Appendix F.) Of course, every value of another type cannot always be converted to a value of the type; one of the more common rules in this case is to throw an InvalidCastException, indicating that conversion is not possible. Scalar or primitive types are types that contain a single value. Visual Basic 2005 supports two basic kinds of scalar or primitive data types: structured data types and reference data types. All data types are inherited from either of two basic types in the .NET Framework Class Library. Reference types are derived from System.Object. Structured data types are derived from the System.ValueType class, which in turn is derived from the System.Object class.
    [Show full text]
  • Using Data in Programs T
    Using Data in Programs HUS FAR IN THE VISUAL BASIC PROJECTS, we have used objects, Tmodified the properties and exercised some methods. We have used events to provide action in the projects. However, we have not used data except for text strings, and have not made any mathematical calcu- lations. That is about to change. We are now going to enter numeric data in the project, and perform some calculations. This will give us much more capability to do something useful than we have done so far. Variables and Constants Broadly speaking, data can be divided into two basic categories: (1) data that is changeable (or will likely change), and (2) data that will not change. In computer-eze, data that either can change or will likely change is called a variable, while data that does not change is called a constant. Most of the data you will deal with will be variables, but constants are also around us. Visual Basic treats them the same in some respects but has important differences. 65 Constants are values that have been given a specific definition, and nothing you can do will change it. For example, there are 7 days in a week, 24 hours in a day, 60 seconds in a minute, 12 months in a year, 12 inches in a foot, 5,280 feet in a mile, and so forth. Nobody can change them, and they are “constant” in their definition. A variable is data that will or could change. Examples are the number of work hours in a work week, rate of pay, scores on exams, price of a movie ticket, number of people attending an event, and so forth.
    [Show full text]
  • CPS 506 Comparative Programming Languages Type Systems Type
    CPS 506 Comparative Programming Languages Type Systems, Semantics and Data TpsTypes Type Systems • A comple te ly dfidefine d language: Defined syntax, semantics and type system • Type: A set of values and operations – int • Values=Z • Operations={+, -, *, /, mod} – Boolean • Values={true, false} • Operations={AND, OR, NOT, XOR} 2 Type Systems • Type SSstystem – A system of types and their associated variables and objects in a program – To formalize the definition of data types and their usage in a programming language – A bridge between syntax and semantics • Type checked in compile time: a part of syntax analysis • Type checked in run time: a part of semantics 3 Type Systems (con’t ) • SillStatically TdTyped: each variiblable is associated with a singgyple type during its life in run time. –Could be explicit or implicit declaration –Example: C and Java, Perl –Type rules are defined on abstract syntax (Static Semantics) 4 Type Systems (con’t ) • DillDynamically TdTyped: a varibliable type can be changed in run time – Example: LISP, JavaScript, PHP Java Script example: Lis t = [10. 2 , 3. 5] … List = 47 – Less reliable, difficult to debug – More flexible – Fast compilation – Slow execution (Type checking in run-time) 5 Type Systems (con’t ) • Type Error: a non well-defined operation on a variable in run time – Example: union in C union flexType { int i; float f; }; union flexType u; floa t x; … u.I = 10; x=x = ufu.f; … – Another example in C ? 6 Type Systems (con’t ) • Strongly Typed: All type errors are detected in compile or run time
    [Show full text]
  • Software II: Principles of Programming Languages
    Software II: Principles of Programming Languages Lecture 6 – Data Types Some Basic Definitions • A data type defines a collection of data objects and a set of predefined operations on those objects • A descriptor is the collection of the attributes of a variable • An object represents an instance of a user- defined (abstract data) type • One design issue for all data types: What operations are defined and how are they specified? Primitive Data Types • Almost all programming languages provide a set of primitive data types • Primitive data types: Those not defined in terms of other data types • Some primitive data types are merely reflections of the hardware • Others require only a little non-hardware support for their implementation The Integer Data Type • Almost always an exact reflection of the hardware so the mapping is trivial • There may be as many as eight different integer types in a language • Java’s signed integer sizes: byte , short , int , long The Floating Point Data Type • Model real numbers, but only as approximations • Languages for scientific use support at least two floating-point types (e.g., float and double ; sometimes more • Usually exactly like the hardware, but not always • IEEE Floating-Point Standard 754 Complex Data Type • Some languages support a complex type, e.g., C99, Fortran, and Python • Each value consists of two floats, the real part and the imaginary part • Literal form real component – (in Fortran: (7, 3) imaginary – (in Python): (7 + 3j) component The Decimal Data Type • For business applications (money)
    [Show full text]
  • Abstracts for WUSS2009 Paper
    Portable SAS®: Language and Platform Considerations Robert A. Cruz, Info-Mation Systems, Hollister, CA Portable SAS®: Language and Platform Considerations...............................................................................................1 Abstract .....................................................................................................................................................................1 Audience...............................................................................................................................................................1 O. Introduction...........................................................................................................................................................1 I. The Roots of Portability Issues...............................................................................................................................1 I.A Platforms.........................................................................................................................................................1 I.B What Do We Mean by “Portable” Software? ...................................................................................................2 II. Platform Differences..............................................................................................................................................2 II.A Hardware Differences.....................................................................................................................................2
    [Show full text]
  • Fundamental Programming Concepts
    APPENDIX A Fundamental Programming Concepts The following information is for readers who are new to programming and need a primer on some fundamental programming concepts. If you have programmed in another language, chances are the concepts presented in this appendix are not new to you. You should, however, review the material briefly to become familiar with the C# syntax. Working with Variables and Data Types Variables in programming languages store values that can change while the program executes. For example, if you wanted to count the number of times a user tries to log in to an application, you could use a variable to track the number of attempts. A variable is a memory location where a value is stored. Using the variable, your program can read or alter the value stored in memory. Before you use a variable in your program, however, you must declare it. When you declare a variable, the compiler also needs to know what kind of data will be stored at the memory location. For example, will it be numbers or letters? If the variable will store numbers, how large can a number be? Will the variable store decimals or only whole numbers? You answer these questions by assigning a data type to the variable. A login counter, for example, only needs to hold positive whole numbers. The following code demonstrates how you declare a variable named counter in C# with an integer data type: int counter; Specifying the data type is referred to as strong typing. Strong typing results in more efficient memory management, faster execution, and compiler type checking, all of which reduces runtime errors.
    [Show full text]
  • Declaring Decimal Variabel in Vba
    Declaring Decimal Variabel In Vba Emptiest Pate jostlings some fibula after ungenteel Basil imprint person-to-person. Bivalve Nester heat her chemists so medium-sized.animatedly that Engelbert conns very transiently. Raleigh broadcasting her Boucher actuarially, reproachful and Force explicit declaration of variables and constants. How does VB6 store Decimal data type-VBForums. A DOUBLE cur for sound CURRENCY dec for a DECIMAL dtm for a DATETIME. What get a variable in computer programming Launch School. It's handle simple to initialize a VBA variable just spin the below code. Vba declares four decimal declared in declaring a declaration of all of each. By declaring a variable for use disorder your code you system the Visual Basic compiler the variable's data type type the value it represents viz integer decimal text. Redshift Round To 2 Decimal Places. You declare vba declares the declaration will review some point declare double data type in declaring. But variables cannot be directly declared as a decimal data type In length to use Decimal you out use the CDec conversion. Option by Option Private Module 'These are global variables potentially. Breakpoints are declared with a declaration type of declaring a fraction to declare variables are stored, floating decimal data types are available in. Postgres Declare Variable Error. VBA Data Types MS-Access Tutorial SourceDaddy. Decimal 7922162514264337593543950335 if no decimal is use. The impact value as Decimal notation is not kept You once declare a variable to bait a Decimal But page can loot it as Variant first seal then. The following C program demonstrates a double rounding error that occurs when a decimal floating-point literal is converted to a predator by.
    [Show full text]
  • Floating Point
    Contents Articles Floating point 1 Positional notation 22 References Article Sources and Contributors 32 Image Sources, Licenses and Contributors 33 Article Licenses License 34 Floating point 1 Floating point In computing, floating point describes a method of representing an approximation of a real number in a way that can support a wide range of values. The numbers are, in general, represented approximately to a fixed number of significant digits (the significand) and scaled using an exponent. The base for the scaling is normally 2, 10 or 16. The typical number that can be represented exactly is of the form: Significant digits × baseexponent The idea of floating-point representation over intrinsically integer fixed-point numbers, which consist purely of significand, is that An early electromechanical programmable computer, expanding it with the exponent component achieves greater range. the Z3, included floating-point arithmetic (replica on display at Deutsches Museum in Munich). For instance, to represent large values, e.g. distances between galaxies, there is no need to keep all 39 decimal places down to femtometre-resolution (employed in particle physics). Assuming that the best resolution is in light years, only the 9 most significant decimal digits matter, whereas the remaining 30 digits carry pure noise, and thus can be safely dropped. This represents a savings of 100 bits of computer data storage. Instead of these 100 bits, much fewer are used to represent the scale (the exponent), e.g. 8 bits or 2 A diagram showing a representation of a decimal decimal digits. Given that one number can encode both astronomic floating-point number using a mantissa and an and subatomic distances with the same nine digits of accuracy, but exponent.
    [Show full text]
  • Programming DDS for Physical and Logical Files
    IBM i 7.2 Programming DDS for Physical and Logical files IBM Note Before using this information and the product it supports, read the information in “Notices” on page 89. This edition applies to IBM i 7.2 (product number 5770-SS1) and to all subsequent releases and modifications until otherwise indicated in new editions. This version does not run on all reduced instruction set computer (RISC) models nor does it run on CISC models. This document may contain references to Licensed Internal Code. Licensed Internal Code is Machine Code and is licensed to you under the terms of the IBM License Agreement for Machine Code. © Copyright International Business Machines Corporation 1999, 2013. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents DDS for physical and logical files............................................................................1 PDF file for DDS for Physical and Logical files.............................................................................................1 Defining physical and logical files using DDS.............................................................................................. 1 Defining a physical file using DDS.......................................................................................................... 1 Defining a logical file using DDS.............................................................................................................2 Simple- and multiple-format logical files in DDS.............................................................................2
    [Show full text]
  • Declare a Ecimal in Python
    Declare A Ecimal In Python Kitty-cornered and ill-defined Gamaliel unroll fragmentarily and feeding his galleryite overwhelmingly and insensibly. Spermicidal Clem galls no avocet redefining remotely after Sergent ionises axially, quite voided. Vachel exorcising uprightly. We believe python numbers takes an interview preparations enhance your programs to declare a ecimal in python, but it will execute a fill character types in python programmers will learn more generally known as noted exception of type. As i maintain exact. Rod also convert. If it will declare a few functions useful for the c module is initialized using parentheses to declare a ecimal in python internals series of statements include at special a def functions. When that number missing a decimal it is usually be float in Python. Notice the elements of the case, but it equal to declare a ecimal in python? Even further there is taken one decimal place present, knowledge is jealous the expected value fare the results differs from how true underlying quantitative parameter being estimated. The desired number of decimal places is acquaint with the decimals keyword argument. Submitting the denominator that cannot accurately represent and news straight to declare a ecimal in python. The roadway for all string example character types. Decimal representations and internal function that holds for function output will declare a ecimal in python we can also indicate significance. The format of individual columns and rows will impact analysis performed on a dataset read into Python. They represent zero through nine, but your least now the wobble is approximately correct. All you need to do later start as usual by shifting the decimal point to the right mind given slice of places and then grieve the digit d immediately to the right select the decimal place so this comprehensive number.
    [Show full text]