functional dependencies - virginia techcs4604/fall08/lectures/lecture10.pdf · functional...

31
Functional Dependencies Functional Dependencies Zaki Malik September 25, 2008 September 25, 2008

Upload: others

Post on 22-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Functional DependenciesFunctional Dependencies

Zaki Malik

September 25, 2008September 25, 2008

Page 2: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Functional Dependencies are building blocksth t bl th l i f d t d d i dthat enable the analysis of data redundancies, andthe elimination of anomalies caused by them(through the process of normalization)(through the process of normalization).

Page 3: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Example

• Convert to relations:‐ Students(Id, Name)  ‐ Advisors(Id, Name)( , ) ( , )

‐ Advises(StudentId, AdvisorId) ‐ Favorite(StudentId, AdvisorId)

• We perversely decide to convert Students, Advises, and Favorite into one relation.– Students(Id, Name, AdvisorId, AdvisorName, FavoriteAdvisorId)

3

Students(Id, Name, AdvisorId, AdvisorName, FavoriteAdvisorId)

Page 4: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Example of a Bad RelationStudents(Id, Name, AdvisorId, AdvisorName, FavoriteAdvisorId)

• If you know a student's Id, can you determine the values of any other attributes?any other attributes? – Name and FavoriteAdvisorId.

• Can we say Id  AdvisorId?  – NO! Id is not a key– NO! Id is not a key.

• What is the key for the Students?– {Id, AdvisorId}

• Why is this relation “bad”?– Parts of the key determine other attributes.

4

Page 5: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Motivation for Functional Dependencies

• Reason about constraints on attributes in relational designs.

• Procedurally determine the keys of a relation.

• Detect when a relation has redundant information• Detect when a relation has redundant information.

• Improve database designs systematically using normalization.

5

Page 6: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Relational Schema DesignRelational Schema Design

PersonbuysProduct

name

price name ssn

Conceptual Model:

Relational Model:Relational Model:plus FD’s

Normalization:Eliminates anomalies

Page 7: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Definition of Functional Dependency

• If t is a tuple in a relation R and A is an attribute of R, then tAis the value of attribute A in tuple t.

• The FD AdvisorId  AdvisorName holds in R if in every instance of R, for every pair of tuples t and u, y p p

7

Page 8: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Definition of Functional Dependency

• X A is an assertion about a relation R that whenever two tuples of R agree on all the attributes of X, then they must l th tt ib t Aalso agree on the attribute A.– Say “X A holds in R.”

• A functional dependency (FD) on a relation R is a statementf p y ( )– If two tuples in R agree on attributes A1, A2, …, An then they agree on 

attribute B.

N t ti A A A B– Notation: A1 A2 … An B

8

Page 9: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Functional Dependency ?Functional Dependency ?

● A functional dependency is a constraint between two sets of p yattributes in a relation

A tt ib t t f tt ib t X i id t f ti ll● An attribute or set of attributes X is said to functionally determine another attribute Y (written X  Y) if and only if each X value is associated with at most one Y value. Customarily we call X determinant set and Y a dependent set.

So if we are given the value of X we can determine the value● So if we are given the value of X we can determine the value of Y.

9

Page 10: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Examples of FDs

• Is Number  Enrollment an FD?

10

Page 11: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Example

Drinkers(name, addr, beersLiked, manf, favBeer).

name addr beersLiked manf favBeername addr beersLiked manf favBeerJaneway Voyager Bud A.B. WickedAleJaneway Voyager WickedAle Pete’s WickedAleSpock Enterprise Bud A.B. Bud

Reasonable FD’s to assert:

1. name ‐> addr

2 f B2. name ‐> favBeer

3. beersLiked ‐> manf

11

Page 12: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

ExampleExample

name addr beersLiked manf favBeerJaneway Voyager Bud A.B. WickedAleJaneway Voyager WickedAle Pete’s WickedAleS k E t i B d A B B dSpock Enterprise Bud A.B. Bud

name -> addr name -> favBeer

beersLiked -> manf

12

Page 13: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

FDs With Multiple AttributesFDs With Multiple Attributes

• No need for FDs with > 1 attribute on rightNo need for FDs with > 1 attribute on right.– But sometimes convenient to combine FD’s as a shorthandshorthand.

– FDs: name ‐> addr and name ‐> favBeer become name ‐> addr favBeername   addr favBeer

• > 1 attribute on left may be essential.Example: bar beer > price– Example: bar beer ‐> price

13

Page 14: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Use of Functional Dependencies

• We use functional dependencies to:test relations to see if they are legal under a given set of– test relations to see if they are legal under a given set of functional dependencies. 

• If a relation R is legal under a set F of functional dependencies, we say that R satisfies F.

– specify constraints on the set of legal relations• We say that F holds on R if all legal relations on R satisfy the set ofWe say that F holds on R if all legal relations on R satisfy the set of functional dependencies F.

• Note:  A specific instance of a relation schema may satisfy a functional dependency even if the functional dependency does not hold on all legal instances.  g

Page 15: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Where do FDs come from?Where do FDs come from?

• “Keyness” of attributes.

• Domain and application constraints.

