Top Banner
Copyright © Oracle Corporation, 2002. All rights reserved. Data Modeling and Relational Database Design Electronic Presentation 20000GC13 Production 1.3 August 2002 D37098
412
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Data Modeling and Relational Database DesignElectronic Presentation

20000GC13Production 1.3August 2002D37098

Page 2: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Copyright � Oracle Corporation, 2002. All rights reserved.

This documentation contains proprietary information of Oracle International Corporation. It is 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 delivered to a U.S. Government Agency of the Department of Defense, then it is delivered with Restricted Rights and the following legend is applicable:

Restricted Rights Legend

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 subparagraph (c) (1) (ii) of DFARS 252.227-7013, Rights in Technical Data and Computer Software (October 1988).

This material or any portion of it may not be copied in any form or by any means without the express prior written permission of Oracle International Corporation. Any other copying is a violation of copyright law and may result in civil and/or criminal penalties.

If this documentation is delivered to a U.S. Government Agency not within the Department of Defense, then it is delivered with ’Restricted Rights,’ as defined in FAR 52.227-14, Rights in Data-General, including Alternate III (June 1987).

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.

Author

Patrice Daux

Jeff GallusJan Speelpenning

Technical Contributors and Reviewers

Kate HeapSimmie KastnerJoni LounsberrySatyajit RanganathanSunshine SalmonStijn VanbrabantGabriella Varga

Publishers

Christine Markusic

Page 3: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Introduction to Entities, Attributes, and Relationships

Page 4: Entity Presentation

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

Overview

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

Page 5: Entity Presentation

1-3 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

Page 6: Entity Presentation

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

Between Dream and Reality...

Page 7: Entity Presentation

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

Entity Relationship Modeling

• Models business,not implementation

• Is a well-established technique

• Has a robust syntax• Results in easy-to-read

diagrams…

...although they maylook rather complex at first sight

SUPPLIER# SUPPLIER CODEo EMAIL* APPROVED* REFERENCE

OTHER ORGANIZATION

ORGANIZATIONo EMAIL* NAMEo POSTAL CODEo REGIONo STREETo TOWNo TELEPHONE NUMBERo CONTACT NAMEo CONTACT EXTENSION

MEMBERSHIP TYPE# CODE* DESCRIPTION* DISCOUNT PERCENTAGEo STANDARD FEE

MEMBERSHIP PERIOD# START DATEo ACTUAL FEE PAID

MEMBERSHIP# NUMBERo TERMINATION REASONo TERMINATION DATE

EMPLOYEE* POSITION* LAST NAMEo FIRST NAMEo OTHER INITIALSo EMAIL

BOOKING* BOOK DATEo EXPIRE DATEo NOTIFY DATEo RESERVE DATEo STAFF REMARKS

RENTAL ITEM# LINE NO* RENTAL PERIOD* PRICE PAIDo RETURN DATEo STAFF REMARKS

RENTAL* RENTAL DATEo STAFF REMARKSo COMPLETED

COPY* ACQUIRE DATE* PURCHASE COST* SHELF CODEo CONDITIONo CUSTOMER REMARKS...

REVIEW# SEQUENCE* ARTICLE* HOTo AUTHORo URL

PUBLICATION# REFERENCE* TITLEo VOLUMEo ISSUEo PUBLISH DATE

CUSTOMERo EMAIL* DESIGNATION* FIRST NAME* LAST NAMEo OTHER INITIALS* STREET* TOWN* POSTAL CODE* REGIONo HOME PHONEo WORK EXTENSIONo WORK PHONEo PHOTOGRAPHo STAFF REMARKS

CATALOG# REFERENCEo CATALOG DATo DESCRIPTION

MOVIE* CATEGORYo AGE RATING* DURATION* MONOCHROMEo AUDIOo PREVIEW

GAME* CATEGORY* MEDIUMo MINIMUM MEMOR

TITLE# PRODUCT CODE* TITLEo DESCRIPTION

PRICE LEVEL# CODE* DESCRIPTION

PRICE HISTORY# EFFECTIVE DATE* PRICE* DEFAULT DAYS* OVERDUE RATE

for

used for

of

renewed for

of

the type oheld by

the holder o

held by

the holder of

available

the

requestedagainst the

requestorof

authorized by

responsiblefor

the reservation for

reserved on

for

on

cancelled by

the cancellor of

approved by

responsible for

of

reviewed in

at

applied to

the rental for

fulfilled as

part of

composed of

for

rented on

approved by

responsiblefor

part of

parent organization o

acquired from

the source of

of

available as

for

defined by

managed by

the manager o

in

the source of

in

the source of

Page 8: Entity Presentation

1-8 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

Page 9: Entity Presentation

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

Database Types

HierarchicalRelational

Network

ER Model

Page 10: Entity Presentation

1-10 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

Page 11: Entity Presentation

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

Entities and Instances

PERSONPRODUCTPRODUCT TYPEEMPLOYMENT CONTRACTJOBSKILL LEVELTICKET RESERVATIONPURCHASEELECTIONPRINTER PREFERENCEDOCUMENT VERSION

Mahatma Gandhi2.5 x 35 mm copper nailnailmy previous contractviolinistfluenttonight: Hamlet in the Royalthe CD I bought yesterdayfor parliament next fall…...

Page 12: Entity Presentation

1-12 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

dish washer

waiter

cookwaitress

manager

financial controllerporter

piano player

Page 13: Entity Presentation

1-13 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

Page 14: Entity Presentation

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

Attribute Examples

EntityEMPLOYEE

CARORDER

JOBTRANSACTIONEMPLOYMENT

CONTRACT

AttributeFamily Name, Age, Shoe Size, Town of Residence, Email, ...Model, Weight, Catalog Price, …Order Date, Ship Date, …Title, Description, ...Amount, Transaction Date, …Start Date, Salary, ...

Page 15: Entity Presentation

1-15 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

Page 16: Entity Presentation

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

Relationship Examples

EMPLOYEES have JOBSJOBS 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

Page 17: Entity Presentation

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

JOB

waiter

cookwaitress

manager

financial controllerporter

piano player

Employees have Jobs

Ahmed

JillAdam

Maria

EMPLOYEE

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

Shintaro dish washer

Page 18: Entity Presentation

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

Entity Representation in Diagram

• Drawn as a “softbox”• Name singular• Name inside• Neither size,

nor position has a special meaning

During design, entities usually lead to tables.

EMPLOYEE

TICKETRESERVATION

JOB ASSIGNMENT

JOB

ORDER

EL

EC

TIO

N

Page 19: Entity Presentation

1-20 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.

EMPLOYEEFamily NameAddress

o Birth Dateo Shoe Sizeo Email

JOBTitle

o Description

During design, attributes lead to columns.

**

*

Page 20: Entity Presentation

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

Jobs are held by one or more employees

An employee has exactly one job.has

Relationship in Diagrams

EMPLOYEE JOBhas

held by

held by

exactly one

one or more

During design, relationships lead to foreign keys.

Page 21: Entity Presentation

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

has

held by

EMPLOYEEJOB

Diagrams Are To Communicate

Page 22: Entity Presentation

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

mandatory: optional:

Characteristics Of The Relationship Line

Page 23: Entity Presentation

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

EMPLOYEE JOB

Two Perspectives

has

held by

mandatory: optional:

Page 24: Entity Presentation

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

Every EMPLOYEE has exactly one JOB

One Way

hasEMPLOYEE JOB

held by

mandatory: optional:

Page 25: Entity Presentation

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

The Other Way

hasEMPLOYEE JOB

held by

mandatory: optional:

A JOB may be held by one or more EMPLOYEES

Page 26: Entity Presentation

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

Reading a Relationship End

P split into Qpart of

Page 27: Entity Presentation

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

Reading a Relationship End

P split into Qpart of

Page 28: Entity Presentation

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

”“Each P split intomust bemay be one or more Qs

exactly one Q

Reading a Relationship End

P split into Qpart of

Page 29: Entity Presentation

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

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

Reading a Relationship End

P split into Qpart of

Page 30: Entity Presentation

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

Reading a Relationship End

P split into Qpart of

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

Page 31: Entity Presentation

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

“Each Q part of ”must bemay be one or more Ps

exactly one P

Reading a Relationship End

P split into Qpart of

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

Page 32: Entity Presentation

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

“Each Q must be part of exactly one P”

Reading a Relationship End

P split into Qpart of

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

Page 33: Entity Presentation

1-34 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.

Page 34: Entity Presentation

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

Weather Forecast

København

Bremen

Berlin

München

Amsterdam

Bruxelles

Paris

Bordeaux

1/-5

7/2

3/-1

8/3

5/-3

4/0

4/1

0/-3

January 26

3

3

3

4

3

2

3

4

****

Page 35: Entity Presentation

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

(Copenhagen)

Bremen

Berlin

(Munich)

Bruxelles

Paris

Bordeaux

Amsterdam

UK

FR

DE

DK

CH

NL

BE

IT

LU

IR

København

München

(Brussels)

Page 36: Entity Presentation

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

located in

having

referred in

about

referring to

referred in

subject of

referring to WEATHER TYPE* Icon* Description

WIND DIRECTION* Icon* Description

COUNTRY* Nameo Geographical

Position

CITY* Nameo Geographical

Position

FORECAST* Dateo Minimum

Temperatureo Maximum

Temperatureo Wind Force

Weather Forecast, a Solution

Page 37: Entity Presentation

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

Graphical Elements of ER Diagram

Subtype

##

Unique identifier

Arc

Nontransferability

** **o

o

Entity

Attribute

Relationship

Page 38: Entity Presentation

1-40 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

Page 39: Entity Presentation

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

Practices

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

Page 40: Entity Presentation

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

Practice: Instance or Entity?

PRESIDENT

ELLA FITZGERALD

DOG

ANIMAL

HEIGHT

E CAR

A CAR

I CAR

Concept E/A/I? Example Instance or Entity

Page 41: Entity Presentation

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

Practice: Guest

GUEST

HOTEL

ROOM

Address

Arrival Date

Family Name

Room Number

Floor Number

Number of Beds

Number of Parking Lots

Price

TV set available?

Page 42: Entity Presentation

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

Practice: Reading

Each EMPLOYEE may be assigned to one or more DEPARTMENTS

Each DEPARTMENT must be responsible for one or more EMPLOYEES

Each EMPLOYEE must be assigned to one or more DEPARTMENTS

Each DEPARTMENT may be responsible for one or more EMPLOYEES

Each EMPLOYEE must be assigned to exactly one DEPARTMENT

Each DEPARTMENT may be responsible for exactly one EMPLOYEE

EMPLOYEE DEPARTMENTassigned to

responsible for

A

B

C

Page 43: Entity Presentation

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

Practice: Read and Comment

TOWN

birthplace of

born in

living in

home town of

mayor of

with mayor

PERSON

visitor of

visited by

Page 44: Entity Presentation

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

Practice: Hotel

HOTEL* Address

STAY* Arrival Date

ROOM* Room Number

PERSON* Name

in

the lodging for

of

with

in

with

guest in

host of

Page 45: Entity Presentation

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

Açorda alentejanabread soup from Portugal

Ralph’s Raving Recipes

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

Preparation

vegetarian15 mineasy

1 onion4 cloves of garlic1 red pepper1 liter of vegetable broth4 tablespoons of olive oil4 fresh eggs1 handful of parsley or coriandersalt, pepper9-12 slices of (old) bread

For 4 persons:

Soups

Page 46: Entity Presentation

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

Page 47: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Entities and Attributes in Detail

Page 48: Entity Presentation

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

Overview

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

Page 49: Entity Presentation

1-3 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

Page 50: Entity Presentation

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

Data

• Modeling, ConceptualStructuring data concepts into logical, coherent, and mutually related groups

• Modeling, PhysicalModeling the structure of the (future) physical database

• BaseA set of data, usually in a variety of formats, such as paper and electronically-based

• Warehouse A huge set of organized information

