o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 2 Copyright 2009, Oracle. All rights reserved. Objectives After completing this lesson, you should be able to do the following: Describe JDevelopers tool for database modeling Create a schema model Modify the schema model Reconcile the modifications to the database Import database object definitions to an offline database Reconcile offline database objects with the database Lesson Aim When designing an application to interact with the database, an understanding of the database schema is essential, along with the ability to modify the schema as needed. This lesson shows you how to use JDeveloper tools to define a model of a database schema and to use the model to modify the schema. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 3 Copyright 2009, Oracle. All rights reserved. Modeling Database Schemas With JDevelopers database modeler, you can: Create a schema model Modify the schema model Reconcile changes to the database Modeling Database Schemas Offline database object modeling in projects has been extended to provide for: Index-organized tables External tables Partitioned tables and indexes Materialized (including partitioned and indexed) views and view logs Object Collections Triggers Domain indexes Storage properties (tablespace and so on) Auto-generated column values SXML definition generation Cross-referencing multiple database objects within or between projects O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 4 Copyright 2009, Oracle. All rights reserved. Goals of Database Modeling Database modeling can help you achieve the following goals: For existing database objects: Visualize the schema to help analyze whether it meets requirements. Make any necessary modifications. For new database objects: Design schema to support business requirements. Generate DDL to create the required database objects. Why Perform Database Modeling? Visualizing existing tables in a data diagram can help you understand whether the schema might need modifications to support the business requirements. If the tables do not already exist, you can use the same diagrammer to design them and generate the DDL scripts to create the tables. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 5 Copyright 2009, Oracle. All rights reserved. Characteristics of the JDeveloper Database Modeler Model existing objects, such as tables and foreign keys, by dragging from Database Navigator Use Property Inspector to set properties on diagram and its objects Create new objects by dragging from Component Palette. With the JDeveloper Database Modeler you can: Characteristics of the JDeveloper Database Modeler Although this course concentrates on working with an existing database schema, it is important to understand that you also can use JDevelopers database diagrammer to design and create new tables. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 6 Copyright 2009, Oracle. All rights reserved. Database Modeling Tools in JDeveloper You can work with database objects in the following ways: Online: Create and modify schema objects directly in a database through a JDeveloper connection. Offline: Model metadata for database objects outside the context of a database schema. Import objects from online database. Generate changes to online schemas. Diagrammer: Create and modify objects by dragging from Component Palette and Database Navigator. Import objects from offline database model. Generate changes to online schemas. Database Modeling in JDeveloper You can use JDeveloper to work directly with database objects through a database connection. Alternatively you can work with offline database definitions, which you can subsequently generate to a database schema. JDeveloper provides the tools you need to create and edit database objects such as tables and constraints outside the context of a database. You can create new tables and views and generate the information to a database, or you can import database objects from a database schema, make the changes you want and then generate the changes back to the same database schema, to a new database schema, or to a file that you can run against a database at a later date. Alternatively, you can use JDevelopers modeling tools to visualize your offline database objects on a diagram. You can use JDevelopers database diagrammer to design and create new tables as well. You can import database objects from the offline database into the diagrammer. The diagrammer allows you to import database objects from online schemas and also generate changes to online schemas. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 7 Copyright 2009, Oracle. All rights reserved. Modeling Database Objects Offline You can create offline database definitions in the following ways: Create new offline database objects Copy from database with filters Modeling Database Objects Offline You can create offline database definitions based on objects that exist in a database schema in one of the following ways: Using Drag and Drop: You can drag tables, views, synonyms and sequences from a database schema onto a database diagram, where they become accessible as offline database objects. Using Import with Filters: You can import tables, views, sequences and synonyms from a database schema to an offline schema where they become available as offline database objects. You can apply filters in the wizard to display only the objects that you are interested in, and when there are a large number of objects in the schema you can turn off auto-query so that the wizard does not refresh every time you type a filter character. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 8 Copyright 2009, Oracle. All rights reserved. Creating a New Offline Database To create a definition for an offline database in which you can model database objects, perform the following steps: 1. In the Application Navigator, right-click a project and choose New to display the New Gallery. 2. In the New Gallery, expand Database Tier, and select Offline Database Objects. 3. Select Offline Database to launch the Create Offline Database Wizard. 4. In the pages of the wizard, enter properties for the database, such as its name. After an offline database is created, you can create various database object definitions within it. Creating a New Offline Database To create an offline database definition, perform the following steps: 1. In the Application Navigator, expand the application and the project you want to work in. Right-click a project and choose New to display the New Gallery. 2. From the New Gallery, expand Database Tier, and select Offline Database Objects. 3. Select Offline Database to launch the Create Offline Database Wizard. 4. In the pages of the wizard, enter properties for the database, such as its name. After an offline database is created, you can create various database object definitions within this database. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 9 Copyright 2009, Oracle. All rights reserved. Creating New Schema Objects in an Offline Database Create new schema objects in an offline database by using wizards to define: Functions Materialized views and view logs Packages Procedures Sequences Synonyms Tables Triggers Types Views Creating New Schema Objects in an Offline Database You can create new schema objects in an offline database by invoking one of the New Database Object wizards and entering the required information. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 10 Copyright 2009, Oracle. All rights reserved. Creating a Database Diagram Creating a Database Diagram After creating a named connection in the Database Navigator to browse database schema objects, you can create a database diagram in any JDeveloper project. To create a new diagram, perform the following steps: 1. Select the project in which you want to create the diagram. 2. Select File > New to invoke the New Gallery. 3. In the New Gallery, expand the General category and select Diagrams. 4. Select Database Diagram from the Items list and then click OK. 5. In the Create Database Diagram dialog box, specify a name for the diagram and optionally a package name, and then click OK. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 11 Copyright 2009, Oracle. All rights reserved. Importing Tables to the Diagram from an Offline Database 1 2 Importing Tables to the Diagram from an Offline Database You can import tables from an offline database as follows: 1. In the Offline Database Navigator, select the desired offline object and drag it to the diagram. 2. A depiction of the offline object appears on the diagram. When you drag related tables to the diagram, the foreign key relations are also depicted visually. Offline objects attributes can be modified in the Offline Database Navigator or on the diagram, and are kept in synch. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 12 Copyright 2009, Oracle. All rights reserved. Editing Objects on the Diagram In-place editing: Edit Table dialog box: Editing Objects on the Diagram There are two ways to edit objects on the diagram: In-place editing: Click inside the object, such as an attribute, then click it again to put the text in edit mode. Double-click the object to invoke the editor, such as the table editor shown in the slide. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 13 Copyright 2009, Oracle. All rights reserved. Generating Changes from the Diagram to the Database Invoke wizard. In the wizard: Select objects. Specify operation. Set database options. Set SQL script options. SQL script opens in editor; right-click to run it. Generating Changes to the Database If you created a database diagram, you can right-click the object or objects on the diagram to generate DDL to create, replace, or alter those objects. From the context menu, select Synchronize with Database > Generate To > SQL Script. This invokes a wizard where you specify the object, operations, and SQL script options that you want to use. When you complete the wizard, the script that it generates opens in the editor, where you can run it. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 14 Copyright 2009, Oracle. All rights reserved. Reconciling Changes to the Database Choosing ALTER with Manual Reconcile enables you to choose changes to be generated to the database. Reconciling Changes to the Database If you choose the Alter operation, the offline objects are compared with the online objects and DDL is generated to make the online objects match the offline objects. You can optionally specify that you want to manually reconcile the objects. After the wizard is completed, if you specified manual reconciliation, an additional dialog box is displayed that enables you to compare the objects to be generated to the database with the objects in the database, so that you can choose which changes to generate to the database. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 15 Copyright 2009, Oracle. All rights reserved. Generating Changes from the Offline Database Object to the Database To generate imported offline database objects to the database: Right-click the object in the Applications Navigator Select Generate To Select the JDeveloper connection, or choose to create a SQL script or SXML Generating Changes from the Offline Database Object to the Database Whether or not you have created a database diagram, you can generate changes to the database by right-clicking the database object or objects in the Applications Navigator and selecting Generate To. You can then select a JDeveloper connection, or you can generate a SQL script or SXML. When you choose to generate to a JDeveloper connection as depicted in the slide, or to SQL Scripts, this also invokes the Generate SQL from Offline Database Objects Wizard. Its pages enable you to specify whether to create, replace, or alter, and whether to generate a SQL script, along with script options. If you choose to generate to SXML, an XML file is created and opens in the editor. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 16 Copyright 2009, Oracle. All rights reserved. Importing Database Objects Without a Diagram You can import database objects to an offline database without using a diagram: Importing Database Objects Without a Diagram If you do not want to create a database diagram, you can use the Copy Database Objects to a Project item in the New Gallery by expanding Database Tier and selecting Offline Database Objects in the categories list. This invokes the Copy Database Objects to a Project Wizard, which has the following pages: Specify Source (shown in the slide): Choose the JDeveloper connection from which to import. Specify Target: Select the application and project to import to, and select or create a new offline database to contain the imported objects. Object Picker: Select the database objects to import. Choose Operation: Choose whether to create, replace, or alter offline database objects. Finish: A summary of the specified import. Click Finish to start it. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 17 Copyright 2009, Oracle. All rights reserved. Presenting the Storefront Schema Presenting the Storefront Schema The schema used for the course application is a subset of the Fusion Order Demo (FOD) schema. You can read about how to obtain the Fusion Order Demo in Section 2.2 of the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework 11g Release 1 (11.1.1). The main tables that are used in the course application are Persons, Suppliers, Orders, and Order Items. The application also uses some views, such as Products and ProductCategories. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 18 Copyright 2009, Oracle. All rights reserved. Summary In this lesson, you should have learned how to: Describe JDevelopers tool for database modeling Create a schema model Modify the schema model Reconcile the modifications to the database Import database object definitions to an offline database Reconcile offline database objects with the database O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED Oracle Fusion Middleware 11g: Build Applications with ADF I A - 19 Copyright 2009, Oracle. All rights reserved. Practice Overview: Modeling the Schema for the Course Application This practice covers the following topics: Creating a database diagram Adding existing schema objects to the diagram Adding a new database object to the diagram Creating the DDL to add the new object to the database Practice Overview: Modeling the Schema for the Course Application (optional) In this practice, you use the database diagrammer to create a visual representation of the database schema. You also create a new database component (a table) and create the DDL to add it to the schema. This practice may be found in the Optional Practices section of Appendix A. O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED O r a c l e
U n i v e r s i t y
a n d
E g a b i
S o l u t i o n s
u s e
o n l y THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED