You are on page 1of 412

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
# EFFECTIVE DATE reviewed inavailable as on
* 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
* *o Description
Address
*
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


held by
by one ormore
one or more employees

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 DGYHUWLVHPHQWDUHD s
ge
Compose
Compose Template default
s s a
me Send
Folders
Subject: test
Addresses
To: bipi, giovanni_papini@yahoo.com a il Save Draft
Preferences
Cc: myself s em Save Template
Get New Mail
Bcc: p o
o m Cancel
Exit
o c
Message t
DGYHUWLVHPHQW

this is a test
text:
e n
and a text as well

c re
tralalalala

f s pompidom

oKeep
DUHD

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

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


(0
ORJR DGYHUWLVHPHQWDUHD
Compose
Addresses e s
ss
Folders Nicknames
dr e
Addresses Alias Email
address a d
Preferences apple
ai n
w.j.appletree@cats.com
bipi
n t
sabine_papini @yahoo.com
i
Get New Mail joe
myself ma
j.suspender@last.com
jtiddlywink@em.com
Exit t o
e n
DGYHUWLVHPHQW

Group
c re
s
friends
f
tc h obipi
DUHD

e 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 P&O
• 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 P&O

• 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

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

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

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

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.

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
pk ,fk1 * A_id
u
pk ,fk2 * B_id
XS (X) u
pk ,fk3 * C_id
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
pa ir
ROOM WITH BATH DOMESTIC re
n
ANIMAL d
e yo
b
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 P&O (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 P&O (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 P&O (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 P&O (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
SERVER03/17 Stock Quote The latest
_ID _NAME 0022
_ID 54101
_NAME05/07 Meeting Today 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.

You might also like