<<

Translating Entity-Relationship to Relational Tables

Grant Weddell

David . Cheriton School of Computer Science University of Waterloo

CS 348 Introduction to Management Spring 2012

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 1 / 16 E-R Diagram to Relational Schema

Main ideas: • Each entity maps to a new • Each attribute maps to a new table • Each relationship set maps to either new table columns or to a new table

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 2 / 16

Representing Strong Entity Sets ;

Entity set E with attributes a1 ;::: an translates to table E with ; attributes a1 ;::: an

Entity of type E ° in table E

Primary key of entity set ! of table Example:

Student Major

StudentNum StudentName

Student StudentNum StudentName Major

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 3 / 16 Representing Weak Entity Sets

Weak entity set E translates to table E

Columns of table E should include • Attributes of the weak entity set • Attributes of the identifying relationship set • Primary key attributes of entity set for dominating entities

Primary key of weak entity set ! primary key of table

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 4 / 16 Representing Weak Entity Sets (cont.)

Example:

Balance Account AccNum

Log

Transaction TransNum

Date Amount

Account AccNum Balance

Transaction TransNum AccNum Date Amount

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 5 / 16 Representing Relationship Sets

• If the relationship set is an identifying relationship set for a weak entity set then no action needed

• If we can deduce the general cardinality constraint (1,1) for a component entity set E then add following columns to table E • Attributes of the relationship set • Primary key attributes of remaining component entity sets

• Otherwise: relationship set R ! table R

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 6 / 16 Representing Relationship Sets (cont.)

• Columns of table R should include • Attributes of the relationship set • Primary key attributes of each component entity set

• Primary key of table R determined as follows • If we can deduce the general cardinality constraint (0,1) for a component entity set E, then take the primary key attributes for E

• Otherwise, choose primary key attributes of each component entity

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 7 / 16 Representing Relationship Sets (cont.)

Example: Score Address

HomeTeam Team Match Location Visitor

TeamName LocName

Team Location TeamName LocName Address

Match HomeTeamName VisitorTeamName LocName Score

Note that the role name of a component entity set should be prepended to its primary key attributes, if supplied.

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 8 / 16 Representing Aggregation

Tabular representation of aggregation of R

= tabular representation for relationship set R

To represent relationship set involving aggregation of R, treat the aggregation like an entity set whose primary key is the primary key of the table for R

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 9 / 16 Representing Aggregation (cont.)

Example: CourseNum

StudentEnrolledIn Course

StudentNum CourseAccount ExpirationDate

Account UserId

Student Course Account StudentNum CourseNum UserId

EnrolledIn StudentNum CourseNum

CourseAccount UserId StudentNum CourseNum ExpirationDate

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 10 / 16 Representing Specialization

Create table for higher-level entity set, and treat specialized entity subsets like weak entity sets (without discriminators)

Example:

StudentNumber Student Student StudentNumber StudentName

StudentName Graduate StudentNumber ProfessorName

Degree Graduate SupervisedBy Professor (1, 1) (0, N) StudentNumber Degree Professor ProfessorName Degrees ProfessorName

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 11 / 16 Representing Generalization (Approach #1)

Create a table for each lower-level entity set only

Columns of new tables should include • Attributes of lower level entity set • Attributes of the superset

The higher-level entity set can be defined as a on the tables for the lower-level entity sets

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 12 / 16 Representing Generalization (Approach #1)

Example: MakeAndModel

LicenceNum Vehicle Price

COVERS

Tonnage Truck Car MaxSpeed

AxelCount PassengerCount

Truck LicenceNum MakeAndModel Price Tonnage AxelCount

Car LicenceNum MakeAndModel Price MaxSpeed PassengerCount

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 13 / 16 Representing Generalization (Approach #2)

Treat generalization the same as specialization.

Example:

MakeAndModel

Vehicle LicenceNum Vehicle Price LicenceNum MakeAndModel Price COVERS Truck LicenceNum Tonnage AxelCount

Car Tonnage Truck Car MaxSpeed LicenceNum MaxSpeed PassengerCount

AxelCount PassengerCount

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 14 / 16 Example Translation: ER Diagram

CourseNum Course CourseName (0, N)

SectionOf Term (1, 1) SectionNum

(1, 1) Section (6, 50)

TaughtBy EnrolledIn Mark

Off−Site Section GPA Professor Student

Location ProfName StudentName

ProfNum StudentNum

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 15 / 16 Example Translation: Relational Diagram

Course Student CourseNum StudentNum CourseName StudentName GPA

Section EnrolledIn CourseNum CourseNum SectionNum SectionNum Term StudentNum Term ProfNum Mark

Off−Site Section Professor CourseNum ProfNum SectionNum Term ProfName Location

CS 348 (Intro to DB Mgmt) ER to Relational Fall 2011 16 / 16