1 of 13

Section 4

  • HW3 due next week

  • Today: review & practice Design!

1

October 22, 2020

Design Section

2 of 13

Database Design

2

October 22, 2020

Database Design

Database Design or Logical Design or Relational Schema Design is the process of organizing data into a database model.

Consider what data needs to be stored and the interrelationship of the data.

Arbitrary Data

Database

There are no good or bad designs, just tradeoffs.

Design Section

3 of 13

Data Relationship Discovery

How do we find relationships between attributes?

Flights dataset:

Did you know that every canceled flight�has an actual_time of 0?

  1. Domain approach
  2. Data mining approach

3

October 22, 2020

Design Section

4 of 13

Data Relationship Discovery

Domain approach:

Before looking at the data, �think about the domain

Research the domain and realize that �canceled flights have a 0 flight time!

4

October 22, 2020

Design Section

5 of 13

Data Relationship Discovery

Data mining approach:

Don’t worry about the domain, �just find patterns in the data

Look at the data and notice that every time canceled = 1, then actual_time = 0.

SELECT DISTINCT actual_time

FROM Flights

WHERE canceled = 1;

🡺 only actual_time is 0

5

October 22, 2020

Design Section

6 of 13

Data Relationship Discovery

Relationship types:

  • Functional dependence
  • Correlation
  • The property that �canceled flights have 0 actual_time
  • …perhaps more complex functions?

6

October 22, 2020

In this class we study functional dependencies

Covered in lecture tomorrow!

Design Section

7 of 13

Data Relationship Discovery

How do we find relationships between attributes?

7

October 22, 2020

Domain Approach

E/R Diagrams

Data Approach

Functional Dependencies

Boyce-Codd Normal Form

(BCNF)

Covered in lecture tomorrow!

Design Section

8 of 13

ER Diagrams

  • Visual graph of entities and relationships

8

October 22, 2020

Product

Company

Person

employs

buys

makes

price

name

ceo

name

address

address

name

id

Design Section

9 of 13

Relationships

  • one-one: ssn - UW student id
  • one-many: ssn - phone#
  • many-many: store - product
  • is-a: computer - PC and computer - Mac
  • has-a: country - city
    • What country does the city of Cambridge belong to?

9

October 22, 2020

 

“at most one”

“exactly one”

is a

“subclass”

no constraint

other constraint

Design Section

10 of 13

E/R Demo

Create an ER diagram containing the following:

  • The id, name, gender, country of birth, �and country region (continent) of birth for students and faculty
  • The major of students
  • The salary of faculty
  • The courses that each student takes
  • The department each course is offered in

10

October 22, 2020

Design Section

11 of 13

E/R Demo

11

October 22, 2020

The id, name, gender, country of birth, and country region of birth for students and faculty

The major of students

The salary of faculty

The courses that each student takes

The department each course is offered in

Design Section

12 of 13

E/R Demo – Sample Solution

12

October 22, 2020

Design Section

13 of 13

E/R Demo – Sample Solution

13

October 22, 2020

Country (name, region)

People (id, country_name, gender, p_name)

Faculty (People.id, salary)

Student (People.id, major)

Course (courseID, dept)

Took (Student.People.id, Course.courseID)

Design Section