Top Banner
Mapping the ER Model to Relations(1) 1 Overview Mapping entity types Mapping relationship types One-to-one One-to-many Many-to-many
22

Mapping the ER Model to Relations(1)1 Overview Mapping entity types Mapping relationship types One-to-one One-to-many Many-to-many.

Dec 22, 2015

Download

Documents

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: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 1

Overview

Mapping entity types Mapping relationship types

One-to-one One-to-many Many-to-many

Page 2: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 2

Mapping an EER Schema to Relations

In a sequence of steps, a set of relations is created. Sometimes automated in CASE tools

1. Regular entity types

2. Weak entity types

3. Binary 1:1 relationship types

4. Binary 1:N relationship types

5. Binary M:N relationship types

6. n-ary relationship types

7. Multi-valued attributes

Page 3: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 3

Customer Rents VideoTape

Status

Film

Copies

Performer

StarsIn

ChildrenReserves Store

TapeNum

NumCheckOutsAmountPaid

ReturnDate Length

Title

Address

Street

City

State CustomerIDTotalRes

Name

Location

Role

Name

FilmID

RentalPrice

Distributor

Kind

Date

Director

parent (0,n)

child (0,2)

(0,m) (0,n)

(1,1)

(0,n)(0,n)

(0,n)(0,m)

(0,q)

O

Employee Preferred Customer

Super- vises

Supervisee (1,1)

Manager (0,5)

d

Foreign Film

Educational Film

Music Video

Spoken Language

Subtitle Language Recommended Age

“F” “M” “E”

Kind

Final Example EER Schema

Page 4: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 4

1. Entity Type Maps to a Table

Create a table for each regular entity type. One column in table for each simple attribute Derived attributes may or may not appear (your choice) Table’s primary key is the primary key of the entity type

Optimization: If there are no attributes other than the primary key, and if the entity participates totally in a relationship, then the table can be eliminated.

Page 5: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 5

1. Entity Type Example

Consider the Film entity type

Maps to the following table (relational schema).Film (FilmID, Title, PubDate, RentalPrice,

Distributor, Kind) Note, primary key of table is key of entity type.

Film

TitleFilmID

RentalPrice

Distributor

Kind

Date

Director

Page 6: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 6

1. Entity Type Optimization Example

Assume each book is the basis for a film.

Book table can be eliminated by putting Book information into Film table since Book participates totally and has only key attributes.

Maps to the following table (relational schema).

Film (FilmID, Title, BookTitle, Author, Publisher)

Film

TitleFilmID

Book

BookTitle Author

Based On

Page 7: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 7

2. Weak Entity Type Maps to a Table

Create a table for each weak entity type One column for each simple attribute Include column(s) for the primary key of each owner entity

type. These columns are foreign keys The primary key is the combination of each owner primary

key and the partial key.

Page 8: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 8

2. Weak Entity Type Example

Example:

VideoTape weak entity type (and Copies) maps to

VideoTape (FilmID, TapeNum, Status) Chose not to store derived attribute NumCheckOuts Film entity type maps to different table Copies relationship type is not mapped to a table

VideoTape

Status

Film Copies

TapeNum

NumCheckOuts

FilmID(1,1)(0,n)

Page 9: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 9

Overview

Mapping entity types Mapping relationship types

One-to-one One-to-many Many-to-many

Page 10: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 10

Mapping Relationship Types - General

Each relationship type is mapped to a table Columns are

Attributes of relationship type Key attributes of all the participating entity types

Keys in table are Primary key - combined key of all the “many” sides in

relationship type Foreign keys - Each “borrowed” key is a foreign key

Optimization: Often the table can be eliminated by extending the table for one side of the relationship

Page 11: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 11

3. Mapping 1-1 Relationship Types

For each 1:1 binary relationship type, extend one of the tables for a participating entity type. Primary key of the other entity type becomes a foreign key in

this table

It is best to extend a table of an entity type with total participation

Add columns for each of the simple attributes of the relationship type

Optimization: Perhaps remove the table corresponding to the other entity type

Page 12: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 12

3. 1-1 Relationship Type Example

Each book is the basis for some film