Page 51: Entity Presentation

1-6 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

Page 52: Entity Presentation

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

HOTELGUESTguest of

host of

ACCOMMODATIONPERSONguest of

host of

Relationship Name in Entity Name

Page 53: Entity Presentation

1-9 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.

Page 54: Entity Presentation

1-10 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.”

Page 55: Entity Presentation

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

�����������������Subject:

To:

Cc:

Bcc:

Messagetext:

KeepCopy

Compose���������

���

����

Get New Mail

Folders

Addresses

Preferences

Exit

Attachments: Type:Add

Signature

Send

Save Draft

Save Template

Cancel

������

test

bipi, [email protected]

this is a testand a text as welltralalalalapompidom

abc.htmlxyz.doc

HypertextWord document

Compose Template default

myself

sketch of screen to compose mail m

essages

Page 56: Entity Presentation

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

�����������������������

���������

���

�����

Group

Alias Email address

NicknamesAddresses

[email protected]@em.com

friends

applebipijoemyself

[email protected]_papini @[email protected]@em.com

Compose

Get New Mail

Folders

Addresses

Preferences

Exit

sketch of screen to maintain addresses

Page 57: Entity Presentation

1-13 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.

Page 58: Entity Presentation

1-14 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.”

Page 59: Entity Presentation

1-15 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.

Page 60: Entity Presentation

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

Business Functions

• “Users of ElectronicMail must be able to addressmessages 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.

Page 61: Entity Presentation

1-18 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.”

Page 62: Entity Presentation

1-19 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

Page 63: Entity Presentation

1-20 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.

Page 64: Entity Presentation

1-21 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.”

Page 65: Entity Presentation

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

EM Entities and Attributes

useraddress passwordpersonname country birth date occupation message text attachment file folder inbox outbox wastebasket

Nouns

USERAddress PasswordPERSONNameCOUNTRYBirth Date Occupation MESSAGE Text ATTACHMENT File FOLDER Inbox Outbox Wastebasket

Entities/Attributes/Instances

USER- Address- Password

PERSON- Name - Birth Date - Occupation COUNTRY- Name

MESSAGE - Text

ATTACHMENT - Filename

FOLDER - Name

Entities with their Attributes

Page 66: Entity Presentation

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

Attribute and Entity

Attributes in one model can be entities in another.

GARMENT

CURRENCY PRICE LANGUAGENAME

GARMENTNamePrice

Page 67: Entity Presentation

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

Redundancy

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

Page 68: Entity Presentation

1-25 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• May have subtypes of its own• Is also known as “Subentity”

ADDRESS

USER

LIST

Page 69: Entity Presentation

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

Subtype: Example

COMPOSITIONo Subjecto Cco Bcco Text

MESSAGE

DRAFT* Name

TEMPLATE* Name

Page 70: Entity Presentation

1-27 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.

A

NON BB

Name subtypes adequately:

C OTHER A

Page 71: Entity Presentation

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

Subtypes: Three Levels

COMPOSITIONo Subjecto Cco Bcco Text

MESSAGE

DRAFT* Name

TEMPLATE* Name

DRAFT

TEMPLATE

OTHERCOMPOSITION* Name

Page 72: Entity Presentation

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

More on Subtypes

EMPLOYEE

Subtypes always exist...

OTHEREMPLOYEE

CURRENTEMPLOYEE

EMPLOYEE

OTHEREMPLOYEE

EMPLOYEE WITH SHOE SIZE > 45

... but do not all make sense

Page 73: Entity Presentation

1-30 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

Page 74: Entity Presentation

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

Practices

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

Page 75: Entity Presentation

1-32 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.

Page 76: Entity Presentation

1-33 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.

Page 77: Entity Presentation

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

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.

Moonlight CoffeesMoonlight Coffees

Page 78: Entity Presentation

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

Moonlight CoffeesMoonlight Coffees Summary

FinancialShop 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.

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

Page 79: Entity Presentation

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

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

Moonlight CoffeesMoonlight Coffees

Page 80: Entity Presentation

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

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

Moonlight CoffeesMoonlight Coffees

Page 81: Entity Presentation

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

Subtypes

DISABLED PERSON

DEAF

BLIND

OTHER DISABLEDPERSON

CAR

STATION WAGON

SEDAN

BUILDING HOUSE

HOTEL

ROOM WITH BATH

OTHER ROOM

DOMESTICANIMAL

MAMMAL

DOG

Page 82: Entity Presentation

1-39 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

Annet B

Dennis

Jürgen

Kiri

Wil

2 2 2 1

1 1 1

2 2 1 2 3

5 4

3 4 4

Page 83: Entity Presentation

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

Practice: Address (1/2)

Rheingasse 12353111 BonnGermany

1020 Maple DriveKirkland WA 98234USA

34 Oxford RoadReadingBerkshire RG1 8JSUK

Page 84: Entity Presentation

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

Practice: Address (2/2)

P.O. Box 66708NairobiKenya

c/o Mrs SmithMaude StreetSandtonJohannesburg 2144South Africa

Page 85: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Relationships in Detail

Page 86: Entity Presentation

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

Overview

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

Page 87: Entity Presentation

3-3 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

Page 88: Entity Presentation

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

Establishing the Relationship

USERMESSAGE sending

receiving

replying

Page 89: Entity Presentation

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

Relationship Names

USERMESSAGE sent bysender

of

reply of

replied to by

sent toreceiver

of

Page 90: Entity Presentation

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

Naming the Relationship

MESSAGE USER

receiving

A MESSAGE is received by a USER

received by

A USER is receiver of a MESSAGE

receiver of

Page 91: Entity Presentation

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

Optionality

USERMESSAGE written byauthor

of

reply of

replied to by

received byreceiver

of

Page 92: Entity Presentation

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

Optionality

• Must every MESSAGE be received by a USER?

No: Yes:

Yes

• Must every USER be receiver of a MESSAGE? No

MESSAGE

receiver of

USERreceived by

Page 93: Entity Presentation

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

Mandatory 1: Mandatory m

A split intopart of

B

• Every A must be split into at least one B

• Every B must be part of exactly one A

Page 94: Entity Presentation

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

Degree

USERwritten byauthor

of

reply of

replied to by

ATTACHMENT

with

containing

<5

received by

receiver of

MESSAGE

Page 95: Entity Presentation

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

Degree

MESSAGE received by

receiver of

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

• Can a USER be the receiver of more than oneMESSAGE ? Yes

One: One or more:

USER

Page 96: Entity Presentation

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

Nontransferability

USERMESSAGE written byauthor

of

reply of

replied to by

FOLDER

filed in

containing

received by

receiver of

Page 97: Entity Presentation

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

Relationship Types1:m

(a)

(b)

(c)

(d)

Page 98: Entity Presentation

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

PRODUCT

BUNDLE

consists of

part of

Relationship Typesm:1

Page 99: Entity Presentation

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

Relationship Typesm:m

(e)

(f)

(g)

Page 100: Entity Presentation

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

Relationship Typesm:m

USER

LIST

consists of

part of

Page 101: Entity Presentation

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

Relationship Types1:1

(h)

( i)

( j )

Page 102: Entity Presentation

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

1:1 Relationships Roles

PERSON* Name

PATIENT* Blood Type

EMPLOYEE* Job

acting as

role of

acting as

role of

Page 103: Entity Presentation

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

1:1 Relationships Process

MESSAGEDRAFT

basis for

result of

Page 104: Entity Presentation

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

Redundant Relationships

PERSON

TOWN

livingin

of

COUNTRY

livingin

located in

hometown of

location of

bornin

of birth oflocated

in

location of

COUNTRY

PERSON

TOWN

livingin

hometown of

Page 105: Entity Presentation

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

Relationships and Attributes

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

ATTACHMENT* Content

ATTACHMENT TYPE* Name

with

of

ATTACHMENT* Type* Content

Page 106: Entity Presentation

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

Attribute Compared to Relationship

• Easy model• Fewer tables• No join

• Value control• List of values• Other relationships

ATTACHMENT* Type* Content

ATTACHMENT* Content

ATTACHMENT TYPE* Name

with

of

Page 107: Entity Presentation

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

JOBEMPLOYEE* Id

BADGE

NATIONALITY

ADDRESS

NAME

SALARY

GENDER

TEAM

Attribute or Entity

Page 108: Entity Presentation

3-25 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

MESSAGE* Message Id* Text* Folder Name

FOLDER* Name

placed in

containing

Page 109: Entity Presentation

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

Relationship Compared to Attribute

MESSAGE* Addressee

USER

MESSAGE USER

addressee of

addressed to

MESSAGEo Addressee

USER

addressee of

addressed to

Page 110: Entity Presentation

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

PRODUCT* Code* Name

CUSTOMER* Id* Name

bought by

buyer of

m:m Relationships May Hide Something

Page 111: Entity Presentation

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

?

Quantity

PRODUCTCUSTOMER

* Id* Name

* Code* Namebought by

buyer of

Quantity Is Attribute of ...

PRODUCTCUSTOMER

* Id* Name

* Code* Name

buyer of

?

Quantitybought by

Page 112: Entity Presentation

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

PRODUCTCUSTOMER

* Id* Name

* Code* Namebought by

buyer of

Attribute of Relationship ?

Quantity

Page 113: Entity Presentation

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

CUSTOMER* Id* Name

PRODUCT* Code* Name

ORDERwith

with

for

of

New Entity ORDER

*Quantity Sold

Name

SanchezLowitchYomita

CUSTOMERS

Id

1 2 3 4

PRODUCTS

Code

12 3 4

Name

JeansShirtTie

ORDERS

Ctr_id

1123

Pdt_code

2 3 2

Quantity_sold

221

Page 114: Entity Presentation

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

ORDER* Id* Date

with

with

for

of

CUSTOMER* Id* Name

PRODUCT* Code* Name

Multiple PRODUCTS for an ORDER

Quantity?

Page 115: Entity Presentation

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

for for

ORDER ITEM

with

with

of

with

CUSTOMER* Id* Name

PRODUCT* Code* Name

ORDER HEADER* Id* Date

Another New Entity: ORDER ITEM

*Quantity Sold

Page 116: Entity Presentation

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

CUSTOMERS

1

2

SanchezLowitchYomita

Id Name ORDER_HEADERS

1

2

Id Ctr_id

1

2

Date_ordered

25-MAY-1999 25-MAY-199925-MAY-1999

ORDER_ITEMS

1

2

Ohd_id Pdt_code

2

2

Quantity_sold

221

PRODUCTS

Code

12 3 4

Name

JeansShirtTie

Tables

Page 117: Entity Presentation

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

A

B

xxx

yyy

A/B COMBINATION

A

B

of

of

in

in

Page 118: Entity Presentation

3-36 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

xxxxxx

yyyyyy

A

B

A/B COMBINATIONof

of

with

with

Page 119: Entity Presentation

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

PERSONCUSTOMER TYPE

classifiedas

classificationof

external

Resolving m:1 Relationship

internal

Page 120: Entity Presentation

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

Resolving m:1 Relationship

PERSON CUSTOMER TYPE

internal

external

in

CLASSIFICATION

with

for with

Page 121: Entity Presentation

3-39 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”

Page 122: Entity Presentation

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

First Normal Form in Data Modeling

RECEIVED MESSAGE# Receive Dateo Subjecto Text

received by

receiver of

All attributes must be single-valued.

USER# Name* Person Name* Message Receive Dateo Message Subjecto MessageText

USER# Name* Person Name

Page 123: Entity Presentation

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

Second Normal Form in Data Modeling

MESSAGE# Ido Text

including

included in

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

including

included in

RECEIVED MESSAGE# User Name * Receive Date

RECEIVED MESSAGE# User Name * Receive Date* Subject

MESSAGE# Ido Text* Subject

Page 124: Entity Presentation

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

Third Normal Form in Data ModelingUSER# Name* Person Name* Password* Server Id * Server Name

