Data Modeling and Relational
                                      Database Design
                                      Electronic Presentation




20000GC13
Production 1.3
August 2002
D37098




                 Copyright © Oracle Corporation, 2002. All rights reserved.
Author                          Copyright ” Oracle Corporation, 2002. All rights reserved.

                                This documentation contains proprietary information of Oracle International Corporation. It is
 Patrice Daux                   provided under a license agreement containing restrictions on use and disclosure and is also
                                protected by copyright law. Reverse engineering of the software is prohibited. If this documentation is
Jeff Gallus
                                delivered to a U.S. Government Agency of the Department of Defense, then it is delivered with
Jan Speelpenning                Restricted Rights and the following legend is applicable:

                                Restricted Rights Legend
Technical Contributors and
Reviewers                       Use, duplication or disclosure by the Government is subject to restrictions for commercial computer
                                software and shall be deemed to be Restricted Rights software under Federal law, as set forth in
Kate Heap                       subparagraph (c) (1) (ii) of DFARS 252.227-7013, Rights in Technical Data and Computer Software
Simmie Kastner                  (October 1988).
Joni Lounsberry                 This material or any portion of it may not be copied in any form or by any means without the express
Satyajit Ranganathan            prior written permission of Oracle International Corporation. Any other copying is a violation of
Sunshine Salmon                 copyright law and may result in civil and/or criminal penalties.
Stijn Vanbrabant
                                If this documentation is delivered to a U.S. Government Agency not within the Department of
Gabriella Varga
                                Defense, then it is delivered with ’Restricted Rights,’ as defined in FAR 52.227-14, Rights in Data-
Publishers                      General, including Alternate III (June 1987).

Christine Markusic              The information in this document is subject to change without notice. If you find any problems in the
                                documentation, please report them in writing to Education Products, Oracle Corporation, 500 Oracle
                                Parkway, Box, Redwood Shores, CA 94065. Oracle International Corporation does not warrant that
                                this document is error-free.

                                Oracle is a registered trademark and Oracle, SQL*Plus, SQL*Net, Oracle Developer, Oracle8i,
                                Oracle9i, Oracle9i Designer and PL/SQL are trademarks or registered trademarks of Oracle
                                Corporation.

                                All other products or company names are used for identification purposes only and may be
                                trademarks of their respective owners.




                       Copyright © Oracle Corporation, 2002. All rights reserved.
Introduction to Entities,
Attributes, and Relationships




   Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      Why conceptual modeling?
      Introduction of the Key role players:
       • Entities
       • Attributes
       • Relationships




1-2                Copyright © Oracle Corporation, 2002. All rights reserved.
Why Create a Conceptual Model?


      •   It describes exactly the information needs of the
          business
      •   It facilitates discussion
      •   It helps to prevent mistakes, misunderstanding
      •   It forms important “ideal system” documentation
      •   It forms a sound basis for physical database
          design
      •   It is a very good practice with many practitioners




1-3                Copyright © Oracle Corporation, 2002. All rights reserved.
Between Dream and Reality...




1-5      Copyright © Oracle Corporation, 2002. All rights reserved.
Entity Relationship Modeling
                                                         PRICE LEVEL
                                                         # CODE
                                                         * DESCRIPTION


                                                                  defined by                  applied to
                                                                                                                                                                                                    part of

                                                                                                                                                                    ORGANIZATION
                                                                                                                                                                    o   EMAIL
                                                                                                                                                                    *   NAME




      •   Models business,
                                                                                                                                                                    o   POSTAL CODE
                                                                                              at                                                                    o
                                                                                                                                                                    o
                                                                                                                                                                        REGION
                                                                                                                                                                        STREET
                                                                                                                                                                    o   TOWN                          parent organization o
                                                                                                                                                                    o   TELEPHONE NUMBER
                                                                                           TITLE             MOVIE                                                  o   CONTACT NAME
                                                                                           # PRODUCT CODE*       CATEGORY                                           o   CONTACT EXTENSION
                                                                                           * TITLE       o       AGE RATING
                                                                                           o DESCRIPTION *       DURATION                         the
                                                                                                         *       MONOCHROME      GAME




          not implementation
                                                                                                         o       AUDIO           * CATEGORY
                                                                                                         o       PREVIEW                                                SUPPLIER
                                                                                                                                 * MEDIUM
                                                                                                                                 o MINIMUM MEMOR                        # SUPPLIER CODE
                                                                                                                                                                        o EMAIL
                                                                                                                                                     available          * APPROVED
                                                                  for                                                                                                   * REFERENCE

                                                          PRICE HISTORY
                                                                                                                                                        the source of
                                                                                                     available as
                                                                                           reviewed in                           on
                                                          # EFFECTIVE DATE
                                                          * PRICE
                                                          * DEFAULT DAYS
                                                          * OVERDUE RATE




      •   Is a well-established
                                                                                                                                                                        OTHER ORGANIZATION




                                                    PUBLICATION
                                                    # REFERENCE
                                                    * TITLE
                                                                        CATALOG                                                                                                                   the holder o
                                                                        # REFERENCE




          technique
                                                    o VOLUME            o CATALOG DAT
                                                    o ISSUE             o DESCRIPTION                                                                                                                CUSTOMER
                                                    o PUBLISH DATE
                                                                                                                                                                                managed by           o   EMAIL
                                                                                                                                                                                                     *   DESIGNATION
                                                                                                                                           EMPLOYEE                     the manager o                *   FIRST NAME
                                                      the source of the source of                                                          * POSITION
                                                                                                                                                                                                     *   LAST NAME
                                                                                                                                                                                                     o   OTHER INITIALS
                                                                                                                                           * LAST NAME                                               *   STREET
                                                                                                                                           o FIRST NAME                                              *   TOWN
                                                                                                                                           o OTHER INITIALS                                          *   POSTAL CODE
                                                                                                                                           o EMAIL                                                   *   REGION
                                                                                                                                                                                                     o   HOME PHONE




      •   Has a robust syntax
                                                                                                                 acquired fro                                                                        o   WORK EXTENSION
                                                                                                                                       the cancellor of responsible              responsible         o   WORK PHONE
                                                                                                                 m                                                                                   o   PHOTOGRAPH
                                                                                                        of                                                                                           o   STAFF REMARKS
                                                                                                                                                        for                      for

                                                                                               COPY
                                                                                               * ACQUIRE DATE
                                                                                               * PURCHASE COST
                                                                                               * SHELF CODE
                                                                                                                                                                                                         the holder of
                                                                                               o CONDITION
                                                                                               o CUSTOMER REMARKS
                                                                                                                                                  responsible for



      •   Results in easy-to-read
                                                                                                                                                                                                              MEMBERSHIP TYPE
                                                                                               ...
                                                                                                                                                                                                              # CODE
                                                                                                                                                                                                              * DESCRIPTION
                                                                                                        rented on reserved on                                                                                 * DISCOUNT PERCENTAGE
                                                                                                                                                                                                              o STANDARD FEE




                                                                                                                                                                                        held by                        the type o



          diagrams…                                    REVIEW
                                                             in

                                                       # SEQUENCE
                                                       * ARTICLE
                                                                                in
                                                                                             of
                                                                                                                                                                                             MEMBERSHIP
                                                                                                                                                                                             # NUMBER
                                                                                                                                                                                                         held by



                                                                                                                                                                                             o TERMINATION REASON
                                                                                                                                                                                                                       of



                                                                                                                                                                                             o TERMINATION DATE
                                                       * HOT
                                                       o AUTHOR
                                                                                                                                                 approved by
                                                       o URL



                                                                                                                                                                                           renewed fo             used fo
                                                                                                             the reservation for                                                           r                      r
                                                                                                                                      cancelled by
                                                                                                                           for


      ...although they may
                                                                                                                                                         requested         authorized by of
                                                                                                                                                         against
                                                                                                                                                                 the
                                                                                                             BOOKING                                                       MEMBERSHIP PERIOD
                                                                                                             *   BOOK DATE                                       requestor # START DATE
                                                                                                             o   EXPIRE DATE                                               o ACTUAL FEE PAID
                                                                                                             o   NOTIFY DATE                                     of
                                                                                                             o   RESERVE DATE
                                                                                                             o   STAFF REMARKS




      look rather complex                                                                                                         fulfilled as
                                                                                                                                                                 approved by

                                                                                                                                                                  RENTAL
                                                                                                                                                                  * RENTAL DATE
                                                                                                                                                                  o STAFF REMARKS
                                                                                                                                                                  o COMPLETED
                                                                                                                                                                                                                 for




      at first sight                                                                 for
                                                                                                                                  the rental for
                                                                                                                                                                                          composed of

                                                                                                                                                                                          part of

                                                                                               RENTAL ITEM
                                                                                               #   LINE NO
                                                                                               *   RENTAL PERIOD
                                                                                               *   PRICE PAID
                                                                                               o   RETURN DATE
                                                                                               o   STAFF REMARKS




1-7               Copyright © Oracle Corporation, 2002. All rights reserved.
Goals of Entity Relationship Modeling


      •   Capture all required information
      •   Information appears only once
      •   Model no information that is derivable from other
          information already modeled
      •   Information is in a predictable, logical place




1-8               Copyright © Oracle Corporation, 2002. All rights reserved.
Database Types

                                  ER Model




      Hierarchical                                                        Network
                                   Relational




1-9              Copyright © Oracle Corporation, 2002. All rights reserved.
Entity


       •   An Entity is:
           – “Something” of significance to the business about
             which data must be known
           – A name for the things that you can list
           – Usually a noun
       •   Examples: objects, events
       •   Entities have instances




1-10                Copyright © Oracle Corporation, 2002. All rights reserved.
Entities and Instances


       PERSON                                      Mahatma Gandhi
       PRODUCT                                     2.5 x 35 mm copper nail
       PRODUCT TYPE                                nail
       EMPLOYMENT CONTRACT                         my previous contract
       JOB                                         violinist
       SKILL LEVEL                                 fluent
       TICKET RESERVATION                          tonight: Hamlet in the Royal
       PURCHASE                                    the CD I bought yesterday
       ELECTION                                    for parliament next fall
       PRINTER PREFERENCE                          …
       DOCUMENT VERSION                            ...



1-11             Copyright © Oracle Corporation, 2002. All rights reserved.
Entities and Sets


       An entity represents a set of instances that are of
       interest to a particular business.

                                         JOB

                                     manager
                                                     cook
                       waitress
                                                        dish washer
                   financial controller
                                                          porter
                          waiter
                                          piano player




1-12                Copyright © Oracle Corporation, 2002. All rights reserved.
Attribute


       •   Also represents something of significance to the
           business
       •   Is a single valued property detail of an entity
       •   Is a specific piece of information that:
           –   Describes
           –   Quantifies
           –   Qualifies
           –   Classifies
           –   Specifies an entity




1-13                 Copyright © Oracle Corporation, 2002. All rights reserved.
Attribute Examples


             Entity         Attribute
         EMPLOYEE           Family Name, Age, Shoe Size,
                            Town of Residence, Email, ...
              CAR           Model, Weight, Catalog Price, …
            ORDER           Order Date, Ship Date, …
               JOB          Title, Description, ...
       TRANSACTION          Amount, Transaction Date, …
       EMPLOYMENT           Start Date, Salary, ...
         CONTRACT




1-14          Copyright © Oracle Corporation, 2002. All rights reserved.
Relationships


       •   Also represent something of significance to the
           business
       •   Express how entities are mutually related
       •   Always exist between two entities (or one entity
           twice)
       •   Always have two perspectives
       •   Are named at both ends




1-15               Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Examples


       EMPLOYEES have JOBS
       JOBS are held by EMPLOYEES


       PRODUCTS are classified by a PRODUCT TYPE
       PRODUCT TYPE is a classification for a PRODUCT


       PEOPLE make TICKET RESERVATIONS
       TICKET RESERVATIONS are made by PEOPLE




1-16              Copyright © Oracle Corporation, 2002. All rights reserved.
Employees have Jobs
                                            JOB                        manager
       EMPLOYEE                                                                           cook
                  Shintaro                               waitress
                                                                                           dish washer
           Jill                                    financial controller
                         Adam
           Ahmed                                                                            porter
                                                            waiter
                       Maria
                                                                            piano player


       Numerical observation:
       •     All EMPLOYEES have a JOB
       •     No EMPLOYEE has more than one JOB
       •     Not all JOBS are held by an EMPLOYEE
       •     Some JOBS are held by more than one EMPLOYEE

1-17                         Copyright © Oracle Corporation, 2002. All rights reserved.
Entity Representation in Diagram


       •   Drawn as a “softbox”       EMPLOYEE                                   JOB




                                               ELECTION
       •   Name singular
       •   Name inside
       •   Neither size,
                                        TICKET
           nor position                 RESERVATION
                                ORDER
           has a special
           meaning              JOB ASSIGNMENT



       During design, entities usually lead to tables.




1-18                Copyright © Oracle Corporation, 2002. All rights reserved.
Attributes in Diagrams


       Mandatory attribute, that is, known and available for
       every instance.
       Optional attribute, that is, unknown or unimportant to
       know for some instances.
          EMPLOYEE                                                     JOB
            Family Name                                                 Title
          *                                                            * Description
            Address                                                    o
          *
          o Birth Date
          o Shoe Size
          o Email



       During design, attributes lead to columns.

1-20                 Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship in Diagrams

       An employee has exactly one job.



        EMPLOYEE                                                                JOB
                         has
                                                             held by




                            Jobs are held by one or more employees
                                     held by one or more

       During design, relationships lead to foreign keys.


1-21               Copyright © Oracle Corporation, 2002. All rights reserved.
Diagrams Are To Communicate


              has
                                                  JOB
       EMPLOYEE

                                                            held by




1-22          Copyright © Oracle Corporation, 2002. All rights reserved.
Characteristics Of The Relationship Line




         mandatory:                                   optional:




1-23             Copyright © Oracle Corporation, 2002. All rights reserved.
Two Perspectives




       mandatory:                                 optional:


       EMPLOYEE has                                                   JOB


                                                     held by




1-24           Copyright © Oracle Corporation, 2002. All rights reserved.
One Way




       mandatory:                                 optional:


       EMPLOYEE has                                                   JOB


                                                     held by



       Every EMPLOYEE has exactly one JOB



1-25           Copyright © Oracle Corporation, 2002. All rights reserved.
The Other Way




       mandatory:                                 optional:


       EMPLOYEE has                                                   JOB


                                                     held by



          A JOB may be held by one or more EMPLOYEES



1-26           Copyright © Oracle Corporation, 2002. All rights reserved.
Reading a Relationship End

       P     split into                                                   Q
                                                       part of




1-27         Copyright © Oracle Corporation, 2002. All rights reserved.
Reading a Relationship End

       P     split into                                                   Q
                                                       part of




1-28         Copyright © Oracle Corporation, 2002. All rights reserved.
Reading a Relationship End

       P       split into                                                   Q
                                                         part of




            must be                                                exactly one Q
  “Each P   may be
                                            split into                          ”
                                                                   one or more Qs




1-29           Copyright © Oracle Corporation, 2002. All rights reserved.
Reading a Relationship End
       P           split into                                                  Q
                                                            part of




           “Each P may be split into one or more Qs”




1-30              Copyright © Oracle Corporation, 2002. All rights reserved.
Reading a Relationship End

       P           split into                                                  Q
                                                            part of




           “Each P may be split into one or more Qs”




1-31              Copyright © Oracle Corporation, 2002. All rights reserved.
Reading a Relationship End
       P           split into                                                  Q
                                                            part of




           “Each P may be split into one or more Qs”


               must be                                                exactly one P
   “Each Q     may be
                                             part of                               ”
                                                                      one or more Ps


1-32              Copyright © Oracle Corporation, 2002. All rights reserved.
Reading a Relationship End
       P           split into                                                  Q
                                                            part of




           “Each P may be split into one or more Qs”


       “Each Q must be part of exactly one P”

1-33              Copyright © Oracle Corporation, 2002. All rights reserved.
Functions Drive Data


       •   Business functions are always present.
           – Explicit
           – Assumed
       •   Business functions need data.
       •   An entity, attribute, or relationship may be
           modeled because:
           – It is used by a business function.
           – The business need may arise in the near future.




1-34                Copyright © Oracle Corporation, 2002. All rights reserved.
Weather Forecast
       January 26

       København                                          1/-5              3
       Bremen                                              0/-3             4
       Berlin                                              3/-1             3
       München                                             5/-3             3
                                                ****
       Amsterdam                                           8/3              4
       Bruxelles                                           4/0              2
       Paris                                               4/1              3
       Bordeaux                                            7/2              3




1-35           Copyright © Oracle Corporation, 2002. All rights reserved.
DK               København
                                                                 (Copenhagen)
       IR   UK
                                       NL            Bremen
                                     Amsterda
                                       m                       Berli
                            BE Bruxelle DE                        n
                                   (Brussels)
                                       s
                                     LU              München
                          Paris                       (Munich)

                    FR
                                             CH

            Bordeaux                                    IT


1-36        Copyright © Oracle Corporation, 2002. All rights reserved.
Weather Forecast, a Solution

       CITY                                                     COUNTRY
       * Name                 located in                        * Name
       o Geographical                                           o Geographical
         Position                                having           Position

                subject
                   of
        about

       FORECAST               referring to               WEATHER TYPE
       * Date                                            * Icon
       o Minimum                             referred in * Description
         Temperature
       o Maximum              referring to               WIND DIRECTION
         Temperature                                     * Icon
       o Wind Force                          referred in * Description




1-38             Copyright © Oracle Corporation, 2002. All rights reserved.
Graphical Elements of ER Diagram


         Entity
         Attribute                    *
                                      *                                           *
                                                                                  *
                                                                                  o
         Relationship

       Subtype
       Unique identifier
       Arc
       Nontransferability
                                                       #                              #
                                                       o




1-39                 Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       •   ER Modeling models information conceptually
       •   Based on functional business needs
       •   “What”, not “How”
       •   Diagrams provide easy means of communication
       •   Detailed, but not too much




1-40              Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Instance or Entity
       •   Guest
       •   Reading
       •   Hotel
       •   Recipe




1-41                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Instance or Entity?

       Concept                   E/A/I? Example Instance or Entity
       PRESIDENT
       ELLA FITZGERALD
       DOG
       ANIMAL
       HEIGHT
                                     E        CAR
                                     A         CAR
                                     I         CAR




1-42               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Guest

                                       Address
                                       Arrival Date
       GUEST                           Family Name
       HOTEL                           Room Number
       ROOM                            Floor Number
                                       Number of Beds
                                       Number of Parking Lots
                                       Price
                                       TV set available?


1-43       Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Reading

        EMPLOYEE          assigned to                               DEPARTMENT
                                        responsible for



A      Each EMPLOYEE may be assigned to one or more DEPARTMENTS
       Each DEPARTMENT must be responsible for one or more EMPLOYEES


B      Each EMPLOYEE must be assigned to one or more DEPARTMENTS
       Each DEPARTMENT may be responsible for one or more EMPLOYEES


C      Each EMPLOYEE must be assigned to exactly one DEPARTMENT
       Each DEPARTMENT may be responsible for exactly one EMPLOYEE



1-44                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Read and Comment

       PERSON       born in                                      TOWN
                                        birthplace of


                      living in
                                       home town of

                      visitor of

                                             visited by


                      mayor of
                                          with mayor



1-45            Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Hotel

              HOTEL
              * Address

       the lodging                                          host of
                for
                             ROOM
                             * Room Number

                                  with

                in          in                             guest in
             STAY                    of                         PERSON
             * Arrival Date                                     * Name
                                                        with




1-46             Copyright © Oracle Corporation, 2002. All rights reserved.
Ralph’s Raving Recipes

       Soups
                       Açorda alentejana
                        bread soup from Portugal
       vegetarian       For 4 persons:
       15 min
                          1 onion
       easy               4 cloves of garlic
                          1 red pepper
                          1 liter of vegetable broth
                          4 tablespoons of olive oil
                          4 fresh eggs
                          1 handful of parsley or
                          coriander
                          salt, pepper
                          9-12 slices of (old) bread
       Preparation
                       Cut the onion into small pieces and fry
                       together with the garlic. Wash the red
                       pepper, cut it in half, remove the seeds and
                       fry it for at least 15.
                                                                              page 127


1-47             Copyright © Oracle Corporation, 2002. All rights reserved.
1-48   Copyright © Oracle Corporation, 2002. All rights reserved.
Entities and Attributes in Detail




    Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Data compared to information
      •   Entities and how to track them down
      •   Attributes
      •   Subtypes and supertypes




1-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Data Compared to Information


      Data
       • Facts given from which other facts may be
          inferred
       • Raw material
       • Example: Telephone Directory

      Information
       • Knowledge, intelligence
       • Example: Telephone number of florist




1-3               Copyright © Oracle Corporation, 2002. All rights reserved.
Data


      •   Modeling, Conceptual
          Structuring data concepts into logical, coherent,
          and mutually related groups
      •   Modeling, Physical
          Modeling the structure of the (future) physical
          database
      •   Base
          A set of data, usually in a variety of formats, such
          as paper and electronically-based
      •   Warehouse
          A huge set of organized information



1-4                 Copyright © Oracle Corporation, 2002. All rights reserved.
Entities


      •   Give the entity a unique name
      •   Create a formal description of
          the entity
      •   Add a few attributes, if possible
      •   Be aware of homonyms
      •   Check entity names and descriptions regularly
      •   Avoid use of reserved words
      •   Remove relationship name from entity name




1-6               Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Name in Entity Name


      GUEST                                                     HOTEL
                   guest of

                                                  host of



      PERSON                                         ACCOMMODATION
                   guest of

                                       host of




1-8            Copyright © Oracle Corporation, 2002. All rights reserved.
Some Background Information


      “ElectronicMail (EM) wants to provide an attractive and
      user- friendly Web-based e-mail system. Important
      concepts are user and message.

      An EM user has a unique address of 30 characters at
      most and a password supplied by the person who set
      up the EM user. Who the person really is, we do not
      know, although we ask for some additional
      information, such as the name, country, birth date, line
      of business, and a few more things.




1-9                Copyright © Oracle Corporation, 2002. All rights reserved.
Some Background Information


       Users must be able to send and receive mail
       messages. A mail message is usually a piece of
       straight text. A message may have attached files. An
       attachment is a file, like a spreadsheet, that is sent and
       kept with the message, but not created with our
       software.

       Messages are kept in folders. Every user has three
       folders to start with: Inbox, Outbox, and Wastebasket.
       Additional folders can be created by the user.”




