lecture 9: e/r diagrams and functional dependencies

31
Lecture 9: E/R Diagrams and Functional Dependencies January 29 th , 2003

Upload: mikayla-prince

Post on 31-Dec-2015

37 views

Category:

Documents


1 download

DESCRIPTION

Lecture 9: E/R Diagrams and Functional Dependencies. January 29 th , 2003. Design Principles: What’s Wrong?. date. Dates. Product. Purchase. Store. Moral: don’t complicate life more than it already is. Person. Modeling Subclasses. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture 9: E/R Diagrams  and  Functional Dependencies

Lecture 9:E/R Diagrams

and Functional Dependencies

January 29th, 2003

Page 2: Lecture 9: E/R Diagrams  and  Functional Dependencies

Design Principles:What’s Wrong?

Purchase

Product

Person

Store

dateDates

Moral: don’t complicate life more than it already is.

Page 3: Lecture 9: E/R Diagrams  and  Functional Dependencies

Modeling Subclasses

The world is inherently hierarchical. Some entities are special cases of others

• We need a notion of subclass.• This is supported naturally in object-oriented formalisms.

Products

Software products

Educational products

Page 4: Lecture 9: E/R Diagrams  and  Functional Dependencies

Product

name category

price

isa isa

Educational ProductSoftware Product

Age Groupplatforms

Subclasses in E/R Diagrams

Page 5: Lecture 9: E/R Diagrams  and  Functional Dependencies

Understanding Subclasses

• Think in terms of records:– Product

– SoftwareProduct

– EducationalProduct

field1

field2

field1

field2

field1

field2

field3

field4field5

Page 6: Lecture 9: E/R Diagrams  and  Functional Dependencies

Subclasses to Relations

Product

name category

price

isa isa

Educational ProductSoftware Product

Age Groupplatforms

Name Price Category

Gizmo 99 gadget

Camera 49 photo

Toy 39 gadget

Name platforms

Gizmo unix

Name Age Group

Gizmo todler

Toy retired

Product

Sw.Product

Ed.Product

Page 7: Lecture 9: E/R Diagrams  and  Functional Dependencies

Modeling UnionTypes With Subclasses

FurniturePiece

Person Company

Say: each piece of furniture is owned either by a person, or by a company

Page 8: Lecture 9: E/R Diagrams  and  Functional Dependencies

Modeling Union Types with Subclasses

Say: each piece of furniture is owned either by a person, or by a company

Solution 1. Acceptable, imperfect (What’s wrong ?)

FurniturePiecePerson Company

ownedByPerson ownedByPerson

Page 9: Lecture 9: E/R Diagrams  and  Functional Dependencies

Modeling Union Types with Subclasses

Solution 2: better, more laborious

isa

FurniturePiece

Person CompanyownedBy

Owner

isa

Page 10: Lecture 9: E/R Diagrams  and  Functional Dependencies

Constraints in E/R Diagrams

Finding constraints is part of the modeling process. Commonly used constraints:

Keys: social security number uniquely identifies a person.

Single-value constraints: a person can have only one father.

Referential integrity constraints: if you work for a company, it must exist in the database.

Other constraints: peoples’ ages are between 0 and 150.

Page 11: Lecture 9: E/R Diagrams  and  Functional Dependencies

Keys in E/R Diagrams

address name ssn

Person

Product

name category

price

No formal way to specify multiple keys in E/R diagrams

Underline:

Page 12: Lecture 9: E/R Diagrams  and  Functional Dependencies

Single Value Constraints

makes

makes

v. s.

Page 13: Lecture 9: E/R Diagrams  and  Functional Dependencies

Referential Integrity Constraints

CompanyProduct makes

CompanyProduct makes

Page 14: Lecture 9: E/R Diagrams  and  Functional Dependencies

Other Constraints

CompanyProduct makes<100

What does this mean ?

Page 15: Lecture 9: E/R Diagrams  and  Functional Dependencies

Weak Entity SetsEntity sets are weak when their key comes from otherclasses to which they are related.

UniversityTeam affiliation

numbersport name

Page 16: Lecture 9: E/R Diagrams  and  Functional Dependencies

Handling Weak Entity Sets

UniversityTeam affiliation

numbersport name

Convert to a relational schema (in class)

Page 17: Lecture 9: E/R Diagrams  and  Functional Dependencies

The Relational Data Model

DataModeling

DataModeling

Relational Schema

Relational Schema

Physicalstorage

Physicalstorage