assigned to

distribute mail to

MAIL SERVER# Id* Name

USER# Name * Person Name * Password

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

Page 125: Entity Presentation

3-43 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.

Page 126: Entity Presentation

3-44 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

Page 127: Entity Presentation

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

Practice: Read the Relationship

of

with

bilought in

glazoed with

bazooned in

bazooned by

ALU BRY

KLO HAR

PUR YOK

Page 128: Entity Presentation

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

Find a Context (1)

Page 129: Entity Presentation

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

Find a Context (2)

Page 130: Entity Presentation

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

Find a Context (3)

Page 131: Entity Presentation

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

Find a Context (4)

Page 132: Entity Presentation

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

Practice: Name the Intersection Entity

sold by

selling

crewing

crewed by

fluent in

spoken by

PRODUCT DEPARTMENT STORE

PERSON SAILBOAT

INTERPRETER LANGUAGE

Page 133: Entity Presentation

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

Served by: DennisTill: 3 Dec 8, 4:35 pm-----------------------CAPPUCC M 3.60

* 2 7.20CREAM .75

* 2 1.50APPLE PIE 3.50BLACKB MUF 4.50

<SUB> 16.70tax 12% 2.00<TOTAL> 18.70

======= CASH 20.00RETURN 1.30

-----------------------Hope to serve you again

@MOONLIGHT COFFEES25 Phillis Rd, Atlanta

Practice: Receipt

Page 134: Entity Presentation

3-52 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.

Page 135: Entity Presentation

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

small medium largeregular coffee 2.25 2.90 3.50cappuccino 2.90 3.60 4.20café latte 2.60 3.20 3.90special coffee 3.10 3.70 4.40espresso 2.25 2.90 3.50coffee of the day 2.00 2.50 3.00decaffeinated .25 .50 .75 extrablack tea 2.25 2.90 3.50infusions 2.60 3.20 3.90herbal teas 2.90 3.60 4.20tea of the day 2.00 2.50 3.00decaffeinated .25 .50 .75 extramilk 1.25 1.90 2.50soft drinks 2.25 2.90 3.50soda water 2.25 2.90 3.50mineral water 2.90 3.60 4.20apple pie 3.50strawberry cheesecake 3.50whole wheat oats muffin with almonds 3.90blackberry muffin 4.50fruitcake 4.50cake of the day 4.00additional whipped cream .75

price list 25 Phillis Road, Atlantavisit us at www.moonlight.com

Sale

s Tax

incl

uded

Sept

embe

r 16

Practice: Price List

Page 136: Entity Presentation

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

USER

LIST

COMPOSITION written by

received by

author of

consists of

part of

reply ofreplied to by

ATTACHMENTwith

containing

<5

ATT. TYPE

FOLDER

placed in

containing

receiver of

MESSAGE

OTHER COMPOSITION

Practice: E-Mail

Page 137: Entity Presentation

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

Practice: Holiday

COUNTRY

COMPANION

TRANSPORTCOUNTRY

FranceUSAUSA COMPANION

EricEricPaulCOM

PANION

EricEric

Paul

TRANSPORT

Boots

CarBoo

ts

COUNTRYFranceUSAUSA

TRANSPORTBootsBootsCar

“Paul and I hiked in the USA. Eric and I hiked in France and we rented a car in the USA last year.”

Page 138: Entity Presentation

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

Practice: Normalize an ER Model

for

completed

with

ENROLLMENT

grade code

teacher number

grade description

course name

COURSE

course number

course name

teacher number

department code

department name

teacher name

STUDENT

#* student id

last name

first name

for

assigned

Page 139: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Constraints

Page 140: Entity Presentation

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

Overview

• Unique Identifiers• Arcs• Domains• Various other constraints

Page 141: Entity Presentation

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

Rembrandt

Page 142: Entity Presentation

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

Page 143: Entity Presentation

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

EMPLOYEESName

PAPINI HIDEPAPINI BAKER

Initials

G.T.M.G.S.J.T.

Birthdate

02-FEB-195411-JUN-196102-FEB-194524-SEP-1958

G. Papini, please?

Identification and Representation

Page 144: Entity Presentation

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

Unique Identifier Examples

JOBCOMPUTER IN NETWORK

TELEPHONE

EMPLOYEE

MAIL LIST

NameIP AddressCountry code,Area code, Telephone numberEmployee number Name, Initials, Birth Date Name,Owner

or

Page 145: Entity Presentation

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

Unique Identifier

CUSTOMER# Family Nameo Initials# Addresso Telephone

Indicates Unique Identifier

ORDER# Date

responsible for

by

Indicates Unique Identifier

Page 146: Entity Presentation

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

Unique Identifiers

part of

contains

USER# Name

owner of

owned by

MAIL LIST# Name

ROOM# No

FLOOR# No

HOTEL# Name

Page 147: Entity Presentation

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

Multiple Relationship UID

owner of

owned by

USER# Name

LIST# Name

part of

contains

USER# Name

LIST# Name

owner of

owned by

contains

contained in

referring to

isreferred to

LIST ITEM

Page 148: Entity Presentation

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

Well-defined Unique Identifiers

Z# Z1o Z2o Z3# Z4

Q# Q1

R# R1

P# P1

T# T1

S

X# X1

Y# Y1# Y2

XY

K

L # L1

M# M1

Page 149: Entity Presentation

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

Incorrect Unique Identifiers

K# K1

L# L1

KL

G# G1

F# F1

To # T1 Q

# Q1

R# R1

P# P1

G# G1

H

Page 150: Entity Presentation

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

Information-Bearing Codes

54.0.093.81

PRODUCT

# Code* In Production?* Sequence No

PRODUCT GROUP# Code

FACTORY# Id

Product GroupIn Production?

FactorySequence Number

Page 151: Entity Presentation

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

Arcs

“A contract consists of contract components; these are standard conditions or customized conditions”

Contract

Conditions Std? 123456

CUSTOMIZEDCONDITION

STANDARDCONDITION

CONTRACT

CONTRACT COMPONENT

in

referring to

in

referring topart of

consists of

based on

basis for

Arc

Indicates relationship

in arc

Page 152: Entity Presentation

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

USER

LIST

owned by

ownerof

LIST ITEM

container of

contained in referring to

is referred to

referring to

is referred to

Exclusive Arc

Page 153: Entity Presentation

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

Possible Arc Constructs

Page 154: Entity Presentation

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

Some Incorrect Arc Constructs

• 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 ...

• The arc “belongs” to one entity

Page 155: Entity Presentation

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

Maximum

n n

1 1

0 n

0 1

Minimum

} n

} n

} n

} n

Number of Valid Relationships in Arc Per Entity Instance

Some Incorrect Arc Constructs

Page 156: Entity Presentation

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

USER

LIST

owned by

ownerof

LIST ITEM

contains

in

Arc or Subtype

USER

LIST

owned by

ownerof

LIST ITEM

contains

in

ADDRESS

referring to

is referred to

referring to

is referred to

referring to

is referred to

Page 157: Entity Presentation

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

Arc and Subtypes

A

QP

2

A

QP

R

1

A

P

CB

Q

3

A CB

QP

R

4 5

A CB

QP

R

Page 158: Entity Presentation

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

Subtypes Hide Relationships in Arc

• Every A is either a B or a C

• Every B is an A• Every C is an A

A

C

B

C

BA

is

is

is

is

• Every A mustbe a B or be a C

• Every B must be an A

• Every C must be an A

Page 159: Entity Presentation

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

Value sets

GENDER# Code* Description

YESNO# Code* Description

WEEKDAY# Code* Description

CODE# Code* Description

CODE TYPE# Id* Name* Max Length

of Description

A

B

Page 160: Entity Presentation

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

EMPLOYEE* Name* Address

with

JOB* Title* Minimum Salary* Maximum Salary

EMPLOYMENT* Start Dateo End Date* Salary

offor referring to

between

Other Constraints: Range Check

Page 161: Entity Presentation

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

EMPLOYEE* Name* Address* Current Marital Status

SingleMarried

WidowedDivorced

Domestic Partnership

Sin

Mar

Wid

Div

DP

from

toPossible Marital Status Transitions

Other Constraints: State Value Transition

Page 162: Entity Presentation

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

CONTRACT# Id* Standard Indicator

CONTRACT COMPONENT

in

referring to

in

referring topart of

consists of

based on

basis for

CUSTOMIZEDCONDITION

STANDARDCONDITION

Conditional Relationship

Page 163: Entity Presentation

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

Boundaries

EXTERNAL # Id* Description* Value

EXTERNALS

Id

1234

Description

Value added tax %Maximum available Space per Mail User in MbyteMaximum level of Nested Mail FoldersMaximum level of Nested Mail Lists

Value

15500

316

unrelated entity

and possible implementation

Page 164: Entity Presentation

4-29 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

Page 165: Entity Presentation

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

Practices

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

Page 166: Entity Presentation

4-31 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

Page 167: Entity Presentation

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

Practice: Identification 1

A# Xx

B* Yy

C# Zz

Page 168: Entity Presentation

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

A B# IdC

# Code

Practice: Identification 2

Page 169: Entity Presentation

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

A* XxB# Yy

C# Zz

D# Id

with

of

Practice: Identification 3

Page 170: Entity Presentation

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

Q# Id

P

Practice: Identification 4

Page 171: Entity Presentation

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

P # Name

Practice: Identification 5

Page 172: Entity Presentation

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

MARRIAGE# Start Date

PERSON

MALE# Seqno

FEMALE# Name# Birth Date

partner in partner in

with husband with wife

son of

mother of

Practice: Identification 6

Page 173: Entity Presentation

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

DEPARTMENTHQ

OTHERDEPARTMENT COUNTRY

ORGANIZATIONCOUNTRY

JOBASSIGNMENT

with

to

inwith

in

of

belongs towith

reporting to

reporting to

asin

report of

report of

EMPLOYEE

to

with

for

of for forwith

with

PAYROLLENTRY

SHOP

Practice: Moonlight UID

Page 174: Entity Presentation

4-39 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.

Page 175: Entity Presentation

4-40 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.”

Page 176: Entity Presentation

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

KEY# Name

TABLE# Name

FOREIGN KEY# Name

with

USAGE# Seqno

ASSOCIATION# Seqno

PRIMARY

UNIQUE

COLUMN# Name* Data Typeo Not Null

with

with

with

with

for forin

in

of

in

in

from

to

from

to

referenced in

of

Practice: Table 2

Page 177: Entity Presentation

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

EMPLOYEE # Name managed by

manager of

Practice: Constraints 1

Page 178: Entity Presentation

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

USER

# Name

NICKNAME# Alias

ownedbyowner of

owner ofowned

by

LIST# Name

Practice: Constraints 2

Page 179: Entity Presentation

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

FOLDER Name

within

with subfolder USER

# Name

owned by

owner of

Practice: Constraints 3

Page 180: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Modeling Change

Page 181: Entity Presentation

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

Overview

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

Page 182: Entity Presentation

5-3 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?

Page 183: Entity Presentation

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

DAY# Date* Public Holiday Indicator

TASK ASSIGNMENT* Duration in Hours

starts on

first day of

EMPLOYEE# Name

TASK# Id

of

for

with

in

Entity DAY

Page 184: Entity Presentation

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

EMPLOYEE# Id

ASSIGNMENT# Start Dateo End Date

for

of in

as

COUNTRY# Name

Modeling Change

Page 185: Entity Presentation

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

EMPLOYEE# Id

ASSIGNMENT# Start Dateo End Date

in

asfor

of

COUNTRY# Name # Start Date* End Date

life cycleattributes

Even a Country Has a Life Cycle

Page 186: Entity Presentation

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

PRODUCT# Id* Name

PRICE * Price in $# Start dateo End Date

with

of

PRICE =PRICED PRODUCT=HISTORICAL PRICE

Products and Prices

Page 187: Entity Presentation

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

What Price to Pay?

PRODUCT# Id* Name

