Getting Started Version 9.0 38083-01-0900-01 Last modified: November 2001 Copyright 2001 Sybase, Inc. All rights reserved. Information in this manual may change without notice and does not represent a commitment on the part of Sybase, Inc. and its subsidiaries. Sybase, Inc. provides the software described in this manual under a Sybase License Agreement. The software may be used only in accordance with the terms of the agreement. No part of this publication may be reproduced, transmitted, or translated in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without the prior written permission of Sybase, Inc. Use, duplication, or disclosure by the government is subject to the restrictions set forth in subparagraph (c)(1)(ii) of DFARS 52.227-7013 for the DOD and as set forth in FAR 52.227-19(a)-(d) for civilian agencies. Sybase, SYBASE (logo), ADA Workbench, Adaptable Windowing Environment, Adaptive Component Architecture, Adaptive Server, Adaptive Server Anywhere, Adaptive Server Enterprise, Adaptive Server Enterprise Monitor, Adaptive Server Enterprise Replication, Adaptive Server Everywhere, Adaptive Server IQ, Adaptive Warehouse, AnswerBase, Anywhere Studio, Application Manager, AppModeler, APT Workbench, APT-Build, APT-Edit, APT- Execute, APT-FORMS, APT-Translator, APT-Library, ASEP, Backup Server, BayCam, Bit-Wise, Certified PowerBuilder Developer, Certified SYBASE Professional, Certified SYBASE Professional Logo, ClearConnect, Client-Library, Client Services, CodeBank, Column Design, ComponentPack, Connection Manager, Convoy/DM, Copernicus, CSP, Data Pipeline, Data Workbench, DataArchitect, Database Analyzer, DataExpress, DataServer, DataWindow, DB-Library, dbQueue, Developers Workbench, Direct Connect Anywhere, DirectConnect, Distribution Director, e-ADK, E-Anywhere, e-Biz Integrator, E-Whatever, EC-GATEWAY, ECMAP, ECRTP, eFulfillment Accelerator, Electronic Case Management, Embedded SQL, EMS, Enterprise Application Studio, Enterprise Client/Server, Enterprise Connect, Enterprise Data Studio, Enterprise Manager, Enterprise SQL Server Manager, Enterprise Work Architecture, Enterprise Work Designer, Enterprise Work Modeler, eProcurement Accelerator, eremote, Everything Works Better When Everything Works Together, EWA, Financial Fusion, Financial Fusion Server, First Impression, Formula One, Gateway Manager, GeoPoint, iAnywhere, iAnywhere Solutions, ImpactNow, Industry Warehouse Studio, InfoMaker, Information Anywhere, Information Everywhere, InformationConnect, InstaHelp, Intellidex, InternetBuilder, iremote, iScript, Jaguar CTS, jConnect for JDBC, KnowledgeBase, Logical Memory Manager, MainframeConnect, Maintenance Express, MAP, MDI Access Server, MDI Database Gateway, media.splash, MetaWorks, MethodSet, ML Query, MobiCATS, MySupport, Net-Gateway, Net-Library, New Era of Networks, Next Generation Learning, Next Generation Learning Studio, O DEVICE, OASiS, OASiS logo, ObjectConnect, ObjectCycle, OmniConnect, OmniSQL Access Module, OmniSQL Toolkit, Open Biz, Open Business Interchange, Open Client, Open ClientConnect, Open Client/Server, Open Client/Server Interfaces, Open Gateway, Open Server, Open ServerConnect, Open Solutions, Optima++, Partnerships that Work, PB-Gen, PC APT Execute, PC DB-Net, PC Net Library, PhysicalArchitect, Power++, Power Through Knowledge, power.stop, PowerAMC, PowerBuilder, PowerBuilder Foundation Class Library, PowerDesigner, PowerDimensions, PowerDynamo, Powering the New Economy, PowerJ, PowerScript, PowerSite, PowerSocket, Powersoft, PowerStage, PowerStudio, PowerTips, Powersoft Portfolio, Powersoft Professional, PowerWare Desktop, PowerWare Enterprise, ProcessAnalyst, Rapport, Relational Beans, Report Workbench, Report-Execute, Replication Agent, Replication Driver, Replication Server, Replication Server Manager, Replication Toolkit, Resource Manager, RW-DisplayLib, RW-Library, S Designor, S-Designor, SAFE, SAFE/PRO, SDF, Secure SQL Server, Secure SQL Toolset, Security Guardian, SKILS, smart.partners, smart.parts, smart.script, SQL Advantage, SQL Anywhere, SQL Anywhere Studio, SQL Code Checker, SQL Debug, SQL Edit, SQL Edit/TPU, SQL Everywhere, SQL Modeler, SQL Remote, SQL Server, SQL Server Manager, SQL SMART, SQL Toolset, SQL Server/CFT, SQL Server/DBM, SQL Server SNMP SubAgent, SQL Station, SQLJ, Stage III Engineering, Startup.Com, STEP, SupportNow, S.W.I.F.T. Message Format Libraries, Sybase Central, Sybase Client/Server Interfaces, Sybase Development Framework, Sybase Financial Server, Sybase Gateways, Sybase Learning Connection, Sybase MPP, Sybase SQL Desktop, Sybase SQL Lifecycle, Sybase SQL Workgroup, Sybase Synergy Program, Sybase Virtual Server Architecture, Sybase User Workbench, SybaseWare, Syber Financial, SyberAssist, SybMD, SyBooks, System 10, System 11, System XI (logo), SystemTools, Tabular Data Stream, The Enterprise Client/Server Company, The Extensible Software Platform, The Future Is Wide Open, The Learning Connection, The Model For Client/Server Solutions, The Online Information Center, The Power of One, Transact-SQL, Translation Toolkit, Turning Imagination Into Reality, UltraLite, UNIBOM, Unilib, Uninull, Unisep, Unistring, URK Runtime Kit for UniCode, Viewer, Visual Components, VisualSpeller, VisualWriter, VQL, WarehouseArchitect, Warehouse Control Center, Warehouse Studio, Warehouse WORKS, Watcom, Watcom SQL, Watcom SQL Server, Web Deployment Kit, Web.PB, Web.SQL, WebSights, WebViewer, WorkGroup SQL Server, XA-Library, XA-Server and XP Server are trademarks of Sybase, Inc. or its subsidiaries. All other trademarks are property of their respective owners. iii Contents About This Book .............................................................................................v 1 About the PDM Tutorial......................................................1 What you will do........................................................................ 2 How long it will take............................................................ 2 What you will learn ............................................................. 3 Setting up.................................................................................. 4 2 How to Begin the PDM Tutorial .........................................5 Start PowerDesigner ................................................................. 6 Open a new PDM...................................................................... 7 Reverse engineer the tutorial PDM........................................... 9 Use the tools in the Palette..................................................... 11 Define PDM preferences and options..................................... 16 Arranging symbols in the diagram window ............................. 22 Save the tutorial PDM............................................................. 23 3 Creating a Table in the PDM............................................25 Add a table.............................................................................. 27 Add columns ........................................................................... 29 Creating a domain................................................................... 33 Attaching columns to a domain............................................... 36 Create columns....................................................................... 38 Create a primary key index ..................................................... 40 Create an index for a non-key column.................................... 43 4 Defining a Reference and Referential Integrity..............47 Create a reference.................................................................. 49 Define reference properties .................................................... 50 Define referential integrity....................................................... 52 5 Creating a View ................................................................55 Compose the view .................................................................. 56 Customize the view................................................................. 57 iv 6 Using Referential Integrity Triggers ............................... 61 Defining trigger referential integrity......................................... 63 Automatic creation of triggers................................................. 64 Previewing a trigger ................................................................ 69 Generate a script for triggers.................................................. 71 7 Using abstract data types................................................ 75 Specifying an abstract data type as a Java class ................... 77 Open a PowerDesigner Object-Oriented Model ..................... 80 Accessing Java class properties............................................. 81 8 Generating a Database Script ......................................... 85 Generate a database creation script....................................... 86 9 Generating a Test Data Script ......................................... 89 Import test data profiles .......................................................... 91 Create a new test data profile................................................. 93 Define a test data profile as a source for automatic test data generation............................................................................... 95 Define a file as a source for test data values.......................... 98 Assign test data profiles to selected columns....................... 100 Generate a test data creation script...................................... 104 10 Designing a data warehouse database schema .......... 109 Create new model and copy tables....................................... 110 Adding a table to the model .................................................. 113 Define a data source in the current model ............................ 116 Create a relational to relational mapping .............................. 118 Generate an extraction script................................................ 125 11 Using multidimensional features.................................. 127 Retrieve multidimensional objects ........................................ 128 Rebuilding Cubes.................................................................. 130 Generate Cube Data............................................................. 135 Exit PowerDesigner .............................................................. 137 Glossary ......................................................................................... 139 Index ......................................................................................... 143 v About This Book This book contains step-by-step tutorials for the PowerDesigner Physical Data Model modeling environment. It shows you how to do the following: Reverse engineer a Physical Data Model (PDM) from a database creation script Build a Physical Data Model (PDM) Use referential integrity and check parameters Generate database scripts Generate test data scripts Design a data warehouse database Use the multidimensional diagram This book is for anyone who will be building data models with PowerDesigner Physical Data Model. Some familiarity with relational databases, SQL, and design methodology is helpful, but not required. For more information, see the Bibliography section at the end of this chapter. The PowerDesigner modeling environment supports three types of models: Conceptual Data Model to model the overall logical structure of a database, independent from any software or data storage structure considerations. A valid CDM can be converted to a PDM or an OOM Physical Data Model (PDM) to model the overall physical structure of a database, taking into account DBMS software or data storage structure considerations. A valid PDM can be converted to a CDM or an OOM Object Oriented Model (OOM) to model a software system using an object-oriented approach for Java or other object languages. A valid OOM can be converted to a CDM or a PDM Business Process Model (BPM) to model the means by which one or more processes are accomplished in operating business practices Subject Audience Documentation primer About This Book vi This book only contains the basics of the Physical Data Model. For information on other models or aspects of PowerDesigner, consult the following books: General Features Guide To get familiar with the PowerDesigner interface before learning how to use any of the models. Conceptual Data Model Getting Started To learn the basics of the CDM. Conceptual Data Model Users Guide To build a CDM. Physical Data Model Users Guide To build a PDM. Object Oriented Model Getting Started To learn the basics of the OOM. Object Oriented Model User's Guide To build an OOM. Business Process Model Getting Started To learn the basics of the BPM. Business Process Model User's Guide To build a BPM. Reports Users Guide To create reports for any or all models. Repository Users Guide To work in a multi-user environment using a central repository. PowerDesigner documentation uses specific typefaces to help you readily identify specific items: monospace text (normal and bold) Used for: Code samples, commands, compiled functions and files, references to variables. Example: declare user_defined, the BeforeInsertTrigger template. UPPER CASE Object codes, reversed objects, file names + extension. Example: The AUTHOR table appears in the Browser. Open the file OOMAFTER.OOM. bold text Any new term. Example: A shortcut has a target object. SMALL CAPS Any key name. Typographic conventions About This Book vii Example: Press the ENTER key. bcld itelic Tabs, buttons, commands. Example: Click the 3electicn tab. Select File>0pen. Information engineering James Martin, Prentice Hall, 1990, three volumes of 178, 497, and 625 pages respectively; clothbound, ISBN 0-13-464462-X (vol. 1), 0-13-464885-4 (vol. 2), and 0-13-465501-X (vol. 3). Data Modeling Essentials Graeme Simsion, Van Nostrand Reinhold, 1994, 310 pages; paperbound; ISBN 1850328773 Celko95 Joe Celko, Joe Celkos SQl for Smarties (Morgan Kaufmann Publishers, Inc., 1995), 467 pages; paperbound; ISBN 1-55860-323-9. Bibliography About This Book viii 1 C H A P T E R 1 About the PDM Tutorial This tutorial is a series of lessons that explain how to use PowerDesigner to create a Physical Data Model (PDM). In this tutorial, you reverse engineer a database script into a PDM. You learn how to denormalize the generated PDM so that you can archive data, speed up access to information in the database, and ensure database integrity. You also learn to design a data warehouse database that will be used as a data source for an OLAP database. The PDM is a database design tool for defining the implementation of physical structures and data queries. Depending on the type of database you want to design, you will use different types of diagrams in the PDM. Database Diagram Operational Physical diagram to define the physical implementation of the database Date warehouse or Data mart Physical diagram to store business data OLAP Multidimensional diagram to define the possible queries to perform on the operational data $ For more information on how to use a PDM, see chapter Physical Data Model Basics in the PDM Users Guide. What is a PDM? What you will do 2 What you will do You will start PowerDesigner and open a new PDM. You will then reverse engineer a database script. This PDM script presents the physical structure of a publishing enterprise. You will specify model preferences, options, and properties. You will save the model. You will modify your PDM by adding a table, and assigning it columns. Next, you will create a primary key for the new table. You will also denormalize the PDM for performance enhancement by creating indexes. You will define a reference that indicates how this new table relates to the rest of the database. You will define referential integrity for another reference. You will create a view to allow users to view subsets of tables without giving them full access to the tables themselves. You will create referential integrity triggers for a selected table and then generate a trigger script. You will create an abstract data type and define it as a Java class. You will then link this Java class to a Java class in the PowerDesigner Object-Oriented Model to view its properties. You will generate a database creation script for the PDM. You will generate a test data script for the PDM. You will design a data warehouse database schema. You will use the PDM multidimensional diagram. How long it will take You can do this tutorial in one sitting of about two hours. You can also stop after any lesson, save your model, and continue at another time. Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 1 About the PDM Tutorial 3 What you will learn You will learn basic PowerDesigner techniques for modifying a PDM, including: How to reverse engineer a database schema into a PDM How to add tables and columns to a PDM, and how to designate primary keys How to create references and define referential integrity How to create indexes How to create and customize a view How to create triggers for a table How to create an abstract data type and link it to a Java class in the PowerDesigner Object-Oriented Model How to generate a database creation script How to generate a test data script How to design a data warehouse database How to define a relational to relational mapping How to generate extraction scripts How to retrieve multidimensional objects How to rebuild cubes How to generate cube data Setting up 4 Setting up Before you begin, make sure that the files you need for the exercises are on your hard disk. When you install PowerDesigner, these files are installed in the PowerDesigner 9\Examples\Tutorial directory. When you have finished with this tutorial you can delete them if you want. Also, if you want to open a PowerDesigner Object-Oriented Model (OOM), you need to install an object-oriented language such as Java. The PDM tutorial uses the following files: File Description PDMBEFORE.SQL Starting tutorial PDM script PDMAFTER.PDM Finished tutorial PDM (physical features) PDMBUSIN.PDM Finished tutorial PDM (data warehouse features) 5 C H A P T E R 2 How to Begin the PDM Tutorial You will begin the tutorial by running PowerDesigner. You will open an empty PDM, and learn to use the Palette. Then you will reverse engineer the tutorial PDM from a creation script. During this part of the tutorial, you will add and modify objects in the reversed PDM, and at the end you will generate a new creation script. Reverse engineering is the process of generating a PDM from an existing database schema. The PDM can be generated from the database creation script, or using an ODBC data source. Reverse engineering is used when maintaining or modifying an existing database. The PDM presents the database structure in a graphic format, which facilitates the organization and modification of tables, keys, indexes and other database objects. In this chapter you will: Start PowerDesigner Open a new PDM Use the tools in the palette Reverse engineer the tutorial PDM from a creation script +RZORQJZLOOLWWDNH" About 10 minutes. What is reverse engineering? Start PowerDesigner 6 Start PowerDesigner Click the Pcwer0esigner program icon. The PowerDesigner main window appears. It contains an object browser window docked to the left, and an output window docked to the bottom of the main window. The object browser window shows the contents of the workspace in a tree view. You can use the object browser to organize the objects in each of your models. The workspace is the name for the current PowerDesigner session. Workspace is the default node in the object browser tree view. The new PDM that you will open will be created and saved in a workspace. The output window shows the progression of any process that you run from PowerDesigner, for example the process of generating a database from your PDM is shown in this window. Chapter 2 How to Begin the PDM Tutorial 7 Open a new PDM You will open a new PDM. Each time that you open a new PDM, you must choose a Database Management System (DBMS). The DBMS definition in PowerDesigner is a set of values that define the SQL characteristics for all objects in your PDM. 1 Select Filehew. A selection window appears. It lists the types of models that you can open in the PowerDesigner main window. 2 Select Physicel 0ete Hcdel. 3 Click 0K. A dialog box appears asking you to choose a DBMS. 4 Select 3ybese A3 Anywhere 7 from the DBMS dropdown listbox. 5 Select the 3here radio button. You will use the DBMS definition that is contained in the PowerDesigner DBMS directory. 6 Select Physicel 0iegrem in the First Diagram dropdown listbox. 7 Click 0K. Open a new PDM 8 A PDM model window appears. It contains an empty diagram window, a palette, and the object browser and output windows are docked to the left and bottom of the screen respectively. <RXUVFUHHQORRNVGLIIHUHQW All the screen captures in this book were taken in a Windows NT environment, with an 800x600 screen resolution. The appearance and proportions of the images which appear on your screen may be slightly different. Chapter 2 How to Begin the PDM Tutorial 9 Reverse engineer the tutorial PDM You will now reverse engineer the tutorial PDM from a creation script file. A creation script contains SQL creation statements for all the objects in a database. The PDM presents all the objects indicated in the creation script in a graphic format. Once you have reversed engineered the tutorial PDM, you will learn to use the tool palette by creating and manipulating several objects in the diagram window. 1 Select 0etebesePeverse Engineer 0etebese. The Reverse Engineering a Database dialog box appears. 2 Select the 0sing 3cript Files radio button. 3 Select the P0HSEF0PE.30L file, using the Add Files tool if necessary. If files other than P0HSEF0PE.30L appear in the list, delete them using the Delete File tool. Reverse engineer the tutorial PDM 10 4 Click 0K. The Output window docked at the bottom of the main window shows the progress of the reverse engineering process. When the PDM has been generated, it appears in the diagram window. Adjust display scale You can choose your preferred display scale by clicking anywhere in the diagram window and selecting ViewScale and choosing a scale Chapter 2 How to Begin the PDM Tutorial 11 Use the tools in the Palette The palette is a tool bar that can be docked anywhere in the workspace. The buttons in the PDM palette present all major functions needed to build and modify a PDM. The following table indicates the names and use of each tool in the palette: Tool Name Use Pointer Select symbol Lasso Select symbols in an area Grabber Select and move all symbols Zoom In Increase view scale Zoom Out Decrease view scale Open Package Diagram Display diagram for selected package Properties Display property sheet for selected symbol Delete Delete symbol Package Insert package symbol Table Insert table symbol View Insert view symbol Use the tools in the Palette 12 Tool Name Use Reference Insert reference symbol File Insert a text file Note Insert note symbol Link/Extended Dependency Draws a graphical link between symbols in the diagram Draws a note link between a Note and an object Draws an extended dependency between two objects that support extended dependencies Title Insert title symbol Text Insert text Line Draw a line Arc Draw an arc Rectangle Draw a rectangle Ellipse Draw an ellipse Rounded rectangle Draw a rounded rectangle Polyline Draw a jagged line Polygon Draw a polygon You will learn how to use the tools by creating a few objects in the PDM using the palette. 1 Click the 7eble tool in the palette. The cursor takes the form of a table once you move it into the diagram. 2 Click anywhere in the PDM diagram window. Chapter 2 How to Begin the PDM Tutorial 13 A table symbol appears at the click position. The table has the name Table_n, where n is a number assigned to the table in the order of creation of objects. 3 Click again in the PDM diagram window to create another table. 4 Click the Peference tool in the palette. The Table tool is now released and the Reference tool is active. 5 Click inside the first table and while continuing to hold down the mouse button, drag the cursor to the second table. Release the mouse button inside the second table. You create a reference between the two tables. 6 Click the right mouse button. You release the Reference tool. Releasing a tool A tool remains active until you release it. You can release a tool by selecting another tool or by clicking the right mouse button. By default, when you click the right mouse button, the Pointer tool is activated. 7 Click the Lessc tool in the palette. The Lasso tool is now active. 8 Click the cursor above a corner of the first table and while continuing to hold down the mouse button, drag the cursor so that you draw a rectangle around the two tables. Release the mouse button. The tables and the reference are selected. Handles appear on the table symbols to show that they are selected. Use the tools in the Palette 14 9 Click one of the selected tables and drag all the selected symbols to a new position. The reference moves with the tables. 10 Click the 7ext tool in the palette. The Text tool is now active. 11 Click the cursor under the reference and while continuing to hold down the mouse button, drag the cursor to draw a small rectangle. Release the mouse button. Some text appears in the area indicated by the rectangle. 12 Click the right mouse button. You release the Text tool. 13 Double-click the text. A text box appears. 14 Type a short text into the text box. 15 Click OK. The text appears in the diagram. Handles appear around the text. 16 Click a handle at the right edge of the text and while continuing to hold down the mouse button, drag the cursor to the right until all the text appears. Release the mouse button. Click on the diagram background. The handles around the text disappear. 17 Click the Pcinter tool in the palette. You will use this tool to select and delete one of the symbols. 18 Click on one of the table symbols. This selects the object you want to delete. Chapter 2 How to Begin the PDM Tutorial 15 19 Press the DEL key. The Confirm Deletion message box appears, asking you how you want to delete the selection. Deleting objects If you select Delete object, you erase the graphic symbol and delete the object from the model. If you select Delete symbols only, you erase the graphic symbol, but keep the object in the model. 20 Click OK. The table and associated reference are removed from the diagram. The objects are also deleted from the model. 21 Click in the remaining table. Press SHIFT while you click the text. The two objects are selected. 22 Press the DEL key, and click OK when the deletion message appears. The remaining table and text are erased. In this section, you learned how to use some of the tools in the palette. You can now: Select a tool Release the active tool either by selecting another tool or by clicking the right mouse button Select a group of objects Move graphic objects Create text to document the PDM Delete objects What you learned Define PDM preferences and options 16 Define PDM preferences and options Before you begin working, you will define certain display preferences and model options for the PDM. $ For a complete description of all PDM preferences and options, see the General Features Guide. 1 Select 7ccls0ispley Preferences from the menu bar. The Display Preferences dialog box appears. 2 Select the 7eble node, under the 0bject view node, in the 0etegcry tree view. The Table page appears. 3 Select or clear checkboxes and radio buttons so that the dialog box looks like the one shown below. For each table symbol, these preferences display all columns of a table, and identify all key and index columns. 4 Select the Peference node, under the 0bject View node, in the 0etegcry tree view. The Reference page appears. Chapter 2 How to Begin the PDM Tutorial 17 5 Select or clear checkboxes and radio buttons so that the dialog box looks like the one shown below. The cardinality of the reference is displayed for each reference symbol. 6 Select the View node, under the 0bject View node, in the 0etegcry tree view. The View page appears. Define PDM preferences and options 18 7 Select or clear checkboxes and radio buttons so that the dialog box looks like the one shown below. For each view symbol, these preferences display all view columns, tables, and indicate the name for each view column. 8 Click the Fcrmet node. The Format page appears. 9 Click the Hcdify button at the bottom right of the page. The Symbol Format page appears. Chapter 2 How to Begin the PDM Tutorial 19 10 Verify that the Auto adjust to text checkbox is selected as shown below, (This is the default selection). 11 Click 0K. You return to the Display Preferences dialog box. 12 Click 0K. You return to the PowerDesigner main window. 13 Select 7cclsHcdel 0pticns from the menu bar. The Model Options dialog box appears. The Model node is selected by default in the Category tree view. Define PDM preferences and options 20 14 Select or clear checkboxes, and select the appropriate radio button, so that the dialog box looks like the one shown below. For the entire model, these preferences enforce non divergence of data type for columns and domain. References are set as having a unique code and auto-migrating columns is activated. Auto-migrating foreign keys When Auto-migrate columns is selected, the primary key in a parent table automatically migrates to the child table as a foreign key when you create a reference between the two tables 15 Click the heming 0cnventicn node. The Naming Convention page appears. Chapter 2 How to Begin the PDM Tutorial 21 16 Select the Code radio button. You display codes in the object symbols in the diagram. 17 Click 0K. Arranging symbols in the diagram window 22 Arranging symbols in the diagram window You can arrange objects displayed in the diagram window by selecting a symbol and dragging it to a new position. When a model has been reversed engineered, you often need to rearrange the symbols to improve the readability of the display. You will arrange the table symbols in the diagram. Arrange the table symbols in the diagram by clicking on a symbol and dragging it to a new position so the model appears in the diagram window as shown below: Aligning multiple symbols To align multiple symbols, press SHIFT while clicking on the symbols that you want to arrange and then select SymbolAlign and choose an align option from the menu. Chapter 2 How to Begin the PDM Tutorial 23 Save the tutorial PDM You will save the tutorial PDM in another file. This leaves the original tutorial PDM intact so you can use it again if you want to redo the exercises. 1 Select File3eve As. The File Save As dialog box appears. 2 Type 7070PlAL.P0H in the File Name box. This is the name of the file in which you will work and save your modifications. 3 Click 3eve. 6DYH\RXUZRUN Save your work periodically while doing these exercises by selecting FileSave. Save the tutorial PDM 24 25 C H A P T E R 3 Creating a Table in the PDM When maintaining a database, you often need to create new tables in a PDM to store new data as a result of development or modifications in the information system. You will create a table in the PDM. This table will be named HISTORY and will contain a record of all sales. The table HISTORY stores sales data but has no role in the functional structure of the database. When you must add tables that are part of the functional structure of a database, do it at the Conceptual Data Model (CDM) level before generating the new tables in a PDM. $ For more information on the CDM, see the Conceptual Data Model User Guide. You will also add columns, designate a primary key for the table, create a domain, create a column, and create indexes. A key is a column, or several columns, in which each of the values correspond to one unique row in the table. A primary key is a key that has been designated as the primary identifier for a table. All tables must have a primary key composed of one or more of its columns. For example, the primary key for an author table can be author last names. A domain defines a standard data structure that you can apply to multiple columns. When you modify a domain you globally update the columns associated with the domain. This makes it easier to standardize data characteristics and modify your model consistently when you need to make changes. For example, the domain for author last names can be defined as a set number of characters. An index is a data structure that speeds up access to data when you are searching for information in tables. Indexes are normally created for columns that are accessed regularly, and where response time is important. Adding tables to the PDM About keys About domains About indexes Add a table 26 Indexes are most effective when they are used on columns that contain mostly unique values. When a column is attached to an index, the index orders the column rows in such a way so it is more efficient for the search process to find rows matching a search criteria, than to scan through the data contained in each row. For example, an index can be the primary key column containing author last names. It is common to index primary key columns as they are often searched and contain only unique values. You will create an index for the primary key column in the HISTORY table. You can also create indexes for other columns, depending on the type of information you want to access in the database. For example, to find an author in the database, you can use author last names to index the columns which contain this information. You will create an index for the column Author Last Name in the Author table. In this chapter you will: Add a table Add columns to the table Designate a primary key Create a domain Add existing columns to the domain Create a column Create an index on a primary key Create an index on a non-key column +RZORQJZLOOLWWDNH" About 15 minutes. Primary and foreign key indexes Indexes on non- key columns Chapter 3 Creating a Table in the PDM 27 Add a table You will add the HISTORY table to the PDM. 1 Click the 7eble tool in the palette. 2 Click in the diegrem underneath the TITLE table symbol. A table symbol appears at the click position. The table has the code Table_n, where n is a number assigned in the order of creation of objects. 3 Click the Pcinter tool in the palette. 4 Double-click the new table symbol. The Table Properties dialog box appears. Add a table 28 5 Type hl370PY in the Name box. This is the name of the table. HISTORY appears automatically in the Code box. This is the code for the table. 6 Click 0K. The table symbol appears in the PDM workspace. In this section, you learned how to: Customize a PDM by adding a table to store data What you learned Chapter 3 Creating a Table in the PDM 29 Add columns You will add the columns TITLE_ISBN, TITLE_PRICE, and TITLE_TEXT to the HISTORY table. 1 Double-click the hl370PY table symbol. The Table Properties dialog box appears. 2 Click the 0clumns tab. The Columns page appears. The table does not yet have any columns so the list is empty. Add columns 30 3 Click the Add 0clumns tool. The Selection dialog box appears. It shows the name and code for each column in the model, and the table to which it belongs. 4 Click the 7eble column header to sort the columns alphabetically by table. 5 Scroll down the list to the columns in the 7l7LE table. 6 Select the 7l7LE l3Sh checkbox. Select the 7l7LE PPl0E checkbox. Select the 7l7LE 7EX7 checkbox. Chapter 3 Creating a Table in the PDM 31 7 Click 0K. The selected columns appear in the list of columns. 8 Click Apply. This commits the changes that you have made to the HISTORY table. 1DPHVVRUWHGDOSKDEHWLFDOO\ When you click Apply or 0K, all names in the list are sorted alphabetically. The order of appearance of the names in the list will therefore change with either of these operations. 9 Click the 7l7LE_l3Sh column. The row is selected. 10 Click the Prcperties tool. or Double-click the 7itle_l3Sh line. The Title_ISBN property sheet opens to the General page. Add columns 32 11 Select the Primery key checkbox in the bottom part of the General page. This indicates that Title ISBN is the primary key. The Foreign Key and Mandatory Key checkboxes are grayed. Mandatory values translate to a Not null field in most SQL databases. 12 Click 0K. You return to the property sheet for the HISTORY table. 13 Click 0K. This saves the column definition. The HISTORY table symbol appears in the PDM diagram. TITLE_ISBN has the symbol <pk> next to it. This indicates that it is a primary key column. In this section, you learned how to: Add existing columns to a table in the PDM Define a primary key What you learned Chapter 3 Creating a Table in the PDM 33 Creating a domain You will create a domain to assign a standardized data type for money amounts. 1 Select Hcdel0cmeins. The List of Domains appears. It lists all the domains defined in the model. 2 Click the Add e Pcw tool. An arrow appears at the start of the first empty line and a default name and code are entered. A default name and code appear When you create a new list item, a default name and code automatically appear for the new item. If the default name is selected it disappears when you start to type the item name. If the default name is not selected, select it and either type the new item name, or delete the default name before typing the new item name. 3 Type AH00h7 in the Name column. This is the name of the domain. 4 Click Apply. The creation of the new domain is committed. Creating a domain 34 1DPHVVRUWHGDOSKDEHWLFDOO\ When you click Apply or 0K, all names in the list are sorted alphabetically. The order of appearance of the names in the list will therefore change with either of these operations. 5 Click the new domain line. An arrow appears at the beginning of the line. 6 Click the Prcperties tool. or Double click the arrow at the beginning of the line. The property sheet for the new domain appears. 7 Click the 7 button next to the 0ete 7ype dropdown listbox. The Standard Data Types dialog box appears. You can use this dialog box to specify the form of the data affected by the domain. Selecting a data type directly You can also select a data type directly by clicking the arrow at the end of the Data Type dropdown listbox, and selecting a data type from the dropdown list. Chapter 3 Creating a Table in the PDM 35 8 Click the humber radio button. The domain now has a Number data type. 9 Type 8 in the Length box. The maximum number of figures in a column attached to this domain will be 8. 10 Type 2 in the Precision box. The maximum number of positions after the decimal point in a column attached to this domain will be 2. 11 Click 0K. You return to the domain property sheet. The value numeric 8,2 appears in the Data Type dropdown listbox. Numeric is the code for a money data type, 8 indicates that an amount of money can have eight figures, 2 indicates that the amount has a decimal precision of two. 12 Click 0K in each of the dialog boxes. You return to the PDM diagram. Attaching columns to a domain 36 Attaching columns to a domain You will attach the AMOUNT domain to all columns that store amounts of money. 1 Select Hcdel0clumns. The List of Columns appears. 2 Click the 0ustcmize 0clumns end Filter tool from the tool bar at the top of the list. The Customize Columns and Filter dialog box appears. You can select or clear check boxes for columns that you want to appear, or not to appear, in the list. 3 Select the 0cmein and 7eble checkboxes. 4 Click 0K. You return to the List of Columns. The column Domain appears in the list of columns. It lists the domain used by each column in the model. Enlarging dialog boxes You can enlarge dialog boxes and lists by placing the cursor on a dialog box or list edge so that the cursor becomes a double headed arrow. Click and while continuing to hold down the mouse button, drag the edge in the direction that you want the dialog box or list to be enlarged. Chapter 3 Creating a Table in the PDM 37 5 Click the 7eble column header. The columns are ordered by table. 6 Click the 0cmein column in the A0_A0VAh0E line. An arrow appears in the domain column of the line. 7 Click the arrow. A dropdown list appears. It lists all the domains defined in the model. 8 Scroll down the list and select AH00h7. AMOUNT is listed as the domain for the column AU_ADVANCE. 9 Scroll down the list of columns to the P0Y_AH00h7 line. 10 Click the 0cmein column in the P0Y_AH00h7 line. An arrow appears in the domain column of the line. 11 Click the arrow. A dropdown list appears. It lists all the domains defined in the model. 12 Scroll down the list and select AH00h7. 13 Repeat steps 9 to 12 for the following columns: Column Table Domain SALE_AMOUNT SALE AMOUNT TITLE_PRICE TITLE AMOUNT 14 Click 0K. You return to the model diagram. In this section, you learned how to: Create a new domain Customize the items displayed in a list Attach columns to the new domain What you learned Create columns 38 Create columns You will create a new column in the HISTORY table. 1 Double-click the hl370PY table symbol. The table properties dialog box appears. 2 Click the 0clumns tab. The Columns page appears. 3 Click the lnsert e rcw tool. An arrow appears at the start of the first empty line and a default name and code are entered. 4 Type 707AL 3ALE3 in the heme column of the first blank line. TOTAL_SALES appears automatically in the Code column. 5 Click Apply. The creation of the column is committed. 6 Click the 707AL 3ALE3 line. An arrow appears at the start of the line. 7 Click the Prcperties tool. or Double click the arrow at the beginning of the line. The property sheet for the new column appears. Chapter 3 Creating a Table in the PDM 39 8 Select AH00h7 from the Domain dropdown listbox in the bottom part of the dialog box. The data type column displays numeric 8,2 which is a data type available for the target database. 9 Click 0K in each of the dialog boxes. You return to the PDM diagram. The table symbol displays the new column. In this section, you learned how to: Create a new column Identify a column by a name and a code Attach the new column to a domain What you learned Create a primary key index 40 Create a primary key index You will define a primary key index for the HISTORY table. 1 Double-click the hl370PY table. The Table Properties dialog box appears. 2 Click the lndexes tab. The Indexes page appears and is currently empty. 3 Click the first blenk line in the list. An arrow appears at the start of the line and a default name and code are entered. 4 Type hl370PY_PK in the heme column. HISTORY_PK appears automatically in the Code column. 5 Click Apply. The creation of the index is committed. 6 Click the hl370PY_PK line. An arrow appears at the start of the line. Chapter 3 Creating a Table in the PDM 41 7 Click the Prcperties tool. or Double click the arrow at the beginning of the line. The property sheet for HISTORY_PK opens to the General page. 8 Click the 0clumns tab. The Columns page appears. It shows that there are no columns attached to the index. The Column Definition dropdown listbox lists the primary and alternate keys defined for the table. When a key is selected in this box, its columns are automatically listed in the columns list. 9 Select PK: Key_! from the 0clumns 0efiniticn dropdown listbox. 10 Click Apply. TITLE_ISBN appears in the column list. 11 Click 0K. You return to the table property sheet. 12 Scroll to the right until the P column appears. The P checkbox at the end of the HISTORY_PK line is selected. This indicates that the indexed column is a primary key column. Create a primary key index 42 Make the P column visible If the P column is not visible, you can make it appear by selecting the Customize columns and filter tool from the list tool bar. From the selection box that appears, select or clear the appropriate checkbox for the item that you want to appear or not appear in the list. 13 Click 0K. You return to the PDM diagram. The index indicator <i> appears next to the primary key indicator <pk> in the table symbol. Chapter 3 Creating a Table in the PDM 43 Create an index for a non-key column The column that contains the last name of the author is not a primary key column. However, indexing this column would allow you to search for an author more quickly when you only know the authors last name. You will create an index for this column. 1 Double-click the A07h0P table. The Table Properties dialog box appears. 2 Click the lndexes tab. The Indexes page appears. It shows that this table has no indexes. 3 Click the first blenk line in the list. An arrow appears at the start of the first empty line and a default name and code are entered. 4 Type A0_LhAHE_l0X in the heme column. AU_LNAME_IDX appears automatically in the Code column. This is the name of the index for the last names of the authors. 5 Click Apply. The creation of the index is committed. 6 Click the A0_LhAHE_l0X line. An arrow appears at the start of the line. 7 Click the Prcperties tool. or Double click the arrow at the beginning of the line. The Index property sheet appears. 8 Click the 0clumns tab. The Columns page appears. The index does not yet have any columns attached, so the list is empty. 9 Click the Add 0clumns tool. A selection box appears. It lists all the columns in the table. Create an index for a non-key column 44 10 Select A0_LhAHE. This is the column to which you want to attach the AU_LNAME_IDX index. 11 Click 0K. You return to the columns page. AU_LNAME is listed in the column list. 12 Scroll to the right until the 3crt column appears. Make the sort column visible If the sort column is not visible, you can make it appear by selecting the Customize columns and filter tool from the list tool bar. From the selection box that appears, select or clear the appropriate checkbox for the item that you want to appear or not appear in the list. 13 Make sure Ascending is selected in the Sort column for AU_LNAME line. This indicates that the index sorts the last names of authors in ascending alphabetical order from A to Z. Chapter 3 Creating a Table in the PDM 45 14 Click 0K in each of the dialog boxes. You return to the PDM diagram. The index indicator <i> appears next to the AU_LNAME column in the table symbol. In this section, you learned how to: Speed access to information in the database by creating indexes for the columns storing relevant data Create an index for a primary key and a non-key column Identify an index by a name and a code Select the columns you want to index Define how values inside the indexed columns are sorted What you learned Create an index for a non-key column 46 47 C H A P T E R 4 Defining a Reference and Referential Integrity A reference is a link between a parent table and a child table. It defines a referential integrity constraint between primary key, or alternate key, column pairs and a foreign key, or between user-specified columns in both tables. You create a reference when you want one or more columns in a table to refer to one or more columns in another table. Within a reference, a join links each foreign key column that refers to a matching primary key column (these are called a column pair). Depending on the number of columns in a primary key, a reference can contain one or more joins. For this tutorial, you will create a reference that links the primary key in the TITLE table to a foreign key in the HISTORY table. Referential integrity dictates what happens to a foreign key column in a child table when you update, or delete, the value of the corresponding primary key column in the parent table. For example, in the tutorial PDM, a reference exists between the STORE and DISCOUNT tables. Stor_ID is the primary key column in the STORE table. It contains the unique identification code of a store. A reference links the value of Stor_ID in the STORE table to the Stor_ID column in the DISCOUNT table. About references About referential integrity Create a reference 48 Using the referential integrity options, you can specify that if you delete a store from the STORE table, you also delete all of its corresponding records in the DISCOUNT table. In this lesson you will: Create a reference Define referential integrity +RZORQJZLOOLWWDNH" About 5 minutes. Chapter 4 Defining a Reference and Referential Integrity 49 Create a reference You will create a reference between the HISTORY and TITLE tables. This reference represents the sales history for each title. 1 Click the Peference tool in the palette. 2 Click inside the HISTORY table and while continuing to hold down the mouse button, drag the cursor into the TITLE table and release the mouse button. You have created a reference link from HISTORY to TITLE. HISTORY is the child table and TITLE is the parent table. TITLE_ISBN is the primary key of both tables. TIT_TITLE_ISBN appears as a new foreign key in the HISTORY table as indicated by the symbol <fk>. 3 Click the Pointer tool to release the Reference tool. $XWRPLJUDWLQJDIRUHLJQNH\ The primary key TITLE_ISBN is automatically migrated and linked to the HISTORY table as a foreign key when you create the reference. This is caused by having previously selected Auto-Migrate Columns (FK) as a model option. In this section, you learned how to: Create a reference between two tables Identify the parent and child tables in a reference What you learned Define reference properties 50 Define reference properties You can define a name for a reference to make it easier to identify. 1 Double-click the reference link between HISTORY and TITLE. The Reference Properties dialog box appears. 2 Type 7l7LE 3ALE3 in the Name box. TITLE SALES appears automatically in the Code box. 3 Click the Jcins tab. Chapter 4 Defining a Reference and Referential Integrity 51 The Joins page appears. The column list displays the parent table which contains the primary key column, and the child table which contains the foreign key column. These two columns are linked by the join within the reference. 4 Click 0K. Define referential integrity 52 Define referential integrity You will use the referential integrity options to implement cascade update when a store is deleted. Since discounts are specific to store, if you delete a store you delete its associated discounts. 1 Double-click the reference link between DISCOUNT and STORE. The reference property sheet appears. 2 Click the lntegrity tab. The Integrity page appears. The Restrict radio buttons are selected by default in the Update Constraint and Delete Constraint group boxes. They indicate that an error message is produced when a value in a primary key column is updated, or deleted, while there are corresponding foreign key columns. Chapter 4 Defining a Reference and Referential Integrity 53 3 Click the 0escede radio button in the Delete Constraint groupbox. Cascade indicates that when a primary key value is modified or deleted, the corresponding foreign key value is automatically updated or deleted. So, if you delete the Store ID in the STORE table, you also delete the corresponding records in the DISCOUNT table. 4 Click 0K in each of the dialog boxes. You return to the diagram. In this section, you learned how to: Define what happens to related values in child tables when you delete or modify a value in the parent table (referential integrity) What you learned Define referential integrity 54 55 C H A P T E R 5 Creating a View A view is an alternative way of looking at the data in one or more tables. A view contains a subset of columns from one or more tables. You can create a view to allow users to see subsets of tables without giving them full access to the tables themselves. Creating a view is equivalent to defining a SQL SELECT query to select objects in the database. When you create a view you select the tables and columns you want to include in the view. In this lesson, you will create a view on the TITLE and SALES tables. This view generates a SQL query which automatically selects all the columns in these tables and displays a graphic symbol representing the view. In this lesson you will: Compose the view +RZORQJZLOOLWWDNH" About 5 minutes. About views What happens when you create a view Compose the view 56 Compose the view You will compose a view of the TITLE and SALES tables. 1 Select the 7l7LE table symbol. 2 Press SHIFT while you click the 3ALE symbol. Both table symbols are selected. 3 Select 7ccls0reete View from the menu bar. A view appears in the PDM workspace. The view lists all the columns belonging to the selected tables. At the bottom of the view, it lists the tables. The view has the code VIEW_n, where n is a number assigned in the order of creation of objects. Chapter 5 Creating a View 57 Customize the view You will customize the view so that it contains only certain columns. 1 Double-click the View in the diagram. The view property sheet appears. 2 Type S00K 3ALE3 in the Name box. BOOK_SALES appears automatically in the Code box. 3 Select the 0uery 0nly radio button. This limits access to consultation only. Customize the view 58 4 Click the 30L 0uery tab. The SQL Query page appears. It shows the definition of the view. 5 Click the Prcperties tool. The Query Properties page appears. 6 Click the 0clumns tab. The Columns page appears. It lists all the columns contained in the view. 7 Press CTRL and select all column names listed in the Expressicn column except for the following: 7l7LE.7l7LE_l3Sh, 7l7LE.7l7LE_7EX7, 3ALE.3ALE_AH00h7, and 3ALE.3ALE_07Y. Chapter 5 Creating a View 59 8 Click the 0elete tool. or Press DEL. The columns 7l7LE.7l7LE_l3Sh, 7l7LE.7l7LE_7EX7, 3ALE.3ALE_AH00h7, and 3ALE.3ALE_07Y are listed in the column list. 9 Click the Apply button. The modifications are committed. 10 Click the where tab. Customize the view 60 The Where page shows the link between SALE and TITLE tables by TITLE_ISBN. 11 Click 0K in each of the dialog boxes. You return to the PDM workspace. The view now only lists the selected columns. In this section, you learned how to: Restrict access to information further by including only certain columns in a view What you learned 61 C H A P T E R 6 Using Referential Integrity Triggers A trigger is a segment of SQL code associated with a table, and stored in a database. It is invoked automatically whenever there is an attempt to modify data in the associated table with an insert, delete, or update command. Triggers can enforce referential integrity. For example, by displaying an error message if you try to update a primary key column which has an update restriction. PowerDesigner can create triggers for selected tables automatically based on trigger referential integrity defined for a reference. You can also define a trigger manually for a table. You can generate a SQL script containing the triggers, or you can generate the triggers directly in the database via ODBC driver data sources. PowerDesigner provides the Rebuild Triggers function to automatically create referential integrity triggers for a selected table linked by a reference. The referential integrity triggers are created from trigger templates defined either in the current DBMS file, or user-defined trigger templates listed in the list of Triggers. Triggers that apply to the trigger referential integrity constraints defined for a reference, are created for selected tables attached to the reference. User-defined triggers and trigger templates All user-defined triggers and triggers based on user-defined trigger templates are created automatically independently of Trigger referential integrity constraints. However, for this tutorial you will only create triggers based on trigger referential integrity constraints defined for a reference. In this lesson, you will use the Rebuild Trigger function to automatically create referential integrity triggers that apply to the table STORE. About triggers Automatic creation of referential integrity triggers Defining trigger referential integrity 62 A trigger template is a pattern for creating triggers. PowerDesigner ships pre- defined templates for each supported DBMS. Depending on the current DBMS, there are pre-defined templates for insert, update, and delete trigger types. A trigger template can be stored in the model, or in the current DBMS file. You can create your own trigger templates or customize an existing template, for example, by changing the type of error message displayed. A template item is a reusable block of SQL script that can implement referential integrity, or do any other work on database tables. A template item is inserted into a trigger template script, or a trigger script. The template item calls a corresponding SQL macro which can implement an insert, update, delete, or error message constraint on one or more tables in the database. PowerDesigner ships pre-defined template items that implement referential integrity constraints. These template items are inserted in the pre-defined trigger template scripts. When a trigger is created from the trigger template, the template item is generated in the trigger only if it implements the appropriate trigger referential integrity defined for a reference attached to a selected table. $ For more information on creating and using trigger templates and template items, see the PowerDesigner Physical Data Model Users Guide. In this lesson you will: Define Trigger referential integrity for a reference Use Rebuild Triggers to automatically create triggers for the table STORE Preview the script for a trigger Generate a script for the triggers +RZORQJZLOOLWWDNH" About 20 minutes. About trigger templates About template items Chapter 6 Using Referential Integrity Triggers 63 Defining trigger referential integrity In a previous lesson you defined a cascade update for referential integrity when a store is deleted in the STORE table. You will now define trigger implementation for the same reference. 1 Double-click the reference that links the 370PE and 0l3000h7 tables. The reference property sheet appears. 2 Click the lntegrity tab to display the Integrity page appears. 3 Click the down arrow at the end of the Implementation dropdown listbox. A dropdown list appears. 4 Select 7rigger from the dropdown list. You define trigger as the implementation for referential integrity for the reference. 5 Click 0K. You return to the PDM diagram. Automatic creation of triggers 64 Automatic creation of triggers You will use the Rebuild Triggers function to automatically create triggers for the table STORE. The triggers will be created using the PowerDesigner pre-defined trigger templates in the current DBMS file. Using PowerDesigner pre-defined trigger templates The trigger templates and template items used in the tutorial are the triggers shipped with PowerDesigner. You can copy and modify them to create new user-defined templates and template items. $ For more information on creating and using trigger templates and templates items, see the chapter Using Triggers in the PowerDesigner Physical Data Model Users Guide. Rebuild Triggers automatically creates a Delete trigger to cascade the deletion of a store from the STORE table to the DISCOUNT table. 1 Select 7cclsPebuild 7riggers. The Rebuild Triggers box appears. It displays the trigger types supported by the current DBMS organized in a tree view. When you expand a trigger type node, the next level that appears are the trigger templates that are available for that trigger type. The selected trigger templates at this level are the templates that are available to create the referential integrity triggers for that trigger type. 2 Expand the <After 0elete 7rigger> node at the bottom of the tree view. Chapter 6 Using Referential Integrity Triggers 65 The AfterDeleteTrigger node appears. This is the only PowerDesigner pre-defined trigger template available for this trigger type. 3 Expand the After0elete7rigger node. Automatic creation of triggers 66 The three new nodes that appear are the PowerDesigner pre-defined template items as defined in the trigger template. Each template item implements a type of referential integrity in AfterDeleteTrigger. While each template item is defined in the trigger template, only the template items that are selected and able to implement the type of referential integrity defined for the reference are included in the trigger script being created. 4 Click the 3electicn tab. The Selection page appears. It shows checkboxes for each table in the PDM. 5 Click the 0eselect All tool from the tool bar at the top of the page. All the Checkboxes are cleared. Chapter 6 Using Referential Integrity Triggers 67 6 Select the 370PE table checkbox. 7 Click 0K. Rebuild triggers automatically creates referential integrity triggers for the STORE table based on the trigger referential integrity defined for the reference linking STORE and DISCOUNT. 8 Double-click the 370PE table. The table property sheet appears. 9 Click the 7riggers tab. Automatic creation of triggers 68 The Triggers page appears. It shows that two triggers (AfterDeleteTrigger and BeforeUpdate Trigger) have been created. These two triggers correspond to the trigger referential integrity defined for the reference linking the STORE and DISCOUNT tables. 10 Click 0encel. You return to the PDM diagram. Chapter 6 Using Referential Integrity Triggers 69 Previewing a trigger You will preview the trigger script for the AfterDeleteTrigger trigger created for the table STORE. 1 Double-click the 370PE table. The table property sheet appears. 2 Click the 7riggers tab. The Triggers page appears. 3 Click the 70A_370PE line. This is the AfterDeleteTrigger trigger created in the last lesson. An arrow appears at the start of the line. 4 Click the Prcperties tool. or Double-click the arrow at the start of the line. The trigger property sheet appears. 5 Click the Preview tab. The Preview page appears. It shows the trigger script with trigger template variables instantiated with the values for the STORE table. 6 Click 0encel in each of the dialog boxes. Previewing a trigger 70 You return to the PDM diagram. In this section, you learned how to: Define trigger implementation for referential integrity for a reference Use Rebuild Triggers to automatically create triggers for a selected table Preview the trigger script What you learned Chapter 6 Using Referential Integrity Triggers 71 Generate a script for triggers You will define parameters to generate the script for the triggers and procedures you defined. 1 Select 0etebeseCenerete 7riggers end Prccedures from the menu bar. A dialog box containing the generation parameters appears. 2 Type 707_7PlC.30L in the File Name box. 3 In the 0irectcry box, type or browse to the EXAHPLE3 directory in the PowerDesigner path. 4 Select the 3cript Cenereticn radio button. 5 Select the genereticn peremeters shown below. These parameters generate all triggers. $ For a complete description of generation parameters, see the Physical Data Model Users Guide. 6 Click the 0pticns tab. The Options page appears. It lists script generation options. Generate a script for triggers 72 7 Select the cpticns shown below. 8 Click the 3electicn tab. The Selection page appears. 9 Click the 0eselect All tool from the tool bar at the top of the page. All the Checkboxes are cleared. Chapter 6 Using Referential Integrity Triggers 73 10 Select the 370PE table checkbox as shown below. 11 Click 0K. A result box appears showing the file path of the generated trigger script file. 12 Click the file peth to select it, and then click the Edit button. Generate a script for triggers 74 The generated trigger script appears in a text editor. 13 Select FileExit to close the text editor. If you are prompted to save the file, click the No button. 14 Click 0lcse to close the Result window. 15 Close the Result List window. This is the Check Model result window. You return to the PDM diagram. In this section, you learned how to: Select options that will generate triggers Generate a script for triggers What you learned 75 C H A P T E R 7 Using abstract data types <RXPXVWKDYHDQ2EMHFW2ULHQWHG0RGHOIRUWKLVOHVVRQ This lesson can only be done if you have access to the PowerDesigner Object-Oriented Model (OOM). Certain versions of the PowerDesigner Physical Data Model (PDM) may not be bundled with the OOM. If you do not have access to the PowerDesigner Object-Oriented Model, you can skip this lesson and go directly to the next lesson An abstract data type (ADT) is a user-defined data type which encapsulates a range of data values and functions. The functions can be both defined on, and operate on the set of values. Depending on the current DBMS, PowerDesigner supports the following types of abstract data types: Arrays Lists Java classes Objects Structured You can specify and reverse engineer the definition for abstract data types into a PDM. Once an abstract data type has been specified in the PDM, it can be used by columns and domains in the same way as standard data types. In this tutorial you will work with Java classes. In a PDM, abstract data types of the type Java class can be linked to Java classes in the PowerDesigner Object-Oriented Model (OOM). This allows you to access the property sheet of linked Java classes from the PDM. To access Java class properties from the PDM, the Java class must exist in the OOM. A Java class can be created directly, or reverse engineered into an OOM. Java classes Specifying an abstract data type as a Java class 76 You can reverse engineer a database that contains Java classes that are used as data types for columns and domains into a PDM. These Java classes often contain much more complex information than the length and precision properties of standard data types. You may need to have more information about the operations that the Java classes contains to understand the actions that it performs in the database. You can access this information by reverse engineering the Java classes that are used in the PDM into an OOM. The Java classes in the PDM can be linked to the corresponding Java classes in the OOM. You can then access the property sheet for a Java class. You can study its operations and get a much more complete understanding of how a Java class operates as a column data type for a table in the database. In this lesson you will: Specify an abstract data type of type Java class in the PDM Open an Object-Oriented Model (OOM) Create a link between the Java class specified in the PDM and the corresponding Java class in the OOM +RZORQJZLOOLWWDNH" About 5 minutes. Why access a Java class? Chapter 7 Using abstract data types 77 Specifying an abstract data type as a Java class When you reverse engineer a database creation script into a PDM, the name of a Java class is included in the column or domain definition to which it is attached. However the definition of the Java class is not reverse engineered into the PDM. To access a Java class in the OOM, you need to specify an abstract data type as a Java class in the List of Abstract Data Types in the PDM before you can link it to the corresponding Java class in the OOM. 1 Select HcdelAbstrect 0ete 7ypes. The list of abstract data types appears. 2 Click the Add e Pcw tool. An arrow appears at the start of the first empty line and a default name and code are entered. 3 Type 370PE in the Name column. This is the name of the abstract data type. 4 Click Apply. The creation of the new abstract data type definition is committed. 5 Click the new abstract data type line. An arrow appears at the beginning of the line. Specifying an abstract data type as a Java class 78 6 Click the Prcperties tool. or Double click the arrow at the beginning of the line. The property sheet for the new abstract data type appears. 7 Click the down arrowhead at the end of the Type dropdown listbox. A dropdown list appears. 8 Select JAVA from the dropdown list. Chapter 7 Using abstract data types 79 The Class and Filename boxes appear at the bottom of the property sheet. The Class box indicates the Java class in the OOM that is linked to the Java class in the PDM. The Filename box indicates the path of a Java class installed in the database. Both these boxes are empty when you first define the Java class. 9 Click 0K. You return to the List of Abstract data Types. 10 Click 0K. You return to the PDM diagram. Open a PowerDesigner Object-Oriented Model 80 Open a PowerDesigner Object-Oriented Model You need to open an OOM to access its Java classes. You will open the tutorial file OOMAFTER.OOM from the PowerDesigner Tutorial directory. This is the tutorial model that is used for the OOM. It contains a Java class called STORE which contains operations that can return information about an instance of a store in a table called STORE. 1 Select File0pen. A file open box appears. 2 Select or browse to the Examples\Tutorial directory. 3 Select the 00HAF7EP.00H file. 4 Click 0pen. The object model opens in the work area. The model contains Java classes that have been reverse engineered and modified during the tutorial lessons for the Object-Oriented Model. You will create a link between the STORE Java class in the OOM, the STORE Java class that you have specified in the PDM. 5 Select windcw\7070PlAL.P0H to return to the PDM tutorial model. Chapter 7 Using abstract data types 81 Accessing Java class properties You will define a link between the STORE Java class in the PDM with the STORE Java class in the OOM. You will then access the property sheet for the Java class in the OOM to view its properties. 1 Select HcdelAbstrect 0ete 7ypes. The list of abstract data types appears. It shows the STORE Java class that you specified in a previous lesson. 2 Click the 370PE line. An arrow appears at the start of the line. 3 Click the Prcperties tool. or Double-click the arrow at the start of the line. The property sheet for the STORE abstract data type appears. 4 Select the Ellipsis button at the end of the Class box. Accessing Java class properties 82 The Select Java Class box appears. It displays a tree view of the Java classes that are available in the tutorial OOM currently open in the Workspace. The Java class that you select will be linked to the Java class specified in the PDM. 5 Click the 370PE node. 6 Click 0K. You return to the abstract data type property sheet. STORE now appears in the Class box. This indicates that the Java class STORE in the PDM is linked to the Java class STORE in the OOM. 7 Click the Prcperties tool at the end of the Class box. A shortcut property sheet appears. It indicates that the target object (referenced object) is the STORE class, and that the target model (referenced model) is the OOM. Chapter 7 Using abstract data types 83 8 Click the 7erget 0bject Prcperties button at the end of the Name box. The Java class property sheet appears. You can click any of the tabs to view the corresponding properties of the Java class. 9 Click 0K in each of the dialog boxes. You return to the PDM diagram. Accessing Java class properties 84 In this section, you learned how to: Specify an abstract data type as a Java class Open a PowerDesigner Object-Oriented Model. Link a Java class specified in the PDM with a Java class in an OOM and view its property sheet. What you learned 85 C H A P T E R 8 Generating a Database Script You can generate a database directly from a PDM, or generate a database script which you can run in your DBMS environment. In this chapter you will create a script for the current database. The generation parameters which are available depend on the target DBMS you select. By default, the current DBMS is the one you select when you open the PDM, but you can select a different DBMS before generating the script. In this chapter you will: Generate a database creation script Save and close the PDM +RZORQJZLOOLWWDNH" About 5 minutes. Generate a database creation script 86 Generate a database creation script 1 Select 0etebeseCenerete 0etebese. The Database Generation dialog box appears. It displays generation parameters. Certain parameters are already selected. 2 Type P0H_7070PlAL.30L in the File Name box. 3 In the 0irectcry box, type the path or browse to the EXAHPLE3 directory. 4 Select the 3cript Cenereticn radio button. 5 Select the 0ne File 0nly check box. The Dialog box should appear as shown below. 6 Click the 3electicn tab. The Selection page appears. 7 Click the 7eble tab at the bottom of the page. The Table page lists all the tables available for selection in the model. Chapter 8 Generating a Database Script 87 8 Click the 3elect All tool. This selects all the table check boxes. 9 Repeat steps 7 and 8 for the View and 0cmein tabs. 10 Click 0K. A result list appears showing the results of the Check Model. By default PowerDesigner verifies a model before generation. The Generation process is shown in the Output window in the lower part of the main window. $ For a complete description of database generation parameters, see the Physical Data Model Users Guide. Generate a database creation script 88 At the end of the generation process a result box appears . It displays the file path of the generated script file. 11 Select the displayed file path and click the Edit button. A window displays the generated script. 12 Select FileExit to close the script window. 13 Click 0lcse to close the Result box. 14 Close the result window. You return to the PDM diagram. 89 C H A P T E R 9 Generating a Test Data Script Test data is sample data that you can define and generate for one or more tables in a PDM. When you generate test data, the generation process automatically does the following: Creates SQL statements to insert data into tables Creates rows of data in the tables Inserts rows of data in the database through the ODBC. You can use test data to verify database performance when it contains large amounts of data or when many users or applications are accessing it simultaneously. You can generate test data directly from the PDM, or with a data script that you can execute in ODBC. You can also obtain test data by importing values from a CSV file. You generate test data for a table based on test data profiles. A test data profile defines the set of values to be generated according to a data type (character, number, or time and date). You can assign a test data profile to one or more selected columns. Test data is generated for the columns using the data source defined for each test data profile. In this chapter you will: Import test data profiles to the tutorial model Create new test data profiles in the tutorial model Define a test data profile as a source for automatic test data generation Define a file as a source for test data values Assign test data profiles to selected columns in tables Generate a test data creation script for tables Exit the PDM and PowerDesigner About test data About test data profiles Import test data profiles 90 +RZORQJZLOOLWWDNH" About 20 minutes. Chapter 9 Generating a Test Data Script 91 Import test data profiles Test data profiles can be imported from or exported to another PDM as XPF files. For this tutorial, a number of test data profiles have been pre-defined in the file TUTORIAL.XPF in the TUTORIAL directory. You will import these data profiles to your tutorial model. 1 Select Hcdel7est 0ete Prcfiles. The list of test data profiles appears. The list is empty. You will import test data profiles contained in the TUTORIAL.XPF file to this list. 2 Click 0encel. You return to the PDM diagram. 3 Select 7ccls7est 0ete Prcfilelmpcrt. A standard file selection box appears. 4 Browse to the EXAHPLE3/7070PlAL directory. 5 Select the file 7utcriel.XPF and click 0pen. The Output window informs you that the profiles defined in the file TUTORIAL.XPF have been successfully imported into your model. 6 Click 0K. You return to the PDM diagram. 7 Select Hcdel 7est 0ete Prcfiles. Import test data profiles 92 The list of test data profiles appears. The data profiles that you imported are listed as shown below: Display the column you need If you dont see the column you need, display it with the Customize Columns and Filter tool. 8 Click 0encel. You return to the PDM diagram. Chapter 9 Generating a Test Data Script 93 Create a new test data profile In this lesson you will create an additional test data profile which is added to the list you imported from the file tutcriel.XPF. The new test data profile is Name_ID. This profile can represent a column that has a character data type. 1 Select Hcdel7est 0ete Prcfiles from the menu bar. The list of test data profiles appears and shows existing profiles. 2 Click the Add e Pcw tool. An arrow appears at the beginning of the first empty line and a default name and code are entered. 3 Type heme_l0 in the first line of the Name column. This is the name of the test data profile. The code equals the test data profile name. 4 Click in the Profile Class column on the same line. 5 Click the Down Arrow button. The profile class dropdown listbox appears. Create a new test data profile 94 Display the column you need If you dont see the column you need, display it with the Customize Columns and Filter tool. 6 Select 0herecter from the dropdown list in the Profile Class column. This defines the character class for the data profile Name_ID. 7 Click 0K. You return to the PDM diagram. Chapter 9 Generating a Test Data Script 95 Define a test data profile as a source for automatic test data generation To generate test data you need to define a data source for each test data profile. PowerDesigner can generate test data values automatically, using generation parameters that are defined for each test data profile. You will define automatic test data generation parameters for the data profiles Name_ID and Price. 1 Select Hcdel 7est 0ete Prcfiles from the menu bar. The list of test data profiles appears and shows existing profiles. 2 Double-click the heme_l0 line in the list. The test data profile property sheet opens to the General page. The Automatic radio button is selected when you select a data profile that does not currently have a data generation source defined. 3 Click the 0eteil tab. The Detail page appears. You will define a mask for the test data profile Name_ID. A mask is a placeholder for character strings. PowerDesigner will generate data that respects the mask characters that you define for Name_ID. Define a test data profile as a source for automatic test data generation 96 4 Click the Hesk textbox. Type 9999999999 in the textbox (ISBN numbers are composed of 10 characters). 5 Click the Exect textbox. Type !0 in the Exact textbox. PowerDesigner will generate a random number for each mask character 9. 6 Click 0K. You return to the list of test data profiles. 7 Double-click the Price line in the list. The test data profile property sheet opens to the General page. The Automatic radio button is selected when you select a data profile that does not currently have a data generation source defined. 8 Click the 0eteil tab. The Detail page appears. 9 Select the Pendcm radio button. 10 Type !0 in the From textbox and !000 in the To textbox. Select the Cenerete decimel numbers checkbox. Type the number 2 in the Decimal digits number textbox. You define a range of decimal numbers between 10.00 and 1000.00 for the random test numbers that will be generated for the data profile Price. Chapter 9 Generating a Test Data Script 97 The Price profile dialog box should appear as shown below: 11 Click 0K in each of the dialog boxes. Define a file as a source for test data values 98 Define a file as a source for test data values You can specify a CSV format file which contains values that can be used to create test data. You will define a CSV file as a test data source for the data profile Title_Txt. The directory TESTDATA in the PowerDesigner path contains several CSV files that can be used as test data generation source files. 1 Select Hcdel 7est 0ete Prcfiles from the menu bar. The list of test data profiles appears and shows existing profiles. 2 Double-click the 7itle_7ext line in the list. The test data profile property sheet opens to the General page. The Automatic radio button is selected when you select a data profile that does not currently have a data generation source defined. 3 Select the File radio button from the Generation Source group box. 4 Click the 0eteil tab. The Detail page appears. 5 Select or browse to the directory 7E370A7A in the PowerDesigner path. 6 Select the file titl_txt.csv. This file contains a number of book titles. Chapter 9 Generating a Test Data Script 99 7 Click 0K in each of the dialog boxes. You return to the PDM diagram. Assign test data profiles to selected columns 100 Assign test data profiles to selected columns You can assign test data profiles directly to selected table columns. You can do this for columns that are not attached to a domain, or if you want to generate test data that is specific to a column. You cannot assign a test data profile to a foreign key column. It automatically takes the data profile of the primary key column in the parent table. You will assign test data profiles to selected columns for the TITLE table in the PDM model. The same procedure can be used to assign test data profiles to any selected column in any table in the PDM model. 1 Select Hcdel 7ebles from the menu bar. The list of tables appears. 2 Double-click the 7l7LE table. The table property sheet opens to the General page. 3 Click the 0clumns tab. The Columns page appears. Display the column you need If you dont see the column you need, display it with the Customize Columns and Filter tool. Chapter 9 Generating a Test Data Script 101 TITLE_ISBN has the data type CHAR(10). Based on this data type, and the sort of data that you want to generate for the column, you will assign the Name_ID data profile to this column. 4 Double-click the 7l7LE_ l3Sh line in the list of columns. The column property sheet opens to the General page. 5 Click the 0eteil tab. The Detail page appears. 6 Select heme_l0 in the dropdown list of the Profile textbox. The profile is attached to the column. The column property sheet should appear as shown below: 7 Click 0K. Assign test data profiles to selected columns 102 You return to the Columns page of the table property sheet. TITLE_PRICE has the data type NUMERIC(8,2). Based on this data type, and the sort of data that you want to generate for the column, you will assign the name data profile to this column. 8 Double-click the 7l7LE_PPl0E line in the list of columns. The column property sheet opens to the General page. 9 Click the 0eteil tab. The Detail page appears. 10 Select Price in the dropdown list of the Profile textbox. Chapter 9 Generating a Test Data Script 103 The profile is attached to the column. The column property sheet should appear as shown below: 11 Click 0K. You return to the columns property sheet. 12 Repeat steps 8 to 11 using 7l7LE_P0S0A7 in the list of columns but select 0ete in the dropdown list of the Profile textbox. 13 Click 0K in each of the dialog boxes. You return to the PDM diagram. . Generate a test data creation script 104 Generate a test data creation script You will generate a test data script for the tables TITLE, AUTHOR, and TITLEAUTHOR. This script is named author.sql. You must execute the test data script in a database that contains the same tables that you use to generate the script. 1 Select 0etebeseCenerete 7est 0ete. The Test Data Generation dialog box opens to the Parameters page. It displays the test data generation parameters. Certain parameters are already selected. 2 Browse to the Exemples/7utcriel directory. 3 Type euthcr.sql in the File name box. 4 Select the 3cript genereticn radio button. 5 Select the 0elete 0ld 0ete checkbox. This option deletes all existing data in the tables so that they can be filled with new test data. 6 Type !5 in the 0efeult humber cf Pcws textbox. The default number of rows is the number of rows of test data that will be generated for tables that do not have a Number value defined in their property sheets. 7 Select Price from the 0efeult humber Prcfile dropdown list. Select heme_l0 from the 0efeult 0herecter Prcfile dropdown list. Select 0ete from the 0efeult 0ete Prcfile dropdown list. Chapter 9 Generating a Test Data Script 105 The Test Data Generation dialog box should appear as shown below: 8 Click the Selection tab. The Selection page appears. 9 Click the 0eselect All tool from the tool bar at the top of the page. All the checkboxes are cleared. Generate a test data creation script 106 10 Select the A07h0P, 7l7LE and 7l7LEA07h0P tables from the list. 11 Click 0K to start the generation. A Confirmation dialog box asks you if you want to overwrite any previously generated author.sql file. 12 Click Yes. A Progress window briefly shows the test data generation progress. A Result dialog box asks you if you want to Edit or Close the newly generated file. Chapter 9 Generating a Test Data Script 107 13 Click 0lcse to close the Test Data Generation dialog box. You return to the PDM diagram. Generate a test data creation script 108 109 C H A P T E R 1 0 Designing a data warehouse database schema In this lesson, you will design a data warehouse database schema. A Data warehouse database is used to store historical business data from heterogeneous systems. Data warehouse databases are populated with data proceeding from different operational sources. In this lesson, you will consider that operational data proceed from the model PUBLISHING INDUSTRY (PDMAFTER.PDM). The purpose of maintaining such type of database is to gather in a central area all the information that may be needed in an OLAP database where queries for business analysis and decision making are performed. You will use tables from an operational model to create a new data warehouse database schema. This schema will be used in the next lesson to design the structure of the OLAP database. In this lesson you will: Create a new model and add tables and references to the model Create a data source in the new model Define a relational to relational mapping between the operational and the data warehouse models Generate an extraction script +RZORQJZLOOLWWDNH" About 20 minutes. What is a data warehouse? Create new model and copy tables 110 Create new model and copy tables PUBLISHING INDUSTRY (PDMAFTER.PDM) is going to be used as an operational model in the following lessons. You will create a new model and copy tables from PUBLISHING INDUSTRY to design a data warehouse database corresponding to the operational model. To keep these lessons short, you will focus on one aspect of the operational model, that is book sales per author. 1 Click the hew tool in the toolbar. The New dialog box appears. 2 Select Physical Data Model and click OK. The Choose DBMS dialog box appears. 3 Select 3ybese A3 Anywhere 7 from the DBMS dropdown listbox. 4 Select the 3here radio button. You will use the DBMS definition that is contained in the PowerDesigner DBMS directory. 5 Select Physicel 0iegrem in the First Diagram dropdown listbox. 6 Click 0K. The new model appears in the Browser and displays a physical diagram in the diagram window. 7 Select HcdelHcdel Prcperties to display the model property sheet. 8 Type Susiness lntelligence in the Name box. This is the name of the model. BUSINESS_INTELLIGENCE appears automatically in the Code box. This is the code of the model. Chapter 10 Designing a data warehouse database schema 111 9 Click 0K. 10 Select File0pen and select PDMAFTER.PDM in the PowerDesigner tutorial directory. The model appears in the Browser and the diagram displays model objects. 11 Press the SHIFT key and click on tables A07h0P, 3ALE, 370PE with the references between 3ALE and 7l7LE and between 3ALE and 370PE. 12 Select Edit0cpy. 13 Use the windcw menu to display again the model Susiness lntelligence. 14 Select EditPeste. The tables and their references are copied into the new model. 15 Select File3eve As. The File Save as dialog box appears. 16 Type 7070PlAL2.P0H in the File name box. This is the name of the file in which you will work and save your modifications. 17 Click 3eve. Create new model and copy tables 112 In this section, you learned how to: Create a new PDM to design a data warehouse database Copy tables from an operational model into a data warehouse model What you learned Chapter 10 Designing a data warehouse database schema 113 Adding a table to the model You will add the table SALE_AUTHOR to the data warehouse model. SALE_AUTHOR will be used in the data warehouse database to gather information from the operational model. It will provide the sales amount and quantity per author in the data warehouse database. You will create a reference between the new table and table AUTHOR. 1 In the physical diagram in the BUSINESS INTELLIGENCE model, click the 7eble tool in the palette. 2 Click in the physical diagram. A table symbol appears at the click position. 3 Double-click the table symbol. The table property sheet appears. 4 Type 3ele_Authcr in the Name box. This is the name of the table. SALE_AUTHOR appears automatically in the Code box. This is the code of the table. Adding a table to the model 114 5 Click the 0clumns tab to display the Columns page. 6 Click the Add 0clumns tool and select the following columns in the list: Name Data type Primary key SALE_AMOUNT numeric(8,2) - SALE_QTY numeric - AU_ID char(12) - 7 Click 0K in the Selection list. The columns appear in the list of columns of the table SALE_AUTHOR. 8 Click 0K. 9 Click the Peference tool in the palette. 10 Click inside the SALE_AUTHOR table and while continuing to hold down the mouse button, drag the cursor into the AUTHOR table and release the mouse button. 11 Click the Pcinter tool in the palette to release the Peference tool. 12 Double-click the reference link between AUTHOR_SALE and AUTHOR. The reference property sheet appears. Chapter 10 Designing a data warehouse database schema 115 13 Click the Joins tab. The Joins page appears. You can verify that the parent and child columns are linked by a join within the reference. 14 Click 0encel. 15 Click the 3eve tool in the toolbar to save your model. In this section, you learned how to: Create a new table Add columns from a selection list Create a reference between tables What you learned Define a data source in the current model 116 Define a data source in the current model You will create a data source in the new model BUSINESS INTELLIGENCE; this model is a data warehouse schema that needs to be populated with information from the operational model PUBLISHING INDUSTRY (PDMAFTER.PDM). PUBLISHING INDUSTRY is the data source for the new model. The process of linking operational to data warehouse tables is called relational to relational mapping. When you create a relational to relational mapping, first you have to define a data source. A data source is used to define where data should be extracted to be transferred to another database. Operational model in the workspace Make sure PDMAFTER.PDM is opened in the workspace, otherwise it will be impossible to define it as the data source of the new model. 1 Select Hcdel0ete 3curces. The List of Data Sources appears. 2 Click the Add e Pcw tool. An arrow appears at the beginning of the first empty line and a default name and code are entered. 3 Type 0pereticnel 0ete 3curce in the Name column. OPERATIONAL_DATA_SOURCE appears automatically in the Code column. 4 Click Apply. 5 Click the Prcperties tool. Chapter 10 Designing a data warehouse database schema 117 The property sheet of the data source appears. 6 Click the Hcdels tab to display the Models page. 7 Click the Add Hcdels tool. A selection list appears to let you select the models to include in the data source. 8 Select Publishing lndustry and click OK. The model appears in the list of models of the data source. 9 Click the 00S0 tab to display the ODBC page. The ODBC page allows to define the ODBC connection parameters to your database where the PUBLISHING INDUSTRY data are stored. To retrieve information from the operational database, you should have generated PUBLISHING INDUSTRY in a database. 10 Define the ODBC connection parameters. 11 Click 0K in each of the dialog boxes. In this section, you learned how to: Create a data source Add a model to a data source What you learned Create a relational to relational mapping 118 Create a relational to relational mapping You will map the table SALE_AUTHOR to tables in the operational model using the new data source. SALE_AUTHOR is designed to summarize the total sales amount and quantity per author in the data warehouse database. To do so, you have to define a relational to relational mapping between SALE_AUTHOR and operational tables. 1 Double-click the 3ALE_A07h0P table. The table property sheet appears. 2 Click the Hepping tab. The Mapping page appears. The first time you define a mapping for a table, you have to define the data source for the current table. 3 Click the Add e Hepping fcr e 0ete 3curce tool beside the Mapping For box. A data source selection dialog box appears. 4 Select 0pereticnel 0ete 3curce and click 0K. The data source appears in the Mapping For box. Chapter 10 Designing a data warehouse database schema 119 5 Click the Add 0bjects tool in the Table Sources page. A table selection dialog box appears to let you select the tables in the operational model that will be linked to the table SALE_AUTHOR. 6 Select the tables 3ALE, 7l7LE, and 7l7LEA07h0P and click OK in the selection dialog box. The name and the code of the tables appear in the list of table sources. 7 Click the 0clumns Hepping tab to display the Columns Mapping page. Create a relational to relational mapping 120 The list of columns is automatically filled with the columns having the same name and code in the current table and in the mapped tables. 8 Click in the Mapped to column on the SALE_AMOUNT line and click the Ellipsis button in the Mapped To column. The SQL Editor appears. By default, the name of the column in the data source appears in the query script textbox. You will use the sum function to obtain the total amount of sales per author. Chapter 10 Designing a data warehouse database schema 121 9 Type sum(3ALE.3ALE_AH00h7} in the query script textbox. Functions in the SQL Editor You can use the Functions tool in the SQL Editor dialog box to access functions to insert into statements 10 Click 0K in the SQL Editor. 11 Click in the Mapped to column on the SALE_QTY line and click the Ellipsis button in the Mapped To column. The SQL Editor appears. You will also use the sum function to obtain the total quantity of sales per author. 12 Type sum(3ALE.3ALE_07Y} in the query script textbox. Create a relational to relational mapping 122 13 Click 0K in the SQL Editor. The list of mapped columns should look like the following: 14 Click the 0riterie tab to display the 0riterie page. In this page, you can define join criteria between source tables. You will define a clause that will group sales amounts or sales quantities by author. Chapter 10 Designing a data warehouse database schema 123 15 Type grcup by A0_l0. 16 Click the 3elect tab to display the Select page and view the entire SQL statement. Create a relational to relational mapping 124 The Select page displays the entire SQL statement that will be used to select data in the operational database to populate the data warehouse. 17 Click 0K. 18 Click the 3eve tool in the toolbar to save your model. In this section, you learned how to: Define a relational to relational mapping between a table in the current model and several tables in the data source Sum column values to obtain global figures Insert a group by clause What you learned Chapter 10 Designing a data warehouse database schema 125 Generate an extraction script The Generate Extraction Script feature allows to generate script files that will be used to fill and update tables in a data warehouse database. In this lesson, you will generate an extraction script corresponding to the tables of the model BUSINESS INTELLIGENCE. One table in BUSINESS INTELLIGENCE is mapped with tables in PUBLISHING INDUSTRY via a data source called OPERATIONAL DATA SOURCE. The extraction script is generated for OPERATIONAL DATA SOURCE. It contains the select order defined for the table SALE_AUTHOR mapped to tables in the data source. You will be able to use this extraction script with an extraction tool to create and fill the tables in your data warehouse database. 1 Select 0etebeseCenerete Extrecticn 3cripts. The Extraction Script Generation dialog box appears. 2 Select a destination directory in the 0irectcry box. 3 Select or clear generation options so that the dialog box looks like the one shown below. 4 Click 0K. The Output window indicates that the generation was successful. Generate an extraction script 126 5 In your Windows Explorer, browse to the directory where the extraction script was generated and open the file OPERATIONAL DATA SOURCE.sql. The extraction script contains the select order defined in the Mapping tab of SALE_AUTHOR. 6 Select File0lcse. 127 C H A P T E R 1 1 Using multidimensional features In this lesson, you will use the multidimensional diagram to design the structure of your OLAP database. You will use the data warehouse database structure defined in the model BUSINESS INTELLIGENCE. The Retrieve Multidimensional Objects feature allows to identify fact and dimension tables in the data warehouse database schema. It assigns multidimensional types to the model tables. The Rebuild Cubes feature creates cubes and dimensions from fact and dimension tables. You will use this functionality to switch to the multidimensional diagram modeling environment. The Generate Cube Data feature allows to generate text files containing the data of a cube. The cube query is used to extract data from the data warehouse database and to insert them into the generated text file. These text files can be used by OLAP tools to create and populate tables in the OLAP engine. To make an efficient use of the Generate Cube Data feature, you need to have the data warehouse database generated in order to recover data from the database and fill the text file. In this lesson you will: Retrieve multidimensional objects in the physical diagram Rebuild cubes and observe multidimensional objects Generate a cube data in text file +RZORQJZLOOLWWDNH" About 10 minutes. Retrieve multidimensional objects Rebuild Cube Generate Cube Data Retrieve multidimensional objects 128 Retrieve multidimensional objects You will use the Retrieve Multidimensional Objects feature to automatically assign multidimensional types to the tables of model BUSINESS INTELLIGENCE. 1 Select 7cclsPetrieve Hultidimensicnel 0bjects. The Multidimensional Object Retrieval dialog box appears. 2 Select both Petrieve Fect and Petrieve 0imensicn check boxes in the General Page. By default, all tables are selected in the Selection page. Chapter 11 Using multidimensional features 129 3 Click 0K. Child tables (SALE and SALE_AUTHOR) become fact tables and parent tables (TITLE, STORE and AUTHOR) become dimension tables as shown below. In this section, you learned how to: Use the Retrieve Multidimensional Objects feature Assign types to tables What you learned Rebuilding Cubes 130 Rebuilding Cubes You will rebuild cubes to automatically create cubes and dimensions from the fact and dimension tables of your model. The new facts and dimensions are displayed in a multidimensional diagram. The Rebuild Cubes automatically creates a relational to multidimensional mapping between data warehouse tables and multidimensional facts and dimensions. When you rebuild cubes, a new data source is automatically created in the current model to allow the transfer of data from the data warehouse database (in the physical diagram) to the OLAP database (in the multidimensional diagram). 1 Select 7cclsPebuild 0ubes. The Cube Rebuild dialog box appears. 2 Select the 0elete end Pebuild radio button in the Mode groupbox. By default, all fact tables are selected in the Selection page. These fact tables will become cubes in the multidimensional diagram. Chapter 11 Using multidimensional features 131 3 Click 0K. A new multidimensional diagram appears and displays the symbols of the new objects as shown below: When you use rebuild cubes, the tables are automatically mapped to the new cubes and dimensions. A new data source called Business Intelligence is automatically created to express the link between the data warehouse and multidimensional objects. By default, this data source has no ODBC connection defined, you should specify these parameters if you want to retrieve data from the data warehouse database. 4 Double-click the 3tcre dimension to display the property sheet. Rebuilding Cubes 132 5 Click the Hepping tab. As you can see, the current dimension is mapped to the table STORE in the physical diagram. The model BUSINESS INTELLIGENCE is its own data source. 6 Click the Attributes Hepping tab in the Hepping page. Chapter 11 Using multidimensional features 133 The table columns are mapped to the attributes of the new dimension. 7 Click 0K. 8 Double-click the 3ele_Authcr cube to display the property sheet. 9 Click the Prcperties tool beside the Fact box to display the fact property sheet. Rebuilding Cubes 134 10 Click the Hepping tab. In the Fact Sources page, you can check that SALE_AUTHOR is mapped to table SALE_AUTHOR. The measures are also mapped to table columns as you can check in the Measures Mapping page. 11 Click 0K in each of the dialog boxes. In this section, you learned how to: Use the Rebuild Cubes feature Observe automatic mapping created after rebuild cube What you learned Chapter 11 Using multidimensional features 135 Generate Cube Data You will use the Generate Cube Data feature to create text files for each cube in the multidimensional diagram. This text file can be used by an OLAP tool to create and populate cubes in the OLAP engine. Generated data warehouse database You need to have generated the data warehouse database in order to recover data from the database and fill the text file. To do so, you can use the extraction scripts with your data warehouse extraction tool. You also need to define the ODBC connection parameters in the data source property sheet to access the generated data warehouse database 1 Select 7cclsCenerete 0ube 0ete. The Cube Rebuild dialog box appears. 2 Select a destination directory in the 0irectcry box. 3 Select or clear generation options so that the dialog box looks like the one shown below. Generate Cube Data 136 4 Click the Selection tab to display a cube and data source selection list. 5 Make sure 3ALE and 3ALE_A07h0P are selected in the Cubes tab. 6 Click the Data Source tab and clear the 0pereticnel 0ete 3curce check box. By doing so, you will generate one file per cube for the Business Intelligence data source. 7 Click 0K. The Output window indicates that the generation was successful. The files 3ALE - Susiness lntelligence.txt and 3ALE_A07h0P - Susiness lntelligence.txt are generated in the destination directory. In this section, you learned how to: Use the Generate Cube Data feature What you learned Chapter 11 Using multidimensional features 137 Exit PowerDesigner You will save and close the PDM, then exit PowerDesigner. 1 Select File3eve. This saves the PDM. 2 Select File 0lcse. This closes the model. 3 Select FileExit. A confirmation box asks you if you want to save the Workspace. 4 Click the hc button. You exit the PowerDesigner application. Exit PowerDesigner 138 139 Glossary User defined data type which encapsulates a range of data values and functions. The functions are both defined on, and operate on the set of values Column or columns whose values uniquely identify a row in the table and are not primary key columns Written statement specifying what the information system must do or how it must be structured to support business needs Data structure that contains an individual data item within a row (record), model equivalent of a database field Entity-relationship diagram that models the information system without considering the details of physical implementation Named check that enforces data requirements, default values, or referential integrity on a table or a column Collection of measures corresponding to values stored into each of its data cell. The measures are organized into dimensions to provide for faster retrieval and drill-down Shows the axis of investigation of the dimension in the cube Identification of the data to access, its operating system, DBMS, and network platform Text file in XML format that contains all the SQL syntax and specifications for a Database Management System Axis of analysis in a multidimensional structure Qualifies dimensions used in queries. For example, the Time dimension can contain attributes Year, Quarter, Month, and Week abstract data type (ADT) alternate key business rule column Conceptual Data Model (CDM) constraint cube cube dimension association data source DBMS dimension dimension attribute Glossary 140 Table that stores data related to the axis of investigation of a fact. For example, geography, time, product Set of values for which a data item is valid. For example, sales, revenue, budget Set of measures manipulated by the cube. For example, Sale, Revenue, Budget are facts Table that stores variable numerical values related to aspects of a business Column or columns whose values depend on and migrate from a primary key, or an alternate key, in another table Defines navigational and consolidation paths through dimensions Data structure that is based on a key and that speeds access to data and controls unique values Within a reference, a link between each foreign key column refering to a matching primary key column Variable that corresponds to the focus of an investigation, it describes the meaning of the analytical values stored in each data cell of the cube. Measures are most of the time numeric values like for example Price or Total Open Database Connectivity (ODBC) interface which gives PowerDesigner access to data in database management systems (DBMS) Part of the Open Database Connectivity (ODBC) interface that processes ODBC functions calls, submits SQL requests to a specific data source, and returns results to the application Online Analytical Processing is a class of analytic application software that exposes business data in a multidimensional format Table-reference diagram that models the information system including the details of physical implementation Column or columns whose values uniquely identify a row in a table Window that displays the properties of an object dimension table domain fact fact table foreign key hierarchy index join measure ODBC ODBC driver OLAP Physical Data Model (PDM) primary key property sheet Glossary 141 Link between a parent table and a child table. A reference can link tables by shared keys or by specified columns Rules governing data consistency, specifically the relationships among primary keys and foreign keys of different tables Named partition that stores tables and indexes on a storage device Collection of rows (records) that have associated columns (fields) Named partition that stores tables and indexes in a database Special form of stored procedure that goes into effect when you insert, delete, or update a specified table or column Name that identifies a person or group working with objects in a PDM, and which has the ability to own other objects in the PDM Index in which no two rows can have the same index value, including NULL Alternate way of looking at the data in one or more tables. Usually created as a subset of columns from one or more tables reference referential integrity storage table tablespace trigger user unique index view Glossary 142 Index 143 A abstract data type 139 define 75, 77 Java class 77 specify 77 add column 29 table 27, 113 ADT See abstract data type alternate key 139 create 43 index 43 assign data profile 100 test data profile 89 auto-migrate foreign key 20 B business rule 139 C CDM 139 close PDM 137 column 139 add 29 create 38 foreign key 25 mapping 118 primary key 25 sort 31 constraint 139 copy table 110 create alternate key 43 column 38 index 40, 43 model 110 create (continued) primary key 40 reference 49 table 25 test data profile 93 trigger 61 view 55, 56 cube 130, 139 generate cube data 135 rebuild 130 cube data 135 cube dimension association 139 customize view 57 D data profile assign 100 automatic data source 98 data source 130, 139 define 116 data warehouse 109 database creation script 86 generate 75, 85, 86 DBMS 139 define abstract data type 75, 77 cascade 52 data source 116 index 25 option 16 preference 16 reference 47, 50 referential integrity 47, 52 test data 89 test data profile 89 test data script 89 delete object 15 symbol 15 detach symbol 15 144 dimension 130, 139 dimension attribute 139 dimension table 128, 140 domain 140 sort 34 E extraction script 125 F fact 140 fact table 128, 140 foreign key 140 auto-migrate 20 column 25 index 25 reference 47 referential integrity 47 G generate automatic test data 95 cube data 135 database 75, 85, 86 extraction script 125 test data from file 98 test data script 104 trigger script 71 H hierarchy 140 I implement trigger referential integrity 63 index 140 alternate key 43 create 40, 43 define 25 foreign key 25 primary key 25, 40 search 25 index (continued) unique 141 item 61 item template 61 J Java class access property 77, 81 link to OOM 75 join 140 M mapping 130 column 118 relational to relational 118 table 118 measure 140 multidimensional diagram 127 N name reference 50 O Object-Oriented Model access Java class 81 open 80 ODBC 140 driver 140 OLAP 140 OOM See Object-Oriented Model link Java class 75 open Object-Oriented Model 80 PDM 5, 6 option define 16 PDM 16 145 P PDM 1, 140 close 137 denormalize 25 file 4 open 5, 6 option 16 preference 16 save 23, 137 preference define 16 PDM 16 primary key 140 column 25 create 40 index 25, 40 reference 47 referential integrity 47 procedure script 71 property reference 50 table 27 property sheet 140 R rebuild cubes 130 automatic mapping 130 cube 130 data source 130 dimension 130 rebuild trigger 61 reference 141 create 49 define 47, 50 foreign key 47 join 47 name 50 primary key 47 property 50 table 49 referential integrity 141 define 47, 52 foreign key 47 primary key 47 trigger 61, 63 relational to relational mapping 118 retrieve multidimensional objects 128 S save PDM 23, 137 script create database 75, 85 create trigger 61 generate test data 104 generate trigger 71 procedure 71 trigger 71 view 104 sort columns 31 domain 34 specify abstract data type 77 storage 141 symbol delete 15 detach 15 T table 141 add 27, 113 copy 110 create 25 mapping 118 property 27 reference 49 tablespace 141 template item 61 trigger 61 test data 89 assign data profile 100 assign profile 89 automatic generation source 95 create profile 93 data profile 89 file generation source 98 generate data source 95, 98 generate script 104 test data profile assign 89 automatic data source 95 create 93 define 89 test data script 89 text file 135 146 trigger 61, 141 create 61 implementation 63 rebuild 61 referential integrity 61 script 61, 71 template 61 U user 141 V view 141 create 55, 56 customize 57 define 55
Optimizing Salesforce Industries Solutions on the Vlocity OmniStudio Platform: Implementing OmniStudio best practices for achieving maximum performance
Implementing VMware Dynamic Environment Manager: Manage, Administer and Control VMware DEM, Dynamic Desktop, User Policies and Complete Troubleshooting
Microsoft Power Platform Up and Running: Learn to Analyze Data, Create Solutions, Automate Processes, and Develop Virtual Agents with Low Code Programming (English Edition)
Optimizing Salesforce Industries Solutions on the Vlocity OmniStudio Platform: Implementing OmniStudio best practices for achieving maximum performance
Implementing VMware Dynamic Environment Manager: Manage, Administer and Control VMware DEM, Dynamic Desktop, User Policies and Complete Troubleshooting
Microsoft Power Platform Up and Running: Learn to Analyze Data, Create Solutions, Automate Processes, and Develop Virtual Agents with Low Code Programming (English Edition)