1-10                Copyright © Oracle Corporation, 2002. All rights reserved.
(0
         ORJR                 DGYHUWLVHPHQW DUHD s
        Compose
                        Compose                     Template                                   a ge
                                                                                    ss Send
                                                                 default


                                                                                  me
          Folders
                        Subject:    test
        Addresses
                        To:         bipi, giovanni_papini@yahoo.com   a il                 Save Draft
       Preferences
                                                                    em
                                                           os
                        Cc:         myself                                               Save Template

                                                        mp
       Get New Mail
                        Bcc:                                                                   Cancel
                                                      o
                                                 oc
           Exit
                        Message                t
                                    this is a test
                                      en
   DGYHUWLVHPHQW



                        text:       and a text as well
                                   re
                                    tralalalala

                          f sc      pompidom


                      h oKeep
      DUHD



                    tc Copy
           s ke
                                                    Attachments:                       Type:
                                        Add
                                                   abc.html                            Hypertext
                                   Signature
                                                   xyz.doc                             Word document




1-11                      Copyright © Oracle Corporation, 2002. All rights reserved.
(0
         ORJR               DGYHUWLVHPHQW DUHD
        Compose
                       Addresses                                                       s es
          Folders              Nicknames
                                                                                  dr es
                               Alias                  Email
                                                                                d
                                                                        na
        Addresses
                                                      address
       Preferences             apple
                                                                     ai
                                                      w.j.appletree@cats.com

                                                          int
                               bipi                   sabine_papini @yahoo.com

                                                       ma
       Get New Mail            joe                    j.suspender@last.com
                               myself                 jtiddlywink@em.com
                                                     o
                                               nt
           Exit
                                             e
                                   cre
                               Group
   DGYHUWLVHPHQW



                              fs
                             friends

                           ho
                    e tc
                             bipi
      DUHD



                               joe
                  sk           giovanni_papini@yahoo.com
                               p.g.m.papini@em.com




1-12                       Copyright © Oracle Corporation, 2002. All rights reserved.
Some Desired Functionality


       •   “Users of ElectronicMail must be able to address
           messages to a mail list, for example, a group of e-
           mail addresses. The system should only keep one
           copy of the message sent (to save database
           space) plus information about whom the message
           was sent to.
       •   Users must be able to create templates for their
           messages. A template must be named and may
           contain everything a real message contains. A
           template may be used for new messages.




1-13               Copyright © Oracle Corporation, 2002. All rights reserved.
Some Desired Functionality


       •   Users must be able to reply to a message. By
           replying the user creates a new message to which
           the old message is added.
       •   Users must be able to create an alias for an e-mail
           address, to hide the often complex addresses
           behind an easy-to-remember nickname.”




1-14                Copyright © Oracle Corporation, 2002. All rights reserved.
Evolution of an Entity Definition


       •   A message is a piece of text sent by a user.
       •   A message is a piece of text sent by an EM user.
       •   A message is a note that is sent by an EM user. A
           message does not necessarily contain text, nor a
           subject, etc.
       •   A message is a note that is sent by an EM user or
           received by an EM user or both. A message does
           not necessarily contain text, nor a subject, etc.
       •   A message is a note that is received by an EM
           user. A message does not necessarily contain
           text, nor a subject, etc.


1-15               Copyright © Oracle Corporation, 2002. All rights reserved.
Business Functions


       •   “Users of ElectronicMail must be able to address
           messages to a mail list, for example, a group of e-
           mail addresses. The system should only keep one
           copy of the message sent (to save data base
           space) plus information about whom the message
           was sent to.
       •   Users must be able to create templates for their
           messages. A template must be named and may
           contain everything a real message contains. A
           template may be used for new messages.




1-17               Copyright © Oracle Corporation, 2002. All rights reserved.
Business Functions


       •   Users must be able to reply to a message. By
           replying the user creates a new message to which
           the old message is added.
       •   Users must be able to create an alias for an e-mail
           address, to hide the often complex addresses
           behind an easy-to-remember nickname.”




1-18                Copyright © Oracle Corporation, 2002. All rights reserved.
An Attribute...


       •   Always answers “of what?”
       •   Is the property of entity, not of relationship
       •   Must be single valued
       •   Has format, for example:
           –   Character string
           –   Number
           –   Date
           –   Picture
           –   Sound
       •   Is an elementary piece of data



1-19                Copyright © Oracle Corporation, 2002. All rights reserved.
Nouns, Entities, Attributes


       •   “ElectronicMail (EM) wants to provide an attractive
           and user friendly Web-based email system.
           Important concepts are user and message.
       •   An EM USER has a unique address of 30
           characters at most and a password supplied by
           the PERSON who set up the EM user. Who the
           person really is, we do not know, although we ask
           for some additional information, like the name,
           COUNTRY, birth date, line of business, and a few
           things more.




1-20               Copyright © Oracle Corporation, 2002. All rights reserved.
Nouns, Entities, Attributes


       •   Users must be able to send and receive mail
           MESSAGES. A mail message is usually a piece of
           straight text. A message may have attached files.
           An ATTACHMENT is a file, like a spreadsheet, that
           is sent and kept with the message, but not created
           with our software.
       •   Messages are kept in FOLDERS. Every user has
           three folders to start with: Inbox, Outbox and
           Wastebasket. Additional folders can be created by
           the user.”




1-21               Copyright © Oracle Corporation, 2002. All rights reserved.
EM Entities and Attributes
       Nouns                      Entities/Attributes/                    Entities with their
                                  Instances                               Attributes
       user                         USER                                    USER
       address                      Address                                 - Address
       password                     Password                                - Password
       person                       PERSON                                  PERSON
       name                         Name                                    - Name
       country                      COUNTRY                                 - Birth Date
       birth date                   Birth Date                              - Occupation
       occupation                   Occupation                              COUNTRY
       message                      MESSAGE                                 - Name
       text                         Text                                    MESSAGE
       attachment                   ATTACHMENT                              - Text
       file                         File                                    ATTACHMENT
       folder                       FOLDER                                  - Filename
       inbox                        Inbox                                   FOLDER
       outbox                       Outbox                                  - Name
       wastebasket                  Wastebasket

1-22                 Copyright © Oracle Corporation, 2002. All rights reserved.
Attribute and Entity

                                        GARMENT
                                        Name
                                        Price



       Attributes in one model can be entities in another.


                                      GARMENT




       CURRENCY             PRICE                      NAME                      LANGUAGE




1-23                Copyright © Oracle Corporation, 2002. All rights reserved.
Redundancy



                 COMMODITY
                 * Name
                 * Price exclusive VAT
                 * Price inclusive VAT
                 * VAT %




1-24   Copyright © Oracle Corporation, 2002. All rights reserved.
A Subtype ...


       •   Inherits all attributes of supertype
       •   Inherits all relationships of supertype
       •   Usually has its own attributes or
           relationships or business functions
       •   Is drawn within supertype
       •   Never exists alone                   ADDRESS
       •   May have subtypes of its own          USER
       •   Is also known as “Subentity”
                                                                         LIST




1-25               Copyright © Oracle Corporation, 2002. All rights reserved.
Subtype: Example




        COMPOSITION
        o Subject
        o Cc
        o Bcc                         DRAFT
        o Text                        * Name

         MESSAGE                      TEMPLATE
                                      * Name




1-26   Copyright © Oracle Corporation, 2002. All rights reserved.
Subtype: Rules


       Subtypes of the same entity must be:
        • Exhaustive:
           Every instance of a supertype is also instance of
           one of the subtypes.
       and
        • Mutually exclusive:
           Every instance of the supertype is of one and only
           one subtype.
       Name subtypes                  A
       adequately:
                                       B            C            NON B           OTHER A



1-27                Copyright © Oracle Corporation, 2002. All rights reserved.
Subtypes: Three Levels




       COMPOSITION                  OTHER
       o Subject                    COMPOSITION
       o Cc                         * Name
       o Bcc                          DRAFT
       o Text                         *DRAFT
                                        Name

        MESSAGE                        TEMPLATE
                                        TEMPLATE
                                       * Name




1-28   Copyright © Oracle Corporation, 2002. All rights reserved.
More on Subtypes


       Subtypes always exist...

                EMPLOYEE

                  CURRENT                         OTHER
                  EMPLOYEE                        EMPLOYEE


       ... but do not all make sense
                EMPLOYEE

                EMPLOYEE WITH                      OTHER
                SHOE SIZE  45                     EMPLOYEE




1-29               Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       Entities
        • Nouns in texts
        • Tangible, intangible, events
       Attributes
        • Single-valued qualifiers of entities
       Subtypes
        • Inherit all attributes and relationships of supertype
        • May have their own attributes and relationships




1-30                Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Books
       •   Moonlight Coffees
       •   Shops
       •   Subtypes
       •   Schedule
       •   Address




1-31               Copyright © Oracle Corporation, 2002. All rights reserved.
1. I have just finished writing a book. It’s a novel
          about justice and power.
       2. We have just published this book. The hard cover
          edition is available now.
       3. Did you read that new book on Picasso? I did. It's
          great!
       4. If you like you can borrow my book.
       5. I have just started translating this book into
          Spanish. I use the modern English text as a basis
          and not the original, which is 16th century.
       6. I ordered that book for my parents.


1-32               Copyright © Oracle Corporation, 2002. All rights reserved.
7. Yes, we have that book available. You should find
           it in Art books.
        8. A second printing of the book War and Peace is
           very rare.
        9. I think My name is Asher Lev is one of the best
           books ever written. Mine is autographed.
       10. I want to write a book on entity relationship
           modeling when I retire.




1-33               Copyright © Oracle Corporation, 2002. All rights reserved.
Moonlight Coffees
                                           Summary


       •   Moonlight Coffees is a fast growing chain of high
           quality coffee shops with currently over 500 shops
           in 12 countries of the world. Shops are located at
           first-class locations, such as major shopping,
           entertainment and business areas, airports,
           railway stations, museums. Moonlight Coffees has
           some 9,000 employees.
       Products
        • All shops serve coffees, teas, soft drinks, and
           various kinds of pastries. Most shops sell
           nonfoods, like postcards and sometimes even
           theater tickets.


1-34                       Copyright © Oracle Corporation, 2002. All rights reserved.
Moonlight Coffees
                                           Summary


       Financial
       Shop management reports sales figures on a daily
       basis to Headquarters, in local currency. Moonlight
       uses an internal exchange rates list that is changed
       monthly. Since January 1, 1999, the European
       Community countries must report in Euros.

       Stock
       Moonlight Coffees is a public company; stock is
       traded at NASDAQ, ticker symbol MLTC. Employees
       can participate in a stock option plan.


1-35                       Copyright © Oracle Corporation, 2002. All rights reserved.
Moonlight Coffees
                                           Shop List


       Shoplist, ordered to date opened page 4

       181 The Flight, JFK Airport terminal 2, New York, USA,
       212.866.3410, Airport, 12-oct-97

       182 Hara, Kita Shinagawa,Tokyo, JP, 3581.3603/4,
       Museum, 25-oct-97

       183 Phillis, 25 Phillis Rd, Atlanta, USA, 405.867.3345,
       Shopping Centre, 1-nov-97

       184 JFK, JFK Airport terminal 4, New York, USA,
       212.866.3766, Airport, 1-nov-97


1-36                       Copyright © Oracle Corporation, 2002. All rights reserved.
Moonlight Coffees
                                           Shop List


       185 VanGogh, Museumplein 24, Amsterdam, NL,
       76.87.345, Museum, 10-nov-97

       186 The Queen, 60 Victoria Street, London, UK,
       203.75.756, Railway Station, 25-nov-97

       187 Wright Bros, JFK Airport terminal 1, New York,
       USA, 212.866.9852, Airport, 6-jan-98

       188 La Lune, 10 Mont Martre, Paris, FR, 445 145 20,
       Entertainment, 2-feb-98




1-37                       Copyright © Oracle Corporation, 2002. All rights reserved.
Subtypes
       DISABLED                               CAR
       PERSON
                                               STATION WAGON
       DEAF
                                              SEDAN
       BLIND

       OTHER
       DISABLED                         BUILDING              HOUSE
       PERSON


       HOTEL                                                     DOG
       ROOM WITH BATH                                            DOMESTIC
                                                                 ANIMAL
       OTHER ROOM                                                 MAMMAL




1-38          Copyright © Oracle Corporation, 2002. All rights reserved.
van Gogh, Museumplein, Amsterdam

       Schedule Oct 12 - Oct 18                           prepared by Janet

              Shift      Mon         Tue       Wed        Thu         Fri      Sat     Sun
       Annet S                                   2                     2           2    1
       Annet B             1                                           1           1
       Dennis              2          2          1          2         3
       Jürgen                                                                      5   4
       Kiri                           3                               4            4
       Wil




1-39                  Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Address (1/2)




       Rheingasse 123                           34 Oxford Road
       53111 Bonn                               Reading
       Germany                                  Berkshire RG1 8JS
                                                UK
       1020 Maple Drive
       Kirkland WA 98234
       USA




1-40        Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Address (2/2)




       P.O. Box 66708                            c/o Mrs Smith
       Nairobi                                   Maude Street
       Kenya                                     Sandton
                                                 Johannesburg 2144
                                                 South Africa




1-41         Copyright © Oracle Corporation, 2002. All rights reserved.
Relationships in Detail




Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Relationships
      •   Ten different relationship types
      •   Nontransferability
      •   Relationships that seem to have attributes
      •   Rules of Normalization




3-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Establishing a Relationship


      •   Determine the existence of a relationship
      •   Choose a name for the relationship from both
          perspectives
      •   Determine optionality
      •   Determine degree
      •   Determine nontransferability




3-3               Copyright © Oracle Corporation, 2002. All rights reserved.
Establishing the Relationship




       MESSAGE                        sending                    USER


                                      receiving




                                  replying




3-4      Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Names



                                                    sender USER
      MESSAGE            sent by                        of

                         sent to
                                                  receiver
                              reply of                  of

      replied
      to by




3-5      Copyright © Oracle Corporation, 2002. All rights reserved.
Naming the Relationship


                              receiving

      MESSAGE        received by                            USER

                                        receiver of




            A MESSAGE is received by a USER

         A USER is receiver of a MESSAGE




3-6          Copyright © Oracle Corporation, 2002. All rights reserved.
Optionality



                                                    author USER
      MESSAGE
                          written by                    of

                          received by
                                                  receiver
                               reply of                 of


      replied
      to by




3-7      Copyright © Oracle Corporation, 2002. All rights reserved.
Optionality

              No:                               Yes:



          MESSAGE           received by                            USER

                                               receiver of




      •   Must every MESSAGE be received by a USER? Yes
      •   Must every USER be receiver of a MESSAGE? No




3-8                 Copyright © Oracle Corporation, 2002. All rights reserved.
Mandatory 1: Mandatory m




                  A          split into                           B
                                                    part of




      •   Every A must be split into at least one B
      •   Every B must be part of exactly one A




3-9                Copyright © Oracle Corporation, 2002. All rights reserved.
Degree



                                                                  author
                    MESSAGE                                              USER
                                         written by                   of

                                         received by
                                                               receiver
                                              reply of               of

       containing                replied
                                 to by
            with      5
        ATTACHMENT




3-10                   Copyright © Oracle Corporation, 2002. All rights reserved.
Degree

                 One:                    One or more:



           MESSAGE         received by                            USER

                                             receiver of




       •   Can a MESSAGE be received by more
           than one USER?                             Yes
       •   Can a USER be the receiver of more than one
           MESSAGE ?                                  Yes



3-11               Copyright © Oracle Corporation, 2002. All rights reserved.
Nontransferability


       FOLDER

           containing

            filed in
                                                            author USER
         MESSAGE                  written by                    of

                                  received by
                                                         receiver
                                      reply of                 of

                         replied
                         to by




3-12            Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Types
                         1:m



       (a)

       (b)

       (c)

       (d)




3-13         Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Types
                   m:1


       PRODUCT

                             part
                               of               BUNDLE
                                consists
                                      of




3-15   Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Types
                        m:m



       (e)

       (f)

       (g)




3-16         Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Types
                  m:m


         USER

                      part
                        of               LIST
                         consists
                               of




3-17   Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Types
                      1:1



       (h)

       ( i)

       (j)




3-18      Copyright © Oracle Corporation, 2002. All rights reserved.
1:1 Relationships
                            Roles



       PERSON         acting as                                PATIENT
       * Name                                                  * Blood Type
                                                  role of

                      acting as                                EMPLOYEE
                                                               * Job
                                                  role of




3-19            Copyright © Oracle Corporation, 2002. All rights reserved.
1:1 Relationships
                     Process


                                                       MESSAGE
       DRAFT
                    basis for

                                       result of




3-20      Copyright © Oracle Corporation, 2002. All rights reserved.
Redundant Relationships



             COUNTRY                                        COUNTRY
         location                 of                  location                     of birth
               of                                           of located             of
                located
                in                                             in
             TOWN                                         TOWN

       hometown                                  hometown
              of living         living                  of living                  born
                  in             in                         in                     in
             PERSON                                         PERSON




3-21                  Copyright © Oracle Corporation, 2002. All rights reserved.
Relationships and Attributes


       •   An attribute can hide a relationship
       •   Relationship can be “downgraded” to attribute


                                                               ATTACHMENT TYPE
                                                               * Name

                                                                                of

                                                                    with
           ATTACHMENT
           * Type                                     ATTACHMENT
           * Content                                  * Content




3-22               Copyright © Oracle Corporation, 2002. All rights reserved.
Attribute Compared to Relationship


       •   Easy model                                           •     Value control
       •   Fewer tables                                         •     List of values
       •   No join                                              •     Other relationships

                                                               ATTACHMENT TYPE
                                                               * Name

                                                                                of

                                                                    with
           ATTACHMENT
           * Type                                     ATTACHMENT
           * Content                                  * Content




3-23               Copyright © Oracle Corporation, 2002. All rights reserved.
Attribute or Entity




       NAME                    EMPLOYEE                               JOB
                               * Id
       SALARY                                                         BADGE

       GENDER                                                         NATIONALITY

       TEAM                                                           ADDRESS




3-24            Copyright © Oracle Corporation, 2002. All rights reserved.
Attribute Compared to Relationship


       •   There is no such thing as a foreign key attribute
       •   Usually, the attribute name should not contain an
           entity name             FOLDER
                                              * Name

                                     containing

                                                          placed in
                        MESSAGE
                        * Message Id
                        * Text
                        * Folder Name




3-25               Copyright © Oracle Corporation, 2002. All rights reserved.
Relationship Compared to Attribute


          MESSAGE             addressed to                       USER
                                         addressee of



         MESSAGE                                               USER
         * Addressee




         MESSAGE             addressed to                      USER
         o Addressee
                                       addressee of




3-26          Copyright © Oracle Corporation, 2002. All rights reserved.
m:m Relationships May Hide Something




       CUSTOMER                                                    PRODUCT
       * Id               buyer of                                 * Code
       * Name                                                      * Name
                                               bought by




3-27              Copyright © Oracle Corporation, 2002. All rights reserved.
Quantity Is Attribute of ...
                                                   ?
       CUSTOMER                                                       PRODUCT
                              buyer of
       * Id                                                            * Code
       * Name                                      bought by           * Name
         Quantity


                                               ?
       CUSTOMER                                                        PRODUCT
                              buyer of
        * Id                                                             * Code
        * Name                                                           * Name
                                                       bought by
                                                                             Quantity




3-28                 Copyright © Oracle Corporation, 2002. All rights reserved.
Attribute of Relationship ?




       CUSTOMER                                                     PRODUCT
                           buyer of
       * Id                                                          * Code
       * Name                                                        * Name
                                                 bought by

                                                Quantity




3-29              Copyright © Oracle Corporation, 2002. All rights reserved.
New Entity ORDER

         CUSTOMER
         * Id                     with
         * Name                                            ORDER
                                                   of
         PRODUCT                  with                       *Quantity Sold
         * Code
         * Name                                   for


       CUSTOMERS       PRODUCTS                  ORDERS
        Id Name          Code Name                Ctr_id Pdt_code Quantity_sold
        1 Sanchez              1 Jeans                   1                2    2
        2 Lowitch              2 Shirt                   1                3    2
        3 Yomita               3 Tie                     2                2    1
        4                      4                         3



3-30              Copyright © Oracle Corporation, 2002. All rights reserved.
Multiple PRODUCTS for an ORDER



         CUSTOMER
         * Id                     with
         * Name                                           ORDER
                                                  of
                                                          * Id
         PRODUCT                  with                    * Date
         * Code
         * Name                                  for

                                                Qu
                                                  an t
                                                        ?
                                                        ity




3-31        Copyright © Oracle Corporation, 2002. All rights reserved.
Another New Entity: ORDER ITEM

       CUSTOMER
       * Id                   with
                                                      ORDER
       * Name
                                             of       HEADER
                                                      * Id
       PRODUCT                                        * Date
       * Code
       * Name
                                                                 with

            with
                        for                           for
               ORDER ITEM
                      *Quantity Sold



3-32        Copyright © Oracle Corporation, 2002. All rights reserved.
Tables

       CUSTOMERS
       Id   Name                        ORDER_HEADERS
        1 Sanchez                          Id Ctr_id            Date_ordered
          Lowitch                          1               1     25-MAY-1999
        2 Yomita                                                 25-MAY-1999
                                           2               2     25-MAY-1999


       ORDER_ITEMS                                                    PRODUCTS
       Ohd_id   Pdt_code Quantity_sold                                  Code Name
            1             2                       2                             1 Jeans
                                                  2                             2 Shirt
            2             2                       1                             3 Tie
                                                                                4



3-33               Copyright © Oracle Corporation, 2002. All rights reserved.
Resolving m:m Relationship


       •   Create new intersection entity
       •   Create two m:1 relationships, derive optionality
       •   Remove m:m relationship

            A                                       in
                                        A
                                                                of     A/B COMBINATION
           xxx

                 yyy

           B                          B                         of
                                                    in


3-34                   Copyright © Oracle Corporation, 2002. All rights reserved.
Resolving m:m Relationship

       •   Create new intersection entity
       •   Create two m:1 relationships, derive optionality
       •   Remove m:m relationship

                                with
                   A
                                           of      A/B COMBINATION

                  xxx

                        yyy
                   B                       of
                                with


3-36                Copyright © Oracle Corporation, 2002. All rights reserved.
Resolving m:1 Relationship


                                 external

                            classified
       PERSON               as
                                                         CUSTOMER
                                          classification
                                                         TYPE
                                                      of




                                       internal




3-37        Copyright © Oracle Corporation, 2002. All rights reserved.
Resolving m:1 Relationship


                                 external

       PERSON                                                  CUSTOMER
                                                               TYPE

                     with                                                in
                                             for                              with
                                               CLASSIFICATION

                                       internal




3-38        Copyright © Oracle Corporation, 2002. All rights reserved.
Normalization Rules

 Normal Form Rule                              Description

 First Normal Form                             All attributes are single valued.

 Second Normal Form (2NF)                      An attribute must be dependent upon
                                               entity’s entire unique identifier.

 Third Normal Form (3NF)                       No non-UID attribute can be dependent
                                               on another non-UID attribute.


   “A normalized entity-relationship data model automatically translates
   into a normalized relational database design”


   “Third normal form is the generally accepted goal for a database
   design that eliminated redundancy”


3-39                 Copyright © Oracle Corporation, 2002. All rights reserved.
First Normal Form in Data Modeling

                                USER
                                # Name
                                * Person Name
                                * Message Receive Date
                                o Message Subject
                                o MessageText

             All attributes must be single-valued.

       RECEIVED
       MESSAGE                received by               USER
       # Receive Date                                   # Name
       o Subject                       receiver         * Person Name
       o Text                                of




3-40             Copyright © Oracle Corporation, 2002. All rights reserved.
Second Normal Form in Data Modeling

   An attribute must be dependent upon its entity’s entire
   unique identifier.

         RECEIVED              including                   MESSAGE
         MESSAGE                                           # Id
         # User Name                     included          o Text
         * Receive Date                        in
         * Subject

         RECEIVED                                  MESSAGE
                                including
         MESSAGE                                   # Id
         # User Name                      included o Text
         * Receive Date                         in * Subject




3-41              Copyright © Oracle Corporation, 2002. All rights reserved.
Third Normal Form in Data Modeling
                                                 USER
                                                 # Name
                                                 * Person Name
                                                 * Password
                                                 * Server Id
                                                 * Server Name


       No non-UID attribute can be dependent upon another
       non-UID attribute.

        USER                  assigned         MAIL
        # Name                   to            SERVER
        * Person Name                          # Id
        * Password                   distribut * Name
                                     e mail to




3-42              Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       •   Relationships express how entities are connected.
       •   Initially relationships often seem to be of type
           m:m.
       •   Finally relationships are most often of type m:1.
       •   Relationships can be resolved into:
           – Two new relationships
           – One intersection entity
       •   Third Normal form is generally accepted standard.




3-43               Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Read the Relationship
       •   Find a Context
       •   Name the Intersection Entity
       •   Receipt
       •   Moonlight PO
       •   Price List
       •   EMail
       •   Holiday




3-44               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Read the Relationship

        ALU     of                                                BRY

                                                       with



        PUR     bazooned in                                       YOK

                                          bazooned by




        KLO     bilought in                                       HAR

                                          glazoed with




3-45       Copyright © Oracle Corporation, 2002. All rights reserved.
Find a Context (1)




3-46   Copyright © Oracle Corporation, 2002. All rights reserved.
Find a Context (2)




3-47   Copyright © Oracle Corporation, 2002. All rights reserved.
Find a Context (3)




3-48   Copyright © Oracle Corporation, 2002. All rights reserved.
Find a Context (4)




3-49   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Name the Intersection Entity


       PRODUCT           sold by                                       DEPARTMENT
                                                                       STORE
                                                      selling



       PERSON            crewing                                       SAILBOAT

                                                 crewed by



       INTERPRETER       fluent in                                     LANGUAGE

                                                spoken by




3-50             Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Receipt
            Served by: Dennis
            Till: 3 Dec 8, 4:35 pm
           -----------------------
            CAPPUCC M 3.60
                         * 2    7.20
            CREAM         .75
                         * 2    1.50
            APPLE PIE           3.50
            BLACKB MUF          4.50
                  SUB        16.70
                  tax 12%       2.00
                  TOTAL      18.70
                             =======
                  CASH         20.00
                  RETURN        1.30
           -----------------------
           Hope to serve you again
             @MOONLIGHT COFFEES
            25 Phillis Rd, Atlanta


3-51   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Moonlight PO

       •   All Moonlight Coffee employees work for a
           department such as “Global Pricing” or “HQ”, or for
           a shop. All employees are at the payroll of one of
           our country organizations. Jill, for example, works
           as a shop manager in London; Werner is a financial
           administrator working for Accounting and is located
           in Germany.
       •   All shops belong to one country organization (“the
           countries”). There is only one country organization
           per country. All countries and departments report to
           HQ, except HQ itself.
       •   Employees can work part time. Lynn has had an
           80% assignment for Product Development since the
           1st September. Before that she had a full-time
           position.


3-52                Copyright © Oracle Corporation, 2002. All rights reserved.
25 Phillis Road, Atlanta
         price list                                                            visit us at www.moonlight.com
                                         Practice: Price List
                                                    small         medium large
                            regular coffee         2.25      2.90              3.50
                            cappuccino             2.90      3.60              4.20
                            café latte             2.60      3.20              3.90
                            special coffee         3.10      3.70              4.40
                            espresso               2.25      2.90              3.50
                            coffee of the day      2.00      2.50              3.00
                            decaffeinated           .25       .50               .75          extra
                            black tea              2.25      2.90              3.50
                            infusions              2.60      3.20              3.90
                            herbal teas            2.90      3.60              4.20
                            tea of the day         2.00      2.50              3.00
                            decaffeinated           .25       .50               .75          extra
                            milk                   1.25      1.90              2.50
                            soft drinks            2.25      2.90              3.50
                            soda water             2.25      2.90              3.50
                            mineral water          2.90      3.60              4.20
       Sales Tax included




                            apple pie                                                        3.50
                            strawberry cheesecake                              3.50
       September 16




                            whole wheat oats muffin with almonds                             3.90
                            blackberry muffin                                                4.50
                            fruitcake                                                        4.50
                            cake of the day                                                  4.00
                            additional whipped cream                                          .75



3-54                                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: E-Mail
            FOLDER

                  containing
                  placed in
                                                            USER
       COMPOSITION       written by            author
                                                   of
                                                                         part
        MESSAGE          received by                                                       LIST
                                                                           of
                                           receiver                              consist
       OTHER                                     of                                 s of
       COMPOSITION
                                reply of
  containing      replied
                  to by
          with 5
       ATTACHMENT                       ATT. TYPE




3-55                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Holiday
       “Paul and I hiked in the USA. Eric and I hiked in France and
       we rented a car in the USA last year.”
                            COUNTRY              TRANSPORT
                            France               Boots
                            USA                  Boots
                            USA                  Car




                                                                                       RT
             CO                                         TRANSPORT
                      COUNTRY




                                                                                      O
           Fr U




                                                                             Ca ot SP
         US an NT
       US A ce RY




                                                                               Bo AN
                                                                            Bo r s
         A




                                                                                  TR
                       CO




                                                                                s
                     Er M




                                                                              ot
                                 COMPANION




                                                                            N
                  Er ic PA




                                                                           O
                Pa ic     NI



                                                                        NI
                             O


                                                              E r ic P A
                  ul           N
                                                                 Er M
                                                                   CO

                                                           P a ic
                                                              ul

3-56                 Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Normalize an ER Model
       ENROLLMENT                                                            COURSE
       grade code                                                            course number
       teacher number          for
                                                                             course name
       grade                                       completed                 teacher number
       description
                                                             with            department
       course name                                                           code
                     for                                                     department
                                                                             name
                 assigned                                                    teacher name

       STUDENT
       #* student id
          last name
          first name



3-57                   Copyright © Oracle Corporation, 2002. All rights reserved.
Constraints




Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Unique Identifiers
      •   Arcs
      •   Domains
      •   Various other constraints




4-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Rembrandt




4-3   Copyright © Oracle Corporation, 2002. All rights reserved.
4-4   Copyright © Oracle Corporation, 2002. All rights reserved.
Identification and Representation


                                                          G. Papini, please?

      EMPLOYEES
       Name Initials         Birthdate
      PAPINI   G.            02-FEB-1954
      HIDE     T.M.          11-JUN-1961
      PAPINI   G.            02-FEB-1945
      BAKER    S.J.T.        24-SEP-1958




4-5                     Copyright © Oracle Corporation, 2002. All rights reserved.
Unique Identifier Examples

                       JOB Name
      COMPUTER IN NETWORK IP Address
                TELEPHONE Country code,
                            Area code,
                            Telephone number
                 EMPLOYEE Employee number or
                            Name,
                            Initials,
                            Birth Date
                  MAIL LIST Name,
                            Owner


4-6            Copyright © Oracle Corporation, 2002. All rights reserved.
Unique Identifier



       Indicates Unique Identifier                 CUSTOMER
                                                   # Family Name
      ORDER                                        o Initials
                    by
      # Date                                       # Address
                         responsible               o Telephone
                                 for
                                          Indicates Unique Identifier




4-7         Copyright © Oracle Corporation, 2002. All rights reserved.
Unique Identifiers
                 USER
                 # Name

                       part of                  owner
                                                of

                  contains                      owned by
                                  MAIL LIST
                                  # Name



      ROOM              FLOOR                              HOTEL
      # No              # No                               # Name




4-8          Copyright © Oracle Corporation, 2002. All rights reserved.
Multiple Relationship UID

       USER                                                   USER
       # Name                                                 # Name

                          owner                            is                        owner
         part of                                                                     of
                          of                      referred to
       contains            owned by                                                  owned by
                LIST                                                             LIST
                # Name                                                           # Name

                                                                                     contains

                                                     referring
                                                                                     contained
                                                            to
                                                                                     in
                                                                LIST ITEM



4-10                Copyright © Oracle Corporation, 2002. All rights reserved.
Well-defined Unique Identifiers


       Z                         Q                               P
       # Z1                      # Q1                            # P1
       o Z2
       o Z3      Y
       # Z4      # Y1                          K
                 # Y2
                                                   L
                                                   # L1
       X
       # X1                                        M
                                                   # M1


       XY                         R                      T                    S
                                  # R1                   # T1



4-12             Copyright © Oracle Corporation, 2002. All rights reserved.
Incorrect Unique Identifiers

                 L                   F                                     G
       K         # L1                                                      # G1
                                     # F1
       # K1


                                                P                                 R
                                                # P1                              # R1
       KL



                 T
                 o # T1                         Q
                                                # Q1
         G                       H
         # G1



4-13              Copyright © Oracle Corporation, 2002. All rights reserved.
Information-Bearing Codes

                                         54.0.093.81
          Product Group
          In Production?
                 Factory
       Sequence Number


        PRODUCT                                 PRODUCT GROUP
                                                # Code
        # Code
        * In Production?
        * Sequence No                           FACTORY
                                                # Id




4-14         Copyright © Oracle Corporation, 2002. All rights reserved.
Arcs

       Contract               “A contract consists of contract
                              components; these are standard
       Conditions   Std?      conditions or customized conditions”
       1
       2
       3
       4
       5                            CONTRACT          STANDARD basis for
       6
                                                      CONDITION        based
                                              consists in              on
                                              of                CUSTOMIZED
                                                                CONDITION    Arc
                                                                    in
            Indicates
         relationship            part of
                in arc                     referring to referring to
                                         CONTRACT COMPONENT



4-15                       Copyright © Oracle Corporation, 2002. All rights reserved.
Exclusive Arc



                   USER          owner
                                    of
                                         owned
                                            by
                                      LIST
       is referred to container                    is referred
                             of                    to

                      contained
        referring to         in                      referring to
                   LIST ITEM




4-16           Copyright © Oracle Corporation, 2002. All rights reserved.
Possible Arc Constructs




4-17   Copyright © Oracle Corporation, 2002. All rights reserved.
Some Incorrect Arc Constructs


       •   The arc “belongs” to one
           entity

       •   Relationships in the arc
           must be of the same
           optionality
       •   Arcs must contain at least
           two relationships


                 An arc may be correct, but is
                 quite difficult to implement ...


4-18                Copyright © Oracle Corporation, 2002. All rights reserved.
Some Incorrect Arc Constructs
       Number of Valid Relationships
       in Arc Per Entity Instance                    Minimum                     Maximum

                                   }n                        n                      n



                                   }n                        1                      1



                                   }n                        0                      n



                                   }n                        0                      1



4-19                Copyright © Oracle Corporation, 2002. All rights reserved.
Arc or Subtype


              USER                                                    ADDRESS
                      owner                                                        owner
                         of                                             USER          of
                               owned                                                      owned
                                  by                                                         by
                           LIST                                                      LIST
       is referred                       is referred                           contains
                to contains              to
        referring                       referring                 is referred
        to                                     to                          to
                          in                                    referring to    in
              LIST ITEM                                                LIST ITEM




4-20                  Copyright © Oracle Corporation, 2002. All rights reserved.
Arc and Subtypes

                   A                                        A
               1                                    2


                   R
                                Q                            P          Q
                   P
                                                                                    A   C
                                              A            C                        B
           A       C                           B
           B
       3                              4                                     5

                                              R                                     R
                                                           Q                            Q
           P       Q                            P                                   P



4-21                   Copyright © Oracle Corporation, 2002. All rights reserved.
Subtypes Hide Relationships in Arc


       •   Every A                            •     Every A must
           is either a B or a C                     be a B or be a C
       •   Every B is an A                    •     Every B must be an A
       •   Every C is an A                    •     Every C must be an A

           A                                         A
                                                                                is B
               B                                                           is

                                                                           is        C
           C
                                                                                is



4-22               Copyright © Oracle Corporation, 2002. All rights reserved.
Value sets
                                                               CODE TYPE
                                                               # Id
       YESNO             A                                     * Name
       # Code                                                  * Max Length
       * Description                                    B        of
                                                               Description
                       GENDER
                       # Code
                       * Description                               CODE
                                                                   # Code
       WEEKDAY                                                     * Description
       # Code
       * Description




4-23            Copyright © Oracle Corporation, 2002. All rights reserved.
Other Constraints: Range Check



          EMPLOYEE                 JOB
          * Name                   * Title
          * Address                * Minimum Salary                     between
           with                    * Maximum Salary
                                            of
                      for                   referring to
              EMPLOYMENT
              * Start Date
              o End Date

              * Salary




4-24       Copyright © Oracle Corporation, 2002. All rights reserved.
Other Constraints: State Value Transition



                                                 Possible




                                                                                  Wid
                                                                                  Mar

                                                                                  Div
                                                                   to




                                                                                  Sin



                                                                                  DP
                                                 Marital Status
       EMPLOYEE
                                                 Transitions    fro
       * Name
       * Address                                        Single   m
       * Current Marital Status                        Married
                                                      Widowed
                                                      Divorced
                                                Domestic Partnership




4-25                 Copyright © Oracle Corporation, 2002. All rights reserved.
Conditional Relationship


       CONTRACT
       # Id
       * Standard Indicator         STANDARD basis for
                                    CONDITION       based
          consists                                  on
                                      in
                of                          CUSTOMIZED
                                            CONDITION
                                                 in

            part of
                         referring to                                 referring to
                      CONTRACT COMPONENT




4-26            Copyright © Oracle Corporation, 2002. All rights reserved.
Boundaries

                                                                  EXTERNAL
                               unrelated entity                   # Id
                                                                  * Description
                                                                  * Value

       and possible implementation
       EXTERNALS
         Id Description                                                           Value
         1   Value added tax %                                                      15
         2   Maximum available Space per Mail User in Mbyte                        500
         3   Maximum level of Nested Mail Folders                                    3
         4   Maximum level of Nested Mail Lists                                     16




4-28                 Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       •   Identification
           – Can be a real problem in the real world
           – Models cannot overcome this
       •   Entities must have at least one Unique Identifier
       •   Unique Identifiers consist of attributes or
           relationships or both
       •   Arcs
       •   Many types of constraint are not represented
           in ER model




4-29                Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Identification Please
       •   Identification
       •   Moonlight UID
       •   Tables
       •   Modeling Constraints




4-30               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Identification Please


       •   A city
       •   A contact person for a customer
       •   A train
       •   A road
       •   A financial transaction
       •   An Academy Award (Oscar)
       •   A painting
       •   A T.V. show




4-31               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Identification 1




           A              B                  C
           # Xx           * Yy               # Zz




4-32   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Identification 2



       A                                                                B
                                     C                                  # Id
                                     # Code




4-33       Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Identification 3



       A
       * Xx
       B               C                       with                        D
       # Yy            # Zz                                                # Id
                                                                 of




4-34          Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Identification 4




       P                                        Q
                                                # Id




4-35   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Identification 5



                      P
                      # Name




4-36   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Identification 6

       PERSON
                                            FEMALE
       MALE               son of            # Name
       # Seqno                    mother of # Birth Date

               partner in                         partner in




                with husband                      with wife
       MARRIAGE
       # Start Date




4-37     Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Moonlight UID

          reporting to           report of
       DEPARTMENT                       report
                              HQ
                                        of
       OTHER                                   reporting to
       DEPARTMENT                         COUNTRY          in                            COUNTRY
                                          ORGANIZATION
           with                                                                     of
                                  with           with                                     with
            EMPLOYEE                                      belongs to                             in
                     with                    SHOP
                of       for for
                      PAYROLL                        with
                      ENTRY
           to  for                                   to
         ASSIGNMENT                                            as                         JOB
                                                                                     in

4-38                   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Table 1


       •   “In a relational database system, data is stored in
           tables. Tables of a database user must have a
           unique name. A table must have at least one
           column. A column has a unique name within the
           table. A column must have a data type and may be
           Not Null.
       •   Tables can have one primary key and any number
           of unique keys. A key contains one or more
           columns of the table. A column can be part of
           more than one key.




4-39               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Table 1


       A table can have foreign keys. A foreign key always
       connects one table with another. A foreign key
       consists of one or more columns of the one table that
       refers to key columns of the other table.
       “The sequence of columns within the key and foreign
       key is important.”




4-40                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Table 2


                       from          with
       FOREIGN KEY                           TABLE                            KEY
       # Name                                # Name                           # Name
                                                              with
                         to                                                       PRIMARY
                          referenced                                    of
        with                      in                with                          UNIQUE

                                                                                   with

             for                              in
                         from         in COLUMN                                    for
       ASSOCIATION                                                in         USAGE
       # Seqno                           # Name
                                      in * Data Type                      of # Seqno
                          to             o Not Null




4-41                 Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Constraints 1




                EMPLOYEE
                # Name                    managed by



           manager of




4-42   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Constraints 2



                                 owned
       USER                         by LIST
                        owner of
       # Name                          # Name

                                owned
                       owner of    by NICKNAME
                                      # Alias




4-43   Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Constraints 3


            with
       subfolder                                           USER
                                                           # Name
         FOLDER                 within
         Name                                 owner
                                                 of
                                owned
                                by




4-44       Copyright © Oracle Corporation, 2002. All rights reserved.
Modeling Change




Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Date and time
      •   Modeling change over time
      •   Prices change
      •   Journaling




5-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Change and Time


      •   Every update means loss of information.
      •   Time in your model makes the model more
          complex.
      •   There are often complex join conditions.
      •   Users can work in advance.
      •   When do you model date/time as an entity?
      •   What constraints do arise?
      •   How do you handle journaling?




5-3               Copyright © Oracle Corporation, 2002. All rights reserved.
Entity DAY

      DAY
      # Date
      * Public Holiday Indicator

                first day of

                starts on

      TASK ASSIGNMENT for                              TASK
      * Duration in Hours                           in # Id

                                     of                   EMPLOYEE
                                                          # Name
                                                with




5-4          Copyright © Oracle Corporation, 2002. All rights reserved.
Modeling Change


      EMPLOYEE                     COUNTRY
      # Id                         # Name

             of                                 in


                   for                    as
       ASSIGNMENT
       # Start Date
       o End Date




5-6   Copyright © Oracle Corporation, 2002. All rights reserved.
Even a Country Has a Life Cycle


                                       COUNTRY
                                       # Name
                                       # Start Date
          EMPLOYEE                     * End Date
          # Id

                 of                                 in
                                                                life cycle
                                                                attributes
                       for                    as
           ASSIGNMENT
           # Start Date
           o End Date




5-8       Copyright © Oracle Corporation, 2002. All rights reserved.
Products and Prices


                PRODUCT
                # Id
                * Name
                             with
                                                    PRICE =
                             of                     PRICED PRODUCT=
                                                    HISTORICAL PRICE
       PRICE
       * Price in $
       # Start date
       o End Date