PRICE * Price in $# Start dateo End Date

with

of

ORDER HEADER# Id* Order Date

ORDER ITEM* Quantity Ordered

with

of

referring to

referred by

betw

een

Page 188: Entity Presentation

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

Price List Search

PRODUCT# Id* Name

PRICED PRODUCT* Price in $

with

of

ORDER HEADER# Id* Order Date

with

of

with

on

PRICE LIST# Id* Start Dateo End Date

referred by

between

referring to

ORDER ITEM* Quantity

Ordered

Page 189: Entity Presentation

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

Order for Priced Products

PRODUCT# Id* Name

PRICED PRODUCT* Price in $

with

of

with

on

PRICE LIST# Id* Start Dateo End Date

referred by

ORDER HEADER# Id* Order Date

with

of

ORDER ITEM* Quantity

Orderedreferring to

Page 190: Entity Presentation

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

Negotiated Prices

ORDER HEADER# Id* Order Date

with

of

referring to

PRICED PRODUCT* Price in $

with

of

with

on

PRICE LIST# Id* Start Dateo End Date

PRODUCT# Id* Name

ORDER ITEM* Quantity Ordered* Negotiated Price

referred by

Page 191: Entity Presentation

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

Current Prices

of

PRODUCT# Id* Name* Current Price

with old

PRICE * Price in $# Start Date* End Date

PRODUCT# Id* Name* Current Price

of

with

PRICE * Price in $# Start Dateo End Date

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

of

PRODUCT# Id* Name

with

Page 192: Entity Presentation

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

to

by

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

PAYMENTo Date Paid* Amount in $

with

of

to

by

PAYMENT*Date Paid*Amount in $

Journaling

Page 193: Entity Presentation

5-19 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

Page 194: Entity Presentation

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

Practices

• Shift• Strawberry Wafer• Bundles• Product Structure

Page 195: Entity Presentation

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

Museumplein, Amsterdam, March 21

Shift 1 2 3 4 5

6:30 11:30 16:00 20:30 -11:30 16:00 20:30 23:00

7:00 11:30 16:00 20:30 -11:30 16:00 20:30 23:00

7:00 11:30 16:00 20:30 -11:30 16:00 20:30 23:00

7:00 11:30 16:00 20:30 -11:30 16:00 20:30 23:00

7:00 11:30 16:00 20:30 -11:30 16:00 20:30 24:00

8:00 11:30 15:00 18:00 21:00 11:30 15:00 18:00 21:00 24:00

Mon

Tue

Wed

Thu

Fri

Sat/Sun

Practice: Shift

Page 196: Entity Presentation

5-22 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.

Page 197: Entity Presentation

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

klein middel grootgewone koffie 60 90 120cappuccino 90 110 140koffie verkeerd 75 100 130speciale koffies 99 125 150espresso 60 95 110koffie van de dag 45 75 100caffeine vrij 5 10 15 toeslagzwarte thees 60 100 120vruchten thees 75 110 130kruiden thees 80 120 140dag thee 50 85 100caffeine vrij 5 10 15 toeslagfrisdranken 60 100 130diverse sodas 60 100 130mineraal water 75 120 140appel taart 180brusselse wafel 150portie chocolade bonbons 150koekje van eigen deeg 120portie slagroom 30

prijslijst de Keyzer, Keyzerlei 15, Antwerpenbezoekt ons op ‘t Web: www.moonlight.com

incl

usie

f BT

W16

Sep

tem

ber

Pra

ctic

e: P

rice

list

Page 198: Entity Presentation

5-24 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.

Page 199: Entity Presentation

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

PRODUCT# Id* Name

classified as

classification for

PRODUCT GROUP# Name

Practice: Bundles(2)

Page 200: Entity Presentation

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

+ Drinks+ Coffees

RegularCappuccinoCafé Latte+ Special Coffee

Teas+ Black

ChineseIndianEnglish

+ Infusions+ Herbal

Soft drinksJuices

OrangeGrape

+ Waters + Sodas

+ Dairy Products +Foods

+ Pastry+ Candy Bars+ Local Specialties

+Non FoodsMerchandise

CDs+ Stationary

Other+ Tickets+ Art

+ Products

Practice: Product Structure

Page 201: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Advanced Modeling Topics

Page 202: Entity Presentation

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

Overview

• Patterns• Drawing conventions• Generic modeling

Page 203: Entity Presentation

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

Patterns

• Similar structure• Similar rules and constraints?

Page 204: Entity Presentation

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

Patterns: Master–Detail

• Characteristic: consists ofAn instance of B only exists in the context of an A

• Metaphor: Master – Detail

consists of

part of

B

A

Page 205: Entity Presentation

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

XYZ

Pattern: Basket

• Characteristic: container for various types of items

• Items may be of different types• Metaphor: Shopping Basket

consists of

part of

B

A

X

Y

Z

A

B

Page 206: Entity Presentation

6-8 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

Page 207: Entity Presentation

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

Patterns: Chain

• Characteristic: preceded by / followed by• Sequence is important• Metaphor: Elephants

BEAD# Id

followed by

preceded by

CHAIN

BEAD# Seqno

A

B

Page 208: Entity Presentation

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

Patterns: Network

• Characteristic: pairsEvery A can be connected to every A (sometimes: to every other A)

• Metaphor: Web Document with Hyperlinks

A

A

A

Page 209: Entity Presentation

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

Page 210: Entity Presentation

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

Bill of Material

COMPOSITION* Quantity Needed

product of

Code914.53914.54914.55914.56

NameAAAAAAAAAAABBBBBBBBBCCCCCCCDDDDD

Prod_code854.01854.01 854.01914.54914.54934.76

Part_code604.18604.19914.54 914.55914.56915.12

Quantity112113

PRODUCTS COMPOSITIONS

PRODUCT# Code

part in

in

with

Page 211: Entity Presentation

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

914.54

854.01

604.18

604.19

914.55

914.56

914.54

Bill of Material - Example

Page 212: Entity Presentation

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

Symmetric Relationship

consists of 2

Group_id112233

SS1S2S3S4S5S6

GROUP# Id

inS

Page 213: Entity Presentation

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

Patterns: Roles

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

(not necessarily concurrent...)

A P

Q

Page 214: Entity Presentation

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

Roles

PARTY

DEPARTMENT

PERSON COUNTRY

appointed by

appointing

roles

PRESIDENT

PARTY LEADER

MINISTER

PERSON

ROLE

ROLE TYPE

Page 215: Entity Presentation

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

Fan Trap

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

A

C

B

C

B

ABBCAC

A

Page 216: Entity Presentation

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

Fan Trap Resolved

CB

AB

A CBA

BC

CBA

ABC ABC ABC

AB functions as list of values

BC functions as list of values

Page 217: Entity Presentation

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

Patterns: Data Warehouse

• Characteristic: multidimensional, many, many detail instances

• Metaphor: star modelStars may be strangely shaped:

• Snowflake model

F

X D

B

A

C

E

July

Page 218: Entity Presentation

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

high volumes

high volumes

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

Drawing Conventions

Page 219: Entity Presentation

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

Use Conventions Sensibly

But:Readability first

Page 220: Entity Presentation

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

Model Readability

• Takes space• Subject to taste

A

F

C

E

B

D

A

E

FD

C

B

Page 221: Entity Presentation

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

Generic Modeling

FILM* AsaTRIPOD

* HeightLENS* Focal

Distance

CAMERABODY* Weight

ARTICLEo Weighto Focal Distanceo Heighto Asa Number o ...

MANUFACTURER* Name

MANUFACTURER* Name

ARTICLETYPE

Page 222: Entity Presentation

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

Generic Modeling

ARTICLEo Property1 o Property2 o Property3 o Property4 o Property5 o Property6 o Property7 o Property8

MANUFACTURERName

ARTICLE TYPEDefinition Prop1

o Definition Prop2 o Definition Prop3 o Definition Prop4 ...

*

*

Page 223: Entity Presentation

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

Generic Model

ARTICLE PROPERTY VALUEo Value

ARTICLE PROPERTY

ARTICLE TYPE

Page 224: Entity Presentation

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

Generic

THING

having some kind of relationship with

having some kind of relationship with

Page 225: Entity Presentation

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

More Generic

THINGASSOCIATION

Page 226: Entity Presentation

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

More Generic Plus

THINGTYPE ASSOCIATION

TYPE

THINGASSOCIATION

Page 227: Entity Presentation

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

THING TYPE ASSOCIATIONTYPE

THING PROPERTY VALUE

Most Generic?

THINGASSOCIATION

PROPERTY

Page 228: Entity Presentation

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

‘generic’

ARTICLE PROPERTY VALUE

ARTICLE PROPERTY

ARTICLE TYPE

ORDER ITEM

ORDER HEADER

CUSTOMER

‘down to earth’

Best of Two Worlds

Page 229: Entity Presentation

6-32 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

Page 230: Entity Presentation

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

Practices

• Patterns• Data Warehouse• Argos and Erats• Synonym

Page 231: Entity Presentation

6-34 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

Page 232: Entity Presentation

6-35 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?

Page 233: Entity Presentation

6-36 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?

Page 234: Entity Presentation

6-37 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?

Page 235: Entity Presentation

6-38 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."

Page 236: Entity Presentation

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

Practice: Synonym

practice - exercise

order - command

entity - being

order - sequence

order - arrangement

command - demand

Page 237: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Mapping the Entity Model

Page 238: Entity Presentation

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

Overview

• Why use design modeling?• Introduction to the components:

– Tables– Columns– Constraints

• Basic Mapping• Complex mapping

Page 239: Entity Presentation

7-3 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

Page 240: Entity Presentation

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

Presenting Tables

Table: EMPLOYEES

rows

foreign keycolumn

Id Name Address Birth_date Dpt_id

126 PAGE 12, OXFORD ST 03-03-66 10

349 PAPINI 53, HAYES AVE 10-08-77 20

785 GARRET 08-12-55 10

primary keycolumn

unique keycolumn

columns

EMPLOYEES (EPE)

pkuk1

uk1fk

IdNameAddressBirth_dateDpt_id

**

**

o

Table diagram: EMPLOYEES

foreignkey

Page 241: Entity Presentation

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

Transformation Process

Relational Model

Conceptual Model

Page 242: Entity Presentation

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

Terminology Mapping

Physical DesignER Model

ANALYSIS DESIGN

Entity

Attribute

Primary UID

Secondary UID

Business Constraints

Relationship

Table

Column

Primary Key

Unique Key

Foreign Key

Check Constraints

Page 243: Entity Presentation

7-8 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

Page 244: Entity Presentation

7-11 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

Page 245: Entity Presentation

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

Basic Mapping for Entities

Table Name: EMPLOYEES

Short Name: EPE

1 - Entities

EMPLOYEE EMPLOYEES (EPE)

Page 246: Entity Presentation

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

Basic Mapping for Attributes

Table Name: EMPLOYEES

Short Name: EPE

1 - Entities

2 - Attributes

EMPLOYEE# Id

Nameo Address

Birth Date

EMPLOYEES (EPE)

IdNameAddressBirth_date

**

*o

*

*

Page 247: Entity Presentation

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

Basic Mapping

Table Name: EMPLOYEES

Short Name: EPE

1 - Entities

2 - Attributes

3 - Unique identifiers

EMPLOYEES (EPE)

pkuk1

uk1

for Unique Identifiers

EMPLOYEE# Id

Nameo Address

Birth Date

*

*

IdNameAddressBirth_date

**

*o

PrimaryUID

SecondaryUID

Page 248: Entity Presentation

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

Rules for Relationships

DEPARTMENT# Id* Name

EMPLOYEES (EPE)

IdName

Dpt_idEpe_id

**

*

pk

fk1fk2

DEPARTMENTS (DPT)

pkuk

**

IdNamefk1 = epe_dpt_fk

fk2 = epe_epe_fk

EMPLOYEE# Id

Nameo Address