For this ER schema, there would already by a Film table and a Book table from step 1, Extend the Film table to include the key of Book, which is BookTitle, Author.

Film(FilmID, Title, BookTitle, Author) Optimize: remove Book table, add PubDate to Film

Film

TitleFilmID

Book

BookTitle Author

Based On PubDate

Page 13: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 13

4. 1-to-Many Relationship Types

For each regular 1:N binary relationship type, there are several approaches Option 1: Create a separate table for the relationship type

Three tables resultKey of relationship table is key of “many” side

Option 2: If the relationship is total, then extend a table corresponding to the ‘many’ entity typeTwo tables result (optimization)

Option 3: If the relationship is not total, extend a table with nullable attributes (sometimes not allowed for foreign keys)Two tables result (optimization)

Page 14: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 14

4. 1-Many Rel. Type Example, Option 1

Create a table for the relationship type Add columns for each of the simple attributes of the

relationship type Add columns for each of the keys of the participating entity

types The key of the table is the key of the ‘many’ side

Example:

Create a Hires table Store(Location, HoursOpen) Hires(Location, EmployeeID) Employee(EmployeeID, Location)

EmployeeHiresEmployeeID

Store

Location Hours open

Page 15: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 15

4. 1-Many Rel. Type Example, Option 2 & 3

Do not have a table for the relationship type Extend the table’s ‘many’ side with the primary key of the

other participating entity type. This is a foreign key Add columns for each of the simple attributes of the

relationship type

Example:

Extend the Employee table with a Location column.

Employee(EmployeeID, Location)

Store(Location, Hours Open)

EmployeeHiresEmployeeID

Store

Location Hours open

Page 16: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 16

4. Column Renaming

Column names Taken from attributes, usually unchanged Two columns in a table cannot have the same name

Must rename columns to retain uniquenessThe renaming does not affect primary/foreign key status

Example

Must rename EmployeeID columns to disambiguateSupervises(Manager, Supervisee) Employee(EmployeeID)

EmployeeSuper- vises

Supervisee

Manager

EmployeeID

Page 17: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 17

5. Many-to-Many Relationship Types

Create a table for each binary M:N relationship type The table has columns for

A column for each primary key attribute in a participating entity type. These are foreign keys

A column for each of the simple attribute of the relationship type

The primary key of the table is the union of the primary keys of the participating entity types

Page 18: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 18

5. M:N Relationship Types Example

Film (FilmID, Title, RentalPrice) Reserves(FilmID, CustomerID) Customer(CustomerID, Name)

CustomerReservesCustomerID

Film

Title FilmID Name

RentalPrice

Page 19: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 19

5. Reflexive M:N Rel Types Example

Children (Parent, Child, Age) Customer(CustomerID)

CustomerChildren Parent

Child

CustomerIDAge

Page 20: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 20

6. N-ary Relationship Types

Create a table for each n-ary (n > 2) relationship type Columns in the table are the primary keys of the participating

entity types. (These are foreign keys) Also include columns for each simple attribute of the

relationship type

The primary key of the created table is the union of the primary keys of the participating entity types

Optimization: If the relationship type is (1,1) on a side, it may be possible to remove an entity table, placing its attributes in the table associated with the relationship

Page 21: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 21

6. N-ary Relationship Types, Example

Reserves (CustomerID, FilmID, Location) Rents (CustomerID, FilmID, TapeNum, Location,

ReturnDate, AmountPaid, Status)

Customer Rents VideoTape

Film

Copies

Reserves

Store

TapeNum

AmountPaidReturnDate Status

CustomerID

Location

FilmID

(0,m) (0,n)

(1,1)

(0,n)(0,n)

(0,q)

(0,j)

(0,p)

Page 22: Mapping the ER Model to Relations(1)1 Overview  Mapping entity types  Mapping relationship types  One-to-one  One-to-many  Many-to-many.

Mapping the ER Model to Relations(1) 22

7. Multivalued Attributes

Create a table for each multivalued attribute The table has a column for each simple attribute of the

multivalued attribute Add columns for the primary key of the entity or relationship

type to which the attribute belongs. (This is a foreign key) The primary key is the combination of all the attributes Example:

Director (FilmID, Name)

Film FilmID

Director