5-10   Copyright © Oracle Corporation, 2002. All rights reserved.
What Price to Pay?


                                                                    ORDER HEADER
               PRODUCT               referred                       # Id
               # Id                        by                       * Order Date
               * Name




                                                        en
                                                                                   with




                                                        e
                         with




                                                     tw
                                                  be
                                                                                   of
                          of
                                                                        ORDER ITEM
       PRICE
                                                                        * Quantity Ordered
       * Price in $
                                                        referring
       # Start date
       o End Date
                                                               to




5-11                  Copyright © Oracle Corporation, 2002. All rights reserved.
Price List Search

                                      between
       PRICE LIST
       # Id                                                             ORDER HEADER
       * Start Date             PRODUCT                                 # Id
       o End Date               # Id                                    * Order Date
                                * Name                  referred                   with
              with                         with               by


               on                                                                  of
                                    of
                                                                    ORDER ITEM
        PRICED PRODUCT
                                                                    * Quantity
        * Price in $                                      referring   Ordered
                                                                 to




5-12                  Copyright © Oracle Corporation, 2002. All rights reserved.
Order for Priced Products



       PRICE LIST
       # Id                                                              ORDER HEADER
       * Start Date              PRODUCT                                 # Id
       o End Date                # Id                                    * Order Date
                                 * Name
                                                                                    with
              with                          with

               on                                                                   of
                                     of
                                                   referred by       ORDER ITEM
        PRICED PRODUCT
                                                                     * Quantity
        * Price in $
                                                           referring   Ordered
                                                                  to




5-13                   Copyright © Oracle Corporation, 2002. All rights reserved.
Negotiated Prices



       PRICE LIST
       # Id                                                             ORDER HEADER
       * Start Date             PRODUCT                                 # Id
       o End Date               # Id                                    * Order Date
                                * Name
                                                      referred by                  with
              with                         with

               on                                                            of
                                    of
                                                                    ORDER ITEM
        PRICED PRODUCT
                                                                    * Quantity Ordered
        * Price in $                                      referring * Negotiated Price
                                                                 to




5-14                  Copyright © Oracle Corporation, 2002. All rights reserved.
Current Prices

        PRODUCT                         PRODUCT                              PRODUCT
        # Id                            # Id                                 # Id
        * Name                          * Name                               * Name
        * Current Price                 * Current Price
                                                                                   with
            with                                    with
            old

             of                                       of                            of
       PRICE                            PRICE                              PRICE
       * Price in $                     * Price in $                       * Price in $
       # Start Date                     # Start Date                       # Start date
       * End Date                       o End Date                         o End Date
                                                                           o Current Indicator




5-16                  Copyright © Oracle Corporation, 2002. All rights reserved.
Journaling


                                                                 by
                                                            PAYMENT                to
        by                                                  o Date Paid

       PAYMENT                                              * Amount in $
                             to
       *Date Paid
       *Amount in $                                                        with

                                                                           of
                                                           AMOUNT
                                                           MODIFICATION
                                                           * Old Amount in $
                                                           * Modified by
                                                           * Date Modification




5-17                  Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       •   Consider the need for keeping old values
       •   Time in your model is complicated:
           – Implicit versions
           – References
       •   Journaling




5-19               Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Shift
       •   Strawberry Wafer
       •   Bundles
       •   Product Structure




5-20               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Shift

       Museumplein, Amsterdam, March 21
       Shift                1         2         3           4         5

       Mon              6:30 11:30 16:00 20:30                        -
                       11:30 16:00 20:30 23:00
                        7:00 11:30 16:00 20:30                        -
       Tue
                       11:30 16:00 20:30 23:00
                        7:00 11:30 16:00 20:30                        -
       Wed
                       11:30 16:00 20:30 23:00
                        7:00 11:30 16:00 20:30                        -
       Thu             11:30 16:00 20:30 23:00
                        7:00 11:30 16:00 20:30                        -
       Fri             11:30 16:00 20:30 24:00
                         8:00 11:30 15:00 18:00 21:00
       Sat/Sun 11:30 15:00 18:00 21:00 24:00



5-21         Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Strawberry Wafer


       •   Prices are at the same level within a country;
           prices are determined by the Global Pricing
           Department. Usually the prices for regular, global
           products are re-established once a year.
       •   Prices and availability for local specialties are
           determined by the individual shops. For example,
           the famous Norwegian Vafler med Jordbær (a
           delicious wafer with fresh strawberries) is only
           available in summer. Its price depends on the
           current local market price of fresh strawberries.




5-22               Copyright © Oracle Corporation, 2002. All rights reserved.
de Keyzer, Keyzerlei 15, Antwerpen
                              prijslijst                             bezoekt ons op ‘t Web: www.moonlight.com

                                                                           klein         middel        groot
                                                gewone koffie              60             90           120
                                                cappuccino                 90            110           140
       Practice: Price list


                                                koffie verkeerd            75            100           130
                                                speciale koffies           99            125           150
                                                espresso                   60             95           110
                                                koffie van de dag          45             75           100
                                                caffeine vrij               5             10             15    toeslag
                                                zwarte thees               60            100           120
                                                vruchten thees             75            110           130
                                                kruiden thees              80            120           140
                                                dag thee                   50             85           100
                                                caffeine vrij               5             10             15    toeslag
                                                frisdranken                60            100            130
                                                diverse sodas              60            100            130
                                                mineraal water             75            120            140
                                                appel taart                                                      180
                              inclusief BTW
                              16 September




                                                brusselse wafel                                                  150
                                                portie chocolade bonbons                                         150
                                                koekje van eigen deeg                                            120
                                                portie slagroom                                                   30


5-23                                          Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Bundles(1)

   A SweetTreat(tm) consists of a large soft drink plus
   cake of the day.
   A BigBox(tm) consist of a large coffee of the day plus
   two cakes of the day.
   A SuperSweetTreat(tm) consists of a SweetTreat(tm)
   plus whipped cream (on the cake).
   A FamilyFeast(tm) consists of two BigBoxes(tm) plus
   two SweetTreats™ plus a small surprise.

   A DecafPunch(tm) consists of a regular decaffeinated
   coffee or a regular decaffeinated tea, plus a blackberry
   muffin.


5-24            Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Bundles(2)

            PRODUCT GROUP
            # Name

                              classification
                              for
           classified
                   as
              PRODUCT
              # Id
              * Name




5-25   Copyright © Oracle Corporation, 2002. All rights reserved.
+ Products
                                         + Drinks
                                               + Coffees
Practice: Product Structure                           Regular
                                                      Cappuccino
                                                      Café Latte
                                                      + Special Coffee
                                               Teas
                                                      + Black
                                                             Chinese
                                                             Indian
                                                             English
                                                      + Infusions
                                                      + Herbal
                                               Soft drinks
                                                      Juices
                                                             Orange
                                                             Grape
                                                      + Waters
                                                      + Sodas
                                               + Dairy Products
                                         +Foods
                                               + Pastry
                                               + Candy Bars
                                               + Local Specialties
                                         +Non Foods
                                               Merchandise
                                                      CDs
                                                      + Stationary
                                               Other
                                                      + Tickets
                                                      + Art



5-26         Copyright © Oracle Corporation, 2002. All rights reserved.
Advanced Modeling Topics




 Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Patterns
      •   Drawing conventions
      •   Generic modeling




6-2              Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns


      •   Similar structure
      •   Similar rules and constraints?




6-3               Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns: Master–Detail


      •   Characteristic: consists of
          An instance of B only exists in the context of an A
      •   Metaphor: Master – Detail
                          A



                                         consists
                                         of
                            part of
                        B




6-5                Copyright © Oracle Corporation, 2002. All rights reserved.
Pattern: Basket
                                                                                         X
                                                                                     A   Y
                                                                                         Z
      •   Characteristic:                                                            B
          container for various types of items
      •   Items may be of different types
      •   Metaphor: Shopping Basket
           A

                                                           X

                        consists
                        of                                          Y
              part of
          B                                                                 Z


6-6                     Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns: Hierarchy


      •   Characteristic: manager of / subordinate of
      •   Additional constraints to guard hierarchical nature
      •   Metaphor: Mother–Child




                    A
                    # Id




6-8               Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns: Chain


       •   Characteristic: preceded by / followed by
       •   Sequence is important
       •   Metaphor: Elephants
           preceded
                 by                                                                    B
            BEAD
            # Id
                              followed                                             CHAIN
                              by
                                     A


                                                                                   BEAD
                                                                                   # Seqno


6-10                  Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns: Network

       •   Characteristic: pairs
           Every A can be connected to every A
           (sometimes: to every other A)
       •   Metaphor: Web Document with Hyperlinks
                                                                     A
                                                               A
             A




6-11              Copyright © Oracle Corporation, 2002. All rights reserved.
6-12   Copyright © Oracle Corporation, 2002. All rights reserved.
Bill of Material

                                   product of
          PRODUCT                                      COMPOSITION
          # Code            with                       * Quantity Needed
                                         part in
                             in



       PRODUCTS                      COMPOSITIONS
        Code    Name                    Prod_code            Part_code Quantity
       914.53   AAAAAAAA                    854.01               604.18       1
       914.54   AAA                         854.01               604.19       1
       914.55   BBBBBBBB                    854.01               914.54       2
       914.56   B                           914.54               914.55       1
                CCCCCCC                     914.54               914.56       1
                DDDDD                       934.76               915.12       3


6-13             Copyright © Oracle Corporation, 2002. All rights reserved.
Bill of Material - Example
       854.01




                                                 914.54                       914.54




                                                604.18                           914.55

                                                                                 914.56
                                             604.19




6-14             Copyright © Oracle Corporation, 2002. All rights reserved.
Symmetric Relationship



       GROUP                                       Group_id              S
       # Id                                               1              S1
           consists of 2                                  1              S2
                                                          2              S3
           in                                             2              S4
       S                                                  3              S5
                                                          3              S6




6-15        Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns: Roles


       •   Characteristic: is / is 1:m (or 1:1) relationships
       •   Metaphor: Person–Many Hats
           (not necessarily concurrent...)


             A                          P


                                        Q




6-16                Copyright © Oracle Corporation, 2002. All rights reserved.
Roles
                                                                  PERSON ROLE
                                                                         TYPE


                       roles                                          ROLE



       PERSON        PRESIDENT                          COUNTRY

                appointing
                          appointed
                          by
                     MINISTER                           DEPARTMENT


                     PARTY                               PARTY
                     LEADER




6-17             Copyright © Oracle Corporation, 2002. All rights reserved.
Fan Trap


       •   Characteristic: ring of m:m related entities
       •   Metaphor: ABC Combination



             A        B

                                   A                             B
                 C
                                                 AB
                                           AC         BC


                                                  C



6-18                 Copyright © Oracle Corporation, 2002. All rights reserved.
Fan Trap Resolved



       A        B         C            A          B         C              A        B         C



           AB                                                                            BC



                    ABC                         ABC                                ABC


       AB functions as                                                    BC functions as
       list of values                                                     list of values



6-19                  Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns: Data Warehouse


       •   Characteristic: multidimensional, many, many
           detail instances
       •   Metaphor: star model
           Stars may be strangely shaped:
       •   Snowflake model
                                                                        July
                   B                C


               A          X               D


                    F               E



6-20                Copyright © Oracle Corporation, 2002. All rights reserved.
Drawing Conventions


                                                                 high volumes




                high volumes




       Not important which convention you choose,
       as long as you follow one of them


6-21              Copyright © Oracle Corporation, 2002. All rights reserved.
Use Conventions Sensibly




       But:
       Readability first



6-22                Copyright © Oracle Corporation, 2002. All rights reserved.
Model Readability

                       B                                         A               B
             A
                                   C


                              E                                      C

              D
                                   F                                                 E
                                                                 D

       •   Takes space
       •   Subject to taste
                                                                           F



6-23                Copyright © Oracle Corporation, 2002. All rights reserved.
Generic Modeling
              MANUFACTURER                          MANUFACTURER              ARTICLE
              * Name                                * Name                    TYPE




       FILM                                                           ARTICLE
       * AsaTRIPOD                                                    o Weight
            * Height
                  LENS                                                o Focal Distance
                        CAMERA                                        o Height
                  * Focal
                        BODY                                          o Asa Number
                    Distance
                        * Weight                                      o ...




6-24            Copyright © Oracle Corporation, 2002. All rights reserved.
Generic Modeling


        ARTICLE TYPE
                                               ARTICLE
        * Definition Prop1
                                               o Property1
        o Definition Prop2
                                               o Property2
        o Definition Prop3
                                               o Property3
        o Definition Prop4
                                               o Property4
        ...
                                               o Property5
                                               o Property6
                                               o Property7
       MANUFACTURER
                                               o Property8
       * Name




6-25      Copyright © Oracle Corporation, 2002. All rights reserved.
Generic Model

          ARTICLE TYPE




         ARTICLE                       PROPERTY




          ARTICLE PROPERTY VALUE
          o Value




6-26   Copyright © Oracle Corporation, 2002. All rights reserved.
Generic


       having some kind of
       relationship with

                        THING
                                               having some kind of
                                               relationship with




6-27    Copyright © Oracle Corporation, 2002. All rights reserved.
More Generic



        THING
                                      ASSOCIATION




6-28   Copyright © Oracle Corporation, 2002. All rights reserved.
More Generic Plus



        THING
        TYPE                          ASSOCIATION
                                      TYPE




        THING
                                      ASSOCIATION




6-29   Copyright © Oracle Corporation, 2002. All rights reserved.
Most Generic?

       THING TYPE                                       ASSOCIATION
                                                        TYPE




                           THING
                                                          ASSOCIATION
       PROPERTY




       THING PROPERTY VALUE




6-30         Copyright © Oracle Corporation, 2002. All rights reserved.
Best of Two Worlds



                                                               ‘generic’
       CUSTOMER

                                                        ARTICLE TYPE

       ORDER HEADER

                                                         ARTICLE                  PROPERTY

       ORDER ITEM

   ‘down to earth’
                                                         ARTICLE PROPERTY VALUE




6-31                 Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       Patterns
        • Show similarities
        • Invent your wheel only once
       Generic models
        • Reduce the number of entities dramatically
        • Are more complex to implement
        • Are very flexible
        • Are usually the best choice in unstable situations




6-32               Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Patterns
       •   Data Warehouse
       •   Argos and Erats
       •   Synonym




6-33               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Patterns


       •   Model of moves in a chess game
       •   Model of tenders (quotations)
       •   Model of recipes
       •   Model of all people involved in college: students,
           teachers, parents, …
       •   Rentals in a video shop
       •   Model of phases in a process




6-34                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Data Warehouse


       •   What is the sales volume in $ of coffee last month
           compared with the coffee sales volume same
           month last year?
       •   What is the sales volume in $ of coffee per head in
           Japan compared with the average coffee sales
           volume in the Moonlight countries around the
           world?
       •   What is the growth of the sales volume in $ of
           coffee in Sweden compared with the growth of
           sales volume of all products in the same
           geographical area? What is the growth in local
           currency?


6-35               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Data Warehouse


       •   What was the total sales volume in $ of coffee last
           month, compared with the total coffee sales
           volume in the same month last year, for the shops
           that have been open for at least 18 months?
       •   What is the growth of the sales volume in $ of
           nonfoods compared to that of foods?
       •   What is the best day of the week for total sales in
           the various countries? How is that related to the
           average? Is the best day of the week dependent
           on the type of location?




6-36                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Data Warehouse


       •   What products are most profitable per country?
           Globally?
       •   Does the service level (#employees per 1000 items
           sold) have influence on sales?




6-37               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Argos and Erats


       Erats have names that are unique. Erats can have
       argos. Argos have names as well. The name of an argo
       must be unique within the erat it belongs to. Erats
       mutually have rondels. There are only a few different
       types of rondels. Erats can have one or more ubins. A
       ubin always consists of one or more argos of the erat,
       one or more rondels of the erat, or combinations of the
       two.




6-38                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Synonym


       practice - exercise
       order - command
       entity - being
       order - sequence
       order - arrangement
       command - demand




6-39              Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping the Entity Model




 Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Why use design modeling?
      •   Introduction to the components:
          – Tables
          – Columns
          – Constraints
      •   Basic Mapping
      •   Complex mapping




7-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Why Create a Data Design Model?


      •   Closer to the implementation solution
      •   Facilitates discussion
      •   Ideal model can be adapted to an RDBMS model
      •   Sound basis for physical database design




7-3               Copyright © Oracle Corporation, 2002. All rights reserved.
Presenting Tables
       Table: EMPLOYEES

                              columns

                Id    Name   Address       Birth_date Dpt_id
                126   PAGE   12, OXFORD ST   03-03-66     10
       rows     349   PAPINI 53, HAYES AVE   10-08-77     20
                785   GARRET                 08-12-55     10

      primary key                        unique key                                foreign key
          column                          column                                   column

                                                     EMPLOYEES (EPE)
                                                     pk * Id
       Table diagram: EMPLOYEES
                                                     uk1 * Name
                                                         o Address                    foreign
                                                     uk1 * Birth_date                     key
                                                     fk * Dpt_id


7-4                   Copyright © Oracle Corporation, 2002. All rights reserved.
Transformation Process
                     Conceptual Model




                      Relational Model



7-6   Copyright © Oracle Corporation, 2002. All rights reserved.
Terminology Mapping

             ANALYSIS                                  DESIGN

                ER Model                                Physical Design


                     Entity                            Table
                 Attribute                             Column

              Primary UID                              Primary Key

            Secondary UID                              Unique Key

              Relationship                             Foreign Key

      Business Constraints                             Check Constraints