Birth Date

*

*

o

Page 249: Entity Presentation

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

Mapping 1:m Relationships

XS

fk o Y_id

XS

fk * Y_id

Page 250: Entity Presentation

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

Mapping Barred and Nontransferable Relationships

XS (X)

X# Id* C1

Y

# Id* C2

fk = y_x_fkpk * Id * C1

YS (Y)

pk pk, fk

* Id * X_id* C2

Page 251: Entity Presentation

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

Mapping Cascade Barred Relationships

A# Id* C1

B# Id* C2

C# Id* C3

D# Id* C4

AS (A)

pk * Id* C1

BS (B)

pk * Id* C2

fk,pk * A_id

CS (C)

pk * Id* C3

fk,pk * B_idfk,pk * B_a_id

DS (D)

pk * Id* C4

fk * C_idfk * C_b_idfk *

fk = b_a_fkfk = c_b_fk

fk = d_c_fk

C_a_id

Page 252: Entity Presentation

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

Mapping m:m Relationships

fk1 = xy_x_fk

XS YS

X_YS

pk,fk1 * X_idpk,fk2 * Y_id

pk * Id* C1

pk * Id* C2

fk2 = xy_y_fk

X# Id* C1

Y# Id* C2

Page 253: Entity Presentation

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

Mapping 1:1 Relationships

X# Id* C1

Y# Id* C2

YS (Y)XS (X)

pk * Id* C2

fk,uk * X_id

pk * Id* C1

fk = y_x_fk

Choose which side for FK for other cardinalities

Page 254: Entity Presentation

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

Mapping Arcs

LIST ITEM

USER# Id* Name

LIST_ITEMS (LIM)

pk,fk1 * X_id fk2 o Usr_idfk3 o Als_id ALIASES (ALS)

pk * Id fk3 = lim_als_fk

ALIAS# Id

USERS (USR)

pk * Id* Name

fk2 = lim_usr_fk

fk1 = lim_x_fk

Explicit implementation

+ check constraint

Page 255: Entity Presentation

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

# IdK

Mapping Subtypes

• Supertype

• Subtype

• Both Supertype and Subtype (“Arc”)

Variety of implementation choices

# IdA

B# Id

P# Id* Xxx

Qo Yyy

R* Zzz

# IdL

Page 256: Entity Presentation

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

Supertype Implementation

PS (P)

• Mandatory discriminator column

• Additional constraints

pk

fk1fk2

IdXxxYyyZzzA_idB_idP_type

oo

o

**

*

*

# IdK

# IdA

B# Id

P# Id* Xxx

Qo Yyy

R* Zzz

# IdL

Page 257: Entity Presentation

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

pk * Id * Xxx * Zzz

fk1 * A_idfk2 * B_id

Subtype Implementation

QS (Q)

pk * Id* Xxxo Yyy

fk * A_id

RS (R)

q_a_fk

fk1=r_a_fk

fk2=r_b_fk

# IdK

# IdA

B# Id

P# Id* Xxx

Qo Yyy

R* Zzz

# IdL

Page 258: Entity Presentation

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

pk * Id* Zzz

fk * B_id

pk

Supertype and Subtype (Arc) Implementation

QS (Q) RS (R)

fk3 =p_a_fk

fk1 =p_q_fk

PS (P)

IdXxxQ_idR_id A_id

fk2 =p_r_fk

r_b_fkIdYyy

*o

pk

fk1,uk1fk2,uk2fk3

*

* *o o

# IdK

# IdA

B# Id

P# Id* Xxx

Qo Yyy

R* Zzz

# IdL

Page 259: Entity Presentation

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

1 table

2 tables

3 tables

P

Q

R

Storage Implication

Page 260: Entity Presentation

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

Storage Implication Supertype Implementation

rows Q

rows R

colsP

colsQ

colsR P

Q

R

discriminator column

Page 261: Entity Presentation

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

rows Q

rows R

colsP

colsQ

colsR

colsP

Storage ImplicationSubtype Implementation

Page 262: Entity Presentation

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

rows Q

rows R

colsP

colsQ

colsRrows Q

rows R

fk fk

Storage ImplicationSupertype and Subtype (Arc)

Implementation

Page 263: Entity Presentation

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

Summary

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

Page 264: Entity Presentation

7-38 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

Page 265: Entity Presentation

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

Practice: Mapping basic Entities, Attributes and Relationships

EMPLOYEE# Id* First Name* Last Name * Date of Birth o Home Phone

responsible for

assigned to

EMPLOYEES ( ) DEPARTMENTS ( )

DEPARTMENT# Id* Name* Location

Page 266: Entity Presentation

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

Practice: Mapping Supertype

DEPARTMENT# Id* Name* Head Count

HQ* Address

OTHER DEPARTMENT

reportingto

reporting to

report of

report of

COUNTRY ORGANIZATION# Tax Id Number

DEPARTMENTS ( )

Page 267: Entity Presentation

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

for

with

COUNTRY# Code

PRODUCT

PRICE LIST# Start Date* End Date

GLOBAL PRICE* Amount

with

LOCAL# Name

of

with

GLOBAL # Codeo Size

in

Partial ER model Moonlight

in

with

with

SHOP# No* Name* Address* City

of

inwith

PRODUCT GROUP# Name

Page 268: Entity Presentation

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

Practice: Quality Check Subtype Implementation

GLOBAL_PRODUCTS (GPT)

pk CodeSizePgp_name

LOCAL_PRODUCTS (LPT)

pkfkfk

NameShop_noPgp_name

lpt_shop_fk

*#

*o*

*

Page 269: Entity Presentation

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

Practice: Quality Check Arc Implementation

fk1=pdt_pgp_name

fk2=pdt_gpt_code

fk3=pdt_lpt_name

GLOBAL_PRODUCTS (GPT)

pk CodeSize

LOCAL_PRODUCTS (LPT)

pkpk, fk1fk1

NameShp_noPgp_name

fk1=shp_lpt_fk

o*

*

o*

pkfk1fk2fk3

CodePgp_nameGpt_codeLpt_name

PRODUCTS (PDT)

***

*

fk2=pgp_lpt_fk

gpt_pgp_fk

Page 270: Entity Presentation

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

Practice: Mapping Primary Keys and Columns

GLOBAL_PRICES ( )

Page 271: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Denormalized Data

Page 272: Entity Presentation

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

Overview

• Denormalization • Benefits• Types of denormalization

Page 273: Entity Presentation

8-3 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

Page 274: Entity Presentation

8-4 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

Page 275: Entity Presentation

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

Storing Derivable Values

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

Before

After

Bpk,fk pk

* * *

A_id Sequence_No Quantity

A

pk * *

IdX

A

pk * **

Id XTotal_quantity

Page 276: Entity Presentation

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

EMail Example of Storing Derivable Values

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

REC_MESSAGES (RME)pk,fk pk,fk

* *

Usr_Id Mse_Id

MESSAGES (MSE)

pk * **

Id Subject Text

MESSAGES (MSE)

pk * ***

Id Subject TextNumber_of_times_received

USERS (USR)

pk * *

Id Per_name

Before

After

Page 277: Entity Presentation

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

Pre-Joining Tables

Apk *

*Id Col_a

B

pk fk

* *

Id A_id

B

pk fk

* **

Id A_idA_col_a

Before

After

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

Page 278: Entity Presentation

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

EMail Example of Pre-Joining Tables

Create a table with all the frequently queried columns.

RECEIVED_MESSAGES (RME)

pk,fk pk,fk

** **

Mse_id Flr_id Date_received Fdr_Name

FOLDERS (FDR)

pk * *

Id Name

RECEIVED_MESSAGES (RME)

pk,fk pk,fk

* **

Mse_id Flr_id Date_received

Before

After

Page 279: Entity Presentation

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

Hard-Coded Values

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

A

pk **

IdType

B

pk fk

* *

Id A_id

pk **

Id A_Type

B

Before

After

Page 280: Entity Presentation

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

Email Example of Hard-Coded Values

Hard code the allowable values and validation in theapplication.

BUSINESS_TYPES (BTE)pk * Id

Name

USERS (USR)

pk fk

* **

Id Bte_id Per_name

USERS (USR)

pk * **

IdBusiness_typePer_name

Before

After

Page 281: Entity Presentation

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

Keeping Details with Master

Add the repeating detail columns to the master table.

A

pk * Id

B

pk,fk pk

* **

A_id Type Amount

A

pk *******

Id Amount_1Amount_2Amount_3 Amount_4 Amount_5 Amount_6

Before

After

Page 282: Entity Presentation

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

EMail Example Keeping Detail with Master

Add the repeating detail columns to the master table.

USERS (USR)

pk * *

Id Name

STORAGE_QUOTAS (SQA)

pk,fk pk

* ***

Usr_Id Storage_type AllocatedAvailable

USERS (USR)pk *

*****

Id NameMessage_Quota_Allocated Message_Quota_Available File_Quota_Allocated File_Quota_Available

Before

After

Page 283: Entity Presentation

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

Repeating Current Detail with Master

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

A

pk * Id

B

pk,fkpk

*

*

*

A_IdStart_datePrice

A

pk

* *

IdCurrent_price

Before

After

Page 284: Entity Presentation

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

EMail Example of Repeating Single Detail with Master

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

MESSAGES (MSE)

pk * * *

Id Subject Text

ATTACHMENTS (ATT)

pk pk,fk

* * *

Id Mse_id Name

MESSAGES (MSE)

pk * * * *

Id First_attachment_nameSubject Text

Before

After

Page 285: Entity Presentation

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

Short-Circuit Keys

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

B

pk fk

* *

Id A_id

A

pk * Idpk fk

* *

Id B_id

C

A

pk * Id pk fkfk

* **

Id B_idA_id

CB

pk fk

* *

Id A_id

Before

After

Page 286: Entity Presentation

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

EMail Example of Short-Circuit Keys

Create a new foreign key from the lowest detail to the highestmaster.

FOLDERS (FDR)

pk fk

* *

Name Usr_id

RECEIVED_MESSAGES (RME)

pk fk

* *

Id Fdr_name

USERS (USR)

pk **

IdName

FOLDERS (FDR)

pk fk

* *

Name Usr_id

RECEIVED_MESSAGES (RME)pk fk fk

***

Id Fdr_name Usr_name

USERS (USR)

pkuk

**

IdName

Before

After

Page 287: Entity Presentation

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

End Date Column

Add an end date column to speed up queries so that they can use a between operator.

B

pk,fk pk

* * o

A_Id Start_date End_date

B

pk,fk pk

* *

A_id Start_date

A

pk * Id

Before

After

Page 288: Entity Presentation

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

Example of End Date Column

Create an extra column derivable End_date column.

PRODUCTS (PDT)

pk * *

Id Name

PRICES (PCE)

pk,fk pk

* **

Pdt_id Start_date Price

PRICES (PCE)

pk,fk pk

* **o

Pdt_id Start_date Price End_date

Before

After

Page 289: Entity Presentation

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

Current Indicator Column

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

B

pk,fk pk

* *o

A_Id Start_dateCurrent_indicator

B

pk,fk pk

* *

A_id Start_date

A

pk * Id

Before

After

Page 290: Entity Presentation

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

Example of Current Indicator Column

PRODUCT (PDT)

pk * *

Id Name

PRICES (PCE)

pk,fk pk

* **

Pdt_id Start_datePrice

PRICES (PCE)

pk,fk pk

* **o

Pdt_idStart_date PriceCurrent_indicator

Add a column to represent the most current record, in a longlist of records.

Before

After

Page 291: Entity Presentation

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

Hierarchy Level Indicator

A

pk fk

* *

Id A_id

A

pk fk

* **

Id A_idLevel_no

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

Before

After

Page 292: Entity Presentation

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

Example of Hierarchy Level Indicator

FOLDERS (FDR)

pk fk

* **

Id Fdr_id Name

FOLDERS (FDR)

pk fk

* ***

