lecture 08 mapping - northeastern university · 2018-04-18 · er-to-relational mapping 10. cs3200...

32
CS3200 – Database Design Spring 2018 Derbinsky ER-to-Relational Mapping Lecture 8 March 1, 2018 ER-to-Relational Mapping 1

Upload: others

Post on 21-May-2020

26 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

ER-to-Relational Mapping

Lecture 8

March 1, 2018

ER-to-Relational Mapping

1

Page 2: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Outline1. Context2. The Algorithm

March 1, 2018

ER-to-Relational Mapping

2

Page 3: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Database Design and Implementation Process

March 1, 2018

ER-to-Relational Mapping

3

Page 4: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Data Models

March 1, 2018

ER-to-Relational Mapping

4

Page 5: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Example ERD

March 1, 2018

ER-to-Relational Mapping

5

Page 6: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Resulting Relational Schema

March 1, 2018

ER-to-Relational Mapping

6

Page 7: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 1: Regular Entity Typesi. For each regular/strong entity type, create a

corresponding relation that includes all the simple attributes (includes simple attributes of composite relations)

ii. Choose one of the key attributes as primary§ If composite, the simple attributes together form

the primary key

iii. Any remaining key attributes are kept as secondary unique keys (these will be useful for physical tuning w.r.t. indexing analysis)

March 1, 2018

ER-to-Relational Mapping

7

Page 8: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Example ERD

March 1, 2018

ER-to-Relational Mapping

8

Page 9: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 1 Result

March 1, 2018

ER-to-Relational Mapping

9

Page 10: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 2: Weak Entity Typesi. For each weak entity type, create a

corresponding relation that includes all the simple attributes

ii. Add as a foreign key all of the primary key attribute(s) in the entity corresponding to the owner entity type

iii. The primary key is the combination of all the primary key attributes from the owner and the partial key of the weak entity, if any

March 1, 2018

ER-to-Relational Mapping

10

Page 11: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Example ERD

March 1, 2018

ER-to-Relational Mapping

11

Page 12: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 2 Result

March 1, 2018

ER-to-Relational Mapping

12

Page 13: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 3: Mapping Binary 1-to-1Three approaches– Foreign Key• Usually appropriate

–Merged Relation• Possible when both participations are total

– Relationship Relation• Not discussed

March 1, 2018

ER-to-Relational Mapping

13

Page 14: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 3: Mapping Binary 1-to-1Foreign Key

i. Choose one relation as S, the other T§ Better if S has total participation (reduces

number of NULL values)

ii. Add to S all the simple attributes of the relationship

iii. Add as a foreign key in S the primary key attributes of T

March 1, 2018

ER-to-Relational Mapping

14

Page 15: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Example ERD

March 1, 2018

ER-to-Relational Mapping

15

Page 16: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 2 Result

March 1, 2018

ER-to-Relational Mapping

16

Page 17: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 3 Result

March 1, 2018

ER-to-Relational Mapping

17

Page 18: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 4: Binary 1-to-Ni. Choose the S relation as the type at the

N-side of the relationship, other is T

ii. Add as a foreign key to S all of the primary key attribute(s) of T

Another approach: create a relationship relation

March 1, 2018

ER-to-Relational Mapping

18

Page 19: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Example ERD

March 1, 2018

ER-to-Relational Mapping

19

Page 20: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 4 Result

March 1, 2018

ER-to-Relational Mapping

20

Page 21: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 5: Binary M-to-Ni. Create a new relation S (termed:

relationship relation)– In some ERD dialects, actually drawn in

ii. Add as foreign keys the primary keys of both relations; their combination forms the primary key of S

iii. Add any simple attributes of the M:N relationship to S

March 1, 2018

ER-to-Relational Mapping

21

Page 22: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Example ERD

March 1, 2018

ER-to-Relational Mapping

22

Page 23: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 5 Result

March 1, 2018

ER-to-Relational Mapping

23

Page 24: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 6: Multivalued Attributesi. Create a new relation S

ii. Add as foreign keys the primary keys of the corresponding relation

iii. Add the attribute to S (if composite, the simple attributes); the combination of all attributes in S forms the primary key

March 1, 2018

ER-to-Relational Mapping

24

Page 25: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Example ERD

March 1, 2018

ER-to-Relational Mapping

25

Page 26: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 6 Result

March 1, 2018

ER-to-Relational Mapping

26

Page 27: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Step 7: Specialization/GeneralizationA. Multiple relations – subclass and superclass

§ Usually works (assumes unique id at parent)

B. Multiple relations – subclass only§ Should only be used for disjoint

C. Single relation with one type attribute§ Only for disjoint, can result in many NULLs

D. Single relation with multiple type attributes§ Better for overlapping, could be disjoint

March 1, 2018

ER-to-Relational Mapping

27

Page 28: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Specialization/Generalization (A)

March 1, 2018

ER-to-Relational Mapping

28

Page 29: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Specialization/Generalization (B)

March 1, 2018

ER-to-Relational Mapping

29

Page 30: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Specialization/Generalization (C)

March 1, 2018

ER-to-Relational Mapping

30

Page 31: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Specialization/Generalization (D)

March 1, 2018

ER-to-Relational Mapping

31

Page 32: lecture 08 mapping - Northeastern University · 2018-04-18 · ER-to-Relational Mapping 10. CS3200 –Database Design Spring 2018 Derbinsky Example ERD March 1, 2018 ER-to-Relational

CS3200 – Database Design� �� Spring 2018� ��Derbinsky

Summary• Mapping from ERDs to relations is an

algorithmic process

• Some choice points involve comparing time-space tradeoffs (more in physical design)

March 1, 2018

ER-to-Relational Mapping

32