7-7              Copyright © Oracle Corporation, 2002. All rights reserved.
General Naming Topics


      Decide on a convention for:
       • Table names
       • Special characters (%, *, #, -, space, …)
       • Table short names
       • Column names
       • Primary and Unique Key Constraint names
       • Foreign Key Constraint names
       • Foreign Key Column names




7-8               Copyright © Oracle Corporation, 2002. All rights reserved.
Naming Restrictions with Oracle


       •   Table and column names:
           – Must start with a letter
           – May contain up to 30 alphanumeric characters
           – Cannot contain space or some special characters
             such as “!”
       •   Table names must be unique within a schema
       •   Column names must be unique within a table




7-11               Copyright © Oracle Corporation, 2002. All rights reserved.
Basic Mapping for Entities


       1 - Entities


                                               Table Name: EMPLOYEES
                                               Short Name: EPE

                                                   EMPLOYEES (EPE)
             EMPLOYEE




7-12             Copyright © Oracle Corporation, 2002. All rights reserved.
Basic Mapping for Attributes


       1 - Entities
       2 - Attributes
                                               Table Name: EMPLOYEES
                                               Short Name: EPE

                                                   EMPLOYEES (EPE)
             EMPLOYEE
             # Id                                         *   Id
             * Name                                       *   Name
             o Address                                    o   Address
             * Birth Date                                 *   Birth_date




7-13             Copyright © Oracle Corporation, 2002. All rights reserved.
Basic Mapping
                       for Unique Identifiers

        1 - Entities
        2 - Attributes
        3 - Unique identifiers                  Table Name: EMPLOYEES
                                                Short Name: EPE

  Primary                                           EMPLOYEES (EPE)
              EMPLOYEE
  UID         # Id                                 pk * Id
              * Name                               uk1 * Name
              o Address                                o Address
                                                   uk1 * Birth_date
              * Birth Date
  Secondary
  UID




7-14              Copyright © Oracle Corporation, 2002. All rights reserved.
Rules for Relationships

          EMPLOYEE
          # Id                                                     DEPARTMENT
          * Name                                                   # Id
          o Address                                                * Name
          * Birth Date

       fk2 =
       epe_epe_fk
       EMPLOYEES (EPE)
       pk * Id
          * Name
                                                               DEPARTMENTS (DPT)
       fk1 * Dpt_id                                  pk * Id
       fk2 o Epe_id                 fk1 = epe_dpt_fk uk * Name




7-16                Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping 1:m Relationships

                                                             XS



                                                             fk       o Y_id




                                                             XS



                                                             fk       *   Y_id




7-17     Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping Barred and Nontransferable
                   Relationships

        X                                                           Y
        # Id
        * C1                                                         # Id
                                                                     * C2




       XS (X)                                                   YS (Y)

       pk   *   Id                      fk = y_x_fk              pk     *         Id
            *   C1                                               pk, fk *         X_id
                                                                        *         C2




7-19                 Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping Cascade Barred Relationships

          A                     B                          C                          D
          # Id                  # Id                       # Id                       # Id
          * C1                  * C2                       * C3                       * C4




        AS (A)         BS (B)                    CS (C)                            DS (D)
       pk * Id        pk    * Id                pk    *       Id               pk      *    Id
            * C1            * C2                      *       C3                       *    C4
                      fk,pk * A_id              fk,pk *       B_id             fk      *    C_id
                                                fk,pk *       B_a_id           fk      *    C_b_id
        fk = b_a_fk
                                                                               fk      *    C_a_id
                            fk = c_b_fk
                                                         fk = d_c_fk


7-20                  Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping m:m Relationships



        X                                                                        Y
        # Id                                                                     # Id
        * C1                                                                     * C2




       XS                                                                        YS

       pk *    Id                                                                pk *   Id
          *    C1                       X_YS                                        *   C2

                                      pk,fk1 * X_id
                                      pk,fk2 * Y_id
            fk1 = xy_x_fk                                            fk2 = xy_y_fk


7-21                Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping 1:1 Relationships

            X                                                     Y
            # Id                                                  # Id
            * C1                                                  * C2




                                                                  YS (Y)
             XS (X)
                                          fk = y_x_fk            pk    * Id
            pk *      Id                                               * C2
               *      C1                                         fk,uk * X_id



       Choose which side for FK for other cardinalities



7-22            Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping Arcs
                            Explicit implementation
                                                                            USER
                                                                            # Id
       LIST ITEM                                                            * Name

                                                                             ALIAS
                                                                             # Id

                   fk1 = lim_x_fk
                                                                    USERS (USR)
       LIST_ITEMS (LIM)
                                       fk2 = lim_usr_fk pk *                     Id
       pk,fk1 * X_id                                       *                     Name
       fk2    o Usr_id
       fk3    o Als_id                                              ALIASES (ALS)
                                 fk3 = lim_als_fk pk *                           Id
                   + check constraint


7-23                Copyright © Oracle Corporation, 2002. All rights reserved.
Mapping Subtypes

       Variety of implementation choices


         P                                K
         # Id                             # Id
         * Xxx

         Q
                                        A                 •     Supertype
         o Yyy                          # Id              •     Subtype
                                                          •     Both Supertype
         R                               B                      and Subtype (“Arc”)
         * Zzz                           # Id



           L
           # Id


7-25              Copyright © Oracle Corporation, 2002. All rights reserved.
Supertype Implementation

       P                       K
       # Id                    # Id
       * Xxx
                              A                                 PS (P)
       Q
       o Yyy                  # Id
                                                                pk       *    Id
                                                                         *    Xxx
       R                      B                                          o    Yyy
       * Zzz                  # Id                                       o    Zzz
                                                                fk1      *    A_id
                        •     Mandatory                         fk2      o    B_id
                              discriminator                              *    P_type
         L
         # Id                 column
                        •     Additional
                              constraints



7-27             Copyright © Oracle Corporation, 2002. All rights reserved.
Subtype Implementation

       P                      K                  QS (Q)
       # Id                   # Id               pk     * Id                 q_a_fk
       * Xxx                                            * Xxx
                             A                          o Yyy
       Q                                         fk     * A_id
       o Yyy                 # Id

       R                     B
       * Zzz                 # Id                RS (R)
                                                                              fk1=r_a_fk
                                                 pk     * Id
                                                        * Xxx
                                                        * Zzz                fk2=r_b_fk
         L
                                                 fk1    * A_id
         # Id                                    fk2    * B_id




7-29            Copyright © Oracle Corporation, 2002. All rights reserved.
Supertype and Subtype (Arc)
                      Implementation
                                                         PS (P)
       P                         K
       # Id                                             pk     *          Id
                                 # Id
       * Xxx                                                   *          Xxx
                                                        fk1,uk o          Q_id           fk3 =
                                A                                         R_id           p_a_fk
       Q                                                1      o
       o Yyy                    # Id                    fk2,uk *          A_id
                                                        2
                                                        fk3
       R                        B
       * Zzz                    # Id                fk1 =                       fk2 =
                                                  p_q_fk                        p_r_fk

                                          QS (Q)                 RS (R)
         L                                pk      * Id           pk * Id                 r_b_fk
         # Id                                     o Yyy               * Zzz
                                                                 fk   * B_id




7-31               Copyright © Oracle Corporation, 2002. All rights reserved.
P       Storage Implication
       Q

       R




                                                   1 table

                                                   2 tables

                                                   3 tables




7-33       Copyright © Oracle Corporation, 2002. All rights reserved.
Storage Implication
                     Supertype Implementation
                discriminator column
                    cols cols        cols
                                                                             P
                      P     Q         R

                                                                                Q
       rows Q
                                                                                 R



       rows R




7-34                   Copyright © Oracle Corporation, 2002. All rights reserved.
Storage Implication
                  Subtype Implementation



                cols            cols                                cols        cols
                 P               R                                   P           Q


                                                    rows Q

       rows R




7-35               Copyright © Oracle Corporation, 2002. All rights reserved.
Storage Implication
                Supertype and Subtype (Arc)
                      Implementation
                cols
                 P

                                    fk cols                       fk           cols
       rows Q                           Q                                       R


                       rows Q

       rows R                                         rows R




7-36              Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       •   Relational concepts
       •   Naming rules convention
       •   Basic mapping
       •   Complex mapping




7-37               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice


       •   Mapping basic Entities, Attributes and
           Relationships
       •   Mapping Supertype
       •   Quality Check
           Subtype Implementation
       •   Quality Check
           Supertype and Subtype (Arc) Implementation
       •   Mapping Primary Keys and Columns




7-38               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Mapping basic Entities,
             Attributes and Relationships

       EMPLOYEE
                                       assigned                       DEPARTMENT
       # Id                            to
       * First Name                                                   # Id
       * Last Name                                                    * Name
       * Date of Birth                         responsible            * Location
       o Home Phone                                    for


 EMPLOYEES (             )                                  DEPARTMENTS (          )




7-39               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Mapping Supertype

           reporting to            report of
       DEPARTMENT             report
       # Id           HQ                COUNTRY
                              of
       * Name         *                 ORGANIZATION
                      Address reporting # Tax Id Number
       * Head Count                  to
            OTHER DEPARTMENT



       DEPARTMENTS (                )




7-40            Copyright © Oracle Corporation, 2002. All rights reserved.
Partial ER model Moonlight
       COUNTRY
       # Code
            with       PRODUCT GROUP                             with
                                                                        in
                       # Name
                           with                                   SHOP
                                    with
                        in                                        # No
                            PRODUCT                               * Name
       for                                                        * Address
                            GLOBAL      of
       PRICE LIST                                                 * City
                            # Code LOCAL
       # Start Date         o Size # Name
       * End Date
             with with

       in              of
            GLOBAL
            PRICE
            * Amount

7-41              Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Quality Check
               Subtype Implementation


                                                               lpt_shop_fk

       GLOBAL_PRODUCTS (GPT)                 LOCAL_PRODUCTS (LPT)
       pk * Code                              pk       # Name
          o Size                              fk       * Shop_no
          * Pgp_name                          fk       * Pgp_name




7-42            Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Quality Check
                         Arc Implementation

       PRODUCTS (PDT)                           fk1=pdt_pgp_name
       pk    *   Code                           fk2=pdt_gpt_code
       fk1   *   Pgp_name
       fk2   *   Gpt_code                       fk3=pdt_lpt_name
       fk3   *   Lpt_name

       GLOBAL_PRODUCTS (GPT)
                                                gpt_pgp_fk
       pk * Code
          o Size

       LOCAL_PRODUCTS (LPT)
                                                fk1=shp_lpt_fk
       pk      * Name
       pk, fk1 o Shp_no                         fk2=pgp_lpt_fk
       fk1     * Pgp_name



7-43                    Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Mapping Primary Keys
                 and Columns


       GLOBAL_PRICES (                   )




7-44        Copyright © Oracle Corporation, 2002. All rights reserved.
Denormalized Data




Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Denormalization
      •   Benefits
      •   Types of denormalization




8-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Denormalization Overview


      Denormalization
       • Starts with a “normalized” model
       • Adds “redundancy” to the design
       • Reduces the “integrity” of the design
       • Application code added to compensate




8-3               Copyright © Oracle Corporation, 2002. All rights reserved.
Denormalization Techniques


      •   Storing Derivable Values
      •   Pre-joining Tables
      •   Hard-Coded Values
      •   Keeping Details with Master
      •   Repeating Single Detail with Master
      •   Short-Circuit Keys




8-4               Copyright © Oracle Corporation, 2002. All rights reserved.
Storing Derivable Values
      Before
                    A                                           B
                    pk      *     Id                           pk,fk * A_id
                            *     X                            pk * Sequence_No
                                                                     * Quantity

               Add a column to store derivable data in the
               “referenced” end of the foreign key.

               A
      After     pk * Id
                   * X
                   * Total_quantity




8-5                     Copyright © Oracle Corporation, 2002. All rights reserved.
EMail Example of Storing Derivable Values
      Before

                               REC_MESSAGES (RME)                                 MESSAGES (MSE)
      USERS (USR)
                               pk,fk * Usr_Id                                     pk *   Id
      pk * Id                                                                            Subject
                               pk,fk * Mse_Id                                        *
         * Per_name                                                                  *   Text

         Store derivable column in the ‘referenced’ end of the foreign key.


                    MESSAGES (MSE)
      After         pk     *     Id
                           *     Subject
                           *     Text
                           *     Number_of_times_received




8-6                  Copyright © Oracle Corporation, 2002. All rights reserved.
Pre-Joining Tables
      Before
                                                              B
                    A
                    pk                                        pk      *     Id
                            * Id
                                                              fk      *     A_id
                            * Col_a


              Add the non_key column to the table with the foreign key.


                                                       B
      After
                                                       pk       *     Id
                                                       fk       *     A_id
                                                                *     A_col_a




8-7                   Copyright © Oracle Corporation, 2002. All rights reserved.
EMail Example of Pre-Joining Tables
      Before
                     FOLDERS (FDR)                        RECEIVED_MESSAGES (RME)
                                                          pk,fk * Mse_id
                    pk *        Id
                       *                                  pk,fk * Flr_id
                                Name
                                                                * Date_received

              Create a table with all the frequently queried columns.

                                                    RECEIVED_MESSAGES (RME)
      After                                         pk,fk        *      Mse_id
                                                    pk,fk        *      Flr_id
                                                                 *      Date_receive
                                                                 *      d Fdr_Name




8-8                    Copyright © Oracle Corporation, 2002. All rights reserved.
Hard-Coded Values
      Before
                                                              B
                    A
                    pk             Id                         pk      *     Id
                            *
                                   Type                       fk      *     A_i
                            *
                                                                            d

              Remove the foreign key and hard code the allowable values and
              validation in the application.


      After                                                     B
                                                              pk      *    Id
                                                                      *    A_Type




8-9                     Copyright © Oracle Corporation, 2002. All rights reserved.
Email Example of Hard-Coded Values
       Before
                                                               USERS (USR)
                BUSINESS_TYPES
                (BTE)                                          pk      *     Id
                pk * Id                                        fk      *     Bte_id
                       Name                                            *     Per_name


               Hard code the allowable values and validation in the
               application.


       After                                                USERS (USR)
                                                            pk *        Id
                                                               *        Business_type
                                                               *        Per_name




8-10                   Copyright © Oracle Corporation, 2002. All rights reserved.
Keeping Details with Master
       Before
                                                               B
                        A
                                                               pk,fk *          A_id
                        pk *         Id                        pk    *          Type
                                                                     *          Amount

               Add the repeating detail columns to the master table.

                 A

       After     pk *        Id
                    *        Amount_1
                    *        Amount_2
                    *        Amount_3
                    *        Amount_4
                    *        Amount_5
                    *        Amount_6


8-11                        Copyright © Oracle Corporation, 2002. All rights reserved.
EMail Example Keeping Detail with Master
       Before
                                             STORAGE_QUOTAS (SQA)
                USERS (USR)
                                             pk,fk *        Usr_Id
                pk *   Id                    pk    *        Storage_type
                   *   Name                        *        Allocated
                                                   *        Available

               Add the repeating detail columns to the master table.

                USERS (USR)
       After    pk * Id
                   * Name
                   * Message_Quota_Allocated
                   * Message_Quota_Available
                   * File_Quota_Allocated
                   * File_Quota_Available



8-12                   Copyright © Oracle Corporation, 2002. All rights reserved.
Repeating Current Detail with Master
       Before
                                                                B
                    A
                                                                pk,fk * A_Id
                    pk * Id                                     pk      Start_date
                                                                      * Price

                                                    *
       Add a column to the master to store the most current details.


                A
       After
                p * Id
                k * Current_price




8-13                    Copyright © Oracle Corporation, 2002. All rights reserved.
EMail Example of Repeating Single Detail
                    with Master
       Before
                     MESSAGES (MSE)                             ATTACHMENTS (ATT)
                     pk * Id                                    pk    *          Id
                        * Subject                               pk,fk *          Mse_id
                        * Text                                        *          Name

       Add a column to the master to store the most current details.


                MESSAGES (MSE)
       After
                pk   *   Id
                     *   First_attachment_name
                     *   Subject
                     *   Text




8-14                     Copyright © Oracle Corporation, 2002. All rights reserved.
Short-Circuit Keys
       Before
                                            B                                         C
               A
                                            pk        *    Id                     pk * Id
               pk * Id                      fk             A_id                   fk * B_id
                                                      *


               Create a new foreign key from the lowest detail to the
               highest master.

               A                             B                                        C
       After                                 pk             Id
               pk * Id                                 *                          pk * Id
                                             fk        *    A_id                  fk * B_id
                                                                                  fk * A_id




8-15                     Copyright © Oracle Corporation, 2002. All rights reserved.
EMail Example of Short-Circuit Keys
        Before
                                                                             RECEIVED_
   USERS (USR)                      FOLDERS (FDR)                            MESSAGES (RME)
   pk * Id                          pk       * Name                          pk      *   Id
      * Name                        fk       * Usr_id                        fk      *   Fdr_name


                Create a new foreign key from the lowest detail to the highest
                master.
        After
                                                                             RECEIVED_
                                     FOLDERS (FDR)                           MESSAGES (RME)
       USERS (USR)
                                     pk       * Name                          pk * Id
   pk * Id                           fk       * Usr_id                        fk * Fdr_name
   uk * Name                                                                  fk * Usr_name




8-16                    Copyright © Oracle Corporation, 2002. All rights reserved.
End Date Column
       Before
                                                               B
                   A                                           pk,fk       *        A_id
                   pk *         Id                             pk          *        Start_date



       Add an end date column to speed up queries so that they can
       use a between operator.
                                                               B
       After                                                   pk,fk        *       A_Id
                                                               pk           *       Start_date
                                                                            o       End_date




8-17                   Copyright © Oracle Corporation, 2002. All rights reserved.
Example of End Date Column
       Before
                                                                PRICES (PCE)
                     PRODUCTS (PDT)
                                                               pk,fk        *       Pdt_id
                     pk *       Id                             pk           *       Start_date
                        *       Name                                                Price
                                                                            *


               Create an extra column derivable End_date column.



       After                                                     PRICES (PCE)
                                                                 pk,fk          *   Pdt_id
                                                                 pk             *   Start_date
                                                                                *   Price
                                                                                o   End_date



8-18                   Copyright © Oracle Corporation, 2002. All rights reserved.
Current Indicator Column
       Before

                     A                                         B
                                                               pk,fk * A_id
                     pk *         Id                           pk    * Start_date


               Add a column to represent the most current record in a
               long list of records.


       After                                          B
                                                      pk,fk * A_Id
                                                      pk    * Start_date
                                                            o Current_indicator




8-19                     Copyright © Oracle Corporation, 2002. All rights reserved.
Example of Current Indicator Column
       Before
                                                                  PRICES (PCE)
                     PRODUCT (PDT)
                                                                   pk,fk      *     Pdt_id
                     pk *       Id                                 pk         *     Start_date
                        *       Name                                                Price
                                                                              *


               Add a column to represent the most current record, in a long
               list of records.
                                              PRICES (PCE)
       After                                                  pk,fk * Pdt_id
                                                              pk    * Start_date
                                                                    * Price
                                                                    o Current_indicator




8-20                   Copyright © Oracle Corporation, 2002. All rights reserved.
Hierarchy Level Indicator
       Before
                                       A
                                       pk        *    Id
                                       fk        *    A_id


               Create a column to represent the hierarchy level of a record.



       After                            A
                                        pk * Id
                                        fk * A_id
                                           * Level_no




8-21                   Copyright © Oracle Corporation, 2002. All rights reserved.
Example of Hierarchy Level Indicator
       Before
                                       FOLDERS (FDR)
                                       pk * Id
                                       fk * Fdr_id
                                          * Name


               Create a column to represent the hierarchy level of a record.



       After                           FOLDERS (FDR)
                                       pk *         Id
                                       fk *         Fdr_id
                                          *         Name
                                          *         Level_no




8-22                   Copyright © Oracle Corporation, 2002. All rights reserved.
Denormalization Summary

   Denormalization Techniques
    • Storing Derivable Information
           – End Date Column
           – Current Indicator
           – Hierarchy Level Indicator
       •   Pre-Joining Tables
       •   Hard-Coded Values
       •   Keeping Detail with Master
       •   Repeating Single Detail with Master
       •   Short-Circuit Keys




8-23               Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Name that Denormalization
       •   Triggers
       •   Denormalize Price Lists
       •   Global Naming




8-24               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Name that Denormalization (1/3)




                                                           SHIFTS (SFT)
           WEEKDAYS (WDY)
                                                           pk *    No
            pk *      Code                                 fk  *   Wdy_code
               *      Name                                         Start_time
                                                               *
                                                               *   End_time
                                                               *   Wdy_name




8-25               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Name that Denormalization (2/3)




PROD_GRPS (PGP)              PRODUCTS (PDT)                          PROD_NAMES (PNE)

  pk *   Name                pk       * Code                          pk *   Name
                             fk       * Pgp_Name                      fk *   Pdt_code
                                                                      fk *   Pgp_name




8-26            Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Name that Denormalization (3/3)




                                                     PRICE_LISTS (PLT)
         COUNTRIES (CTY)
                                                   pk,fk        *   Cty_code
         pk * Code                                 pk               Start_date
                                                                *
            * Name                                              o   End_date
                                                                *   Current_price_ind




8-27             Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (1/6)

       ORDER_HEADERS (OHR)                            ORDER_ITEMS (OIM)
                                                      pk * Ohr_id
       pk *   Id
                                                      pk * Seqno

          *   Order_total                                      * Item_total




8-28               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (2/6)


   Table     Trg Type       Column                 Needed? What should it do?
   OHR       Insert
             Delete
             Update         Id
                           Order_total
       OIM   Insert
             Delete
             Update         Ohr_id
                           Item_total



8-29                  Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (3/6)

       LOCATIONS (LCN)                                EMPLOYEES (EPE)
                                                      pk * Id
       pk *   Id
                                                      fk * Lcn_id
                                                         * Name
          *   Address
                                                               * Lcn_address




8-30               Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (4/6)


Table   Trg Type      Column                     Needed? What should it do?
LCN     Insert
        Delete
        Update       Address
                     other cols
EPE     Insert
        Delete
        Update       Lcn_id
                     Lcn_address


8-31             Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (5/6)

       PRODUCTS (PDT)                              PRICES (PCE)
                                                   pk * Pdt_id
       pk *   Id                                   pk * Start_date
          *   Name
                                                       o End_date

                                                            * Curr_price_ind




8-32            Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (6/6)


       Table Trg Type Column                           Needed? What should it do?
       PDT   Insert
             Delete
       PCE   Insert
             Delete
             Update        Pdt_id
                           Start_date
                           End_date
                           Curr_price_Ind



8-33                  Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Denormalize Price Lists


       •   Speed up performance for queries on Amount.
       •   Insert new price lists before their effective date.

             PRICE_LISTS (PLT)                       GLOBAL_PRICES (GPE)

             pk    * Start_date                      pk,fk * Plt_start_date
             pk,fk * Cty_code                        pk,fk Plt_cty_code
                                                           * Amount
                                                           *




8-34                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Global Naming

                                                     LANGUAGES (LGE)
       Track a corporate
                                                      pk * Code
       name for each product.
                                                         * Name




                                                 PRODUCT_NAMES (PNE)
            PRODUCTS (PDT)
            pk * Code                            pk,fk * Pdt_code
               o Size                            pk,fk   Lge_code
                                                       * Name
                                                       *




8-35              Copyright © Oracle Corporation, 2002. All rights reserved.
Database Design Considerations




    Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Oracle specific Design Considerations
      •   Data Integrity Issues
      •   Performance Considerations
      •   Storage Issues




9-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Why Adapt Data Design?

                              •     User Expectations



      •   Volumes
                                                                           Adapted
      •   Hardware
                                                                           Physical
      •   Network                 Initial design
                                                                           Design
      •   O.S.




                              •     Oracle specifics




9-3                  Copyright © Oracle Corporation, 2002. All rights reserved.
Oracle Data Types


      Depending on:
       • Domains
       • Storage issue
       • Performance
       • Use
      Select a data type for columns:
       • Character
       • Number
       • Date
       • Large Objects


9-4                Copyright © Oracle Corporation, 2002. All rights reserved.
Suggested Column Sequence


      •   Primary key columns
      •   Unique Key columns
      •   Foreign key columns
      •   Mandatory columns
      •   Optional columns

          Large object columns always at the end




9-6               Copyright © Oracle Corporation, 2002. All rights reserved.
Primary Keys

      CREATE TABLE countries
      ( code           NUMBER(6)                      NOT NULL
      , name           VARCHAR2(25)                   NOT NULL
      , currency       NUMBER (10,2)                  NOT NULL
      );
      ALTER TABLE countries
      ADD CONSTRAINT cty_pk PRIMARY KEY
      (code);


                Constraint and Index name




9-7             Copyright © Oracle Corporation, 2002. All rights reserved.
Primary Keys


      Choosing the Right Key
       • Simplicity
       • Ease of use
       • Performance
       • Size
       • Meaningless
       • Stability




9-9               Copyright © Oracle Corporation, 2002. All rights reserved.
Artificial Keys

       AS (A)                              BS (B)                                  CS (C)
       pk * Id                            pk * Id                                  pk * Id
          * C1                               * C2                                     * C3

       fk1 = d_a_fk                    fk2 = d_b_fk                        fk3 = d_c_fk
                                                DS (D)

                                               u ,fk1 * A_id
                                               pk
                                               u ,fk2 * B_id
                                               pk
        XS (X)                                 u ,fk3 * C_id
                                               pk
       pk         Id                                  * C4
             *                                  pk    * Id
       fk1   *    D_a_id fk = x_d_fk
       fk1
        fk   **   D_b_id
                  D_id
       fk1   *    D_c_id
             o    C5



9-11                  Copyright © Oracle Corporation, 2002. All rights reserved.
Sequences




       225
        224

        223

                                CREATE SEQUENCE sequence_name
                                INCREMENT BY      number
                                START WITH        number
                                MINVALUE          number
                                MAXVALUE         number
                                CACHE number | NOCACHE
                                CYCLE | NOCYCLE;




9-13          Copyright © Oracle Corporation, 2002. All rights reserved.
Foreign Key Behavior


                                        Delete                      Update


       Restrict


       Cascade


       Default Nullify



          Supported by Oracle through declaration




9-14              Copyright © Oracle Corporation, 2002. All rights reserved.
Indexes
       • Performance
                                              Name                 Phone
                                                                               b
                                                                               c
                                               ALBERT                   2655
                                                                               d

                                               ALFRED                   3544   ef

                                                                               gh
                                                                                   ij
                                               ALICE                    7593   kl

                                                                                   m
                                               ALLISON                  3456
                                                                               no
                                                                               pq
                                               ALVIN                    8642
                                                                                   rs

                                                                                   tu
                                               ALPHONSO                 2841       vw
                                                                                    xyz




       • Uniqueness

9-16           Copyright © Oracle Corporation, 2002. All rights reserved.
Choosing Indexes
               B*tree

                                                                               Bitmap

                                        aba .1.2.5 Reverse                              X   Y   Z
       aba .1.2.5                       abb .1.4.5                                      0   1   0
       abb .1.3.5                       bba .1.3.5                                      1   0   0
       abc .1.1.5                       cba .1.1.5                                      0   0   1
       bba .1.4.5                       ...                                             1   0   0
       ...                                                                              0   0   1



            C1 C2                                            C1 C2
                         I.O.Table
           aba X                                             abc Y
           abb Z                                             aba X
           abc Y                                             abb Z
           bba Z                                             bba X
           bbc X                                             bbc Z


9-17                    Copyright © Oracle Corporation, 2002. All rights reserved.
Which Columns to Index?


       •   Primary key columns and Unique Key columns
           (Up to Version 6)
       •   Foreign Key columns
       •   When significant better performance can be
           observed in SELECT statements



           !   Avoid indexing:

       •   Small tables
       •   Columns frequently updated


9-19                Copyright © Oracle Corporation, 2002. All rights reserved.
When Can Indexes be Used?


       •   When referenced in a Where clause or Order By
       •   When the Where clause does not include some
           operators
       •   When the optimizer decides
       •   With hints in the SQL statement




9-21               Copyright © Oracle Corporation, 2002. All rights reserved.
Partitioning Tables and Indexes

             CUSTOMERS
             Col1 Col2 Col3 Region




       CUSTOMERS_R1
       Col1 Col2 Col3 Region


                                          CUSTOMERS_R2
                                           Col1 Col2 Col3 Region




9-22         Copyright © Oracle Corporation, 2002. All rights reserved.
Views


       •   Restricting access
       •   Presentation of data
       •   Isolate applications from data structure
       •   Save complex queries
       •   Simplify user commands
   T1                   T2                   T3                      T4




               V1            V2                V3                      V4

9-23                Copyright © Oracle Corporation, 2002. All rights reserved.
Reasons for Views


       •   Advantages
           – Dynamic views
           – Present denormalized data from normalized tables
           – Simplify SQL statements
       •   Disadvantages
           – May affect performances
           – Restricted DML in some cases




9-24               Copyright © Oracle Corporation, 2002. All rights reserved.
Old Fashioned Design


       •   Unique index
       •   Views with “Check option” clause
       •   Generic Arc implementation




9-25               Copyright © Oracle Corporation, 2002. All rights reserved.
Generic Arc Implementation

                                                                           X
       A                                                                   # Id
       # Id                                                                * Name
       * Name
                                                                           Y
                                                                           # Id
                                                                           * Name



                              AS (A)

                                       ...
                                     * Table_name               (X or Y)
                                     * Fk_id




9-26              Copyright © Oracle Corporation, 2002. All rights reserved.
Distributed Database


       Different physical databases appear as one logical
       database.




9-27                Copyright © Oracle Corporation, 2002. All rights reserved.
Benefits of Distributed Databases


        •    Resilience
        •    Reduced line traffic
        •    Location transparency
        •    Local autonomy
        •    Easier growth path
       but
        •    Increased, distributed, complexity




9-28                 Copyright © Oracle Corporation, 2002. All rights reserved.
DATABASE
                                 Database Structure
       consists
             of part of
          TABLESPACE consists
                           of
  resides
       in    container   part of
                        of               SEGMENT
                                         OTHER                TABLE   INDEX
                                         SEGMENT              SEGMENT SEGMENT
                                      sliced in  sliced in                             consists
residence                                                                              of
                           located in  part of      part of
       of
                        TABLE OR INDEX PARTITION                                       part of
            DATA FILE                                       EXTENT USED               FREE
     consists                              resides in
           of     part of                                      residence
                                                                      of
            DATA BLOCK


   9-29                  Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


       •   Data Types
       •   Primary, Foreign, and Artificial Keys
       •   Indexes
       •   Partitioning
       •   Views
       •   Distributed design




9-31                Copyright © Oracle Corporation, 2002. All rights reserved.
Practices


       •   Data Types
       •   Artificial Keys
       •   Product Pictures




9-32               Copyright © Oracle Corporation, 2002. All rights reserved.
CURRENCY of    COUNTRY                                                     Moonlight Pricing
   # Code         # Code
             with
      in  in            with                                                       with
                                       PRODUCT GROUP                                      in
                                       # Name                                 with SHOP
from      to                                 with                                  # No
   EXCHANGE                               in                                       * Name
   RATE                                 PRODUCT                                    * Address
   # Month                                                   of                    * City
   * Rate      for
                                GLOBAL LOCAL
                PRICELIST       # Code     # Name
                # Start Date    o Size           with
                * End Date
                       with with with        of
                                             LOCAL PRICE                             LANGUAGE
                 in                          # Start Date                            # Code
                             of
                                             o End Date                                   of
                    GLOBAL           of      * Amount
                    PRICE                                                                 in
                    * Amount
                                       PRODUCT NAME
                                       * Name

 9-33            Copyright © Oracle Corporation, 2002. All rights reserved.
Data Types (1)

                  Table       Column                   Suggested             Your Choice
                                                       Data Type             Data Type
            COUNTRIES         Code                     Varchar2(2)
           CURRENCIES         Code                     Varchar2(3)
       EXCHANGE_RATES         Month                    Date
                              Rate                     Number(8,4)
           PRICE_LISTS        Start_date               Date
                              End_date                 Date
       PRODUCT_GROUPS         Name                     Char(8)
             PRODUCTS         Code                     Char(10)
                              Size                     Number(4,2)
                              Pdt_type                 Number(1)




9-34            Copyright © Oracle Corporation, 2002. All rights reserved.
Data Types (2)

                Table      Column                   Your Choice Data Type
       GLOBAL_PRICES       Amount
        LOCAL_PRICES       Start_date
                           End_date
                           Amount
              SHOPS        Name
                           Address
                           City




9-35            Copyright © Oracle Corporation, 2002. All rights reserved.
Solutions




Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Instance or Entity?

      Concept                        E/A/I? Example Instance or Entity
      PRESIDENT                            E         Lincoln, Washington, Gorbachev
      ELLA FITZGERALD                       I        STAR, SINGER, PERSON
      DOG                                  E         Snoopy
      ANIMAL                               E         Cat, Dog, ...
      HEIGHT                              A         PERSON, BUILDING, ...
      TYPE OF TRANSPORT                    E         CAR
      Number of Wheels                     A         CAR
      My current car                       I        CAR




A-2                    Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Guest

                                         Address
                                         Arrival Date
                                         Family Name
      GUEST                              Room Number
      HOTEL                              Floor Number
      ROOM                               Number of Beds
                                         Number of Parking Lots
                                         Price
                                         TV set available?




A-3          Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Reading


        EMPLOYEE           assigned to                             DEPARTMENT
                                        responsible for



A Each EMPLOYEE may be assigned to one or more DEPARTMENTS
      Each DEPARTMENT must be responsible for one or more EMPLOYEES

B Each EMPLOYEE must be assigned to one or more DEPARTMENTS
      Each DEPARTMENT may be responsible for one or more EMPLOYEES

C Each EMPLOYEE must be assigned to exactly one DEPARTMENT
      Each DEPARTMENT may be responsible for exactly one EMPLOYEE


A-4                Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Read and Comment

      PERSON       born in                                      TOWN
                                       birthplace of


                     living in
                                      home town of

                     visitor of

                                            visited by


                     mayor of
                                     governed by
                                      (as mayor)


A-5            Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Hotel

           HOTEL
           * Address

                     location for                               favored
          located in            owned                     known     by
                                   by                        by
             ROOM
             * Room Number

                          location for              owner          aware in favor
                                                       of             of     of
      taking place
          in
              STAY                    endured by                 PERSON
              * Arrival Date                                     * Name
                                                enduring




A-6               Copyright © Oracle Corporation, 2002. All rights reserved.
Ralph’s Raving Recipes

      Soups
                      Açorda alentejana
                       bread soup from Portugal
      vegetarian       for 4 persons:
      15 min              1 onion
      easy                4 cloves of garlic
                          1 red pepper
                          1 liter of vegetable broth
                          4 tablespoons of olive oil
                          4 fresh eggs
                          1 handful of parsley or coriander
                          salt, pepper
                          9-12 slices of (old) bread
      preparation       Cut the onion into small pieces and fry together
                        with the garlic. Wash the red pepper, cut it in
                        half, remove the seeds and fry it for at least 15


                                                                            page 127

A-7            Copyright © Oracle Corporation, 2002. All rights reserved.
Ralph’s Raving Recipes

      Soups
                      Açorda alentejana
                       bread soup from Portugal
      vegetarian       for 4 persons:
      15 min              1 onion
      easy                4 cloves of garlic
                          1 red pepper
                          1 liter of vegetable broth
                          4 tablespoons of olive oil
                          4 fresh eggs
                          1 handful of parsley or coriander
                          salt, pepper
                          9-12 slices of (old) bread
      preparation       Cut the onion into small pieces and fry together
                        with the garlic. Wash the red pepper, cut it in
                        half, remove the seeds and fry it for at least 15


                                                                            page 127

A-8            Copyright © Oracle Corporation, 2002. All rights reserved.
BOOK          Solution: Recipe
       -Title                     a RECIPE must be classified in
             containing           exactly one RECIPE GROUP
             published in
                                  A RECIPE GROUP may be
      RECIPE                      classification for one or more
      -Name                       RECIPES
      -Description
      -Vegetarian?
      -Number of People classified
                            in                RECIPE
      -Preparation Time
      -Preparation Ease                       GROUP
                              classification
      -Preparation Text       for             -Name
                    prepared
            used with
            in
         INGREDIENT
                                             a RECIPE must be prepared with
         -Name
                                             one or more INGREDIENTS
         -Quantity
         -Unit                               An INGREDIENT may be used in
         -Type                               exactly one RECIPE

A-9           Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Books

          MANUSCRIPT                               LANGUAGE

          TRANSLATION


                 TITLE


               EDITION


             PRINTING


              VERSION


                COPY


A-10   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Books

          MANUSCRIPT                               LANGUAGE

          TRANSLATION


                 TITLE


               EDITION


             PRINTING


              VERSION


                COPY


A-11   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Moonlight

       COUNTRY                                    PRODUCT
       COUNTRY COMMUNITY                          PRODUCT GROUP
       CURRENCY                                   PRICE
       DEPARTMENT                                 SALE
       DRINK                                      SHOP
       EMPLOYEE                                   STOCK OPTION
       EXCHANGE RATE                              STOCK PRICE
       FOOD                                       TICKER SYMBOL
       JOB
       LOCATION TYPE
       PASTRY



A-12            Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Shops
                SHOP        in                          COUNTRY
                * Number                                * Code
                * Name             of                   * Name
                * Location
                * City      located
                o Telephone in                          LOCATION TYPE
                * Open Date                             * Description
                                    of

         or
                                      COUNTRY
                                      * Code
                                      * Name
       SHOP
       * Number                                 of
       * Name                            in                                    LOCATION
                   located                                   located
       o Telephone in                 LOCATION               in                TYPE
       * Open Date                    * Name                                   * Description
                                of                                        of


A-13              Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Subtypes
       DISABLED                              CAR
       PERSON
                                             STATION WAGON
       DEAF AND BLIND
                                             SEDAN                 OTHER
       DEAF, NOT BLIND                                             CAR
       BLIND, NOT DEAF
       OTHER DISABLED
                                       BUILDING              HOUSE OTHER


       HOTELROOM                                                DOG
                                                                            r
       ROOM WITH BATH                                          DOMESTIC
                                                                      repai
                                                                   nd
                                                               ANIMAL
                                                               beyo
       OTHER ROOM                                               MAMMAL




A-14         Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Schedule (1/2)
        SHOP
        * Name
        * Location
        * City
                    with
            for
         SCHEDULE prepared
                      by                         EMPLOYEE
         * Start Date
                                                 * Family Name
         * End Date      maker
                         of                      * First Name
                 with                            * Short Name
        withi
        n
        SCHEDULE                 for
        ENTRY
        * Weekday                       with
        * Shift Number


A-15   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Schedule (2/2)

                                      with
                        within
              SCHEDULE                            for
              ENTRY
              * Monday Shift                             with
              * Tuesday Shift
              * Wednesday Shift
              * Thursday shift
              * Friday Shift
              * Saturday Shift
              * Sunday Shift




A-16   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Address

                  PERSON
                  Address text line1
           1      Address text line2                         COUNTRY
                  Address text line3
                  Address text line4


               PERSON
               Street or “PO Box” Indicator                           ADDRESS
               Street                                                 TYPE
       2
               House Number
               City
               Post Code
                                                                       COUNTRY
               Province or State




A-17                  Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Read the Relationship
                                           Every ALU must be of
        ALU    of         BRY
                                           exactly one BRY
                 with                      Every BRY may be with
                                           one or more ALUS


   Every PUR may be bazooned in
                                                    PUR         bazooned in          YOK
              one or more YOKS
  Every YOK may be bazooned by                                        bazooned by
             one or more PURS


       KLO    bilought in                         Every KLO must be bilought in one or
                                   HAR
                                                  more HARS
              glazoed with                        Every HAR may be glazoed with
                                                  exactly one KLO



A-19                    Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Find a Context
                 birthplace of                                 PERSON
       COUNTRY
                                              born in
                  location of                                  TOWN
                                             located in

       PERSON                                                    PERSON
                                      MALE
        FEMALE    mother of                                     MALE FEMALE      child
                      son of                                                        of

                                                                mother of
                 most popular
                 movie star in               COUNTRY
       PERSON
                           with most popular
                  born in         movie star
                                       birthplace of


A-20                Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Name the Intersection Entity

                               PRODUCT                  DEPARTMENT
                                                        STORE
                                             in
                                                               with
                                            of                 at
                                                  SALE
                                                  * Date
       PERSON   SAILBOAT

         in                          INTERPRETER                        LANGUAGE
                 with
         of      at
                                                         with
         CREW                                                                with
         MEMBERSHIP                                         of               in
         * Role                                               FLUENCY
                                                              * Score


A-21            Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Receipt
            Served by: Dennis
            Till: 3 Dec 8, 4:35 pm
           -----------------------
            CAPPUCC M 3.60
                         * 2    7.20
            CREAM         .75
                         * 2    1.50
            APPLE PIE           3.50
            BLACKB MUF          4.50
                  SUB        16.70
                  tax 12%       2.00
                  TOTAL      18.70
                             =======
                  CASH         20.00
                  RETURN        1.30
           -----------------------
           Hope to serve you again
             @MOONLIGHT COFFEES
            25 Phillis Rd, Atlanta

A-22   Copyright © Oracle Corporation, 2002. All rights reserved.
COUNTRY
       * Name
           with
        in
       SHOP
       * Name
       o VAT%
            with
         in
       TILL          PERSON
       * Number      * First Name                PRODUCT
            with           with                  * Short Name
        at             at                        * Price
       SALES HEADER                                   in
       * Date  Time
       * Amount Cash
                                             referring
                                 with
                   part of                          to
                         SALES ITEM
                         * Quantity


A-23         Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Moonlight PO (1)

       All Moonlight Coffee employees work for a department such as
       “Global Pricing” or “HQ”, or for a shop. All employees are at the
       payroll of one of our country organizations. Jill, for example, works
       as a shop manager in London; Werner is a financial administrator
       working for Accounting and is located in Germany …

             DEPARTMENT             SHOP                  COUNTRY
             * Name                 * Name                ORGANIZATION
                                    * City
                                                                 with
                   with                  with


                works        works
                             for                                           at payroll of
                  for
                    EMPLOYEE
                    * Name
                    * Job


A-24                   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Moonlight PO (2)
                        reporting to               report of
                   DEPARTMENT                              report
                   * Name                        HQ        of
                   OTHER                                                          reporting to
                   DEPARTMENT                                        COUNTRY
                                                                     ORGANIZATION
       … All shops belong with
       to one country                               with                             with
       organization (“the                 belongs
                                               to
       countries”). There
                                       SHOP
       is only one country
                                       * Name
       organization per
                                       * City
       country. All                                                                  on
       countries and       works          with                                       payroll
       departments report    for          works for                                  of
       to HQ, except HQ         EMPLOYEE
       itself …                 * Name
                                * Job

A-25                 Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Moonlight PO (3)
                               reporting to                 report of
                         DEPARTMENT
                                                        HQ        Report of
                         * Name
                                                                          reporting to
                         OTHER
                                                                     COUNTRY
       … Employees       DEPARTMENT
                                                                     ORGANIZATION
       can work part
                                with                         with           with
       time. Lynn has
       had an 80%                            at payroll                            belongs to
       assignment for                               of                  SHOP
       Product                                EMPLOYEE                  * Name
       Development                            * Name                    * City
       since the 1st                                with                     with
       September.               to                   of                   to
       Before that she
                              ASSIGNMENT
       had a full-time
                              * Job
       position.
                              * Start Date
                              * Part Time %

A-26                Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Moonlight PO (4)
       4a: -                                                   reporting to                  report of

                COUNTRY                          4c DEPARTMENT                           HQ       report
                ORGANIZATION                        * Name                                        of
       4b
                                                         OTHER
                               with                      DEPARTMENT
        EMPLOYEE

            with
                   for        for                 COUNTRY      in                            COUNTRY
               PAYROLL                            ORGANIZATION                               * Name
               ENTRY                                                                    of
               * Start Date                           with                                          of
                                        4d
                                                                                        located
                                                               belongs to                    in
                                                    SHOP
       4e: -
                                                    * No
                                                    * Name


A-27                       Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Price List
       COUNTRY
       * Currency
             with                                                    coffees
         in                                                          teas
                              PRODUCT
       SHOP                                                          foods
                              GROUP
       * Name                                                        nonfoods
                                     with                            supplements
       * Address                 in
       * City
                              PRODUCT
              with
          at                  * Short Name
                              o Size
       PRICE LIST
       * Start Date                      with
       * End Date
              with
          in                      of
       PRICE
       * Amount


A-29    Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: EMail

                                                                                 containing
            USER owner of          NICK
       1                           NAME                      within            FOLDER
                  owned by
                                                                  2
                  referred
                  to
                         for

                                                              USER
                                                     4
                 forwarded                             owner          owner
                 with
                                              containing of        owned
                                                                         of
                                                                             owned
       3       COMPOSITION
       is                                                          by        by
                                              within                     LIST
  forward                                                     FOLDER
       of



A-30              Copyright © Oracle Corporation, 2002. All rights reserved.
owner                               USER                owner
           USER             of                                                      of
       5                           owned               6                                 owned
                                   by                                                    by
                                LIST                                                  LIST
                   owner          is referred to
 is referred                                                               owner
                   of                      is referred to                              is
          to                                                               of
                   owned                                                               referred to
                                  referring to                             owned
referring to       by
                                             referring to                  by          referring to
           LIST ITEM
                                                               LIST ITEM
                                                               o External User


                   USER        owner of NICK NAME
                               owned by o For External User
               7              referred
                              to
                                    for


A-31                   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Holiday (1)
       “Paul and I hiked in the USA. Eric and I hiked in France and
        we rented a car in the USA last year”.
                            COUNTRY              TRANSPORT
                            France               Boots
                            USA                  Boots
                            USA                  Car




                                                                                       RT
             CO                                         TRANSPORT
           Fr U       COUNTRY




                                                                                      O
                                                                             Ca ot SP
         US an NT
       US A ce RY




                                                                               Bo AN
                                                                            Bo r s
         A




                                                                                  TR
                       CO




                                                                                s
                     Er M




                                                                              ot
                                 COMPANION




                                                                            N
                  Er ic PA




                                                                           O
                Pa ic     NI


                                                                        NI
                             O

                                                              E r ic P A
                  ul           N
                                                                 Er M
                                                                   CO

                                                           P a ic
                                                              ul

A-32                 Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Holiday (2)

       COUNTRY       COMPANION               TRANSPORT
       France        Eric                    Boots
       France        Eric                    Car
       USA           Eric                    Boots
       USA           Eric                    Car
       USA           Paul                    Boots




A-33      Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Holiday (3)
       COUNTRY            COMPANION                 TRANSPORT
       France             Eric                      Boots
       USA                Paul                      Car



       COUNTRY            COMPANION                  TRANSPORT



                              HOLIDAY


       COUNTRY          COMPANION                 TRANSPORT
       France           Eric                      Boots
       USA              Eric                      Car
       USA              Paul                      Boots



A-34      Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Normalize an ER Model: Solution

                     for     COURSE            offered by
                                                            DEPARTMENT
   ENROLLMENT                #* course number               #* department code
                    completed course name         the          department name
   for                   with                   offerer of
                the                taught by
             receiver
                 of                                           the
                             assigned to
                                                        receiver of
assigned                     GRADE                       TEACHER
                             #* grade code               #* teacher number
    STUDENT
                                grade description            teacher name
    #* student id
        last name
        first name




 A-35                Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Identification 1
                          A              B                  C
       1                  # Xx           * Yy               # Zz



           A                                                                       B
                                                C                                  # Id
       2
                                                # Code




               A
               * Xx
       3                                               with
               B                C                                                  D
               # Yy             # Zz                                               # Id
                                                                          of


A-37                  Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Identification 2
       4                                                        5
           P                       Q                                 P
                                   # Id                              # Name




                   PERSON
                   MALE              son of            FEMALE
                   # Seqno
                                             mother of # Name
                                                       # Birth Date
               6          partner in                           partner in


                            with husband                      with wife
                   MARRIAGE
                   # Start Date


A-38                 Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Moonlight UID
         reporting to          report of
       DEPARTMENT          HQ
       # Name                       report
                                    of
       OTHER                                      reporting to
                                                                                      COUNTRY
       DEPARTMENT                   COUNTRY                          in               # Code
         with                  with ORGANIZATION
           EMPLOYEE                                                              of
           # Id                                                                             with
                                              with
                with                                                             located
                                               assigned                               in
                     for    for           SHOP to
           of     PAYROLL                 # No
                  ENTRY
                  # Start Date
                                                  with

          to    for                         to
        ASSIGNMENT                                         as                          JOB
        # Start Date                                                                   # Title
                                                                                  in

A-40                Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Table
       USER

         owner of                       owner of                            owner of
                in                            in                                      in
                       from          with                                    KEY
       FOREIGN KEY                        TABLE
       # Name                             # Name                             # Name
                                                              with
                         to                                                    PRIMARY
                                                                       of
                          referenced                         with
        with                      in                                              UNIQUE
                                                                       of
                                                    with
                                                                                   with
             for                              in
                         from                                                           for
       ASSOCIATION                    in COLUMN
                                         # Name                   in              USAGE
       # Seqno                                                                    # Seqno
                                      in * Data Type                        of
                          to             o Not Null


A-41                 Copyright © Oracle Corporation, 2002. All rights reserved.
1               Solution: Constraints
        EMPLOYEE
        # Name OTHER                      managed
        CEO    EMPLOYEE                   by
                                                                      2             ALIAS
                   manager                                                          # Name
                   of                                USER                 owned     LIST
                                                     # Name                  by
                                                                   owner of         NICKNAME
        3
            with
       subfolder                                      USER
                       within
        FOLDER                                        # Name
        # Name                           owner
                                            of

                       owned
                       by

A-42                   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Shift
                                    CALENDAR DAY
               SHOP                 # Date
               * Name               * Public Holiday Indicator

                           with           of starting

                      on                   starting on
       WEEKDAY
       # Code          SHIFT
       * Name          SCHEDULE
               with                                          or
                                  with                                   on
          on                 on
                                                                            SHIFT
         SHIFT                                                              SCHEDULE
         # No                                                               * Start Date
         * Start Time                                                               with
         * End Time



A-43                   Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Moonlight Pricing
          COUNTRY
          # Code
             with                                                    with
                       PRODUCT GROUP                                          in
                       # Name                              with
                                                                    SHOP
                             with                                   # No
                          in
                                                                    * Name
                       PRODUCT of                                   * Address
       for              GLOBAL LOCAL                                * City
        PRICE LIST      # Code # Name
        # Start Date    o Size      with
        * End Date
               with with with    of
                               LOCAL PRICE                              LANGUAGE
         in          of        # Start Date                             # Code
            GLOBAL PRICE of    o End Date                                  of
            * Amount           * Amount                                       in
                                   PRODUCT NAME
                                   * Name

A-44             Copyright © Oracle Corporation, 2002. All rights reserved.
PRODUCT                                                        PRODUCT
          1                                                       2             GROUP
                 GROUP


       BUNDLE    PRODUCT                         PRODUCT
                                                                                OTHER
                                                  BUNDLE
                                                                                PRODUCT
          with      in
       of          referring                                       with    in
        BUNDLE ITEM       to                                 of           referring
        * Quantity                                           BUNDLE ITEM *       to
        Needed               PRODUCT
                                                             Quantity Needed
                             GROUP

                       3
                                PRODUCT



                            ASSEMBLY ITEM
                            * Quantity Needed


A-45               Copyright © Oracle Corporation, 2002. All rights reserved.
DecafPunch (DP) = {Coffee (C) or Tea (T)} and {Blackberry Muffin (BM)}

                                   Consider this as:
          PRODUCT
                                   AS1 = (C or T)
          GROUP
                                   DP = (AS1 and BM)
          # Name

                                   PRODUCTS
       PRODUCT                     Code     And_or                       Pg_name
       # Code                      C                                     ..
       o And/Or Indicator          T                                     …
                                   AS1      OR                           ….
                                   DP       AND                          …..
       ASSEMBLY ITEM
                                   ASSEMBLY ITEMS
       * Quantity Needed
                                   Prod_code          Using_code Quantity
                                   AS1                C                 1
                                   AS1                T                 1
                                   DP                 AS1               1
                                   DP                 BM                1


A-46               Copyright © Oracle Corporation, 2002. All rights reserved.
LEVEL1 fixed number of
       1          levels
                                                                         with
           LEVEL2
                                                                  PRODUCT
                                                                  CLASS
                                                                  # Name               within
           LEVEL3                            or generic:


           LEVEL4
                                                2                             + coffees
                                                                              + teas
           LEVEL5                                                             + foods
                                                          product             + nonfoods
                                                                              + supplements
           PRODUCT                                                            + bundles




A-47                 Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns


       •   Model of moves in a chess game                             Chain or Network
       •   Model of quotations                                        M/D or Basket
       •   Model of recipes                                           Bill of Material
       •   Model of all people involved in                            Roles
           college: students, teachers,
           parents, …
       •   Rentals in a video shop                                    M/D or Basket
       •   Model of phases in a process                               Chain or Network




A-48                  Copyright © Oracle Corporation, 2002. All rights reserved.
Patterns


       •   Model of moves in a chess game                             Chain or Network
       •   Model of quotations                                        M/D or Basket
       •   Model of recipes                                           Bill of Material
       •   Model of all people involved in                            Roles
           college: students, teachers,
           parents, …
       •   Rentals in a video shop                                    M/D or Basket
       •   Model of phases in a process                               Chain or Network




A-49                  Copyright © Oracle Corporation, 2002. All rights reserved.
Moonlight Data Warehouse
        YEAR # No
       with        with
              in
       QUARTER
       with           assigned
            in         to           with
       MONTH WEEK            PRODUCT                         within
       # No        # No      CLASS                                                     with
          with with           with
                in      in          of                    GEOGRAPHY
             DAY             PRODUCT                      * Number of Inhabitants             within
             # No            # Id                         * Number of Employees
                     with     in                             wit
                 of                of                        h    of
             SALES VOLUME
             * Quantity
             * Value in Local Currency
             * Value in $

A-50                      Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Argos and Erats
            ERAT
            # Name
                                                                                   unknown
        have have           have          have                                     optionality
                                   belongs                                         unknown
              of     of            to          of
                                                                                   degree
            RONDEL             ARGO        UBIN
            * Type             # Name
             in                in                    with

                   with       with                            with
             UBIN ITEM


       Constraint not shown:
       A ubin always consists of one or more argos of the erat, one or
       more...

A-51                  Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Synonym

                  MEANING
                  # Id
                  * Description                                                   synonym
              shared by
                          with                    WORDS
                    WORD                           Word        Mng_i
                    # Word                         Practice       d
                                                   Exercise       1
       MEANINGS                                    Order          1
        Id Description                             Sequence       2
         1 Action, actual doing ...                Arrangement    2
         2 Regular arrangement ...                 Order          2
         3 Order, command ...                      Command        3
         4 A vehicle with two wheels               Demand         3                homonym
         5 ...                                     Bike           3
                                                                  4


A-52                 Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Mapping basic Entities,
            Attributes and Relationships


       DEPARTMENTS (DPT)                         EMPLOYEES (EPE)
                                                 pk * Id
       pk * Id                        epe_dpt_fk fk
          * Name                                     * Dpt_id
          o Location                                 * Last Name
                                                     * First Name
                                                    o Home Phone




A-53             Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Mapping Supertype

                                              dpt_dpt_fk

            DEPARTMENTS (DPT)
            pk *       Id
               *       Name
               *       Dpt_type
               *       Headcount
               o
                       Address
               o
            fk         Dpt_id_reporting_to




A-54     Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Mapping Supertype

                                              dpt_dpt_fk

            DEPARTMENTS (DPT)
            pk *       Id
               *       Name
               *       Dpt_type
               *       Headcount
               o
                       Address
               o
            fk         Dpt_id_reporting_to




A-55     Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Quality Check
               Subtype Implementation


           gpt_pgp_fk                                          lpt_shp_fk

       GLOBAL_PRODUCTS (GPT)                  LOCAL_PRODUCTS (LPT)
       pk * Code                              pk    * Name
          o Size                              pk,fk * Shp_no
       fk * Pgp_name                          fk    * Pgp_name




A-56            Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Quality Check both Supertype
            and Subtype Implementation

       PRODUCTS (PDT)                       fk1=pdt_pgp_fk
       pk       * Code                      fk2=pdt_gpt_fk
       fk1      * Pgp_name
       fk2, uk1 o Gpt_code
       fk3, uk2 o Lpt_name
       fk3, uk2 o Lpt_shp_no
                GLOBAL_PRODUCTS (GPT)
                pk * Code
                   o Size
                          LOCAL_PRODUCTS (LPT)
                                                                        lpt_shp_fk
        fk3=pdt_lpt_fk
                          pk     * Name
                          pk, fk * Shp_no




A-57               Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Primary Keys and Columns


           GLOBAL_PRICES (GPE)                        fk1= gpe_plt_fk
           pk, fk1 *      Plt_cty_code
           pk, fk1 *      Plt_start_date              fk2= gpe_gpt_fk
           pk, fk2 *      Gpt_code
                   *      Amount




A-58          Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (1/6)

       ORDER_HEADERS (OHR)                            ORDER_ITEMS (OIM)
                                                      pk * Ohr_id
       pk *   Id
                                                      pk * Seqno

          *   Order_total                                      * Item_total




A-60               Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Triggers (2/6)

       Table   Trg Type       Column              Needed? What should it do?
       OHR     Insert                              Y              Order_total := 0
               Delete                               N
               Update        Id                    N
                             Order_total           Y              prevent update
       OIM     Insert                              Y              recalculate Order_total
               Delete                              Y              recalculate Order_total
               Update        Ohr_id                Y              recalculate Order_total
                             Item_total             Y             recalculate Order_total




A-61                    Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (3/6)

       LOCATIONS (LCN)                                EMPLOYEES (EPE)
                                                      pk * Id
       pk *   Id
                                                      fk * Lcn_id
                                                         * Name
          *   Address
                                                               * Lcn_address




A-62               Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Triggers (4/6)

       Table   Trg Type      Column                Needed? What should it do?
       LCN     Insert                               N
               Delete                               N
               Update        Address                Y               Cascade to Employees
                             other cols              Y              If pk updated than
                                                                    extended cascade
       EPE     Insert                               Y               Set correct Lcn_address
               Delete                               N
               Update        Lcn_id                 Y               Set correct Lcn_address
                             Lcn_address Y                         Prevent update




A-63                    Copyright © Oracle Corporation, 2002. All rights reserved.
Practice: Triggers (5/6)

       PRODUCTS (PDT)                              PRICES (PCE)
                                                   pk * Pdt_id
       pk *   Id                                   pk * Start_date
          *   Name
                                                       o End_date

                                                            * Curr_price_ind




A-64            Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Triggers (6/6)


Table Trg Type Column                  Needed? What should it do?
PDT     Insert                         N
        Delete                         N
PCE     Insert                          Y              Prevent overlap in price periods
        Delete                          N
        Update   Pdt_id                 Y              Set Curr_price_ind to NULL
                 Start_date             Y              Re-evaluate Curr_price_ind
                 End_date               Y               Re-evaluate Curr_price_ind
                 Curr_price_Ind Y                      Prevent update by user




 A-65              Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Denormalize Price Lists


       PRICE_LISTS (PLT)                     GLOBAL_PRICES (GPE)

       pk     * Start_date                   pk,fk * Plt_start_date
       pk,f   * Cty_code                     pk,fk * Plt_cty_code
       k      * End_date                           * Amount
                                                   * Current_indicator




A-66            Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Denormalize Global Naming

                                                    LANGUAGES (LGE)
                                                     pk * Code
                                                        * Name




          PRODUCTS (PDT)                         PRODUCT_NAMES (PNE)
       pk *   Code                               pk,fk * Pdt_code
          o   Size                               pk,fk   Lge_code
          *   Corporate_Name                           * Name
                                                       *




A-68             Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Data Types (1)

                 Table        Column               Suggested                  Your Choice
                                                   Data Type                  Data Type?
            COUNTRIES         Code                 Varchar2(2)                Char(2)
           CURRENCIES         Code                 Varchar2(3)                Char(3)
       EXCHANGE_RATES         Month                Date                       Number(2)
                              Rate                 Number(8,4)                Number(12,4)
           PRICE_LISTS        Start_date           Date                       Date
                              End_date             Date                       Date
       PRODUCT_GROUPS         Name                 Char(8)                    Varchar2(15)
             PRODUCTS         Code                 Char(10)                   Varchar2(15)
                              Size                 Number(4,2)                Char(1)
                              Pdt_type             Number(1)                  Char(3)




A-69             Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Data Types (2)

                Table          Column                  Your Choice Data Type

       GLOBAL_PRICES           Amount                  Number(15,3)
        LOCAL_PRICES           Start_date              Date
                               End_date                Date
                               Amount                  Number(15,3)
              SHOPS            Name                    Varchar2(50)
                               Address                 Varchar2(50)
                               City                    Varchar2(50)




A-70            Copyright © Oracle Corporation, 2002. All rights reserved.
Solution: Product Pictures



       PRODUCTS (PDT)                       TEXT_DOCUMENTS (TDT)

       pk * Code                            pk,fk * Pdt_code    varchar2(3)
            …….                             pk    * Info_type   varchar2(20)
                                                  o Information CLOB


                                            BINARY_DOCUMENTS (BDT)

                                            pk,fk * Pdt_code    varchar2(3)
                                            pk    * Info_type   varchar2(20)
                                                  o Information BLOB




A-72               Copyright © Oracle Corporation, 2002. All rights reserved.
Normalization




Copyright © Oracle Corporation, 2002. All rights reserved.
Overview


      •   Table Normalization
      •   Normal Forms of Tables




B-2               Copyright © Oracle Corporation, 2002. All rights reserved.
Why Normalize?


      •   An Entity Model is not always available as a
          starting point for design.
      •   To reduce redundant data in existing design.
      •   To increase integrity of data, and stability of
          design.
      •   To identify missing tables, columns and
          constraints.

      Note: Third normal form is the generally-accepted
      goal for a database design that eliminates
      redundancy.



B-4                Copyright © Oracle Corporation, 2002. All rights reserved.
Recognize Unnormalized Data

USER   USER      MSE   REC_                                                         SRVR   SERVER
 _ID   _NAME     _ID   DATE        SUBJECT                          TEXT            _ID    _NAME
----   -----   -----   -----       ---------------                  ----------      ----   ------
2301   Smith   54101   05/07       Meeting Today                    There is..      3786   IMAP05
2301   Smith   54098   07/12       Promotions                       I like to.      3786   IMAP05
2301   Smith   54445   10/06       Next Assignment                  Your next.      3786   IMAP05
5607   Jones   54101   05/07       Meeting Today                    There is..      6001   IMAP08
5607   Jones   54512   06/07       Lunch?                           Can you...      6001   IMAP08
5607   Jones   54660   12/01       Jogging Today?                   Can you...      6001   IMAP08
7773   Walsh   54101   05/07       Meeting Today                    There is..      9988   EMEA01
7773   Walsh   54554   03/17       Stock Quote                      The latest      9988   EMEA01
0022   Patel   54101   05/07       Meeting Today                    There is..      2201   EMEA09
0022   Patel   54512   06/07       Lunch?                           Can we ...      2201   EMEA09




 B-5                   Copyright © Oracle Corporation, 2002. All rights reserved.
Normalization Rules

 Normal Form Rule                              Description

 First Normal Form                             The table must express a set of
 (1NF)                                         unordered, two-dimensional tables.
                                               The table cannot contain repeating
                                               groups.
 Second Normal Form (2NF)                      The table must be in 1NF. Every
                                               non-key column must be dependent
                                               on all parts of the primary key.
 Third Normal Form (3NF)                       The table must be in 2NF. No non-key
                                               column may be functionally dependent
                                               on another non-key column.
“Each non-primary key value MUST be dependent on the key,
 the whole key, and nothing but the key.”



B-6                  Copyright © Oracle Corporation, 2002. All rights reserved.
Converting to First Normal Form
USER    USER      MSE   REC_                                  SRVR                SERVER
_ID     _NAME     _ID   DATE       SUBJECT         TEXT         _ID                _NAME
----    -----   -----   -----      --------------- ------------
                                                              ----                ------
2301    Smith   54101   05/07      Meeting Today   There is....
                                                              3786                IMAP05
2301    Smith   54098   07/12      Promotions      I like to...
                                                              3786                IMAP05
2301    Smith   54445   10/06      Next Assignment Your next...
                                                              3786                IMAP05
5607    Jones   54512   06/07      Lunch?          Can you.....
                                                              6001                IMAP08
5607    Jones   54101   05/07      Meeting Today   There is....
                                                              6001                IMAP08
5607    Jones   54660   12/01      Jogging Today? Can you.....6001                IMAP08
7773    Walsh   54101   05/07      Meeting Today   There is....
                                                              9988                EMEA01
7773    Walsh   54554   03/17      Stock Quote     The latest..
                                                              9988                EMEA01
0022    Patel   54101   05/07      Meeting Today   There is....
                                                              9988                EMEA01
0022    Patel   54512   06/07      Lunch?          Can we .....
                                                              9988                EMEA01

       1. Remove repeating group from the base table.
       2. Create a new table with the PK of the base table and the
          repeating group.



B-7                  Copyright © Oracle Corporation, 2002. All rights reserved.
First Normal Form - Single Record
USERS
 USER USER    MSE REC_                           SRVR SERVER
 _ID _NAME    _ID DATE SUBJECT        TEXT        _ID _NAME
 ---- ----- ----- ----- ------------- ---------- ---- ------
 2301 Smith 54101 05/07 Meeting Today There is.. 3786 IMAP05

5607 Jones 54512 06/07 Lunch?                              Can you... 6001 IMAP08

7773 Walsh 54101 05/07 Meeting Today There is.. 9988 EMEA01

0022 Patel 54101 05/07 Meeting Today There is.. 9988 EMEA01

                         USER      USER        SRVR       SERVER
                         _ID       _NAME        _ID        _NAME
             USERS       ----      -----       ----       ------
                         2301      Smith       3786       IMAP05
                         5607      Jones       6001       IMAP08
                         7773      Walsh       9988       EMEA01
                         0022      Patel       9988       EMEA01

 B-8            Copyright © Oracle Corporation, 2002. All rights reserved.
First Normal Form - Repeating Groups
             USER     MSE REC_
  RECEIVED_
             _ID      _ID DATE SUBJECT                                      TEXT
  MESSAGES ----     ----- ----- ---------------                             ----------
  (1NF)      2301   54101 05/07 Meeting Today                               There is..
             2301   54098 07/12 Promotions                                  I like to.
             2301   54445 10/06 Next Assignment                             Your next.
             5607   54101 05/07 Meeting Today                               There is..
             5607   54512 06/07 Lunch?                                      Can you...
             5607   54660 12/01 Jogging Today?                              Can you...
             7773   54101 05/07 Meeting Today                               There is..
  USER USER 7773
             SRVR   54554 03/17 Stock Quote
                    SERVER                                                  The latest
  _ID _NAME 0022
              _ID   54101 05/07 Meeting Today
                     _NAME                                                  There is..
             0022
  ---- ----- ----   54512 06/07 Lunch?
                    ------                                                  Can we ...
  2301 Smith 3786   IMAP05
  5607 Jones 6001   IMAP08
                             USERS (1NF)
  7773 Walsh 9988   EMEA01
  0022 Patel 9988   EMEA01



B-9            Copyright © Oracle Corporation, 2002. All rights reserved.
Converting to Second Normal Form


       1. Determine which non-key columns are not
          dependent upon the table’s entire primary key.
       2. Remove those columns from the base table.
       3. Create a second table with those columns and the
          columns from the PK that they are dependent
          upon.




B-10              Copyright © Oracle Corporation, 2002. All rights reserved.
Tables Already in Second Normal Form


              USERS
               USER        USER         SRVR        SERVER
               _ID         _NAME         _ID         _NAME
               ----        -----        ----        ------
               2301        Smith        3786        IMAP05
               5607        Jones        6001        IMAP08
               7773        Walsh        9988        EMEA01
               0022        Patel        9988        EMEA01
              Is the USERS table already in 2NF?




B-11          Copyright © Oracle Corporation, 2002. All rights reserved.
Convert to Second Normal Form
       RECEIVED_  USER   MSE REC_
       MESSAGES   _ID    _ID DATE SUBJECT         TEXT
                  ---- ----- ----- -------------- ---------
            (1NF) 2301 54101 05/07 Meeting Today There is.
                  2301 54098 07/12 Promotions     I like to
RECEIVED_         2301 54445 10/06 Next Assignment Your next
MESSAGES          5607 54101 05/07 Meeting Today There is.
(2NF)             5607 54512 06/07 Lunch?         Can you..
 USER   MSE   REC_5607 54660 12/01 Jogging Today? Can you..
 _ID    _ID   DATE7773 54101 05/07 Meeting Today There is.
                  7773 54554 03/17 Stock Quote    The lates
 ---- -----   -----
                  0022 54101 05/07 Meeting Today There is.
 2301 54101   05/07
                  0022 54512 06/07 Lunch?         Can we ..
 2301 54098   07/12
 2301 54445   10/06 MESSAGES      MSE
 5607 54101   05/07               _ID SUBJECT      TEXT
 5607 54512   06/07       (2NF)
                                ----- ------------ ---------
 5607 54660   12/01             54101 Meeting Toda There is.
 7773 54101   05/07             54098 Promotions   I like to
 7773 54554   03/17             54445 Next Assignm Your next
 0022 54101   05/07             54512 Lunch?       Can you..
 0022 54512   06/07             54660 Jogging Toda Can you..
                                54554 Stock Quote The lates


B-12                Copyright © Oracle Corporation, 2002. All rights reserved.
Converting to Third Normal Form


       Remove any columns that are dependent upon another
       non-key column:
        1. Determine which columns are dependent upon
           another non-key column.
        2. Remove those columns from the base table.
        3. Create a second table with those columns and the
           non-key columns that they are dependent upon.




B-13               Copyright © Oracle Corporation, 2002. All rights reserved.
Tables Already in Third Normal Form
       No non-key column can be functionally dependent
       upon another non-key column.
       RECEIVED_
       MESSAGES                          MESSAGES
       (2NF)                             (2NF)
                                          ID    SUBJECT        TEXT
                                          ----- -------------- ---------
       USER     MSE   REC_                54101 Meeting Today There is.
       _ID      _ID   DATE                54098 Promotions     I like to
       ----   -----   -----               54445 Next Assignment Your
       2301   54101   05/07               next
       2301   54098   07/12               54512 Lunch?         Can you..
       2301   54445   10/06               54660 Jogging Today? Can you..
       5607   54101   05/07               54554 Stock Quote    The lates
       5607   54512   06/07
       5607   54660   12/01
       7773   54101   05/07               Are these two tables in third
       7773   54554   03/17
       0022   54101   05/07               normal form? Why?
       0022   54512   06/07

B-14                  Copyright © Oracle Corporation, 2002. All rights reserved.
Converting to Third Normal Form

                                                          USERS
                                                                                 SRVR
                                                           ID        NAME         _ID
       USERS                                               ----      -----       ----
       USER   USER    SRVR      SERVER                     2301      Smith       3786
       _ID    _NAME    _ID       _NAME                     5607      Jones       6001
       ----   -----   ----      ------                     7773      Walsh       9988
       2301   Smith   3786      IMAP05                     0022      Patel       9988
       5607   Jones   6001      IMAP08
       7773   Walsh   9988      EMEA01
       0022   Patel   9988      EMEA01
                                                     MAIL_ ID                  NAME
                                                   SERVER ----                 ------
                                                           3786                IMAP05
                                                           6001                IMAP08
                                                           9988                EMEA01




B-15              Copyright © Oracle Corporation, 2002. All rights reserved.
Summary


   1NF The table must express a set of unordered, two-
       dimensional tables. The table cannot contain repeating
       groups.

   2NF The table must be in 1NF. Every non-key column must
       be dependent on all parts of the primary key.

   3NF The table must be in 2NF. No non-key column may be
       functionally dependent on another non-key column.

       An entity relationship model transforms into normalized
       data design.




B-16             Copyright © Oracle Corporation, 2002. All rights reserved.

entity-presentation

  • 1.
    Data Modeling andRelational Database Design Electronic Presentation 20000GC13 Production 1.3 August 2002 D37098 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 2.
    Author Copyright ” Oracle Corporation, 2002. All rights reserved. This documentation contains proprietary information of Oracle International Corporation. It is Patrice Daux provided under a license agreement containing restrictions on use and disclosure and is also protected by copyright law. Reverse engineering of the software is prohibited. If this documentation is Jeff Gallus delivered to a U.S. Government Agency of the Department of Defense, then it is delivered with Jan Speelpenning Restricted Rights and the following legend is applicable: Restricted Rights Legend Technical Contributors and Reviewers Use, duplication or disclosure by the Government is subject to restrictions for commercial computer software and shall be deemed to be Restricted Rights software under Federal law, as set forth in Kate Heap subparagraph (c) (1) (ii) of DFARS 252.227-7013, Rights in Technical Data and Computer Software Simmie Kastner (October 1988). Joni Lounsberry This material or any portion of it may not be copied in any form or by any means without the express Satyajit Ranganathan prior written permission of Oracle International Corporation. Any other copying is a violation of Sunshine Salmon copyright law and may result in civil and/or criminal penalties. Stijn Vanbrabant If this documentation is delivered to a U.S. Government Agency not within the Department of Gabriella Varga Defense, then it is delivered with ’Restricted Rights,’ as defined in FAR 52.227-14, Rights in Data- Publishers General, including Alternate III (June 1987). Christine Markusic The information in this document is subject to change without notice. If you find any problems in the documentation, please report them in writing to Education Products, Oracle Corporation, 500 Oracle Parkway, Box, Redwood Shores, CA 94065. Oracle International Corporation does not warrant that this document is error-free. Oracle is a registered trademark and Oracle, SQL*Plus, SQL*Net, Oracle Developer, Oracle8i, Oracle9i, Oracle9i Designer and PL/SQL are trademarks or registered trademarks of Oracle Corporation. All other products or company names are used for identification purposes only and may be trademarks of their respective owners. Copyright © Oracle Corporation, 2002. All rights reserved.
  • 3.
    Introduction to Entities, Attributes,and Relationships Copyright © Oracle Corporation, 2002. All rights reserved.
  • 4.
    Overview Why conceptual modeling? Introduction of the Key role players: • Entities • Attributes • Relationships 1-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 5.
    Why Create aConceptual Model? • It describes exactly the information needs of the business • It facilitates discussion • It helps to prevent mistakes, misunderstanding • It forms important “ideal system” documentation • It forms a sound basis for physical database design • It is a very good practice with many practitioners 1-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 6.
    Between Dream andReality... 1-5 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 7.
    Entity Relationship Modeling PRICE LEVEL # CODE * DESCRIPTION defined by applied to part of ORGANIZATION o EMAIL * NAME • Models business, o POSTAL CODE at o o REGION STREET o TOWN parent organization o o TELEPHONE NUMBER TITLE MOVIE o CONTACT NAME # PRODUCT CODE* CATEGORY o CONTACT EXTENSION * TITLE o AGE RATING o DESCRIPTION * DURATION the * MONOCHROME GAME not implementation o AUDIO * CATEGORY o PREVIEW SUPPLIER * MEDIUM o MINIMUM MEMOR # SUPPLIER CODE o EMAIL available * APPROVED for * REFERENCE PRICE HISTORY the source of available as reviewed in on # EFFECTIVE DATE * PRICE * DEFAULT DAYS * OVERDUE RATE • Is a well-established OTHER ORGANIZATION PUBLICATION # REFERENCE * TITLE CATALOG the holder o # REFERENCE technique o VOLUME o CATALOG DAT o ISSUE o DESCRIPTION CUSTOMER o PUBLISH DATE managed by o EMAIL * DESIGNATION EMPLOYEE the manager o * FIRST NAME the source of the source of * POSITION * LAST NAME o OTHER INITIALS * LAST NAME * STREET o FIRST NAME * TOWN o OTHER INITIALS * POSTAL CODE o EMAIL * REGION o HOME PHONE • Has a robust syntax acquired fro o WORK EXTENSION the cancellor of responsible responsible o WORK PHONE m o PHOTOGRAPH of o STAFF REMARKS for for COPY * ACQUIRE DATE * PURCHASE COST * SHELF CODE the holder of o CONDITION o CUSTOMER REMARKS responsible for • Results in easy-to-read MEMBERSHIP TYPE ... # CODE * DESCRIPTION rented on reserved on * DISCOUNT PERCENTAGE o STANDARD FEE held by the type o diagrams… REVIEW in # SEQUENCE * ARTICLE in of MEMBERSHIP # NUMBER held by o TERMINATION REASON of o TERMINATION DATE * HOT o AUTHOR approved by o URL renewed fo used fo the reservation for r r cancelled by for ...although they may requested authorized by of against the BOOKING MEMBERSHIP PERIOD * BOOK DATE requestor # START DATE o EXPIRE DATE o ACTUAL FEE PAID o NOTIFY DATE of o RESERVE DATE o STAFF REMARKS look rather complex fulfilled as approved by RENTAL * RENTAL DATE o STAFF REMARKS o COMPLETED for at first sight for the rental for composed of part of RENTAL ITEM # LINE NO * RENTAL PERIOD * PRICE PAID o RETURN DATE o STAFF REMARKS 1-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 8.
    Goals of EntityRelationship Modeling • Capture all required information • Information appears only once • Model no information that is derivable from other information already modeled • Information is in a predictable, logical place 1-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 9.
    Database Types ER Model Hierarchical Network Relational 1-9 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 10.
    Entity • An Entity is: – “Something” of significance to the business about which data must be known – A name for the things that you can list – Usually a noun • Examples: objects, events • Entities have instances 1-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 11.
    Entities and Instances PERSON Mahatma Gandhi PRODUCT 2.5 x 35 mm copper nail PRODUCT TYPE nail EMPLOYMENT CONTRACT my previous contract JOB violinist SKILL LEVEL fluent TICKET RESERVATION tonight: Hamlet in the Royal PURCHASE the CD I bought yesterday ELECTION for parliament next fall PRINTER PREFERENCE … DOCUMENT VERSION ... 1-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 12.
    Entities and Sets An entity represents a set of instances that are of interest to a particular business. JOB manager cook waitress dish washer financial controller porter waiter piano player 1-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 13.
    Attribute • Also represents something of significance to the business • Is a single valued property detail of an entity • Is a specific piece of information that: – Describes – Quantifies – Qualifies – Classifies – Specifies an entity 1-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 14.
    Attribute Examples Entity Attribute EMPLOYEE Family Name, Age, Shoe Size, Town of Residence, Email, ... CAR Model, Weight, Catalog Price, … ORDER Order Date, Ship Date, … JOB Title, Description, ... TRANSACTION Amount, Transaction Date, … EMPLOYMENT Start Date, Salary, ... CONTRACT 1-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 15.
    Relationships • Also represent something of significance to the business • Express how entities are mutually related • Always exist between two entities (or one entity twice) • Always have two perspectives • Are named at both ends 1-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 16.
    Relationship Examples EMPLOYEES have JOBS JOBS are held by EMPLOYEES PRODUCTS are classified by a PRODUCT TYPE PRODUCT TYPE is a classification for a PRODUCT PEOPLE make TICKET RESERVATIONS TICKET RESERVATIONS are made by PEOPLE 1-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 17.
    Employees have Jobs JOB manager EMPLOYEE cook Shintaro waitress dish washer Jill financial controller Adam Ahmed porter waiter Maria piano player Numerical observation: • All EMPLOYEES have a JOB • No EMPLOYEE has more than one JOB • Not all JOBS are held by an EMPLOYEE • Some JOBS are held by more than one EMPLOYEE 1-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 18.
    Entity Representation inDiagram • Drawn as a “softbox” EMPLOYEE JOB ELECTION • Name singular • Name inside • Neither size, TICKET nor position RESERVATION ORDER has a special meaning JOB ASSIGNMENT During design, entities usually lead to tables. 1-18 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 19.
    Attributes in Diagrams Mandatory attribute, that is, known and available for every instance. Optional attribute, that is, unknown or unimportant to know for some instances. EMPLOYEE JOB Family Name Title * * Description Address o * o Birth Date o Shoe Size o Email During design, attributes lead to columns. 1-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 20.
    Relationship in Diagrams An employee has exactly one job. EMPLOYEE JOB has held by Jobs are held by one or more employees held by one or more During design, relationships lead to foreign keys. 1-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 21.
    Diagrams Are ToCommunicate has JOB EMPLOYEE held by 1-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 22.
    Characteristics Of TheRelationship Line mandatory: optional: 1-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 23.
    Two Perspectives mandatory: optional: EMPLOYEE has JOB held by 1-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 24.
    One Way mandatory: optional: EMPLOYEE has JOB held by Every EMPLOYEE has exactly one JOB 1-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 25.
    The Other Way mandatory: optional: EMPLOYEE has JOB held by A JOB may be held by one or more EMPLOYEES 1-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 26.
    Reading a RelationshipEnd P split into Q part of 1-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 27.
    Reading a RelationshipEnd P split into Q part of 1-28 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 28.
    Reading a RelationshipEnd P split into Q part of must be exactly one Q “Each P may be split into ” one or more Qs 1-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 29.
    Reading a RelationshipEnd P split into Q part of “Each P may be split into one or more Qs” 1-30 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 30.
    Reading a RelationshipEnd P split into Q part of “Each P may be split into one or more Qs” 1-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 31.
    Reading a RelationshipEnd P split into Q part of “Each P may be split into one or more Qs” must be exactly one P “Each Q may be part of ” one or more Ps 1-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 32.
    Reading a RelationshipEnd P split into Q part of “Each P may be split into one or more Qs” “Each Q must be part of exactly one P” 1-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 33.
    Functions Drive Data • Business functions are always present. – Explicit – Assumed • Business functions need data. • An entity, attribute, or relationship may be modeled because: – It is used by a business function. – The business need may arise in the near future. 1-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 34.
    Weather Forecast January 26 København 1/-5 3 Bremen 0/-3 4 Berlin 3/-1 3 München 5/-3 3 **** Amsterdam 8/3 4 Bruxelles 4/0 2 Paris 4/1 3 Bordeaux 7/2 3 1-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 35.
    DK København (Copenhagen) IR UK NL Bremen Amsterda m Berli BE Bruxelle DE n (Brussels) s LU München Paris (Munich) FR CH Bordeaux IT 1-36 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 36.
    Weather Forecast, aSolution CITY COUNTRY * Name located in * Name o Geographical o Geographical Position having Position subject of about FORECAST referring to WEATHER TYPE * Date * Icon o Minimum referred in * Description Temperature o Maximum referring to WIND DIRECTION Temperature * Icon o Wind Force referred in * Description 1-38 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 37.
    Graphical Elements ofER Diagram Entity Attribute * * * * o Relationship Subtype Unique identifier Arc Nontransferability # # o 1-39 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 38.
    Summary • ER Modeling models information conceptually • Based on functional business needs • “What”, not “How” • Diagrams provide easy means of communication • Detailed, but not too much 1-40 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 39.
    Practices • Instance or Entity • Guest • Reading • Hotel • Recipe 1-41 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 40.
    Practice: Instance orEntity? Concept E/A/I? Example Instance or Entity PRESIDENT ELLA FITZGERALD DOG ANIMAL HEIGHT E CAR A CAR I CAR 1-42 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 41.
    Practice: Guest Address Arrival Date GUEST Family Name HOTEL Room Number ROOM Floor Number Number of Beds Number of Parking Lots Price TV set available? 1-43 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 42.
    Practice: Reading EMPLOYEE assigned to DEPARTMENT responsible for A Each EMPLOYEE may be assigned to one or more DEPARTMENTS Each DEPARTMENT must be responsible for one or more EMPLOYEES B Each EMPLOYEE must be assigned to one or more DEPARTMENTS Each DEPARTMENT may be responsible for one or more EMPLOYEES C Each EMPLOYEE must be assigned to exactly one DEPARTMENT Each DEPARTMENT may be responsible for exactly one EMPLOYEE 1-44 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 43.
    Practice: Read andComment PERSON born in TOWN birthplace of living in home town of visitor of visited by mayor of with mayor 1-45 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 44.
    Practice: Hotel HOTEL * Address the lodging host of for ROOM * Room Number with in in guest in STAY of PERSON * Arrival Date * Name with 1-46 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 45.
    Ralph’s Raving Recipes Soups Açorda alentejana bread soup from Portugal vegetarian For 4 persons: 15 min 1 onion easy 4 cloves of garlic 1 red pepper 1 liter of vegetable broth 4 tablespoons of olive oil 4 fresh eggs 1 handful of parsley or coriander salt, pepper 9-12 slices of (old) bread Preparation Cut the onion into small pieces and fry together with the garlic. Wash the red pepper, cut it in half, remove the seeds and fry it for at least 15. page 127 1-47 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 46.
    1-48 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 47.
    Entities and Attributesin Detail Copyright © Oracle Corporation, 2002. All rights reserved.
  • 48.
    Overview • Data compared to information • Entities and how to track them down • Attributes • Subtypes and supertypes 1-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 49.
    Data Compared toInformation Data • Facts given from which other facts may be inferred • Raw material • Example: Telephone Directory Information • Knowledge, intelligence • Example: Telephone number of florist 1-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 50.
    Data • Modeling, Conceptual Structuring data concepts into logical, coherent, and mutually related groups • Modeling, Physical Modeling the structure of the (future) physical database • Base A set of data, usually in a variety of formats, such as paper and electronically-based • Warehouse A huge set of organized information 1-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 51.
    Entities • Give the entity a unique name • Create a formal description of the entity • Add a few attributes, if possible • Be aware of homonyms • Check entity names and descriptions regularly • Avoid use of reserved words • Remove relationship name from entity name 1-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 52.
    Relationship Name inEntity Name GUEST HOTEL guest of host of PERSON ACCOMMODATION guest of host of 1-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 53.
    Some Background Information “ElectronicMail (EM) wants to provide an attractive and user- friendly Web-based e-mail system. Important concepts are user and message. An EM user has a unique address of 30 characters at most and a password supplied by the person who set up the EM user. Who the person really is, we do not know, although we ask for some additional information, such as the name, country, birth date, line of business, and a few more things. 1-9 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 54.
    Some Background Information Users must be able to send and receive mail messages. A mail message is usually a piece of straight text. A message may have attached files. An attachment is a file, like a spreadsheet, that is sent and kept with the message, but not created with our software. Messages are kept in folders. Every user has three folders to start with: Inbox, Outbox, and Wastebasket. Additional folders can be created by the user.” 1-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 55.
    (0 ORJR DGYHUWLVHPHQW DUHD s Compose Compose Template a ge ss Send default me Folders Subject: test Addresses To: bipi, giovanni_papini@yahoo.com a il Save Draft Preferences em os Cc: myself Save Template mp Get New Mail Bcc: Cancel o oc Exit Message t this is a test en DGYHUWLVHPHQW text: and a text as well re tralalalala f sc pompidom h oKeep DUHD tc Copy s ke Attachments: Type: Add abc.html Hypertext Signature xyz.doc Word document 1-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 56.
    (0 ORJR DGYHUWLVHPHQW DUHD Compose Addresses s es Folders Nicknames dr es Alias Email d na Addresses address Preferences apple ai w.j.appletree@cats.com int bipi sabine_papini @yahoo.com ma Get New Mail joe j.suspender@last.com myself jtiddlywink@em.com o nt Exit e cre Group DGYHUWLVHPHQW fs friends ho e tc bipi DUHD joe sk giovanni_papini@yahoo.com p.g.m.papini@em.com 1-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 57.
    Some Desired Functionality • “Users of ElectronicMail must be able to address messages to a mail list, for example, a group of e- mail addresses. The system should only keep one copy of the message sent (to save database space) plus information about whom the message was sent to. • Users must be able to create templates for their messages. A template must be named and may contain everything a real message contains. A template may be used for new messages. 1-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 58.
    Some Desired Functionality • Users must be able to reply to a message. By replying the user creates a new message to which the old message is added. • Users must be able to create an alias for an e-mail address, to hide the often complex addresses behind an easy-to-remember nickname.” 1-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 59.
    Evolution of anEntity Definition • A message is a piece of text sent by a user. • A message is a piece of text sent by an EM user. • A message is a note that is sent by an EM user. A message does not necessarily contain text, nor a subject, etc. • A message is a note that is sent by an EM user or received by an EM user or both. A message does not necessarily contain text, nor a subject, etc. • A message is a note that is received by an EM user. A message does not necessarily contain text, nor a subject, etc. 1-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 60.
    Business Functions • “Users of ElectronicMail must be able to address messages to a mail list, for example, a group of e- mail addresses. The system should only keep one copy of the message sent (to save data base space) plus information about whom the message was sent to. • Users must be able to create templates for their messages. A template must be named and may contain everything a real message contains. A template may be used for new messages. 1-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 61.
    Business Functions • Users must be able to reply to a message. By replying the user creates a new message to which the old message is added. • Users must be able to create an alias for an e-mail address, to hide the often complex addresses behind an easy-to-remember nickname.” 1-18 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 62.
    An Attribute... • Always answers “of what?” • Is the property of entity, not of relationship • Must be single valued • Has format, for example: – Character string – Number – Date – Picture – Sound • Is an elementary piece of data 1-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 63.
    Nouns, Entities, Attributes • “ElectronicMail (EM) wants to provide an attractive and user friendly Web-based email system. Important concepts are user and message. • An EM USER has a unique address of 30 characters at most and a password supplied by the PERSON who set up the EM user. Who the person really is, we do not know, although we ask for some additional information, like the name, COUNTRY, birth date, line of business, and a few things more. 1-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 64.
    Nouns, Entities, Attributes • Users must be able to send and receive mail MESSAGES. A mail message is usually a piece of straight text. A message may have attached files. An ATTACHMENT is a file, like a spreadsheet, that is sent and kept with the message, but not created with our software. • Messages are kept in FOLDERS. Every user has three folders to start with: Inbox, Outbox and Wastebasket. Additional folders can be created by the user.” 1-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 65.
    EM Entities andAttributes Nouns Entities/Attributes/ Entities with their Instances Attributes user USER USER address Address - Address password Password - Password person PERSON PERSON name Name - Name country COUNTRY - Birth Date birth date Birth Date - Occupation occupation Occupation COUNTRY message MESSAGE - Name text Text MESSAGE attachment ATTACHMENT - Text file File ATTACHMENT folder FOLDER - Filename inbox Inbox FOLDER outbox Outbox - Name wastebasket Wastebasket 1-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 66.
    Attribute and Entity GARMENT Name Price Attributes in one model can be entities in another. GARMENT CURRENCY PRICE NAME LANGUAGE 1-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 67.
    Redundancy COMMODITY * Name * Price exclusive VAT * Price inclusive VAT * VAT % 1-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 68.
    A Subtype ... • Inherits all attributes of supertype • Inherits all relationships of supertype • Usually has its own attributes or relationships or business functions • Is drawn within supertype • Never exists alone ADDRESS • May have subtypes of its own USER • Is also known as “Subentity” LIST 1-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 69.
    Subtype: Example COMPOSITION o Subject o Cc o Bcc DRAFT o Text * Name MESSAGE TEMPLATE * Name 1-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 70.
    Subtype: Rules Subtypes of the same entity must be: • Exhaustive: Every instance of a supertype is also instance of one of the subtypes. and • Mutually exclusive: Every instance of the supertype is of one and only one subtype. Name subtypes A adequately: B C NON B OTHER A 1-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 71.
    Subtypes: Three Levels COMPOSITION OTHER o Subject COMPOSITION o Cc * Name o Bcc DRAFT o Text *DRAFT Name MESSAGE TEMPLATE TEMPLATE * Name 1-28 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 72.
    More on Subtypes Subtypes always exist... EMPLOYEE CURRENT OTHER EMPLOYEE EMPLOYEE ... but do not all make sense EMPLOYEE EMPLOYEE WITH OTHER SHOE SIZE 45 EMPLOYEE 1-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 73.
    Summary Entities • Nouns in texts • Tangible, intangible, events Attributes • Single-valued qualifiers of entities Subtypes • Inherit all attributes and relationships of supertype • May have their own attributes and relationships 1-30 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 74.
    Practices • Books • Moonlight Coffees • Shops • Subtypes • Schedule • Address 1-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 75.
    1. I havejust finished writing a book. It’s a novel about justice and power. 2. We have just published this book. The hard cover edition is available now. 3. Did you read that new book on Picasso? I did. It's great! 4. If you like you can borrow my book. 5. I have just started translating this book into Spanish. I use the modern English text as a basis and not the original, which is 16th century. 6. I ordered that book for my parents. 1-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 76.
    7. Yes, wehave that book available. You should find it in Art books. 8. A second printing of the book War and Peace is very rare. 9. I think My name is Asher Lev is one of the best books ever written. Mine is autographed. 10. I want to write a book on entity relationship modeling when I retire. 1-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 77.
    Moonlight Coffees Summary • Moonlight Coffees is a fast growing chain of high quality coffee shops with currently over 500 shops in 12 countries of the world. Shops are located at first-class locations, such as major shopping, entertainment and business areas, airports, railway stations, museums. Moonlight Coffees has some 9,000 employees. Products • All shops serve coffees, teas, soft drinks, and various kinds of pastries. Most shops sell nonfoods, like postcards and sometimes even theater tickets. 1-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 78.
    Moonlight Coffees Summary Financial Shop management reports sales figures on a daily basis to Headquarters, in local currency. Moonlight uses an internal exchange rates list that is changed monthly. Since January 1, 1999, the European Community countries must report in Euros. Stock Moonlight Coffees is a public company; stock is traded at NASDAQ, ticker symbol MLTC. Employees can participate in a stock option plan. 1-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 79.
    Moonlight Coffees Shop List Shoplist, ordered to date opened page 4 181 The Flight, JFK Airport terminal 2, New York, USA, 212.866.3410, Airport, 12-oct-97 182 Hara, Kita Shinagawa,Tokyo, JP, 3581.3603/4, Museum, 25-oct-97 183 Phillis, 25 Phillis Rd, Atlanta, USA, 405.867.3345, Shopping Centre, 1-nov-97 184 JFK, JFK Airport terminal 4, New York, USA, 212.866.3766, Airport, 1-nov-97 1-36 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 80.
    Moonlight Coffees Shop List 185 VanGogh, Museumplein 24, Amsterdam, NL, 76.87.345, Museum, 10-nov-97 186 The Queen, 60 Victoria Street, London, UK, 203.75.756, Railway Station, 25-nov-97 187 Wright Bros, JFK Airport terminal 1, New York, USA, 212.866.9852, Airport, 6-jan-98 188 La Lune, 10 Mont Martre, Paris, FR, 445 145 20, Entertainment, 2-feb-98 1-37 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 81.
    Subtypes DISABLED CAR PERSON STATION WAGON DEAF SEDAN BLIND OTHER DISABLED BUILDING HOUSE PERSON HOTEL DOG ROOM WITH BATH DOMESTIC ANIMAL OTHER ROOM MAMMAL 1-38 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 82.
    van Gogh, Museumplein,Amsterdam Schedule Oct 12 - Oct 18 prepared by Janet Shift Mon Tue Wed Thu Fri Sat Sun Annet S 2 2 2 1 Annet B 1 1 1 Dennis 2 2 1 2 3 Jürgen 5 4 Kiri 3 4 4 Wil 1-39 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 83.
    Practice: Address (1/2) Rheingasse 123 34 Oxford Road 53111 Bonn Reading Germany Berkshire RG1 8JS UK 1020 Maple Drive Kirkland WA 98234 USA 1-40 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 84.
    Practice: Address (2/2) P.O. Box 66708 c/o Mrs Smith Nairobi Maude Street Kenya Sandton Johannesburg 2144 South Africa 1-41 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 85.
    Relationships in Detail Copyright© Oracle Corporation, 2002. All rights reserved.
  • 86.
    Overview • Relationships • Ten different relationship types • Nontransferability • Relationships that seem to have attributes • Rules of Normalization 3-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 87.
    Establishing a Relationship • Determine the existence of a relationship • Choose a name for the relationship from both perspectives • Determine optionality • Determine degree • Determine nontransferability 3-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 88.
    Establishing the Relationship MESSAGE sending USER receiving replying 3-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 89.
    Relationship Names sender USER MESSAGE sent by of sent to receiver reply of of replied to by 3-5 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 90.
    Naming the Relationship receiving MESSAGE received by USER receiver of A MESSAGE is received by a USER A USER is receiver of a MESSAGE 3-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 91.
    Optionality author USER MESSAGE written by of received by receiver reply of of replied to by 3-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 92.
    Optionality No: Yes: MESSAGE received by USER receiver of • Must every MESSAGE be received by a USER? Yes • Must every USER be receiver of a MESSAGE? No 3-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 93.
    Mandatory 1: Mandatorym A split into B part of • Every A must be split into at least one B • Every B must be part of exactly one A 3-9 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 94.
    Degree author MESSAGE USER written by of received by receiver reply of of containing replied to by with 5 ATTACHMENT 3-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 95.
    Degree One: One or more: MESSAGE received by USER receiver of • Can a MESSAGE be received by more than one USER? Yes • Can a USER be the receiver of more than one MESSAGE ? Yes 3-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 96.
    Nontransferability FOLDER containing filed in author USER MESSAGE written by of received by receiver reply of of replied to by 3-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 97.
    Relationship Types 1:m (a) (b) (c) (d) 3-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 98.
    Relationship Types m:1 PRODUCT part of BUNDLE consists of 3-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 99.
    Relationship Types m:m (e) (f) (g) 3-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 100.
    Relationship Types m:m USER part of LIST consists of 3-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 101.
    Relationship Types 1:1 (h) ( i) (j) 3-18 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 102.
    1:1 Relationships Roles PERSON acting as PATIENT * Name * Blood Type role of acting as EMPLOYEE * Job role of 3-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 103.
    1:1 Relationships Process MESSAGE DRAFT basis for result of 3-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 104.
    Redundant Relationships COUNTRY COUNTRY location of location of birth of of located of located in in TOWN TOWN hometown hometown of living living of living born in in in in PERSON PERSON 3-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 105.
    Relationships and Attributes • An attribute can hide a relationship • Relationship can be “downgraded” to attribute ATTACHMENT TYPE * Name of with ATTACHMENT * Type ATTACHMENT * Content * Content 3-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 106.
    Attribute Compared toRelationship • Easy model • Value control • Fewer tables • List of values • No join • Other relationships ATTACHMENT TYPE * Name of with ATTACHMENT * Type ATTACHMENT * Content * Content 3-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 107.
    Attribute or Entity NAME EMPLOYEE JOB * Id SALARY BADGE GENDER NATIONALITY TEAM ADDRESS 3-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 108.
    Attribute Compared toRelationship • There is no such thing as a foreign key attribute • Usually, the attribute name should not contain an entity name FOLDER * Name containing placed in MESSAGE * Message Id * Text * Folder Name 3-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 109.
    Relationship Compared toAttribute MESSAGE addressed to USER addressee of MESSAGE USER * Addressee MESSAGE addressed to USER o Addressee addressee of 3-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 110.
    m:m Relationships MayHide Something CUSTOMER PRODUCT * Id buyer of * Code * Name * Name bought by 3-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 111.
    Quantity Is Attributeof ... ? CUSTOMER PRODUCT buyer of * Id * Code * Name bought by * Name Quantity ? CUSTOMER PRODUCT buyer of * Id * Code * Name * Name bought by Quantity 3-28 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 112.
    Attribute of Relationship? CUSTOMER PRODUCT buyer of * Id * Code * Name * Name bought by Quantity 3-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 113.
    New Entity ORDER CUSTOMER * Id with * Name ORDER of PRODUCT with *Quantity Sold * Code * Name for CUSTOMERS PRODUCTS ORDERS Id Name Code Name Ctr_id Pdt_code Quantity_sold 1 Sanchez 1 Jeans 1 2 2 2 Lowitch 2 Shirt 1 3 2 3 Yomita 3 Tie 2 2 1 4 4 3 3-30 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 114.
    Multiple PRODUCTS foran ORDER CUSTOMER * Id with * Name ORDER of * Id PRODUCT with * Date * Code * Name for Qu an t ? ity 3-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 115.
    Another New Entity:ORDER ITEM CUSTOMER * Id with ORDER * Name of HEADER * Id PRODUCT * Date * Code * Name with with for for ORDER ITEM *Quantity Sold 3-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 116.
    Tables CUSTOMERS Id Name ORDER_HEADERS 1 Sanchez Id Ctr_id Date_ordered Lowitch 1 1 25-MAY-1999 2 Yomita 25-MAY-1999 2 2 25-MAY-1999 ORDER_ITEMS PRODUCTS Ohd_id Pdt_code Quantity_sold Code Name 1 2 2 1 Jeans 2 2 Shirt 2 2 1 3 Tie 4 3-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 117.
    Resolving m:m Relationship • Create new intersection entity • Create two m:1 relationships, derive optionality • Remove m:m relationship A in A of A/B COMBINATION xxx yyy B B of in 3-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 118.
    Resolving m:m Relationship • Create new intersection entity • Create two m:1 relationships, derive optionality • Remove m:m relationship with A of A/B COMBINATION xxx yyy B of with 3-36 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 119.
    Resolving m:1 Relationship external classified PERSON as CUSTOMER classification TYPE of internal 3-37 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 120.
    Resolving m:1 Relationship external PERSON CUSTOMER TYPE with in for with CLASSIFICATION internal 3-38 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 121.
    Normalization Rules NormalForm Rule Description First Normal Form All attributes are single valued. Second Normal Form (2NF) An attribute must be dependent upon entity’s entire unique identifier. Third Normal Form (3NF) No non-UID attribute can be dependent on another non-UID attribute. “A normalized entity-relationship data model automatically translates into a normalized relational database design” “Third normal form is the generally accepted goal for a database design that eliminated redundancy” 3-39 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 122.
    First Normal Formin Data Modeling USER # Name * Person Name * Message Receive Date o Message Subject o MessageText All attributes must be single-valued. RECEIVED MESSAGE received by USER # Receive Date # Name o Subject receiver * Person Name o Text of 3-40 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 123.
    Second Normal Formin Data Modeling An attribute must be dependent upon its entity’s entire unique identifier. RECEIVED including MESSAGE MESSAGE # Id # User Name included o Text * Receive Date in * Subject RECEIVED MESSAGE including MESSAGE # Id # User Name included o Text * Receive Date in * Subject 3-41 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 124.
    Third Normal Formin Data Modeling USER # Name * Person Name * Password * Server Id * Server Name No non-UID attribute can be dependent upon another non-UID attribute. USER assigned MAIL # Name to SERVER * Person Name # Id * Password distribut * Name e mail to 3-42 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 125.
    Summary • Relationships express how entities are connected. • Initially relationships often seem to be of type m:m. • Finally relationships are most often of type m:1. • Relationships can be resolved into: – Two new relationships – One intersection entity • Third Normal form is generally accepted standard. 3-43 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 126.
    Practices • Read the Relationship • Find a Context • Name the Intersection Entity • Receipt • Moonlight PO • Price List • EMail • Holiday 3-44 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 127.
    Practice: Read theRelationship ALU of BRY with PUR bazooned in YOK bazooned by KLO bilought in HAR glazoed with 3-45 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 128.
    Find a Context(1) 3-46 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 129.
    Find a Context(2) 3-47 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 130.
    Find a Context(3) 3-48 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 131.
    Find a Context(4) 3-49 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 132.
    Practice: Name theIntersection Entity PRODUCT sold by DEPARTMENT STORE selling PERSON crewing SAILBOAT crewed by INTERPRETER fluent in LANGUAGE spoken by 3-50 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 133.
    Practice: Receipt Served by: Dennis Till: 3 Dec 8, 4:35 pm ----------------------- CAPPUCC M 3.60 * 2 7.20 CREAM .75 * 2 1.50 APPLE PIE 3.50 BLACKB MUF 4.50 SUB 16.70 tax 12% 2.00 TOTAL 18.70 ======= CASH 20.00 RETURN 1.30 ----------------------- Hope to serve you again @MOONLIGHT COFFEES 25 Phillis Rd, Atlanta 3-51 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 134.
    Practice: Moonlight PO • All Moonlight Coffee employees work for a department such as “Global Pricing” or “HQ”, or for a shop. All employees are at the payroll of one of our country organizations. Jill, for example, works as a shop manager in London; Werner is a financial administrator working for Accounting and is located in Germany. • All shops belong to one country organization (“the countries”). There is only one country organization per country. All countries and departments report to HQ, except HQ itself. • Employees can work part time. Lynn has had an 80% assignment for Product Development since the 1st September. Before that she had a full-time position. 3-52 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 135.
    25 Phillis Road,Atlanta price list visit us at www.moonlight.com Practice: Price List small medium large regular coffee 2.25 2.90 3.50 cappuccino 2.90 3.60 4.20 café latte 2.60 3.20 3.90 special coffee 3.10 3.70 4.40 espresso 2.25 2.90 3.50 coffee of the day 2.00 2.50 3.00 decaffeinated .25 .50 .75 extra black tea 2.25 2.90 3.50 infusions 2.60 3.20 3.90 herbal teas 2.90 3.60 4.20 tea of the day 2.00 2.50 3.00 decaffeinated .25 .50 .75 extra milk 1.25 1.90 2.50 soft drinks 2.25 2.90 3.50 soda water 2.25 2.90 3.50 mineral water 2.90 3.60 4.20 Sales Tax included apple pie 3.50 strawberry cheesecake 3.50 September 16 whole wheat oats muffin with almonds 3.90 blackberry muffin 4.50 fruitcake 4.50 cake of the day 4.00 additional whipped cream .75 3-54 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 136.
    Practice: E-Mail FOLDER containing placed in USER COMPOSITION written by author of part MESSAGE received by LIST of receiver consist OTHER of s of COMPOSITION reply of containing replied to by with 5 ATTACHMENT ATT. TYPE 3-55 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 137.
    Practice: Holiday “Paul and I hiked in the USA. Eric and I hiked in France and we rented a car in the USA last year.” COUNTRY TRANSPORT France Boots USA Boots USA Car RT CO TRANSPORT COUNTRY O Fr U Ca ot SP US an NT US A ce RY Bo AN Bo r s A TR CO s Er M ot COMPANION N Er ic PA O Pa ic NI NI O E r ic P A ul N Er M CO P a ic ul 3-56 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 138.
    Practice: Normalize anER Model ENROLLMENT COURSE grade code course number teacher number for course name grade completed teacher number description with department course name code for department name assigned teacher name STUDENT #* student id last name first name 3-57 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 139.
    Constraints Copyright © OracleCorporation, 2002. All rights reserved.
  • 140.
    Overview • Unique Identifiers • Arcs • Domains • Various other constraints 4-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 141.
    Rembrandt 4-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 142.
    4-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 143.
    Identification and Representation G. Papini, please? EMPLOYEES Name Initials Birthdate PAPINI G. 02-FEB-1954 HIDE T.M. 11-JUN-1961 PAPINI G. 02-FEB-1945 BAKER S.J.T. 24-SEP-1958 4-5 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 144.
    Unique Identifier Examples JOB Name COMPUTER IN NETWORK IP Address TELEPHONE Country code, Area code, Telephone number EMPLOYEE Employee number or Name, Initials, Birth Date MAIL LIST Name, Owner 4-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 145.
    Unique Identifier Indicates Unique Identifier CUSTOMER # Family Name ORDER o Initials by # Date # Address responsible o Telephone for Indicates Unique Identifier 4-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 146.
    Unique Identifiers USER # Name part of owner of contains owned by MAIL LIST # Name ROOM FLOOR HOTEL # No # No # Name 4-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 147.
    Multiple Relationship UID USER USER # Name # Name owner is owner part of of of referred to contains owned by owned by LIST LIST # Name # Name contains referring contained to in LIST ITEM 4-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 148.
    Well-defined Unique Identifiers Z Q P # Z1 # Q1 # P1 o Z2 o Z3 Y # Z4 # Y1 K # Y2 L # L1 X # X1 M # M1 XY R T S # R1 # T1 4-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 149.
    Incorrect Unique Identifiers L F G K # L1 # G1 # F1 # K1 P R # P1 # R1 KL T o # T1 Q # Q1 G H # G1 4-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 150.
    Information-Bearing Codes 54.0.093.81 Product Group In Production? Factory Sequence Number PRODUCT PRODUCT GROUP # Code # Code * In Production? * Sequence No FACTORY # Id 4-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 151.
    Arcs Contract “A contract consists of contract components; these are standard Conditions Std? conditions or customized conditions” 1 2 3 4 5 CONTRACT STANDARD basis for 6 CONDITION based consists in on of CUSTOMIZED CONDITION Arc in Indicates relationship part of in arc referring to referring to CONTRACT COMPONENT 4-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 152.
    Exclusive Arc USER owner of owned by LIST is referred to container is referred of to contained referring to in referring to LIST ITEM 4-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 153.
    Possible Arc Constructs 4-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 154.
    Some Incorrect ArcConstructs • The arc “belongs” to one entity • Relationships in the arc must be of the same optionality • Arcs must contain at least two relationships An arc may be correct, but is quite difficult to implement ... 4-18 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 155.
    Some Incorrect ArcConstructs Number of Valid Relationships in Arc Per Entity Instance Minimum Maximum }n n n }n 1 1 }n 0 n }n 0 1 4-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 156.
    Arc or Subtype USER ADDRESS owner owner of USER of owned owned by by LIST LIST is referred is referred contains to contains to referring referring is referred to to to in referring to in LIST ITEM LIST ITEM 4-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 157.
    Arc and Subtypes A A 1 2 R Q P Q P A C A C B A C B B 3 4 5 R R Q Q P Q P P 4-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 158.
    Subtypes Hide Relationshipsin Arc • Every A • Every A must is either a B or a C be a B or be a C • Every B is an A • Every B must be an A • Every C is an A • Every C must be an A A A is B B is is C C is 4-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 159.
    Value sets CODE TYPE # Id YESNO A * Name # Code * Max Length * Description B of Description GENDER # Code * Description CODE # Code WEEKDAY * Description # Code * Description 4-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 160.
    Other Constraints: RangeCheck EMPLOYEE JOB * Name * Title * Address * Minimum Salary between with * Maximum Salary of for referring to EMPLOYMENT * Start Date o End Date * Salary 4-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 161.
    Other Constraints: StateValue Transition Possible Wid Mar Div to Sin DP Marital Status EMPLOYEE Transitions fro * Name * Address Single m * Current Marital Status Married Widowed Divorced Domestic Partnership 4-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 162.
    Conditional Relationship CONTRACT # Id * Standard Indicator STANDARD basis for CONDITION based consists on in of CUSTOMIZED CONDITION in part of referring to referring to CONTRACT COMPONENT 4-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 163.
    Boundaries EXTERNAL unrelated entity # Id * Description * Value and possible implementation EXTERNALS Id Description Value 1 Value added tax % 15 2 Maximum available Space per Mail User in Mbyte 500 3 Maximum level of Nested Mail Folders 3 4 Maximum level of Nested Mail Lists 16 4-28 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 164.
    Summary • Identification – Can be a real problem in the real world – Models cannot overcome this • Entities must have at least one Unique Identifier • Unique Identifiers consist of attributes or relationships or both • Arcs • Many types of constraint are not represented in ER model 4-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 165.
    Practices • Identification Please • Identification • Moonlight UID • Tables • Modeling Constraints 4-30 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 166.
    Practice: Identification Please • A city • A contact person for a customer • A train • A road • A financial transaction • An Academy Award (Oscar) • A painting • A T.V. show 4-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 167.
    Practice: Identification 1 A B C # Xx * Yy # Zz 4-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 168.
    Practice: Identification 2 A B C # Id # Code 4-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 169.
    Practice: Identification 3 A * Xx B C with D # Yy # Zz # Id of 4-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 170.
    Practice: Identification 4 P Q # Id 4-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 171.
    Practice: Identification 5 P # Name 4-36 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 172.
    Practice: Identification 6 PERSON FEMALE MALE son of # Name # Seqno mother of # Birth Date partner in partner in with husband with wife MARRIAGE # Start Date 4-37 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 173.
    Practice: Moonlight UID reporting to report of DEPARTMENT report HQ of OTHER reporting to DEPARTMENT COUNTRY in COUNTRY ORGANIZATION with of with with with EMPLOYEE belongs to in with SHOP of for for PAYROLL with ENTRY to for to ASSIGNMENT as JOB in 4-38 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 174.
    Practice: Table 1 • “In a relational database system, data is stored in tables. Tables of a database user must have a unique name. A table must have at least one column. A column has a unique name within the table. A column must have a data type and may be Not Null. • Tables can have one primary key and any number of unique keys. A key contains one or more columns of the table. A column can be part of more than one key. 4-39 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 175.
    Practice: Table 1 A table can have foreign keys. A foreign key always connects one table with another. A foreign key consists of one or more columns of the one table that refers to key columns of the other table. “The sequence of columns within the key and foreign key is important.” 4-40 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 176.
    Practice: Table 2 from with FOREIGN KEY TABLE KEY # Name # Name # Name with to PRIMARY referenced of with in with UNIQUE with for in from in COLUMN for ASSOCIATION in USAGE # Seqno # Name in * Data Type of # Seqno to o Not Null 4-41 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 177.
    Practice: Constraints 1 EMPLOYEE # Name managed by manager of 4-42 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 178.
    Practice: Constraints 2 owned USER by LIST owner of # Name # Name owned owner of by NICKNAME # Alias 4-43 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 179.
    Practice: Constraints 3 with subfolder USER # Name FOLDER within Name owner of owned by 4-44 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 180.
    Modeling Change Copyright ©Oracle Corporation, 2002. All rights reserved.
  • 181.
    Overview • Date and time • Modeling change over time • Prices change • Journaling 5-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 182.
    Change and Time • Every update means loss of information. • Time in your model makes the model more complex. • There are often complex join conditions. • Users can work in advance. • When do you model date/time as an entity? • What constraints do arise? • How do you handle journaling? 5-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 183.
    Entity DAY DAY # Date * Public Holiday Indicator first day of starts on TASK ASSIGNMENT for TASK * Duration in Hours in # Id of EMPLOYEE # Name with 5-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 184.
    Modeling Change EMPLOYEE COUNTRY # Id # Name of in for as ASSIGNMENT # Start Date o End Date 5-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 185.
    Even a CountryHas a Life Cycle COUNTRY # Name # Start Date EMPLOYEE * End Date # Id of in life cycle attributes for as ASSIGNMENT # Start Date o End Date 5-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 186.
    Products and Prices PRODUCT # Id * Name with PRICE = of PRICED PRODUCT= HISTORICAL PRICE PRICE * Price in $ # Start date o End Date 5-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 187.
    What Price toPay? ORDER HEADER PRODUCT referred # Id # Id by * Order Date * Name en with e with tw be of of ORDER ITEM PRICE * Quantity Ordered * Price in $ referring # Start date o End Date to 5-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 188.
    Price List Search between PRICE LIST # Id ORDER HEADER * Start Date PRODUCT # Id o End Date # Id * Order Date * Name referred with with with by on of of ORDER ITEM PRICED PRODUCT * Quantity * Price in $ referring Ordered to 5-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 189.
    Order for PricedProducts PRICE LIST # Id ORDER HEADER * Start Date PRODUCT # Id o End Date # Id * Order Date * Name with with with on of of referred by ORDER ITEM PRICED PRODUCT * Quantity * Price in $ referring Ordered to 5-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 190.
    Negotiated Prices PRICE LIST # Id ORDER HEADER * Start Date PRODUCT # Id o End Date # Id * Order Date * Name referred by with with with on of of ORDER ITEM PRICED PRODUCT * Quantity Ordered * Price in $ referring * Negotiated Price to 5-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 191.
    Current Prices PRODUCT PRODUCT PRODUCT # Id # Id # Id * Name * Name * Name * Current Price * Current Price with with with old of of of PRICE PRICE PRICE * Price in $ * Price in $ * Price in $ # Start Date # Start Date # Start date * End Date o End Date o End Date o Current Indicator 5-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 192.
    Journaling by PAYMENT to by o Date Paid PAYMENT * Amount in $ to *Date Paid *Amount in $ with of AMOUNT MODIFICATION * Old Amount in $ * Modified by * Date Modification 5-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 193.
    Summary • Consider the need for keeping old values • Time in your model is complicated: – Implicit versions – References • Journaling 5-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 194.
    Practices • Shift • Strawberry Wafer • Bundles • Product Structure 5-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 195.
    Practice: Shift Museumplein, Amsterdam, March 21 Shift 1 2 3 4 5 Mon 6:30 11:30 16:00 20:30 - 11:30 16:00 20:30 23:00 7:00 11:30 16:00 20:30 - Tue 11:30 16:00 20:30 23:00 7:00 11:30 16:00 20:30 - Wed 11:30 16:00 20:30 23:00 7:00 11:30 16:00 20:30 - Thu 11:30 16:00 20:30 23:00 7:00 11:30 16:00 20:30 - Fri 11:30 16:00 20:30 24:00 8:00 11:30 15:00 18:00 21:00 Sat/Sun 11:30 15:00 18:00 21:00 24:00 5-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 196.
    Practice: Strawberry Wafer • Prices are at the same level within a country; prices are determined by the Global Pricing Department. Usually the prices for regular, global products are re-established once a year. • Prices and availability for local specialties are determined by the individual shops. For example, the famous Norwegian Vafler med Jordbær (a delicious wafer with fresh strawberries) is only available in summer. Its price depends on the current local market price of fresh strawberries. 5-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 197.
    de Keyzer, Keyzerlei15, Antwerpen prijslijst bezoekt ons op ‘t Web: www.moonlight.com klein middel groot gewone koffie 60 90 120 cappuccino 90 110 140 Practice: Price list koffie verkeerd 75 100 130 speciale koffies 99 125 150 espresso 60 95 110 koffie van de dag 45 75 100 caffeine vrij 5 10 15 toeslag zwarte thees 60 100 120 vruchten thees 75 110 130 kruiden thees 80 120 140 dag thee 50 85 100 caffeine vrij 5 10 15 toeslag frisdranken 60 100 130 diverse sodas 60 100 130 mineraal water 75 120 140 appel taart 180 inclusief BTW 16 September brusselse wafel 150 portie chocolade bonbons 150 koekje van eigen deeg 120 portie slagroom 30 5-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 198.
    Practice: Bundles(1) A SweetTreat(tm) consists of a large soft drink plus cake of the day. A BigBox(tm) consist of a large coffee of the day plus two cakes of the day. A SuperSweetTreat(tm) consists of a SweetTreat(tm) plus whipped cream (on the cake). A FamilyFeast(tm) consists of two BigBoxes(tm) plus two SweetTreats™ plus a small surprise. A DecafPunch(tm) consists of a regular decaffeinated coffee or a regular decaffeinated tea, plus a blackberry muffin. 5-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 199.
    Practice: Bundles(2) PRODUCT GROUP # Name classification for classified as PRODUCT # Id * Name 5-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 200.
    + Products + Drinks + Coffees Practice: Product Structure Regular Cappuccino Café Latte + Special Coffee Teas + Black Chinese Indian English + Infusions + Herbal Soft drinks Juices Orange Grape + Waters + Sodas + Dairy Products +Foods + Pastry + Candy Bars + Local Specialties +Non Foods Merchandise CDs + Stationary Other + Tickets + Art 5-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 201.
    Advanced Modeling Topics Copyright © Oracle Corporation, 2002. All rights reserved.
  • 202.
    Overview • Patterns • Drawing conventions • Generic modeling 6-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 203.
    Patterns • Similar structure • Similar rules and constraints? 6-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 204.
    Patterns: Master–Detail • Characteristic: consists of An instance of B only exists in the context of an A • Metaphor: Master – Detail A consists of part of B 6-5 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 205.
    Pattern: Basket X A Y Z • Characteristic: B container for various types of items • Items may be of different types • Metaphor: Shopping Basket A X consists of Y part of B Z 6-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 206.
    Patterns: Hierarchy • Characteristic: manager of / subordinate of • Additional constraints to guard hierarchical nature • Metaphor: Mother–Child A # Id 6-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 207.
    Patterns: Chain • Characteristic: preceded by / followed by • Sequence is important • Metaphor: Elephants preceded by B BEAD # Id followed CHAIN by A BEAD # Seqno 6-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 208.
    Patterns: Network • Characteristic: pairs Every A can be connected to every A (sometimes: to every other A) • Metaphor: Web Document with Hyperlinks A A A 6-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 209.
    6-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 210.
    Bill of Material product of PRODUCT COMPOSITION # Code with * Quantity Needed part in in PRODUCTS COMPOSITIONS Code Name Prod_code Part_code Quantity 914.53 AAAAAAAA 854.01 604.18 1 914.54 AAA 854.01 604.19 1 914.55 BBBBBBBB 854.01 914.54 2 914.56 B 914.54 914.55 1 CCCCCCC 914.54 914.56 1 DDDDD 934.76 915.12 3 6-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 211.
    Bill of Material- Example 854.01 914.54 914.54 604.18 914.55 914.56 604.19 6-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 212.
    Symmetric Relationship GROUP Group_id S # Id 1 S1 consists of 2 1 S2 2 S3 in 2 S4 S 3 S5 3 S6 6-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 213.
    Patterns: Roles • Characteristic: is / is 1:m (or 1:1) relationships • Metaphor: Person–Many Hats (not necessarily concurrent...) A P Q 6-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 214.
    Roles PERSON ROLE TYPE roles ROLE PERSON PRESIDENT COUNTRY appointing appointed by MINISTER DEPARTMENT PARTY PARTY LEADER 6-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 215.
    Fan Trap • Characteristic: ring of m:m related entities • Metaphor: ABC Combination A B A B C AB AC BC C 6-18 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 216.
    Fan Trap Resolved A B C A B C A B C AB BC ABC ABC ABC AB functions as BC functions as list of values list of values 6-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 217.
    Patterns: Data Warehouse • Characteristic: multidimensional, many, many detail instances • Metaphor: star model Stars may be strangely shaped: • Snowflake model July B C A X D F E 6-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 218.
    Drawing Conventions high volumes high volumes Not important which convention you choose, as long as you follow one of them 6-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 219.
    Use Conventions Sensibly But: Readability first 6-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 220.
    Model Readability B A B A C E C D F E D • Takes space • Subject to taste F 6-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 221.
    Generic Modeling MANUFACTURER MANUFACTURER ARTICLE * Name * Name TYPE FILM ARTICLE * AsaTRIPOD o Weight * Height LENS o Focal Distance CAMERA o Height * Focal BODY o Asa Number Distance * Weight o ... 6-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 222.
    Generic Modeling ARTICLE TYPE ARTICLE * Definition Prop1 o Property1 o Definition Prop2 o Property2 o Definition Prop3 o Property3 o Definition Prop4 o Property4 ... o Property5 o Property6 o Property7 MANUFACTURER o Property8 * Name 6-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 223.
    Generic Model ARTICLE TYPE ARTICLE PROPERTY ARTICLE PROPERTY VALUE o Value 6-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 224.
    Generic having some kind of relationship with THING having some kind of relationship with 6-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 225.
    More Generic THING ASSOCIATION 6-28 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 226.
    More Generic Plus THING TYPE ASSOCIATION TYPE THING ASSOCIATION 6-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 227.
    Most Generic? THING TYPE ASSOCIATION TYPE THING ASSOCIATION PROPERTY THING PROPERTY VALUE 6-30 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 228.
    Best of TwoWorlds ‘generic’ CUSTOMER ARTICLE TYPE ORDER HEADER ARTICLE PROPERTY ORDER ITEM ‘down to earth’ ARTICLE PROPERTY VALUE 6-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 229.
    Summary Patterns • Show similarities • Invent your wheel only once Generic models • Reduce the number of entities dramatically • Are more complex to implement • Are very flexible • Are usually the best choice in unstable situations 6-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 230.
    Practices • Patterns • Data Warehouse • Argos and Erats • Synonym 6-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 231.
    Practice: Patterns • Model of moves in a chess game • Model of tenders (quotations) • Model of recipes • Model of all people involved in college: students, teachers, parents, … • Rentals in a video shop • Model of phases in a process 6-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 232.
    Practice: Data Warehouse • What is the sales volume in $ of coffee last month compared with the coffee sales volume same month last year? • What is the sales volume in $ of coffee per head in Japan compared with the average coffee sales volume in the Moonlight countries around the world? • What is the growth of the sales volume in $ of coffee in Sweden compared with the growth of sales volume of all products in the same geographical area? What is the growth in local currency? 6-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 233.
    Practice: Data Warehouse • What was the total sales volume in $ of coffee last month, compared with the total coffee sales volume in the same month last year, for the shops that have been open for at least 18 months? • What is the growth of the sales volume in $ of nonfoods compared to that of foods? • What is the best day of the week for total sales in the various countries? How is that related to the average? Is the best day of the week dependent on the type of location? 6-36 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 234.
    Practice: Data Warehouse • What products are most profitable per country? Globally? • Does the service level (#employees per 1000 items sold) have influence on sales? 6-37 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 235.
    Practice: Argos andErats Erats have names that are unique. Erats can have argos. Argos have names as well. The name of an argo must be unique within the erat it belongs to. Erats mutually have rondels. There are only a few different types of rondels. Erats can have one or more ubins. A ubin always consists of one or more argos of the erat, one or more rondels of the erat, or combinations of the two. 6-38 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 236.
    Practice: Synonym practice - exercise order - command entity - being order - sequence order - arrangement command - demand 6-39 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 237.
    Mapping the EntityModel Copyright © Oracle Corporation, 2002. All rights reserved.
  • 238.
    Overview • Why use design modeling? • Introduction to the components: – Tables – Columns – Constraints • Basic Mapping • Complex mapping 7-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 239.
    Why Create aData Design Model? • Closer to the implementation solution • Facilitates discussion • Ideal model can be adapted to an RDBMS model • Sound basis for physical database design 7-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 240.
    Presenting Tables Table: EMPLOYEES columns Id Name Address Birth_date Dpt_id 126 PAGE 12, OXFORD ST 03-03-66 10 rows 349 PAPINI 53, HAYES AVE 10-08-77 20 785 GARRET 08-12-55 10 primary key unique key foreign key column column column EMPLOYEES (EPE) pk * Id Table diagram: EMPLOYEES uk1 * Name o Address foreign uk1 * Birth_date key fk * Dpt_id 7-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 241.
    Transformation Process Conceptual Model Relational Model 7-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 242.
    Terminology Mapping ANALYSIS DESIGN ER Model Physical Design Entity Table Attribute Column Primary UID Primary Key Secondary UID Unique Key Relationship Foreign Key Business Constraints Check Constraints 7-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 243.
    General Naming Topics Decide on a convention for: • Table names • Special characters (%, *, #, -, space, …) • Table short names • Column names • Primary and Unique Key Constraint names • Foreign Key Constraint names • Foreign Key Column names 7-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 244.
    Naming Restrictions withOracle • Table and column names: – Must start with a letter – May contain up to 30 alphanumeric characters – Cannot contain space or some special characters such as “!” • Table names must be unique within a schema • Column names must be unique within a table 7-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 245.
    Basic Mapping forEntities 1 - Entities Table Name: EMPLOYEES Short Name: EPE EMPLOYEES (EPE) EMPLOYEE 7-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 246.
    Basic Mapping forAttributes 1 - Entities 2 - Attributes Table Name: EMPLOYEES Short Name: EPE EMPLOYEES (EPE) EMPLOYEE # Id * Id * Name * Name o Address o Address * Birth Date * Birth_date 7-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 247.
    Basic Mapping for Unique Identifiers 1 - Entities 2 - Attributes 3 - Unique identifiers Table Name: EMPLOYEES Short Name: EPE Primary EMPLOYEES (EPE) EMPLOYEE UID # Id pk * Id * Name uk1 * Name o Address o Address uk1 * Birth_date * Birth Date Secondary UID 7-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 248.
    Rules for Relationships EMPLOYEE # Id DEPARTMENT * Name # Id o Address * Name * Birth Date fk2 = epe_epe_fk EMPLOYEES (EPE) pk * Id * Name DEPARTMENTS (DPT) fk1 * Dpt_id pk * Id fk2 o Epe_id fk1 = epe_dpt_fk uk * Name 7-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 249.
    Mapping 1:m Relationships XS fk o Y_id XS fk * Y_id 7-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 250.
    Mapping Barred andNontransferable Relationships X Y # Id * C1 # Id * C2 XS (X) YS (Y) pk * Id fk = y_x_fk pk * Id * C1 pk, fk * X_id * C2 7-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 251.
    Mapping Cascade BarredRelationships A B C D # Id # Id # Id # Id * C1 * C2 * C3 * C4 AS (A) BS (B) CS (C) DS (D) pk * Id pk * Id pk * Id pk * Id * C1 * C2 * C3 * C4 fk,pk * A_id fk,pk * B_id fk * C_id fk,pk * B_a_id fk * C_b_id fk = b_a_fk fk * C_a_id fk = c_b_fk fk = d_c_fk 7-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 252.
    Mapping m:m Relationships X Y # Id # Id * C1 * C2 XS YS pk * Id pk * Id * C1 X_YS * C2 pk,fk1 * X_id pk,fk2 * Y_id fk1 = xy_x_fk fk2 = xy_y_fk 7-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 253.
    Mapping 1:1 Relationships X Y # Id # Id * C1 * C2 YS (Y) XS (X) fk = y_x_fk pk * Id pk * Id * C2 * C1 fk,uk * X_id Choose which side for FK for other cardinalities 7-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 254.
    Mapping Arcs Explicit implementation USER # Id LIST ITEM * Name ALIAS # Id fk1 = lim_x_fk USERS (USR) LIST_ITEMS (LIM) fk2 = lim_usr_fk pk * Id pk,fk1 * X_id * Name fk2 o Usr_id fk3 o Als_id ALIASES (ALS) fk3 = lim_als_fk pk * Id + check constraint 7-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 255.
    Mapping Subtypes Variety of implementation choices P K # Id # Id * Xxx Q A • Supertype o Yyy # Id • Subtype • Both Supertype R B and Subtype (“Arc”) * Zzz # Id L # Id 7-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 256.
    Supertype Implementation P K # Id # Id * Xxx A PS (P) Q o Yyy # Id pk * Id * Xxx R B o Yyy * Zzz # Id o Zzz fk1 * A_id • Mandatory fk2 o B_id discriminator * P_type L # Id column • Additional constraints 7-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 257.
    Subtype Implementation P K QS (Q) # Id # Id pk * Id q_a_fk * Xxx * Xxx A o Yyy Q fk * A_id o Yyy # Id R B * Zzz # Id RS (R) fk1=r_a_fk pk * Id * Xxx * Zzz fk2=r_b_fk L fk1 * A_id # Id fk2 * B_id 7-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 258.
    Supertype and Subtype(Arc) Implementation PS (P) P K # Id pk * Id # Id * Xxx * Xxx fk1,uk o Q_id fk3 = A R_id p_a_fk Q 1 o o Yyy # Id fk2,uk * A_id 2 fk3 R B * Zzz # Id fk1 = fk2 = p_q_fk p_r_fk QS (Q) RS (R) L pk * Id pk * Id r_b_fk # Id o Yyy * Zzz fk * B_id 7-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 259.
    P Storage Implication Q R 1 table 2 tables 3 tables 7-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 260.
    Storage Implication Supertype Implementation discriminator column cols cols cols P P Q R Q rows Q R rows R 7-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 261.
    Storage Implication Subtype Implementation cols cols cols cols P R P Q rows Q rows R 7-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 262.
    Storage Implication Supertype and Subtype (Arc) Implementation cols P fk cols fk cols rows Q Q R rows Q rows R rows R 7-36 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 263.
    Summary • Relational concepts • Naming rules convention • Basic mapping • Complex mapping 7-37 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 264.
    Practice • Mapping basic Entities, Attributes and Relationships • Mapping Supertype • Quality Check Subtype Implementation • Quality Check Supertype and Subtype (Arc) Implementation • Mapping Primary Keys and Columns 7-38 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 265.
    Practice: Mapping basicEntities, Attributes and Relationships EMPLOYEE assigned DEPARTMENT # Id to * First Name # Id * Last Name * Name * Date of Birth responsible * Location o Home Phone for EMPLOYEES ( ) DEPARTMENTS ( ) 7-39 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 266.
    Practice: Mapping Supertype reporting to report of DEPARTMENT report # Id HQ COUNTRY of * Name * ORGANIZATION Address reporting # Tax Id Number * Head Count to OTHER DEPARTMENT DEPARTMENTS ( ) 7-40 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 267.
    Partial ER modelMoonlight COUNTRY # Code with PRODUCT GROUP with in # Name with SHOP with in # No PRODUCT * Name for * Address GLOBAL of PRICE LIST * City # Code LOCAL # Start Date o Size # Name * End Date with with in of GLOBAL PRICE * Amount 7-41 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 268.
    Practice: Quality Check Subtype Implementation lpt_shop_fk GLOBAL_PRODUCTS (GPT) LOCAL_PRODUCTS (LPT) pk * Code pk # Name o Size fk * Shop_no * Pgp_name fk * Pgp_name 7-42 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 269.
    Practice: Quality Check Arc Implementation PRODUCTS (PDT) fk1=pdt_pgp_name pk * Code fk2=pdt_gpt_code fk1 * Pgp_name fk2 * Gpt_code fk3=pdt_lpt_name fk3 * Lpt_name GLOBAL_PRODUCTS (GPT) gpt_pgp_fk pk * Code o Size LOCAL_PRODUCTS (LPT) fk1=shp_lpt_fk pk * Name pk, fk1 o Shp_no fk2=pgp_lpt_fk fk1 * Pgp_name 7-43 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 270.
    Practice: Mapping PrimaryKeys and Columns GLOBAL_PRICES ( ) 7-44 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 271.
    Denormalized Data Copyright ©Oracle Corporation, 2002. All rights reserved.
  • 272.
    Overview • Denormalization • Benefits • Types of denormalization 8-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 273.
    Denormalization Overview Denormalization • Starts with a “normalized” model • Adds “redundancy” to the design • Reduces the “integrity” of the design • Application code added to compensate 8-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 274.
    Denormalization Techniques • Storing Derivable Values • Pre-joining Tables • Hard-Coded Values • Keeping Details with Master • Repeating Single Detail with Master • Short-Circuit Keys 8-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 275.
    Storing Derivable Values Before A B pk * Id pk,fk * A_id * X pk * Sequence_No * Quantity Add a column to store derivable data in the “referenced” end of the foreign key. A After pk * Id * X * Total_quantity 8-5 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 276.
    EMail Example ofStoring Derivable Values Before REC_MESSAGES (RME) MESSAGES (MSE) USERS (USR) pk,fk * Usr_Id pk * Id pk * Id Subject pk,fk * Mse_Id * * Per_name * Text Store derivable column in the ‘referenced’ end of the foreign key. MESSAGES (MSE) After pk * Id * Subject * Text * Number_of_times_received 8-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 277.
    Pre-Joining Tables Before B A pk pk * Id * Id fk * A_id * Col_a Add the non_key column to the table with the foreign key. B After pk * Id fk * A_id * A_col_a 8-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 278.
    EMail Example ofPre-Joining Tables Before FOLDERS (FDR) RECEIVED_MESSAGES (RME) pk,fk * Mse_id pk * Id * pk,fk * Flr_id Name * Date_received Create a table with all the frequently queried columns. RECEIVED_MESSAGES (RME) After pk,fk * Mse_id pk,fk * Flr_id * Date_receive * d Fdr_Name 8-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 279.
    Hard-Coded Values Before B A pk Id pk * Id * Type fk * A_i * d Remove the foreign key and hard code the allowable values and validation in the application. After B pk * Id * A_Type 8-9 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 280.
    Email Example ofHard-Coded Values Before USERS (USR) BUSINESS_TYPES (BTE) pk * Id pk * Id fk * Bte_id Name * Per_name Hard code the allowable values and validation in the application. After USERS (USR) pk * Id * Business_type * Per_name 8-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 281.
    Keeping Details withMaster Before B A pk,fk * A_id pk * Id pk * Type * Amount Add the repeating detail columns to the master table. A After pk * Id * Amount_1 * Amount_2 * Amount_3 * Amount_4 * Amount_5 * Amount_6 8-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 282.
    EMail Example KeepingDetail with Master Before STORAGE_QUOTAS (SQA) USERS (USR) pk,fk * Usr_Id pk * Id pk * Storage_type * Name * Allocated * Available Add the repeating detail columns to the master table. USERS (USR) After pk * Id * Name * Message_Quota_Allocated * Message_Quota_Available * File_Quota_Allocated * File_Quota_Available 8-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 283.
    Repeating Current Detailwith Master Before B A pk,fk * A_Id pk * Id pk Start_date * Price * Add a column to the master to store the most current details. A After p * Id k * Current_price 8-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 284.
    EMail Example ofRepeating Single Detail with Master Before MESSAGES (MSE) ATTACHMENTS (ATT) pk * Id pk * Id * Subject pk,fk * Mse_id * Text * Name Add a column to the master to store the most current details. MESSAGES (MSE) After pk * Id * First_attachment_name * Subject * Text 8-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 285.
    Short-Circuit Keys Before B C A pk * Id pk * Id pk * Id fk A_id fk * B_id * Create a new foreign key from the lowest detail to the highest master. A B C After pk Id pk * Id * pk * Id fk * A_id fk * B_id fk * A_id 8-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 286.
    EMail Example ofShort-Circuit Keys Before RECEIVED_ USERS (USR) FOLDERS (FDR) MESSAGES (RME) pk * Id pk * Name pk * Id * Name fk * Usr_id fk * Fdr_name Create a new foreign key from the lowest detail to the highest master. After RECEIVED_ FOLDERS (FDR) MESSAGES (RME) USERS (USR) pk * Name pk * Id pk * Id fk * Usr_id fk * Fdr_name uk * Name fk * Usr_name 8-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 287.
    End Date Column Before B A pk,fk * A_id pk * Id pk * Start_date Add an end date column to speed up queries so that they can use a between operator. B After pk,fk * A_Id pk * Start_date o End_date 8-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 288.
    Example of EndDate Column Before PRICES (PCE) PRODUCTS (PDT) pk,fk * Pdt_id pk * Id pk * Start_date * Name Price * Create an extra column derivable End_date column. After PRICES (PCE) pk,fk * Pdt_id pk * Start_date * Price o End_date 8-18 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 289.
    Current Indicator Column Before A B pk,fk * A_id pk * Id pk * Start_date Add a column to represent the most current record in a long list of records. After B pk,fk * A_Id pk * Start_date o Current_indicator 8-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 290.
    Example of CurrentIndicator Column Before PRICES (PCE) PRODUCT (PDT) pk,fk * Pdt_id pk * Id pk * Start_date * Name Price * Add a column to represent the most current record, in a long list of records. PRICES (PCE) After pk,fk * Pdt_id pk * Start_date * Price o Current_indicator 8-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 291.
    Hierarchy Level Indicator Before A pk * Id fk * A_id Create a column to represent the hierarchy level of a record. After A pk * Id fk * A_id * Level_no 8-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 292.
    Example of HierarchyLevel Indicator Before FOLDERS (FDR) pk * Id fk * Fdr_id * Name Create a column to represent the hierarchy level of a record. After FOLDERS (FDR) pk * Id fk * Fdr_id * Name * Level_no 8-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 293.
    Denormalization Summary Denormalization Techniques • Storing Derivable Information – End Date Column – Current Indicator – Hierarchy Level Indicator • Pre-Joining Tables • Hard-Coded Values • Keeping Detail with Master • Repeating Single Detail with Master • Short-Circuit Keys 8-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 294.
    Practices • Name that Denormalization • Triggers • Denormalize Price Lists • Global Naming 8-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 295.
    Practice: Name thatDenormalization (1/3) SHIFTS (SFT) WEEKDAYS (WDY) pk * No pk * Code fk * Wdy_code * Name Start_time * * End_time * Wdy_name 8-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 296.
    Practice: Name thatDenormalization (2/3) PROD_GRPS (PGP) PRODUCTS (PDT) PROD_NAMES (PNE) pk * Name pk * Code pk * Name fk * Pgp_Name fk * Pdt_code fk * Pgp_name 8-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 297.
    Practice: Name thatDenormalization (3/3) PRICE_LISTS (PLT) COUNTRIES (CTY) pk,fk * Cty_code pk * Code pk Start_date * * Name o End_date * Current_price_ind 8-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 298.
    Practice: Triggers (1/6) ORDER_HEADERS (OHR) ORDER_ITEMS (OIM) pk * Ohr_id pk * Id pk * Seqno * Order_total * Item_total 8-28 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 299.
    Practice: Triggers (2/6) Table Trg Type Column Needed? What should it do? OHR Insert Delete Update Id Order_total OIM Insert Delete Update Ohr_id Item_total 8-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 300.
    Practice: Triggers (3/6) LOCATIONS (LCN) EMPLOYEES (EPE) pk * Id pk * Id fk * Lcn_id * Name * Address * Lcn_address 8-30 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 301.
    Practice: Triggers (4/6) Table Trg Type Column Needed? What should it do? LCN Insert Delete Update Address other cols EPE Insert Delete Update Lcn_id Lcn_address 8-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 302.
    Practice: Triggers (5/6) PRODUCTS (PDT) PRICES (PCE) pk * Pdt_id pk * Id pk * Start_date * Name o End_date * Curr_price_ind 8-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 303.
    Practice: Triggers (6/6) Table Trg Type Column Needed? What should it do? PDT Insert Delete PCE Insert Delete Update Pdt_id Start_date End_date Curr_price_Ind 8-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 304.
    Practice: Denormalize PriceLists • Speed up performance for queries on Amount. • Insert new price lists before their effective date. PRICE_LISTS (PLT) GLOBAL_PRICES (GPE) pk * Start_date pk,fk * Plt_start_date pk,fk * Cty_code pk,fk Plt_cty_code * Amount * 8-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 305.
    Practice: Global Naming LANGUAGES (LGE) Track a corporate pk * Code name for each product. * Name PRODUCT_NAMES (PNE) PRODUCTS (PDT) pk * Code pk,fk * Pdt_code o Size pk,fk Lge_code * Name * 8-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 306.
    Database Design Considerations Copyright © Oracle Corporation, 2002. All rights reserved.
  • 307.
    Overview • Oracle specific Design Considerations • Data Integrity Issues • Performance Considerations • Storage Issues 9-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 308.
    Why Adapt DataDesign? • User Expectations • Volumes Adapted • Hardware Physical • Network Initial design Design • O.S. • Oracle specifics 9-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 309.
    Oracle Data Types Depending on: • Domains • Storage issue • Performance • Use Select a data type for columns: • Character • Number • Date • Large Objects 9-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 310.
    Suggested Column Sequence • Primary key columns • Unique Key columns • Foreign key columns • Mandatory columns • Optional columns Large object columns always at the end 9-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 311.
    Primary Keys CREATE TABLE countries ( code NUMBER(6) NOT NULL , name VARCHAR2(25) NOT NULL , currency NUMBER (10,2) NOT NULL ); ALTER TABLE countries ADD CONSTRAINT cty_pk PRIMARY KEY (code); Constraint and Index name 9-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 312.
    Primary Keys Choosing the Right Key • Simplicity • Ease of use • Performance • Size • Meaningless • Stability 9-9 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 313.
    Artificial Keys AS (A) BS (B) CS (C) pk * Id pk * Id pk * Id * C1 * C2 * C3 fk1 = d_a_fk fk2 = d_b_fk fk3 = d_c_fk DS (D) u ,fk1 * A_id pk u ,fk2 * B_id pk XS (X) u ,fk3 * C_id pk pk Id * C4 * pk * Id fk1 * D_a_id fk = x_d_fk fk1 fk ** D_b_id D_id fk1 * D_c_id o C5 9-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 314.
    Sequences 225 224 223 CREATE SEQUENCE sequence_name INCREMENT BY number START WITH number MINVALUE number MAXVALUE number CACHE number | NOCACHE CYCLE | NOCYCLE; 9-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 315.
    Foreign Key Behavior Delete Update Restrict Cascade Default Nullify Supported by Oracle through declaration 9-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 316.
    Indexes • Performance Name Phone b c ALBERT 2655 d ALFRED 3544 ef gh ij ALICE 7593 kl m ALLISON 3456 no pq ALVIN 8642 rs tu ALPHONSO 2841 vw xyz • Uniqueness 9-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 317.
    Choosing Indexes B*tree Bitmap aba .1.2.5 Reverse X Y Z aba .1.2.5 abb .1.4.5 0 1 0 abb .1.3.5 bba .1.3.5 1 0 0 abc .1.1.5 cba .1.1.5 0 0 1 bba .1.4.5 ... 1 0 0 ... 0 0 1 C1 C2 C1 C2 I.O.Table aba X abc Y abb Z aba X abc Y abb Z bba Z bba X bbc X bbc Z 9-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 318.
    Which Columns toIndex? • Primary key columns and Unique Key columns (Up to Version 6) • Foreign Key columns • When significant better performance can be observed in SELECT statements ! Avoid indexing: • Small tables • Columns frequently updated 9-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 319.
    When Can Indexesbe Used? • When referenced in a Where clause or Order By • When the Where clause does not include some operators • When the optimizer decides • With hints in the SQL statement 9-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 320.
    Partitioning Tables andIndexes CUSTOMERS Col1 Col2 Col3 Region CUSTOMERS_R1 Col1 Col2 Col3 Region CUSTOMERS_R2 Col1 Col2 Col3 Region 9-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 321.
    Views • Restricting access • Presentation of data • Isolate applications from data structure • Save complex queries • Simplify user commands T1 T2 T3 T4 V1 V2 V3 V4 9-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 322.
    Reasons for Views • Advantages – Dynamic views – Present denormalized data from normalized tables – Simplify SQL statements • Disadvantages – May affect performances – Restricted DML in some cases 9-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 323.
    Old Fashioned Design • Unique index • Views with “Check option” clause • Generic Arc implementation 9-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 324.
    Generic Arc Implementation X A # Id # Id * Name * Name Y # Id * Name AS (A) ... * Table_name (X or Y) * Fk_id 9-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 325.
    Distributed Database Different physical databases appear as one logical database. 9-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 326.
    Benefits of DistributedDatabases • Resilience • Reduced line traffic • Location transparency • Local autonomy • Easier growth path but • Increased, distributed, complexity 9-28 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 327.
    DATABASE Database Structure consists of part of TABLESPACE consists of resides in container part of of SEGMENT OTHER TABLE INDEX SEGMENT SEGMENT SEGMENT sliced in sliced in consists residence of located in part of part of of TABLE OR INDEX PARTITION part of DATA FILE EXTENT USED FREE consists resides in of part of residence of DATA BLOCK 9-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 328.
    Summary • Data Types • Primary, Foreign, and Artificial Keys • Indexes • Partitioning • Views • Distributed design 9-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 329.
    Practices • Data Types • Artificial Keys • Product Pictures 9-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 330.
    CURRENCY of COUNTRY Moonlight Pricing # Code # Code with in in with with PRODUCT GROUP in # Name with SHOP from to with # No EXCHANGE in * Name RATE PRODUCT * Address # Month of * City * Rate for GLOBAL LOCAL PRICELIST # Code # Name # Start Date o Size with * End Date with with with of LOCAL PRICE LANGUAGE in # Start Date # Code of o End Date of GLOBAL of * Amount PRICE in * Amount PRODUCT NAME * Name 9-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 331.
    Data Types (1) Table Column Suggested Your Choice Data Type Data Type COUNTRIES Code Varchar2(2) CURRENCIES Code Varchar2(3) EXCHANGE_RATES Month Date Rate Number(8,4) PRICE_LISTS Start_date Date End_date Date PRODUCT_GROUPS Name Char(8) PRODUCTS Code Char(10) Size Number(4,2) Pdt_type Number(1) 9-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 332.
    Data Types (2) Table Column Your Choice Data Type GLOBAL_PRICES Amount LOCAL_PRICES Start_date End_date Amount SHOPS Name Address City 9-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 333.
    Solutions Copyright © OracleCorporation, 2002. All rights reserved.
  • 334.
    Solution: Instance orEntity? Concept E/A/I? Example Instance or Entity PRESIDENT E Lincoln, Washington, Gorbachev ELLA FITZGERALD I STAR, SINGER, PERSON DOG E Snoopy ANIMAL E Cat, Dog, ... HEIGHT A PERSON, BUILDING, ... TYPE OF TRANSPORT E CAR Number of Wheels A CAR My current car I CAR A-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 335.
    Solution: Guest Address Arrival Date Family Name GUEST Room Number HOTEL Floor Number ROOM Number of Beds Number of Parking Lots Price TV set available? A-3 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 336.
    Solution: Reading EMPLOYEE assigned to DEPARTMENT responsible for A Each EMPLOYEE may be assigned to one or more DEPARTMENTS Each DEPARTMENT must be responsible for one or more EMPLOYEES B Each EMPLOYEE must be assigned to one or more DEPARTMENTS Each DEPARTMENT may be responsible for one or more EMPLOYEES C Each EMPLOYEE must be assigned to exactly one DEPARTMENT Each DEPARTMENT may be responsible for exactly one EMPLOYEE A-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 337.
    Practice: Read andComment PERSON born in TOWN birthplace of living in home town of visitor of visited by mayor of governed by (as mayor) A-5 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 338.
    Solution: Hotel HOTEL * Address location for favored located in owned known by by by ROOM * Room Number location for owner aware in favor of of of taking place in STAY endured by PERSON * Arrival Date * Name enduring A-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 339.
    Ralph’s Raving Recipes Soups Açorda alentejana bread soup from Portugal vegetarian for 4 persons: 15 min 1 onion easy 4 cloves of garlic 1 red pepper 1 liter of vegetable broth 4 tablespoons of olive oil 4 fresh eggs 1 handful of parsley or coriander salt, pepper 9-12 slices of (old) bread preparation Cut the onion into small pieces and fry together with the garlic. Wash the red pepper, cut it in half, remove the seeds and fry it for at least 15 page 127 A-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 340.
    Ralph’s Raving Recipes Soups Açorda alentejana bread soup from Portugal vegetarian for 4 persons: 15 min 1 onion easy 4 cloves of garlic 1 red pepper 1 liter of vegetable broth 4 tablespoons of olive oil 4 fresh eggs 1 handful of parsley or coriander salt, pepper 9-12 slices of (old) bread preparation Cut the onion into small pieces and fry together with the garlic. Wash the red pepper, cut it in half, remove the seeds and fry it for at least 15 page 127 A-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 341.
    BOOK Solution: Recipe -Title a RECIPE must be classified in containing exactly one RECIPE GROUP published in A RECIPE GROUP may be RECIPE classification for one or more -Name RECIPES -Description -Vegetarian? -Number of People classified in RECIPE -Preparation Time -Preparation Ease GROUP classification -Preparation Text for -Name prepared used with in INGREDIENT a RECIPE must be prepared with -Name one or more INGREDIENTS -Quantity -Unit An INGREDIENT may be used in -Type exactly one RECIPE A-9 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 342.
    Solution: Books MANUSCRIPT LANGUAGE TRANSLATION TITLE EDITION PRINTING VERSION COPY A-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 343.
    Solution: Books MANUSCRIPT LANGUAGE TRANSLATION TITLE EDITION PRINTING VERSION COPY A-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 344.
    Solution: Moonlight COUNTRY PRODUCT COUNTRY COMMUNITY PRODUCT GROUP CURRENCY PRICE DEPARTMENT SALE DRINK SHOP EMPLOYEE STOCK OPTION EXCHANGE RATE STOCK PRICE FOOD TICKER SYMBOL JOB LOCATION TYPE PASTRY A-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 345.
    Solution: Shops SHOP in COUNTRY * Number * Code * Name of * Name * Location * City located o Telephone in LOCATION TYPE * Open Date * Description of or COUNTRY * Code * Name SHOP * Number of * Name in LOCATION located located o Telephone in LOCATION in TYPE * Open Date * Name * Description of of A-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 346.
    Solution: Subtypes DISABLED CAR PERSON STATION WAGON DEAF AND BLIND SEDAN OTHER DEAF, NOT BLIND CAR BLIND, NOT DEAF OTHER DISABLED BUILDING HOUSE OTHER HOTELROOM DOG r ROOM WITH BATH DOMESTIC repai nd ANIMAL beyo OTHER ROOM MAMMAL A-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 347.
    Solution: Schedule (1/2) SHOP * Name * Location * City with for SCHEDULE prepared by EMPLOYEE * Start Date * Family Name * End Date maker of * First Name with * Short Name withi n SCHEDULE for ENTRY * Weekday with * Shift Number A-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 348.
    Solution: Schedule (2/2) with within SCHEDULE for ENTRY * Monday Shift with * Tuesday Shift * Wednesday Shift * Thursday shift * Friday Shift * Saturday Shift * Sunday Shift A-16 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 349.
    Solution: Address PERSON Address text line1 1 Address text line2 COUNTRY Address text line3 Address text line4 PERSON Street or “PO Box” Indicator ADDRESS Street TYPE 2 House Number City Post Code COUNTRY Province or State A-17 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 350.
    Solution: Read theRelationship Every ALU must be of ALU of BRY exactly one BRY with Every BRY may be with one or more ALUS Every PUR may be bazooned in PUR bazooned in YOK one or more YOKS Every YOK may be bazooned by bazooned by one or more PURS KLO bilought in Every KLO must be bilought in one or HAR more HARS glazoed with Every HAR may be glazoed with exactly one KLO A-19 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 351.
    Solution: Find aContext birthplace of PERSON COUNTRY born in location of TOWN located in PERSON PERSON MALE FEMALE mother of MALE FEMALE child son of of mother of most popular movie star in COUNTRY PERSON with most popular born in movie star birthplace of A-20 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 352.
    Solution: Name theIntersection Entity PRODUCT DEPARTMENT STORE in with of at SALE * Date PERSON SAILBOAT in INTERPRETER LANGUAGE with of at with CREW with MEMBERSHIP of in * Role FLUENCY * Score A-21 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 353.
    Solution: Receipt Served by: Dennis Till: 3 Dec 8, 4:35 pm ----------------------- CAPPUCC M 3.60 * 2 7.20 CREAM .75 * 2 1.50 APPLE PIE 3.50 BLACKB MUF 4.50 SUB 16.70 tax 12% 2.00 TOTAL 18.70 ======= CASH 20.00 RETURN 1.30 ----------------------- Hope to serve you again @MOONLIGHT COFFEES 25 Phillis Rd, Atlanta A-22 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 354.
    COUNTRY * Name with in SHOP * Name o VAT% with in TILL PERSON * Number * First Name PRODUCT with with * Short Name at at * Price SALES HEADER in * Date Time * Amount Cash referring with part of to SALES ITEM * Quantity A-23 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 355.
    Solution: Moonlight PO(1) All Moonlight Coffee employees work for a department such as “Global Pricing” or “HQ”, or for a shop. All employees are at the payroll of one of our country organizations. Jill, for example, works as a shop manager in London; Werner is a financial administrator working for Accounting and is located in Germany … DEPARTMENT SHOP COUNTRY * Name * Name ORGANIZATION * City with with with works works for at payroll of for EMPLOYEE * Name * Job A-24 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 356.
    Solution: Moonlight PO(2) reporting to report of DEPARTMENT report * Name HQ of OTHER reporting to DEPARTMENT COUNTRY ORGANIZATION … All shops belong with to one country with with organization (“the belongs to countries”). There SHOP is only one country * Name organization per * City country. All on countries and works with payroll departments report for works for of to HQ, except HQ EMPLOYEE itself … * Name * Job A-25 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 357.
    Solution: Moonlight PO(3) reporting to report of DEPARTMENT HQ Report of * Name reporting to OTHER COUNTRY … Employees DEPARTMENT ORGANIZATION can work part with with with time. Lynn has had an 80% at payroll belongs to assignment for of SHOP Product EMPLOYEE * Name Development * Name * City since the 1st with with September. to of to Before that she ASSIGNMENT had a full-time * Job position. * Start Date * Part Time % A-26 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 358.
    Solution: Moonlight PO(4) 4a: - reporting to report of COUNTRY 4c DEPARTMENT HQ report ORGANIZATION * Name of 4b OTHER with DEPARTMENT EMPLOYEE with for for COUNTRY in COUNTRY PAYROLL ORGANIZATION * Name ENTRY of * Start Date with of 4d located belongs to in SHOP 4e: - * No * Name A-27 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 359.
    Solution: Price List COUNTRY * Currency with coffees in teas PRODUCT SHOP foods GROUP * Name nonfoods with supplements * Address in * City PRODUCT with at * Short Name o Size PRICE LIST * Start Date with * End Date with in of PRICE * Amount A-29 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 360.
    Solution: EMail containing USER owner of NICK 1 NAME within FOLDER owned by 2 referred to for USER 4 forwarded owner owner with containing of owned of owned 3 COMPOSITION is by by within LIST forward FOLDER of A-30 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 361.
    owner USER owner USER of of 5 owned 6 owned by by LIST LIST owner is referred to is referred owner of is referred to is to of owned referred to referring to owned referring to by referring to by referring to LIST ITEM LIST ITEM o External User USER owner of NICK NAME owned by o For External User 7 referred to for A-31 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 362.
    Solution: Holiday (1) “Paul and I hiked in the USA. Eric and I hiked in France and we rented a car in the USA last year”. COUNTRY TRANSPORT France Boots USA Boots USA Car RT CO TRANSPORT Fr U COUNTRY O Ca ot SP US an NT US A ce RY Bo AN Bo r s A TR CO s Er M ot COMPANION N Er ic PA O Pa ic NI NI O E r ic P A ul N Er M CO P a ic ul A-32 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 363.
    Solution: Holiday (2) COUNTRY COMPANION TRANSPORT France Eric Boots France Eric Car USA Eric Boots USA Eric Car USA Paul Boots A-33 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 364.
    Solution: Holiday (3) COUNTRY COMPANION TRANSPORT France Eric Boots USA Paul Car COUNTRY COMPANION TRANSPORT HOLIDAY COUNTRY COMPANION TRANSPORT France Eric Boots USA Eric Car USA Paul Boots A-34 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 365.
    Practice: Normalize anER Model: Solution for COURSE offered by DEPARTMENT ENROLLMENT #* course number #* department code completed course name the department name for with offerer of the taught by receiver of the assigned to receiver of assigned GRADE TEACHER #* grade code #* teacher number STUDENT grade description teacher name #* student id last name first name A-35 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 366.
    Solution: Identification 1 A B C 1 # Xx * Yy # Zz A B C # Id 2 # Code A * Xx 3 with B C D # Yy # Zz # Id of A-37 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 367.
    Solution: Identification 2 4 5 P Q P # Id # Name PERSON MALE son of FEMALE # Seqno mother of # Name # Birth Date 6 partner in partner in with husband with wife MARRIAGE # Start Date A-38 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 368.
    Solution: Moonlight UID reporting to report of DEPARTMENT HQ # Name report of OTHER reporting to COUNTRY DEPARTMENT COUNTRY in # Code with with ORGANIZATION EMPLOYEE of # Id with with with located assigned in for for SHOP to of PAYROLL # No ENTRY # Start Date with to for to ASSIGNMENT as JOB # Start Date # Title in A-40 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 369.
    Solution: Table USER owner of owner of owner of in in in from with KEY FOREIGN KEY TABLE # Name # Name # Name with to PRIMARY of referenced with with in UNIQUE of with with for in from for ASSOCIATION in COLUMN # Name in USAGE # Seqno # Seqno in * Data Type of to o Not Null A-41 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 370.
    1 Solution: Constraints EMPLOYEE # Name OTHER managed CEO EMPLOYEE by 2 ALIAS manager # Name of USER owned LIST # Name by owner of NICKNAME 3 with subfolder USER within FOLDER # Name # Name owner of owned by A-42 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 371.
    Solution: Shift CALENDAR DAY SHOP # Date * Name * Public Holiday Indicator with of starting on starting on WEEKDAY # Code SHIFT * Name SCHEDULE with or with on on on SHIFT SHIFT SCHEDULE # No * Start Date * Start Time with * End Time A-43 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 372.
    Solution: Moonlight Pricing COUNTRY # Code with with PRODUCT GROUP in # Name with SHOP with # No in * Name PRODUCT of * Address for GLOBAL LOCAL * City PRICE LIST # Code # Name # Start Date o Size with * End Date with with with of LOCAL PRICE LANGUAGE in of # Start Date # Code GLOBAL PRICE of o End Date of * Amount * Amount in PRODUCT NAME * Name A-44 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 373.
    PRODUCT PRODUCT 1 2 GROUP GROUP BUNDLE PRODUCT PRODUCT OTHER BUNDLE PRODUCT with in of referring with in BUNDLE ITEM to of referring * Quantity BUNDLE ITEM * to Needed PRODUCT Quantity Needed GROUP 3 PRODUCT ASSEMBLY ITEM * Quantity Needed A-45 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 374.
    DecafPunch (DP) ={Coffee (C) or Tea (T)} and {Blackberry Muffin (BM)} Consider this as: PRODUCT AS1 = (C or T) GROUP DP = (AS1 and BM) # Name PRODUCTS PRODUCT Code And_or Pg_name # Code C .. o And/Or Indicator T … AS1 OR …. DP AND ….. ASSEMBLY ITEM ASSEMBLY ITEMS * Quantity Needed Prod_code Using_code Quantity AS1 C 1 AS1 T 1 DP AS1 1 DP BM 1 A-46 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 375.
    LEVEL1 fixed numberof 1 levels with LEVEL2 PRODUCT CLASS # Name within LEVEL3 or generic: LEVEL4 2 + coffees + teas LEVEL5 + foods product + nonfoods + supplements PRODUCT + bundles A-47 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 376.
    Patterns • Model of moves in a chess game Chain or Network • Model of quotations M/D or Basket • Model of recipes Bill of Material • Model of all people involved in Roles college: students, teachers, parents, … • Rentals in a video shop M/D or Basket • Model of phases in a process Chain or Network A-48 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 377.
    Patterns • Model of moves in a chess game Chain or Network • Model of quotations M/D or Basket • Model of recipes Bill of Material • Model of all people involved in Roles college: students, teachers, parents, … • Rentals in a video shop M/D or Basket • Model of phases in a process Chain or Network A-49 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 378.
    Moonlight Data Warehouse YEAR # No with with in QUARTER with assigned in to with MONTH WEEK PRODUCT within # No # No CLASS with with with with in in of GEOGRAPHY DAY PRODUCT * Number of Inhabitants within # No # Id * Number of Employees with in wit of of h of SALES VOLUME * Quantity * Value in Local Currency * Value in $ A-50 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 379.
    Solution: Argos andErats ERAT # Name unknown have have have have optionality belongs unknown of of to of degree RONDEL ARGO UBIN * Type # Name in in with with with with UBIN ITEM Constraint not shown: A ubin always consists of one or more argos of the erat, one or more... A-51 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 380.
    Solution: Synonym MEANING # Id * Description synonym shared by with WORDS WORD Word Mng_i # Word Practice d Exercise 1 MEANINGS Order 1 Id Description Sequence 2 1 Action, actual doing ... Arrangement 2 2 Regular arrangement ... Order 2 3 Order, command ... Command 3 4 A vehicle with two wheels Demand 3 homonym 5 ... Bike 3 4 A-52 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 381.
    Solution: Mapping basicEntities, Attributes and Relationships DEPARTMENTS (DPT) EMPLOYEES (EPE) pk * Id pk * Id epe_dpt_fk fk * Name * Dpt_id o Location * Last Name * First Name o Home Phone A-53 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 382.
    Solution: Mapping Supertype dpt_dpt_fk DEPARTMENTS (DPT) pk * Id * Name * Dpt_type * Headcount o Address o fk Dpt_id_reporting_to A-54 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 383.
    Solution: Mapping Supertype dpt_dpt_fk DEPARTMENTS (DPT) pk * Id * Name * Dpt_type * Headcount o Address o fk Dpt_id_reporting_to A-55 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 384.
    Solution: Quality Check Subtype Implementation gpt_pgp_fk lpt_shp_fk GLOBAL_PRODUCTS (GPT) LOCAL_PRODUCTS (LPT) pk * Code pk * Name o Size pk,fk * Shp_no fk * Pgp_name fk * Pgp_name A-56 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 385.
    Solution: Quality Checkboth Supertype and Subtype Implementation PRODUCTS (PDT) fk1=pdt_pgp_fk pk * Code fk2=pdt_gpt_fk fk1 * Pgp_name fk2, uk1 o Gpt_code fk3, uk2 o Lpt_name fk3, uk2 o Lpt_shp_no GLOBAL_PRODUCTS (GPT) pk * Code o Size LOCAL_PRODUCTS (LPT) lpt_shp_fk fk3=pdt_lpt_fk pk * Name pk, fk * Shp_no A-57 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 386.
    Solution: Primary Keysand Columns GLOBAL_PRICES (GPE) fk1= gpe_plt_fk pk, fk1 * Plt_cty_code pk, fk1 * Plt_start_date fk2= gpe_gpt_fk pk, fk2 * Gpt_code * Amount A-58 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 387.
    Practice: Triggers (1/6) ORDER_HEADERS (OHR) ORDER_ITEMS (OIM) pk * Ohr_id pk * Id pk * Seqno * Order_total * Item_total A-60 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 388.
    Solution: Triggers (2/6) Table Trg Type Column Needed? What should it do? OHR Insert Y Order_total := 0 Delete N Update Id N Order_total Y prevent update OIM Insert Y recalculate Order_total Delete Y recalculate Order_total Update Ohr_id Y recalculate Order_total Item_total Y recalculate Order_total A-61 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 389.
    Practice: Triggers (3/6) LOCATIONS (LCN) EMPLOYEES (EPE) pk * Id pk * Id fk * Lcn_id * Name * Address * Lcn_address A-62 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 390.
    Solution: Triggers (4/6) Table Trg Type Column Needed? What should it do? LCN Insert N Delete N Update Address Y Cascade to Employees other cols Y If pk updated than extended cascade EPE Insert Y Set correct Lcn_address Delete N Update Lcn_id Y Set correct Lcn_address Lcn_address Y Prevent update A-63 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 391.
    Practice: Triggers (5/6) PRODUCTS (PDT) PRICES (PCE) pk * Pdt_id pk * Id pk * Start_date * Name o End_date * Curr_price_ind A-64 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 392.
    Solution: Triggers (6/6) TableTrg Type Column Needed? What should it do? PDT Insert N Delete N PCE Insert Y Prevent overlap in price periods Delete N Update Pdt_id Y Set Curr_price_ind to NULL Start_date Y Re-evaluate Curr_price_ind End_date Y Re-evaluate Curr_price_ind Curr_price_Ind Y Prevent update by user A-65 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 393.
    Solution: Denormalize PriceLists PRICE_LISTS (PLT) GLOBAL_PRICES (GPE) pk * Start_date pk,fk * Plt_start_date pk,f * Cty_code pk,fk * Plt_cty_code k * End_date * Amount * Current_indicator A-66 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 394.
    Solution: Denormalize GlobalNaming LANGUAGES (LGE) pk * Code * Name PRODUCTS (PDT) PRODUCT_NAMES (PNE) pk * Code pk,fk * Pdt_code o Size pk,fk Lge_code * Corporate_Name * Name * A-68 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 395.
    Solution: Data Types(1) Table Column Suggested Your Choice Data Type Data Type? COUNTRIES Code Varchar2(2) Char(2) CURRENCIES Code Varchar2(3) Char(3) EXCHANGE_RATES Month Date Number(2) Rate Number(8,4) Number(12,4) PRICE_LISTS Start_date Date Date End_date Date Date PRODUCT_GROUPS Name Char(8) Varchar2(15) PRODUCTS Code Char(10) Varchar2(15) Size Number(4,2) Char(1) Pdt_type Number(1) Char(3) A-69 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 396.
    Solution: Data Types(2) Table Column Your Choice Data Type GLOBAL_PRICES Amount Number(15,3) LOCAL_PRICES Start_date Date End_date Date Amount Number(15,3) SHOPS Name Varchar2(50) Address Varchar2(50) City Varchar2(50) A-70 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 397.
    Solution: Product Pictures PRODUCTS (PDT) TEXT_DOCUMENTS (TDT) pk * Code pk,fk * Pdt_code varchar2(3) ……. pk * Info_type varchar2(20) o Information CLOB BINARY_DOCUMENTS (BDT) pk,fk * Pdt_code varchar2(3) pk * Info_type varchar2(20) o Information BLOB A-72 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 398.
    Normalization Copyright © OracleCorporation, 2002. All rights reserved.
  • 399.
    Overview • Table Normalization • Normal Forms of Tables B-2 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 400.
    Why Normalize? • An Entity Model is not always available as a starting point for design. • To reduce redundant data in existing design. • To increase integrity of data, and stability of design. • To identify missing tables, columns and constraints. Note: Third normal form is the generally-accepted goal for a database design that eliminates redundancy. B-4 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 401.
    Recognize Unnormalized Data USER USER MSE REC_ SRVR SERVER _ID _NAME _ID DATE SUBJECT TEXT _ID _NAME ---- ----- ----- ----- --------------- ---------- ---- ------ 2301 Smith 54101 05/07 Meeting Today There is.. 3786 IMAP05 2301 Smith 54098 07/12 Promotions I like to. 3786 IMAP05 2301 Smith 54445 10/06 Next Assignment Your next. 3786 IMAP05 5607 Jones 54101 05/07 Meeting Today There is.. 6001 IMAP08 5607 Jones 54512 06/07 Lunch? Can you... 6001 IMAP08 5607 Jones 54660 12/01 Jogging Today? Can you... 6001 IMAP08 7773 Walsh 54101 05/07 Meeting Today There is.. 9988 EMEA01 7773 Walsh 54554 03/17 Stock Quote The latest 9988 EMEA01 0022 Patel 54101 05/07 Meeting Today There is.. 2201 EMEA09 0022 Patel 54512 06/07 Lunch? Can we ... 2201 EMEA09 B-5 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 402.
    Normalization Rules NormalForm Rule Description First Normal Form The table must express a set of (1NF) unordered, two-dimensional tables. The table cannot contain repeating groups. Second Normal Form (2NF) The table must be in 1NF. Every non-key column must be dependent on all parts of the primary key. Third Normal Form (3NF) The table must be in 2NF. No non-key column may be functionally dependent on another non-key column. “Each non-primary key value MUST be dependent on the key, the whole key, and nothing but the key.” B-6 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 403.
    Converting to FirstNormal Form USER USER MSE REC_ SRVR SERVER _ID _NAME _ID DATE SUBJECT TEXT _ID _NAME ---- ----- ----- ----- --------------- ------------ ---- ------ 2301 Smith 54101 05/07 Meeting Today There is.... 3786 IMAP05 2301 Smith 54098 07/12 Promotions I like to... 3786 IMAP05 2301 Smith 54445 10/06 Next Assignment Your next... 3786 IMAP05 5607 Jones 54512 06/07 Lunch? Can you..... 6001 IMAP08 5607 Jones 54101 05/07 Meeting Today There is.... 6001 IMAP08 5607 Jones 54660 12/01 Jogging Today? Can you.....6001 IMAP08 7773 Walsh 54101 05/07 Meeting Today There is.... 9988 EMEA01 7773 Walsh 54554 03/17 Stock Quote The latest.. 9988 EMEA01 0022 Patel 54101 05/07 Meeting Today There is.... 9988 EMEA01 0022 Patel 54512 06/07 Lunch? Can we ..... 9988 EMEA01 1. Remove repeating group from the base table. 2. Create a new table with the PK of the base table and the repeating group. B-7 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 404.
    First Normal Form- Single Record USERS USER USER MSE REC_ SRVR SERVER _ID _NAME _ID DATE SUBJECT TEXT _ID _NAME ---- ----- ----- ----- ------------- ---------- ---- ------ 2301 Smith 54101 05/07 Meeting Today There is.. 3786 IMAP05 5607 Jones 54512 06/07 Lunch? Can you... 6001 IMAP08 7773 Walsh 54101 05/07 Meeting Today There is.. 9988 EMEA01 0022 Patel 54101 05/07 Meeting Today There is.. 9988 EMEA01 USER USER SRVR SERVER _ID _NAME _ID _NAME USERS ---- ----- ---- ------ 2301 Smith 3786 IMAP05 5607 Jones 6001 IMAP08 7773 Walsh 9988 EMEA01 0022 Patel 9988 EMEA01 B-8 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 405.
    First Normal Form- Repeating Groups USER MSE REC_ RECEIVED_ _ID _ID DATE SUBJECT TEXT MESSAGES ---- ----- ----- --------------- ---------- (1NF) 2301 54101 05/07 Meeting Today There is.. 2301 54098 07/12 Promotions I like to. 2301 54445 10/06 Next Assignment Your next. 5607 54101 05/07 Meeting Today There is.. 5607 54512 06/07 Lunch? Can you... 5607 54660 12/01 Jogging Today? Can you... 7773 54101 05/07 Meeting Today There is.. USER USER 7773 SRVR 54554 03/17 Stock Quote SERVER The latest _ID _NAME 0022 _ID 54101 05/07 Meeting Today _NAME There is.. 0022 ---- ----- ---- 54512 06/07 Lunch? ------ Can we ... 2301 Smith 3786 IMAP05 5607 Jones 6001 IMAP08 USERS (1NF) 7773 Walsh 9988 EMEA01 0022 Patel 9988 EMEA01 B-9 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 406.
    Converting to SecondNormal Form 1. Determine which non-key columns are not dependent upon the table’s entire primary key. 2. Remove those columns from the base table. 3. Create a second table with those columns and the columns from the PK that they are dependent upon. B-10 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 407.
    Tables Already inSecond Normal Form USERS USER USER SRVR SERVER _ID _NAME _ID _NAME ---- ----- ---- ------ 2301 Smith 3786 IMAP05 5607 Jones 6001 IMAP08 7773 Walsh 9988 EMEA01 0022 Patel 9988 EMEA01 Is the USERS table already in 2NF? B-11 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 408.
    Convert to SecondNormal Form RECEIVED_ USER MSE REC_ MESSAGES _ID _ID DATE SUBJECT TEXT ---- ----- ----- -------------- --------- (1NF) 2301 54101 05/07 Meeting Today There is. 2301 54098 07/12 Promotions I like to RECEIVED_ 2301 54445 10/06 Next Assignment Your next MESSAGES 5607 54101 05/07 Meeting Today There is. (2NF) 5607 54512 06/07 Lunch? Can you.. USER MSE REC_5607 54660 12/01 Jogging Today? Can you.. _ID _ID DATE7773 54101 05/07 Meeting Today There is. 7773 54554 03/17 Stock Quote The lates ---- ----- ----- 0022 54101 05/07 Meeting Today There is. 2301 54101 05/07 0022 54512 06/07 Lunch? Can we .. 2301 54098 07/12 2301 54445 10/06 MESSAGES MSE 5607 54101 05/07 _ID SUBJECT TEXT 5607 54512 06/07 (2NF) ----- ------------ --------- 5607 54660 12/01 54101 Meeting Toda There is. 7773 54101 05/07 54098 Promotions I like to 7773 54554 03/17 54445 Next Assignm Your next 0022 54101 05/07 54512 Lunch? Can you.. 0022 54512 06/07 54660 Jogging Toda Can you.. 54554 Stock Quote The lates B-12 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 409.
    Converting to ThirdNormal Form Remove any columns that are dependent upon another non-key column: 1. Determine which columns are dependent upon another non-key column. 2. Remove those columns from the base table. 3. Create a second table with those columns and the non-key columns that they are dependent upon. B-13 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 410.
    Tables Already inThird Normal Form No non-key column can be functionally dependent upon another non-key column. RECEIVED_ MESSAGES MESSAGES (2NF) (2NF) ID SUBJECT TEXT ----- -------------- --------- USER MSE REC_ 54101 Meeting Today There is. _ID _ID DATE 54098 Promotions I like to ---- ----- ----- 54445 Next Assignment Your 2301 54101 05/07 next 2301 54098 07/12 54512 Lunch? Can you.. 2301 54445 10/06 54660 Jogging Today? Can you.. 5607 54101 05/07 54554 Stock Quote The lates 5607 54512 06/07 5607 54660 12/01 7773 54101 05/07 Are these two tables in third 7773 54554 03/17 0022 54101 05/07 normal form? Why? 0022 54512 06/07 B-14 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 411.
    Converting to ThirdNormal Form USERS SRVR ID NAME _ID USERS ---- ----- ---- USER USER SRVR SERVER 2301 Smith 3786 _ID _NAME _ID _NAME 5607 Jones 6001 ---- ----- ---- ------ 7773 Walsh 9988 2301 Smith 3786 IMAP05 0022 Patel 9988 5607 Jones 6001 IMAP08 7773 Walsh 9988 EMEA01 0022 Patel 9988 EMEA01 MAIL_ ID NAME SERVER ---- ------ 3786 IMAP05 6001 IMAP08 9988 EMEA01 B-15 Copyright © Oracle Corporation, 2002. All rights reserved.
  • 412.
    Summary 1NF The table must express a set of unordered, two- dimensional tables. The table cannot contain repeating groups. 2NF The table must be in 1NF. Every non-key column must be dependent on all parts of the primary key. 3NF The table must be in 2NF. No non-key column may be functionally dependent on another non-key column. An entity relationship model transforms into normalized data design. B-16 Copyright © Oracle Corporation, 2002. All rights reserved.