Id Fdr_id NameLevel_no

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

Before

After

Page 293: Entity Presentation

8-23 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

Page 294: Entity Presentation

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

Practices

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

Page 295: Entity Presentation

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

Practice: Name that Denormalization (1/3)

WEEKDAYS (WDY)

pk * *

Code Name

SHIFTS (SFT)pk fk

* ****

No Wdy_code Start_time End_time Wdy_name

Page 296: Entity Presentation

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

Practice: Name that Denormalization (2/3)

PRODUCTS (PDT)

pk fk

* *

Code Pgp_Name

Name Pdt_code Pgp_name

PROD_GRPS (PGP)

pk * Name

PROD_NAMES (PNE)

pk fk fk

* **

Page 297: Entity Presentation

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

Practice: Name that Denormalization (3/3)

pk,fk pk

* *o*

Cty_code Start_date End_date Current_price_ind

COUNTRIES (CTY)

pk * *

Code Name

PRICE_LISTS (PLT)

Page 298: Entity Presentation

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

Practice: Triggers (1/6)

ORDER_HEADERS (OHR)

pk *

*

Id

Order_total

ORDER_ITEMS (OIM)pk pk

* *

*

Ohr_id Seqno

Item_total

Page 299: Entity Presentation

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

Table Trg Type Column Needed? What should it do?

OHR Insert

Delete

Update Id

Order_total

OIM Insert

Delete

Update Ohr_id

Item_total

Practice: Triggers (2/6)

Page 300: Entity Presentation

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

Practice: Triggers (3/6)

LOCATIONS (LCN)

pk *

*

Id

Address

EMPLOYEES (EPE)pkfk

* **

*

Id Lcn_idName

Lcn_address

Page 301: Entity Presentation

8-31 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

Page 302: Entity Presentation

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

Practice: Triggers (5/6)

PRODUCTS (PDT)

pk **

IdName

PRICES (PCE)pkpk

* *o

*

Pdt_idStart_dateEnd_date

Curr_price_ind

Page 303: Entity Presentation

8-33 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

Page 304: Entity Presentation

8-34 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.

GLOBAL_PRICES (GPE)

pk,fk pk,fk

*

**

Plt_start_date Plt_cty_code Amount

PRICE_LISTS (PLT)

pk pk,fk

* *

Start_date Cty_code

Page 305: Entity Presentation

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

Practice: Global Naming

Track a corporate name for each product.

PRODUCT_NAMES (PNE)

pk,fk pk,fk

*

**

Pdt_code Lge_code Name

LANGUAGES (LGE)

pk **

CodeName

PRODUCTS (PDT)

pk * o

Code Size

Page 306: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Database Design Considerations

Page 307: Entity Presentation

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

Overview

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

Page 308: Entity Presentation

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

Why Adapt Data Design?

• User Expectations

• Oracle specifics

• Volumes

• Hardware

• Network

• O.S.

Adapted

Physical

DesignInitial design

Page 309: Entity Presentation

9-4 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

Page 310: Entity Presentation

9-6 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

Page 311: Entity Presentation

9-7 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

Page 312: Entity Presentation

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

Primary Keys

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

Page 313: Entity Presentation

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

Artificial Keys

DS (D)

pkpkpk

fk1 = d_a_fk fk2 = d_b_fk fk3 = d_c_fk

fk = x_d_fk

uuu

pk * Id

,fk1,fk2,fk3

****

A_idB_idC_idC4

pk * Id* C2

BS (B)

XS (X)

pkfk1fk1fk1

****o

IdD_a_idD_b_idD_c_idC5

fk * D_id

pk * Id* C3

CS (C)

pk * Id* C1

AS (A)

Page 314: Entity Presentation

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

Sequences

CREATE SEQUENCE sequence_nameINCREMENT BY numberSTART WITH numberMINVALUE numberMAXVALUE numberCACHE number | NOCACHECYCLE | NOCYCLE;

223

224225

Page 315: Entity Presentation

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

Restrict

Cascade

Default Nullify

Delete Update

Foreign Key Behavior

Supported by Oracle through declaration

Page 316: Entity Presentation

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

Indexes

• Performance

ALBERT 2655

ALFRED 3544

ALICE 7593

ALLISON 3456

ALVIN 8642

ALPHONSO 2841

Name Phone

• Uniqueness

b

c

d

ef

gh

ij

kl

m

no

pq

rs

tu

vw

xyz

Page 317: Entity Presentation

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

Choosing Indexes

aba .1.2.5abb .1.3.5abc .1.1.5bba .1.4.5. . .

B*tree

aba .1.2.5abb .1.4.5bba .1.3.5cba .1.1.5...

Reverse

YXZXZ

abcabaabbbbabbc

C1 C2

Bitmap

Y10000

X01010

Z00101

XZYZX

abaabbabcbbabbc

I.O.TableC1 C2

Page 318: Entity Presentation

9-19 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

!

Page 319: Entity Presentation

9-21 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

Page 320: Entity Presentation

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

CUSTOMERS

RegionCol1 Col2 Col3

CUSTOMERS_R1

RegionCol1 Col2 Col3

CUSTOMERS_R2

RegionCol1 Col2 Col3

Partitioning Tables and Indexes

Page 321: Entity Presentation

9-23 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

Page 322: Entity Presentation

9-24 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

Page 323: Entity Presentation

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

Old Fashioned Design

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

Page 324: Entity Presentation

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

Generic Arc Implementation

A# Id* Name

AS (A)

Y# Id* Name

**

. . . Table_nameFk_id

(X or Y)

X# Id* Name

Page 325: Entity Presentation

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

Distributed Database

Different physical databases appear as one logical database.

Page 326: Entity Presentation

9-28 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

Page 327: Entity Presentation

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

Database Structure

DATA BLOCK

SEGMENT

DATABASE

DATA FILE

INDEXSEGMENT

TABLESPACE

TABLE OR INDEX PARTITION

EXTENT FREE

TABLESEGMENT

part of

located in

part of

residence of

part ofconsists

of

resides in

consists of

containerof

consistsof

part of part ofsliced in sliced in

USED

OTHERSEGMENT

consists of

part of

resides inresidence

of

Page 328: Entity Presentation

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

Summary

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

Page 329: Entity Presentation

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

Practices

• Data Types• Artificial Keys• Product Pictures

Page 330: Entity Presentation

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

LOCAL PRICE# Start Dateo End Date* Amount

in

inwith

for

with

in

COUNTRY# Code

PRODUCT

SHOP# No* Name* Address* City

PRICELIST# Start Date* End Date

GLOBAL PRICE* Amount

with

PRODUCT GROUP# Name

LOCAL# Name

of

with

GLOBAL # Codeo Size

of

PRODUCT NAME* Name

with

LANGUAGE# Code

ofin

with

of

with

of

with

CURRENCY# Code

from to

inin

of

EXCHANGERATE# Month* Rate

withMoonlight Pricing

Page 331: Entity Presentation

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

Data Types (1)

Table

COUNTRIESCURRENCIES

EXCHANGE_RATES

PRICE_LISTS

PRODUCT_GROUPSPRODUCTS

Column

CodeCodeMonthRateStart_dateEnd_dateNameCodeSizePdt_type

SuggestedData Type

Varchar2(2)Varchar2(3)DateNumber(8,4)DateDateChar(8)Char(10)Number(4,2)Number(1)

Your ChoiceData Type

Page 332: Entity Presentation

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

Data Types (2)

Table

GLOBAL_PRICESLOCAL_PRICES

SHOPS

Column

AmountStart_dateEnd_dateAmountNameAddressCity

Your Choice Data Type

Page 333: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Solutions

Page 334: Entity Presentation

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

Solution: 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

Concept E/A/I? Example Instance or Entity

Page 335: Entity Presentation

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

Solution: Guest

Address

Arrival Date

Family Name

Room Number

Floor Number

Number of Beds

Number of Parking Lots

Price

TV set available?

GUEST

HOTEL

ROOM

Page 336: Entity Presentation

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

Solution: Reading

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

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

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

EMPLOYEE DEPARTMENTassigned to

responsible for

A

B

C

Page 337: Entity Presentation

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

Practice: Read and Comment

TOWN

birthplace of

born in

living in

home town of

mayor of

governed by (as mayor)

PERSON

visitor of

visited by

Page 338: Entity Presentation

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

Solution: Hotel

HOTEL* Address

STAY* Arrival Date

ROOM* Room Number

PERSON* Name

endured by

enduring

taking place in

location for

located in

location forknown

by

aware of

owned by

owner of

favored by

in favor of

Page 339: Entity Presentation

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

Açorda alentejanabread soup from Portugal

Ralph’s Raving Recipes

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

preparation

vegetarian15 mineasy

1 onion4 cloves of garlic1 red pepper1 liter of vegetable broth4 tablespoons of olive oil4 fresh eggs1 handful of parsley or coriandersalt, pepper9-12 slices of (old) bread

for 4 persons:

Soups

Page 340: Entity Presentation

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

Açorda alentejanabread soup from Portugal

Ralph’s Raving Recipes

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

preparation

vegetarian15 mineasy

1 onion4 cloves of garlic1 red pepper1 liter of vegetable broth4 tablespoons of olive oil4 fresh eggs1 handful of parsley or coriandersalt, pepper9-12 slices of (old) bread

for 4 persons:

Soups

Page 341: Entity Presentation

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

Solution: Recipe

RECIPE-Name-Description-Vegetarian?-Number of People-Preparation Time-Preparation Ease-Preparation Text

INGREDIENT-Name-Quantity-Unit-Type

RECIPE GROUP-Name

prepared with

classifiedin

classification for

a RECIPE must be classified inexactly one RECIPE GROUP

A RECIPE GROUP may be classification for one or more RECIPES

a RECIPE must be prepared withone or more INGREDIENTS

An INGREDIENT may be used inexactly one RECIPE

used in

BOOK-Title

containingpublished in

Page 342: Entity Presentation

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

Solution: Books

MANUSCRIPT

TRANSLATION

TITLE

EDITION

PRINTING

VERSION

COPY

LANGUAGE

Page 343: Entity Presentation

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

Solution: Books

MANUSCRIPT

TRANSLATION

TITLE

EDITION

PRINTING

VERSION

COPY

LANGUAGE

Page 344: Entity Presentation

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

Solution: Moonlight

COUNTRY

COUNTRY COMMUNITY

CURRENCY

DEPARTMENT

DRINK

EMPLOYEE

EXCHANGE RATE

FOOD

JOB

LOCATION TYPE

PASTRY

PRODUCT

PRODUCT GROUP

PRICE

SALE

SHOP

STOCK OPTION

STOCK PRICE

TICKER SYMBOL

Page 345: Entity Presentation

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

Solution: Shops

COUNTRY* Code* Name

SHOP* Number* Name* Location* Cityo Telephone* Open Date

LOCATION TYPE* Description

in

located in

of

of

COUNTRY* Code* Name

SHOP* Number* Nameo Telephone* Open Date

LOCATION * Name

inlocated in

of

of

LOCATION TYPE* Description

located in

of

or

Page 346: Entity Presentation

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

Solution: Subtypes

DISABLED PERSON

DEAF AND BLIND

DEAF, NOT BLIND

CARSTATION WAGON

SEDAN

BUILDING HOUSE

HOTELROOM

ROOM WITH BATH

OTHER ROOM

DOMESTICANIMAL

MAMMAL

DOG

BLIND, NOT DEAF

OTHERCAR

OTHER DISABLEDOTHER

beyond repair

Page 347: Entity Presentation

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

Solution: Schedule (1/2)

SCHEDULE* Start Date* End Date

with

EMPLOYEE* Family Name* First Name* Short Name

prepared by

maker of

withinSCHEDULEENTRY* Weekday* Shift Number

for

with

SHOP* Name* Location* City

with

for

Page 348: Entity Presentation

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

Solution: Schedule (2/2)