• Real world constraints, e.g., 

ProfessorID Time  Classroom

15

Page 16: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Keys of Relations

• A superkey is a set of attributes that has the uniqueness property but is not necessarily minimal.

• Note E/R keys have no requirement for minimality, as for relational keysrelational keys.

16

Page 17: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

ExampleDrinkers(name, addr, beersLiked, manf, favBeer).

name addr beersLiked manf favBeerJaneway Voyager Bud A B WickedAleJaneway Voyager Bud A.B. WickedAleJaneway Voyager WickedAle Pete’s WickedAleSpock Enterprise Bud A.B. Bud

• {name, beersLiked} is a superkey because together these attributes determine all the other attributes.– name ‐> addr favBeer

– beersLiked ‐> manf

17

Page 18: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Example, Cont.

• {name, beersLiked} is a key because neither {name} nor { , } y { }{beersLiked} is a superkey.– name doesn’t ‐> manf; 

b Lik d d ’ dd– beersLiked doesn’t ‐> addr.

• In this example there are no other keys but lots of superkeysIn this example, there are no other keys, but lots of superkeys.– Any superset of {name, beersLiked}.

18

Page 19: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Example of Keys

• What is the key fory– Courses(Number, DeptName, CourseName, Classroom, Enrollment)?

• The key is {Number, DeptName}.– These attributes functionally determine every other attribute.

– No proper subset of {Number, DeptName} has this property.

• What is the key for– Teach(Number, DepartmentName, ProfessorName, Classroom)?

• The key is {Number, DepartmentName}. – Why?

19

Page 20: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Where Do Keys Come From?Where Do Keys Come From?

• We could simply assert a key K.  Then the only FD’s are K ‐> A for all atributes A, and K turns out to be the only key bt i bl f th FD’obtainable from the FD’s.

• We could assert FD’s and deduce the keys by systematicWe could assert FD s and deduce the keys by systematic exploration.

20

Page 21: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Keys in the Conversion from E/R to Relational DesignsRelational Designs

If h l i f i h k• If the relation comes from an entity set, the keyattributes of the relation are precisely the keyattributes of the entity setattributes of the entity set.

21

Page 22: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Keys in the Conversion from E/R to Relational DesignsRelational Designs

• If the relation comes from a binary relationship Rbetween entity sets E and F:

k b f h l h k– R is many‐many: key attributes of the relation are the keyattributes of E and of F.

– R is many‐one from E to F: key attributes of the relation arethe key attributes of E.

– R is one‐one: key attributes of the relation are the keyattributes of E or of F

22

attributes of E or of F.

Page 23: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Keys in the Conversion from E/R to Relational DesignsRelational Designs

• If the relationship R is multi‐way, we need to reason about the FDs that R satisfies.– There is no simple rule.

If R h d i E l k f h– If R has an arrow towards entity set E, at least one key for the relation for R excludes the key for E.

23

Page 24: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

FD’s From “Physics”FD s From  Physics

• While most FD’s come from E/R keyness and many‐one relationships, some are really physical laws.

• Example: “no two courses can meet in the same room at the same time” tells us: hour room -> coursesame time  tells us: hour room > course.

24

Page 25: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Example

• Branch

• Is Loan  Customer a valid FD ?– Loan Customer Amount?

L B h ?– Loan Branchname?

– Loan Customer Branchname Amount?

– Loan Branchname  Amount? 

Page 26: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

• A  B

• C  B

Page 27: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Rules for Manipulating FDsRules for Manipulating FDs

• Learn how to reason about FDs.

• Define rules for deriving new FDs from a given set of FDs.

N t l th l t “ li ” f l ti l• Next class: use these rules to remove “anomalies” from relational designs.

• Example: A relation R with attributes A, B, and C, satisfies the FDsp , , ,

A  B and B  C. What other FDs does it satisfy? 

A  C• What is the key for R ?

– A, because A  B  and A  C

27

Page 28: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Equivalence of FDsEquivalence of FDs• An FD F follows from a set of FDs T if every relation instance that

satisfies all the FDs in T also satisfies F.

• A  C follows from T = {A  B, B  C}

• Two sets of FDs S and T are equivalent if each FD in S follows from T and each FD in T follows from S.

• S = {A  B, B  C, A  C} and T = {A  B, B  C} are equivalent.

• These notions are useful in deriving new FDs from a given set of FDs.

28

Page 29: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Inference Rules for FDsInference Rules for FDs

A , A , … A 1 2 n B , B , … B 1 2 m

Is equivalent toSplitting rule

dA , A , … A 1 2 n 1

Is equivalent to

B

A A A B

andCombing rule

A1 ... Am B1 ... BmA , A , … A 1 2 n 2B

A1 ... Am B1 ... Bm

A , A , … A 1 2 n mB

29

Page 30: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Splitting and Combining FDsSplitting and Combining FDs

• Can we split and combine left hand sides of FDs?

– No !

30

Page 31: Functional Dependencies - Virginia Techcs4604/Fall08/lectures/lecture10.pdf · Functional Dependencies are building blocks th tthat enable theanalilysisof dtdataredd idundancies,

Triviality of FDs

31