17
1 E/R Exercises – Part I July 19, 2022

1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

Embed Size (px)

Citation preview

Page 1: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

1

E/R Exercises – Part I

April 18, 2023

Page 2: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

2

Database Design Sequence

Page 3: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

3

Review

Entity set

Relationship set

Attribute

Multiplicity of relationships

Weak entity set

Referential integrity

Weak relationship set

Page 4: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

4

Different Sets of Notations Two different sets of ER notations are

commonly used.

One from Ullman’s book as shown on the last slide

Another from Ramakrishnan’s book with main

differences in: - arrow always pointing to “relationship”; - notations of partial or total participation

constrains; - notation of aggregations.

Page 5: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

5

Exercise #1 - 1

A database for a bank includes information about customers and their accounts.

Information about customer includes name, address, phone, and social security number.

Accounts have numbers, type (saving, checking), and balances.

An account can be owned by several customers, and a customer can have multiple accounts.

Page 6: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

6

Exercise #1 - 2

number type balance

Customer Account

SSN

name address phone

own

Page 7: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

7

Exercise #2

Change your design so that an account can have exactly one customer

number type balance

AccountownCustomer

SSN

name address phone

Page 8: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

8

Exercise #3

Further change your design so a customer can have at most one account

number type balance

Customer

SSN

name address phone

Accountown

Page 9: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

9

Exercise #4 - 1

Change your original design so that a customer can have a set of addresses (street, city, state) and a set of phones.

Remember that we do not allow non-atomic types for attributes.

Page 10: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

10

Exercise #4 - 2

number type balance

Customer Account

SSN

name

own

Address Phone

Lives at has

city

state

number

street

Page 11: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

11

Exercise #5 - 1

Further change your original design so that a customer can have a set of addresses. Also, at each address, there is a set of phones.

Page 12: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

12

Exercise #5 - 2

number type balance

Customer Account

SSN

name

own

Address Phone

Lives at

hascity

state

number

street

Page 13: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

13

Exercise #6 - 1 Design a database for a university

registrar. This database should include information

about students, departments, professors, courses, which student are enrolled in which courses, which professors teach which courses, student grades, TA for the course (TAs are students), which courses a department offers, and any other information you deem appropriate.

Page 14: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

14

Exercise #6 – Solution #1

number name credit

Student Course

id name address phone

enroll

name

Departmentoffer

Professor hiredteaches

gradeTA

tutor of

semester

EID

semester

sectionsemester section

section

position

Is this a good design?

OK, but not a good design. “semester” and “section” appear in several relationships -> Can’t guarantee the consistency of DB easily

Page 15: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

15

Exercise #6 – Solution #2

number name credit

Student Course

id name address phone

isIn

name

Departmentoffer

Professor hired

grade

TA semester

EID position

section

Is this a good design? No. Lots of redundancy (in “isIn”), although the E/R diagram itself looks simpler

Page 16: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

16

Exercise #6 – Solution #3

number name credit

Student Course

id name address phone

enroll

name

Departmentoffer

Professor hiredteaches

grade

TA

tutor of

EID

semester section

position

Is this a good design? This solution has less redundancy comparing to the previous 2. But redundancy still exists in “Course”.

Page 17: 1 E/R Exercises – Part I May 21, 2015. 2 Database Design Sequence

17

Exercise #6 – Solution #4

number name credit

Student Course

id name address phone

enroll

name

Departmentoffer

Professor hiredteaches

grade

TA

tutor of

EID

semester

section

position

Is this a good design? Yes!

AvailableCourse