SCHEDULEENTRY* Monday Shift* Tuesday Shift* Wednesday Shift* Thursday shift* Friday Shift* Saturday Shift* Sunday Shift

with

within

for

with

Page 349: Entity Presentation

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

Solution: Address

COUNTRY

PERSONAddress text line1Address text line2Address text line3Address text line4

COUNTRY

PERSONStreet or “PO Box” IndicatorStreetHouse NumberCityPost CodeProvince or State

ADDRESSTYPE

1

2

Page 350: Entity Presentation

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

Solution: Read the Relationship

of

with

bilought in

glazoed with

bazooned in

bazooned by

ALU BRY

KLO HAR

PUR YOK

Every ALU must be of exactly one BRY

Every BRY may be with one or more ALUS

Every PUR may be bazooned in one or more YOKS

Every YOK may be bazooned by one or more PURS

Every KLO must be bilought in one or more HARS

Every HAR may be glazoed with exactly one KLO

Page 351: Entity Presentation

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

Solution: Find a Context

PERSON

FEMALEMALE

mother of

child of

PERSON COUNTRY

born in

birthplace of

most popular movie star in

with most popular movie star

COUNTRY PERSON

TOWNlocated in

PERSON

FEMALEMALE

mother of

son of

born in

birthplace of

location of

Page 352: Entity Presentation

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

Solution: Name the Intersection Entity

PRODUCT DEPARTMENT STORE

SALE* Date

atof

in with

PERSON SAILBOAT

CREWMEMBERSHIP* Role

atof

inwith INTERPRETER LANGUAGE

FLUENCY* Score

inof

with with

Page 353: Entity Presentation

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

Served by: DennisTill: 3 Dec 8, 4:35 pm-----------------------CAPPUCC M 3.60

* 2 7.20CREAM .75

* 2 1.50APPLE PIE 3.50BLACKB MUF 4.50

<SUB> 16.70tax 12% 2.00<TOTAL> 18.70

======= CASH 20.00RETURN 1.30

-----------------------Hope to serve you again

@MOONLIGHT COFFEES25 Phillis Rd, Atlanta

Solution: Receipt

Page 354: Entity Presentation

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

inwith

part ofwith

COUNTRY* Name

in

PRODUCT* Short Name* Price

SHOP* Nameo VAT%

TILL* Number

PERSON* First Name

SALES HEADER* Date & Time* Amount Cash

SALES ITEM* Quantity

with

atwith

atwith

referring to

in

Page 355: Entity Presentation

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

DEPARTMENT* Name

COUNTRY ORGANIZATION

at payroll of

with

EMPLOYEE* Name* Job

SHOP* Name* City

works for

worksfor

withwith

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 administratorworking for Accounting and is located in Germany …

Page 356: Entity Presentation

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

COUNTRY ORGANIZATION

with

SHOP* Name* City

works for works for

with

with

DEPARTMENT* Name HQ

OTHERDEPARTMENT

reporting to report of

reporting to

report of

withbelongs

to

onpayroll of

… 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 …

EMPLOYEE* Name* Job

Solution: Moonlight P&O (2)

Page 357: Entity Presentation

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

COUNTRY ORGANIZATION

with

to

belongs to

with

EMPLOYEE* Name

to

with

at payroll of

with

SHOP* Name* City

DEPARTMENT* Name HQ

OTHERDEPARTMENT

reporting to

reporting to

Report of

report of

of

with

ASSIGNMENT* Job* Start Date* Part Time %

… 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.

Solution: Moonlight P&O (3)

Page 358: Entity Presentation

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

DEPARTMENT* Name HQ

OTHERDEPARTMENT

reporting to report of

4c

4b

COUNTRY ORGANIZATION

EMPLOYEE

for forwith

with

PAYROLLENTRY* Start Date

COUNTRY ORGANIZATION

COUNTRY* Name

located in

of

in

of

belongs to

with

SHOP* No* Name

4d

4a: -

4e: -

report of

Solution: Moonlight P&O (4)

Page 359: Entity Presentation

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

inwith

inwith

atwith

in of

COUNTRY* Currency

PRODUCT* Short Nameo Size

SHOP* Name* Address* City

PRICE LIST* Start Date* End Date

PRICE* Amount

with

with

PRODUCTGROUP

coffeesteasfoodsnonfoodssupplements

Solution: Price List

Page 360: Entity Presentation

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

Solution: EMail

USER NICK NAME

owned by

owner of

for

referred to

1 within FOLDER

containing

2

COMPOSITION

forwarded with

is forward

of

3

USER

LISTwithin FOLDER

4

owner of

owned by

owned by

owner ofcontaining

Page 361: Entity Presentation

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

USER

LIST

LIST ITEM

owner ofowned by

referring to

is referred tois referredto

referring to

USER

LIST

LIST ITEMo External User

owner ofowned by referring to

is referred to

referring to

ownedby

owner of

ownedby

owner of

is referred to

USER NICK NAMEo For External Userowned by

owner of

for

referred to

5 6

7

Page 362: Entity Presentation

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

Solution: Holiday (1)

COUNTRY

COMPANION

TRANSPORTCOUNTRY

FranceUSAUSA COMPANION

EricEricPaulCOM

PANION

EricEric

Paul

TRANSPORT

Boots

CarBoo

ts

COUNTRYFranceUSAUSA

TRANSPORTBootsBootsCar

“Paul and I hiked in the USA. Eric and I hiked in France and we rented a car in the USA last year”.

Page 363: Entity Presentation

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

COUNTRYFranceFranceUSAUSAUSA

COMPANIONEricEricEricEricPaul

TRANSPORTBootsCarBootsCarBoots

Solution: Holiday (2)

Page 364: Entity Presentation

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

TRANSPORTBootsCarBoots

COUNTRYFranceUSAUSA

COMPANIONEricEricPaul

COUNTRY COMPANION TRANSPORT

COUNTRYFranceUSA

COMPANIONEricPaul

TRANSPORTBootsCar

HOLIDAY

Solution: Holiday (3)

Page 365: Entity Presentation

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

Practice: Normalize an ER Model: Solution

forENROLLMENT

DEPARTMENT#* department code

department name

STUDENT#* student id

last namefirst name

for

assigned

COURSE#* course number

course name

GRADE#* grade code

grade description

TEACHER#* teacher number

teacher name

assigned to

the receiver

of the

receiver of

the offerer of

offered by

taught by

completed with

Page 366: Entity Presentation

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

Solution: Identification 1

A# Xx

B* Yy

C# Zz

A B# IdC

# Code

A* Xx

B# Yy

C# Zz

D# Id

with

of

1

2

3

Page 367: Entity Presentation

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

Q# Id

P

4

P # Name

5

MARRIAGE# Start Date

PERSONMALE# Seqno

FEMALE# Name# Birth Date

partner in partner in

with husband with wife

son of

mother of

6

Solution: Identification 2

Page 368: Entity Presentation

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

DEPARTMENT# Name

HQ

OTHERDEPARTMENT COUNTRY

ORGANIZATION

COUNTRY# Code

JOB# Title

ASSIGNMENT# Start Date

with

to

locatedin

with

in

of

assigned to

with

reporting to

reporting to

as

in

report of

report of

EMPLOYEE# Id

to

with

for

of

for forwith

with

PAYROLLENTRY# Start Date

SHOP# No

Solution: Moonlight UID

Page 369: Entity Presentation

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

KEY# Name

TABLE# Name

FOREIGN KEY# Name

with

USAGE# Seqno

ASSOCIATION# Seqno

PRIMARY

COLUMN# Name* Data Typeo Not Null

owner of

with

withwith

for forin

in

of

in

in

from

to

from

to

referenced in

of

USER

in

with

with

of

UNIQUE

owner of

in

owner of

in

Solution: Table

Page 370: Entity Presentation

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

managed by

EMPLOYEE # Name

manager of

CEOOTHEREMPLOYEE

1

USER# Name

owner of

ownedby

ALIAS# Name

LIST

NICKNAME

2

owned by

with subfolder

FOLDER # Name

within USER # Name

owner of

3

Solution: Constraints

Page 371: Entity Presentation

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

Solution: Shift

on

with

onwith

starting on

of starting

SHIFT# No* Start Time* End Time

WEEKDAY# Code* Name

SHIFT SCHEDULE

CALENDAR DAY# Date* Public Holiday Indicator

on

with

SHOP* Name

with

SHIFT SCHEDULE* Start Date

oron

Page 372: Entity Presentation

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

LOCAL PRICE# Start Dateo End Date* Amount

in

inwith

for

with

in

COUNTRY# Code

SHOP# No* Name* Address* City

PRICE LIST# Start Date* End Date

GLOBAL PRICE* Amount

with

PRODUCT GROUP# Name

LOCAL# Name

of

with of

PRODUCT NAME* Name

with

LANGUAGE# Code

ofin

with

of

with

of

with

PRODUCT

GLOBAL # Codeo Size

Solution: Moonlight Pricing

Page 373: Entity Presentation

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

PRODUCT GROUP

PRODUCTBUNDLE

BUNDLE ITEM* Quantity Needed

PRODUCTOTHER PRODUCTBUNDLE

PRODUCT GROUP

BUNDLE ITEM * Quantity Needed

PRODUCT GROUP

PRODUCT

ASSEMBLY ITEM * Quantity Needed

with inof referring

towith in

of referring to

1

3

2

Page 374: Entity Presentation

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

PRODUCT # Codeo And/Or Indicator

PRODUCT GROUP# Name

ASSEMBLY ITEM * Quantity Needed

Consider this as:AS1 = (C or T)DP = (AS1 and BM)

And_or

ORAND

CodeCTAS1 DP

PRODUCTS

Prod_codeAS1 AS1 DP DP

Using_codeC TAS1BM

Quantity1 1 1 1

ASSEMBLY ITEMS

DecafPunch (DP) = {Coffee (C) or Tea (T)} and {Blackberry Muffin (BM)}

Pg_name..…….…..

Page 375: Entity Presentation

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

1

or generic:

PRODUCTCLASS # Name within

with

LEVEL1

LEVEL2

LEVEL3

LEVEL4

LEVEL5

PRODUCT

2 + coffees+ teas+ foods+ nonfoods+ supplements+ bundles

product

fixed number of levels

Page 376: Entity Presentation

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

• Model of moves in a chess game

• Model of 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

Chain or Network

M/D or Basket

Bill of Material

Roles

M/D or Basket

Chain or Network

Patterns

Page 377: Entity Presentation

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

• Model of moves in a chess game

• Model of 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

Chain or Network

M/D or Basket

Bill of Material

Roles

M/D or Basket

Chain or Network

Patterns

Page 378: Entity Presentation

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

Moonlight Data Warehouse

PRODUCT CLASS

DAY# No

SALES VOLUME* Quantity* Value in Local Currency* Value in $

with inof of

MONTH# No

WEEK# No

QUARTER

YEAR # No

within

with

GEOGRAPHY* Number of Inhabitants* Number of Employees

within

with

ofwith

in

assignedtoin

in

in

withwith

with

with with withof

PRODUCT# Id

Page 379: Entity Presentation

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

Solution: Argos and Erats

ERAT# Name

have

RONDEL* Type

UBIN ITEM

belongs to

have have

of of

have

of

with

with

in in

with with

ARGO# Name

UBIN

unknown optionality

unknowndegree

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

Page 380: Entity Presentation

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

Solution: Synonym

MEANING# Id* Description

shared bywith

WORD# Word

DescriptionAction, actual doing ...Regular arrangement ...Order, command ...A vehicle with two wheels ...

Id12345

MEANINGS

WordPracticeExerciseOrderSequenceArrangementOrderCommandDemandBike

Mng_id112223334

WORDS

synonym

homonym

Page 381: Entity Presentation

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

Solution: Mapping basic Entities, Attributes and Relationships

DEPARTMENTS (DPT)

pk IdNameLocation

epe_dpt_fk*

o*

EMPLOYEES (EPE)pkfk