E/R diagrams Tables: column names: attributes rows: tuples

Complexfile organizationand index structures.

Page 18: Lecture 9: E/R Diagrams  and  Functional Dependencies

Recalling The Terminology

Name Price Category Manufacturer

gizmo $19.99 gadgets GizmoWorks

Power gizmo $29.99 gadgets GizmoWorks

SingleTouch $149.99 photography Canon

MultiTouch $203.99 household Hitachi

Tuples or rows or records

Attribute namesTable name or relation name

Products:

Page 19: Lecture 9: E/R Diagrams  and  Functional Dependencies

First Normal Form (1NF)

• A database schema is in First Normal Form if all tables are flat

Name GPA Courses

Alice 3.8

Bob 3.7

Carol 3.9

Math

DB

OS

DB

OS

Math

OS

Student Name GPA

Alice 3.8

Bob 3.7

Carol 3.9

Student

Course

Math

DB

OS

Student Course

Alice Math

Carol Math

Alice DB

Bob DB

Alice OS

Carol OS

Takes Course

Page 20: Lecture 9: E/R Diagrams  and  Functional Dependencies

Functional Dependencies

• A form of constraint– hence, part of the schema

• Finding them is part of the database design

• Also used in normalizing the relations

Page 21: Lecture 9: E/R Diagrams  and  Functional Dependencies

Functional DependenciesDefinition:

If two tuples agree on the attributes

A , A , … A 1 2 n

then they must also agree on the attributes

B , B , … B 1 2 m

Formally:

A , A , … A 1 2 n

B , B , … B 1 2 m

Page 22: Lecture 9: E/R Diagrams  and  Functional Dependencies

Examples

• EmpID Name, Phone, Position

• Position Phone

• but Phone Position

EmpID Name Phone PositionE0045 Smith 1234 ClerkE1847 John 9876 SalesrepE1111 Smith 9876 SalesrepE9999 Mary 1234 Lawyer

Page 23: Lecture 9: E/R Diagrams  and  Functional Dependencies

In General• To check A B, erase all other columns

• check if the remaining relation is many-one (called functional in mathematics)

… A … B X1 Y1 X2 Y2 … …

Note: this is the mathematical definition of a function.Book is wrong.

Page 24: Lecture 9: E/R Diagrams  and  Functional Dependencies

Example

EmpID Name Phone PositionE0045 Smith 1234 ClerkE1847 John 9876 SalesrepE1111 Smith 9876 SalesrepE9999 Mary 1234 Lawyer

Page 25: Lecture 9: E/R Diagrams  and  Functional Dependencies

Typical Examples of FDs

Product: name price, manufacturer

Person: ssn name, age

Company: name stockprice, president

Page 26: Lecture 9: E/R Diagrams  and  Functional Dependencies

Formal definition of a key

• A key is a set of attributes A1, ..., An s.t. for any other attribute B, A1, ..., An B

• A minimal key is a set of attributes which is a key and for which no subset is a key

• Note: book calls them superkey and key

Page 27: Lecture 9: E/R Diagrams  and  Functional Dependencies

Examples of Keys

• Product(name, price, category, color)name, category pricecategory color

Keys are: {name, category} and all supersets

• Enrollment(student, address, course, room, time)student addressroom, time coursestudent, course room, time

Keys are: [in class]

Page 28: Lecture 9: E/R Diagrams  and  Functional Dependencies

Finding the Keys of a Relation

Given a relation constructed from an E/R diagram, what is its key?

Rules: 1. If the relation comes from an entity set, the key of the relation is the set of attributes which is the key of the entity set.

address name ssn

Person Person(address, name, ssn)

Page 29: Lecture 9: E/R Diagrams  and  Functional Dependencies

Finding the Keys

PersonbuysProduct

name

price name ssn

buys(name, ssn, date)

date

Rules: 2. If the relation comes from a many-many relationship, the key of the relation is the set of all attribute keys in the relations corresponding to the entity sets

Page 30: Lecture 9: E/R Diagrams  and  Functional Dependencies

Finding the KeysExcept: if there is an arrow from the relationship to E, then we don’t need the key of E as part of the relation key.

Purchase

Product

Person

Store

Payment Method

name

card-nossn

sname

Purchase(name , sname, ssn, card-no)

Page 31: Lecture 9: E/R Diagrams  and  Functional Dependencies

Finding the Keys

More rules:

• Many-one, one-many, one-one relationships

• Multi-way relationships

• Weak entity sets

(Try to find them yourself, or check book)