Id Dpt_idLast NameFirst NameHome Phone

****o

Page 382: Entity Presentation

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

Solution: Mapping Supertype

DEPARTMENTS (DPT)

pk

fk

IdNameDpt_type HeadcountAddressDpt_id_reporting_to

dpt_dpt_fk

o

*

*

o

*

*

Page 383: Entity Presentation

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

Solution: Mapping Supertype

DEPARTMENTS (DPT)

pk

fk

IdNameDpt_type HeadcountAddressDpt_id_reporting_to

dpt_dpt_fk

o

*

*

o

*

*

Page 384: Entity Presentation

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

Solution: Quality Check Subtype Implementation

GLOBAL_PRODUCTS (GPT)

pk

fk

CodeSizePgp_name

LOCAL_PRODUCTS (LPT)

pkpk,fkfk

NameShp_noPgp_name

lpt_shp_fk

**

*o*

*

gpt_pgp_fk

Page 385: Entity Presentation

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

fk1=pdt_pgp_fk

fk2=pdt_gpt_fk

fk3=pdt_lpt_fk

Solution: Quality Check both Supertype and Subtype Implementation

GLOBAL_PRODUCTS (GPT)

pk CodeSize

LOCAL_PRODUCTS (LPT)

pkpk, fk

NameShp_no

lpt_shp_fk**

o*

pkfk1fk2, uk1fk3, uk2fk3, uk2

CodePgp_nameGpt_codeLpt_nameLpt_shp_no

PRODUCTS (PDT)

o**

oo

Page 386: Entity Presentation

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

Solution: Primary Keys and Columns

GLOBAL_PRICES (GPE)

pk, fk1pk, fk1pk, fk2

Plt_cty_codePlt_start_dateGpt_codeAmount

fk1= gpe_plt_fk

*

**

*

fk2= gpe_gpt_fk

Page 387: Entity Presentation

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

Practice: Triggers (1/6)

ORDER_HEADERS (OHR)

pk *

*

Id

Order_total

ORDER_ITEMS (OIM)pk pk

* *

*

Ohr_id Seqno

Item_total

Page 388: Entity Presentation

A-61 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

Page 389: Entity Presentation

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

Practice: Triggers (3/6)

LOCATIONS (LCN)

pk *

*

Id

Address

EMPLOYEES (EPE)pkfk

* **

*

Id Lcn_idName

Lcn_address

Page 390: Entity Presentation

A-63 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 thanextended cascade

EPE Insert Y Set correct Lcn_address

Delete N

Update Lcn_id Y Set correct Lcn_address

Lcn_address Y Prevent update

Page 391: Entity Presentation

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

Practice: Triggers (5/6)

PRODUCTS (PDT)

pk **

IdName

PRICES (PCE)pkpk

* *o

*

Pdt_idStart_dateEnd_date

Curr_price_ind

Page 392: Entity Presentation

A-65 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

Page 393: Entity Presentation

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

Solution: Denormalize Price Lists

GLOBAL_PRICES (GPE)

pk,fk pk,fk

****

Plt_start_date Plt_cty_code Amount Current_indicator

PRICE_LISTS (PLT)

pk pk,fk

* **

Start_date Cty_code End_date

Page 394: Entity Presentation

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

Solution: Denormalize Global Naming

PRODUCT_NAMES (PNE)

pk,fk pk,fk

*

**

Pdt_code Lge_code Name

PRODUCTS (PDT)

pk * o*

CodeSizeCorporate_Name

LANGUAGES (LGE)

pk **

CodeName

Page 395: Entity Presentation

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

Solution: Data Types (1)

Table

COUNTRIESCURRENCIES

EXCHANGE_RATES

PRICE_LISTS

PRODUCT_GROUPSPRODUCTS

Your ChoiceData Type?

Column

CodeCodeMonthRateStart_dateEnd_dateNameCodeSizePdt_type

SuggestedData Type

Varchar2(2)Varchar2(3)DateNumber(8,4)DateDateChar(8)Char(10)Number(4,2)Number(1)

Char(2)Char(3)Number(2)Number(12,4)DateDateVarchar2(15)Varchar2(15)Char(1)Char(3)

Page 396: Entity Presentation

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

Solution: Data Types (2)

Table

GLOBAL_PRICESLOCAL_PRICES

SHOPS

Column

AmountStart_dateEnd_dateAmountNameAddressCity

Your Choice Data Type

Number(15,3)DateDateNumber(15,3)Varchar2(50)Varchar2(50)Varchar2(50)

Page 397: Entity Presentation

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

Solution: Product Pictures

TEXT_DOCUMENTS (TDT)

**

Pdt_code Info_typeInformationo

pk,fkpk

PRODUCTS (PDT)

* Code…….

pk varchar2(3) varchar2(20)CLOB

BINARY_DOCUMENTS (BDT)

**

Pdt_code Info_typeInformationo

pk,fkpk

varchar2(3) varchar2(20)BLOB

Page 398: Entity Presentation

Copyright © Oracle Corporation, 2002. All rights reserved.

Normalization

Page 399: Entity Presentation

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

Overview

• Table Normalization • Normal Forms of Tables

Page 400: Entity Presentation

B-4 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-acceptedgoal for a database design that eliminatesredundancy.

Page 401: Entity Presentation

B-5 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 IMAP052301 Smith 54098 07/12 Promotions I like to. 3786 IMAP052301 Smith 54445 10/06 Next Assignment Your next. 3786 IMAP055607 Jones 54101 05/07 Meeting Today There is.. 6001 IMAP085607 Jones 54512 06/07 Lunch? Can you... 6001 IMAP085607 Jones 54660 12/01 Jogging Today? Can you... 6001 IMAP087773 Walsh 54101 05/07 Meeting Today There is.. 9988 EMEA017773 Walsh 54554 03/17 Stock Quote The latest 9988 EMEA010022 Patel 54101 05/07 Meeting Today There is.. 2201 EMEA090022 Patel 54512 06/07 Lunch? Can we ... 2201 EMEA09

Page 402: Entity Presentation

B-6 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 dependenton another non-key column.

“Each non-primary key value MUST be dependent on the key,the whole key, and nothing but the key.”

Page 403: Entity Presentation

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

Converting to First Normal FormUSER USER _ID _NAME---- -----2301 Smith 2301 Smith2301 Smith5607 Jones5607 Jones5607 Jones7773 Walsh7773 Walsh0022 Patel0022 Patel

MSE REC_ _ID DATE SUBJECT TEXT

----- ----- --------------- ------------54101 05/07 Meeting Today There is.... 54098 07/12 Promotions I like to... 54445 10/06 Next Assignment Your next... 54512 06/07 Lunch? Can you..... 54101 05/07 Meeting Today There is.... 54660 12/01 Jogging Today? Can you..... 54101 05/07 Meeting Today There is.... 54554 03/17 Stock Quote The latest.. 54101 05/07 Meeting Today There is.... 54512 06/07 Lunch? Can we .....

SRVR SERVER_ID _NAME---- ------3786 IMAP053786 IMAP053786 IMAP056001 IMAP086001 IMAP086001 IMAP089988 EMEA019988 EMEA019988 EMEA019988 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.

Page 404: Entity Presentation

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

USERS

First Normal Form - Single RecordUSERS

USER USER _ID _NAME---- -----2301 Smith 5607 Jones7773 Walsh0022 Patel

SRVR SERVER_ID _NAME---- ------3786 IMAP056001 IMAP089988 EMEA019988 EMEA01

USER USER _ID _NAME---- -----2301 Smith

5607 Jones

7773 Walsh

0022 Patel

MSE REC_ _ID DATE SUBJECT TEXT

----- ----- ------------- ----------54101 05/07 Meeting Today There is..

54512 06/07 Lunch? Can you...

54101 05/07 Meeting Today There is..

54101 05/07 Meeting Today There is..

SRVR SERVER_ID _NAME---- ------3786 IMAP05

6001 IMAP08

9988 EMEA01

9988 EMEA01

Page 405: Entity Presentation

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

USER_ID----2301230123015607560756077773777300220022

RECEIVED_MESSAGES (1NF)

USERS (1NF)

MSE REC_ _ID DATE SUBJECT TEXT

----- ----- --------------- ----------54101 05/07 Meeting Today There is..54098 07/12 Promotions I like to. 54445 10/06 Next Assignment Your next.54101 05/07 Meeting Today There is..54512 06/07 Lunch? Can you...54660 12/01 Jogging Today? Can you...54101 05/07 Meeting Today There is..54554 03/17 Stock Quote The latest54101 05/07 Meeting Today There is..54512 06/07 Lunch? Can we ...

USER USER _ID _NAME---- -----2301 Smith 5607 Jones7773 Walsh0022 Patel

SRVR SERVER_ID _NAME

---- ------3786 IMAP056001 IMAP089988 EMEA019988 EMEA01

First Normal Form - Repeating Groups

Page 406: Entity Presentation

B-10 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.

Page 407: Entity Presentation

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

Tables Already in Second Normal Form

USERS

USER USER _ID _NAME---- -----2301 Smith 5607 Jones7773 Walsh0022 Patel

SRVR SERVER_ID _NAME---- ------3786 IMAP056001 IMAP089988 EMEA019988 EMEA01

Is the USERS table already in 2NF?

Page 408: Entity Presentation

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

USER_ID ----2301230123015607560756077773777300220022

MSE REC_ _ID DATE SUBJECT TEXT

----- ----- -------------- ---------54101 05/07 Meeting Today There is.54098 07/12 Promotions I like to 54445 10/06 Next Assignment Your next54101 05/07 Meeting Today There is.54512 06/07 Lunch? Can you..54660 12/01 Jogging Today? Can you..54101 05/07 Meeting Today There is.54554 03/17 Stock Quote The lates54101 05/07 Meeting Today There is.54512 06/07 Lunch? Can we ..

RECEIVED_MESSAGES (2NF)

MESSAGES (2NF)

RECEIVED_MESSAGES

(1NF)

MSE _ID SUBJECT TEXT

----- ------------ ---------54101 Meeting Toda There is.54098 Promotions I like to 54445 Next Assignm Your next54512 Lunch? Can you..54660 Jogging Toda Can you..54554 Stock Quote The lates

Convert to Second Normal Form

USER_ID ----2301230123015607560756077773777300220022

MSE REC_ _ID DATE

----- -----54101 05/07 54098 07/12 54445 10/06 54101 05/0754512 06/0754660 12/0154101 05/0754554 03/1754101 05/0754512 06/07

Page 409: Entity Presentation

B-13 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.

Page 410: Entity Presentation

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

No non-key column can be functionally dependentupon another non-key column.

Are these two tables in third normal form? Why?

Tables Already in Third Normal Form

RECEIVED_MESSAGES(2NF)

USER_ID ----2301230123015607560756077773777300220022

MSE REC_ _ID DATE

----- -----54101 05/07 54098 07/12 54445 10/06 54101 05/0754512 06/0754660 12/0154101 05/0754554 03/1754101 05/0754512 06/07

MESSAGES (2NF)ID SUBJECT TEXT ----- -------------- ---------54101 Meeting Today There is.54098 Promotions I like to 54445 Next Assignment Your next54512 Lunch? Can you..54660 Jogging Today? Can you..54554 Stock Quote The lates

Page 411: Entity Presentation

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

Converting to Third Normal Form

USERS

USERS

MAIL_SERVER

USER USER _ID _NAME---- -----2301 Smith 5607 Jones7773 Walsh0022 Patel

SRVR SERVER_ID _NAME---- ------3786 IMAP056001 IMAP089988 EMEA019988 EMEA01

ID NAME---- -----2301 Smith 5607 Jones7773 Walsh0022 Patel

SRVR _ID----3786600199889988

ID NAME---- ------3786 IMAP056001 IMAP089988 EMEA01

Page 412: Entity Presentation

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

Summary

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

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

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 normalizeddata design.

1NF

2NF

3NF