Functional Dependencies

Slides:



Advertisements
Similar presentations
1 Lecture 7 Design Theory for Relational Databases (part 1) Slides based on
Advertisements

Database Management Systems Chapter 3 The Relational Data Model (II) Instructor: Li Ma Department of Computer Science Texas Southern University, Houston.
Functional Dependencies - Example
Topics to be discusses Functional Dependency Key
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 227 Database Systems I Design Theory for Relational Databases.
Functional Dependencies
Functional Dependencies. Babies At a birth, there is one baby (twins would be represented by two births), one mother, any number of nurses, and a doctor.
1 The Relational Data Model Functional Dependencies.
1 Multivalued Dependencies Fourth Normal Form. 2 Definition of MVD uA multivalued dependency (MVD) on R, X ->->Y, says that if two tuples of R agree on.
1 Functional Dependencies Meaning of FD’s Keys and Superkeys Inferring FD’s.
1 Functional Dependencies Meaning of FD’s Keys and Superkeys Inferring FD’s Source: slides by Jeffrey Ullman.
Winter 2002Arthur Keller – CS 1804–1 Schedule Today: Jan. 15 (T) u Normal Forms, Multivalued Dependencies. u Read Sections Assignment 1 due. Jan.
1 Multivalued Dependencies Fourth Normal Form. 2 A New Form of Redundancy uMultivalued dependencies (MVD’s) express a condition among tuples of a relation.
Fall 2001Arthur Keller – CS 1803–1 Schedule Today Oct. 2 (T) Relational Model. u Read Sections Assignment 1 due. Personal Letter of Introduction.
1 Functional Dependencies Why FD's Meaning of FD’s Keys and Superkeys Inferring FD’s Source: slides by Jeffrey Ullman.
Winter 2002Arthur Keller – CS 1803–1 Schedule Today: Jan. 10 (TH) u Relational Model, Functional Dependencies. u Read Sections Jan. 15 (T) u Normal.
Bad DB Design Duplicate of data Duplicate of data Updating Updating Deleting Deleting.
Fall 2001Arthur Keller – CS 1804–1 Schedule Today Oct. 4 (TH) Functional Dependencies and Normalization. u Read Sections Project Part 1 due. Oct.
Database Systems Normal Forms. Decomposition Suppose we have a relation R[U] with a schema U={A 1,…,A n } – A decomposition of U is a set of schemas.
Decompositions uDo we need to decompose a relation? wSeveral normal forms for relations. If schema in these normal forms certain problems don’t.
Normalization Goal = BCNF = Boyce-Codd Normal Form = all FD’s follow from the fact “key  everything.” Formally, R is in BCNF if for every nontrivial FD.
Functional Dependencies. FarkasCSCE 5202 Reading and Exercises Database Systems- The Complete Book: Chapter 3.1, 3.2, 3.3., 3.4 Following lecture slides.
1 IT 244 Database Management System Topic 7 The Relational Data Model Functional Dependencies Ref : -A First Course in Database System (Jeffrey D Ullman,
IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.
Santa Clara UniversityHolliday – COEN 1783–1 Today’s Topic Today: u Relational Model, Functional Dependencies. u Read Sections Next time u Normal.
1 Multivalued Dependencies Fourth Normal Form Reasoning About FD’s + MVD’s.
1 Multivalued Dependencies Fourth Normal Form Reasoning About FD’s + MVD’s.
Functional Dependencies CIS 4301 Lecture Notes Lecture 8 - 2/7/2006.
1 The Relational Data Model Tables Schemas Conversion from E/R to Relations Functional Dependencies.
Functional Dependencies Zaki Malik September 25, 2008.
Functional Dependencies. Babies Exercise 2.2.5: At a birth, there is one baby (twins would be represented by two births), one mother, any number of nurses,
Databases 1 Sixth lecture. 2 Functional Dependencies X -> A is an assertion about a relation R that whenever two tuples of R agree on all the attributes.
© D. Wong Functional Dependencies (FD)  Given: relation schema R(A1, …, An), and X and Y be subsets of (A1, … An). FD : X  Y means X functionally.
Design Theory for Relational Databases Functional Dependencies Decompositions Normal Forms: BCNF, Third Normal Form Introduction to Multivalued Dependencies.
1 Lecture 8 Design Theory for Relational Databases (part 2) Slides from
4NF & MULTIVALUED DEPENDENCY By Kristina Miguel. Review  Superkey – a set of attributes which will uniquely identify each tuple in a relation  Candidate.
1 Database Design: DBS CB, 2 nd Edition Physical RDBMS Model: Schema Design and Normalization Ch. 3.
Lecture 11: Functional Dependencies
Design Theory for Relational Databases
Schedule Today: Next After that Normal Forms. Section 3.6.
Cushing, Keller, UlmanJudy Cushing
CPSC-310 Database Systems
Schedule Today: Jan. 23 (wed) Week of Jan 28
3.1 Functional Dependencies
Handout 4 Functional Dependencies
Schema Refinement & Normalization Theory
Database Design and Programming
CPSC-310 Database Systems
BCNF and Normalization
CPSC-310 Database Systems
How to test Whether Subschemes in BCNF??
Multivalued Dependencies & Fourth Normal Form (4NF)
Cse 344 May 16th – Normalization.
Lecture 09: Functional Dependencies, Database Design
CPSC-310 Database Systems
Functional Dependencies
Lecture 07: E/R Diagrams and Functional Dependencies
Normalization cs3431.
CS 405G: Introduction to Database Systems
Chapter 19 (part 1) Functional Dependencies
Third Normal Form.
Multivalued Dependencies
Anomalies Boyce-Codd Normal Form 3rd Normal Form
Lecture 6: Functional Dependencies
Chapter 3: Multivalued Dependencies
Chapter 3: Design theory for relational Databases
Chapter 7a: Overview of Database Design -- Normalization
Lecture 09: Functional Dependencies
CS4222 Principles of Database System
Presentation transcript:

Functional Dependencies Meaning of FD’s Keys and Superkeys Inferring FD’s

Functional Dependencies 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 also agree on the attribute A. Say “X -> A holds in R.” Convention: …, X, Y, Z represent sets of attributes; A, B, C,… represent single attributes. Convention: no set formers in sets of attributes, just ABC, rather than {A,B,C }.

Example Drinkers(name, addr, beersLiked, manf, favBeer) Reasonable FD’s to assert: name -> addr name -> favBeer beersLiked -> manf

Example Data name addr beersLiked manf favBeer Janeway Voyager Bud A.B. WickedAle Janeway Voyager WickedAle Pete’s WickedAle Spock Enterprise Bud A.B. Bud Because name -> addr Because beersLiked -> manf Because name -> favBeer

FD’s With Multiple Attributes No need for FD’s with > 1 attribute on right. But sometimes convenient to combine FD’s as a shorthand. Example: name -> addr and name -> favBeer become name -> addr favBeer > 1 attribute on left may be essential. Example: bar beer -> price

Keys of Relations K is a superkey for relation R if K functionally determines all of R. K is a key for R if K is a superkey, but no proper subset of K is a superkey.

Example Drinkers(name, addr, beersLiked, manf, favBeer) {name, beersLiked} is a superkey because together these attributes determine all the other attributes. name -> addr favBeer beersLiked -> manf

Example, Cont. {name, beersLiked} is a key because neither {name} nor {beersLiked} is a superkey. name doesn’t -> manf; beersLiked doesn’t -> addr. There are no other keys, but lots of superkeys. Any superset of {name, beersLiked}.

E/R and Relational Keys Keys in E/R concern entities. Keys in relations concern tuples. Usually, one tuple corresponds to one entity, so the ideas are the same. But --- in poor relational designs, one entity can become several tuples, so E/R keys and Relational keys are different.

Example Data name addr beersLiked manf favBeer Janeway Voyager Bud A.B. WickedAle Janeway Voyager WickedAle Pete’s WickedAle Spock Enterprise Bud A.B. Bud Relational key = {name beersLiked} But in E/R, name is a key for Drinkers, and beersLiked is a key for Beers. Note: 2 tuples for Janeway entity and 2 tuples for Bud entity.

Where Do Keys Come From? Just assert a key K. The only FD’s are K -> A for all attributes A. Assert FD’s and deduce the keys by systematic exploration. E/R model gives us FD’s from entity-set keys and from many-one relationships.

More FD’s From “Physics” Example: “no two courses can meet in the same room at the same time” tells us: hour room -> course.

Inferring FD’s We are given FD’s X1 -> A1, X2 -> A2,…, Xn -> An , and we want to know whether an FD Y -> B must hold in any relation that satisfies the given FD’s. Example: If A -> B and B -> C hold, surely A -> C holds, even if we don’t say so. Important for design of good relation schemas.

Inference Test To test if Y -> B, start by assuming two tuples agree in all attributes of Y. Y 0000000. . . 0 00000?? . . . ?

Inference Test – (2) Use the given FD’s to infer that these tuples must also agree in certain other attributes. If B is one of these attributes, then Y -> B is true. Otherwise, the two tuples, with any forced equalities, form a two-tuple relation that proves Y -> B does not follow from the given FD’s.

Closure Test An easier way to test is to compute the closure of Y, denoted Y +. Basis: Y + = Y. Induction: Look for an FD’s left side X that is a subset of the current Y +. If the FD is X -> A, add A to Y +.

new Y+ X A Y+

Finding All Implied FD’s Motivation: “normalization,” the process where we break a relation schema into two or more schemas. Example: ABCD with FD’s AB ->C, C ->D, and D ->A. Decompose into ABC, AD. What FD’s hold in ABC ? Not only AB ->C, but also C ->A !

Why? d1=d2 because C -> D ABCD a1b1cd1 a2b2cd2 comes from a1=a2 because D -> A ABC a1b1c a2b2c Thus, tuples in the projection with equal C’s have equal A’s; C -> A.

Basic Idea Start with given FD’s and find all nontrivial FD’s that follow from the given FD’s. Nontrivial = left and right sides disjoint. Restrict to those FD’s that involve only attributes of the projected schema.

Simple, Exponential Algorithm For each set of attributes X, compute X +. Add X ->A for all A in X + - X. However, drop XY ->A whenever we discover X ->A. Because XY ->A follows from X ->A in any projection. Finally, use only FD’s involving projected attributes.

A Few Tricks No need to compute the closure of the empty set or of the set of all attributes. If we find X + = all attributes, so is the closure of any superset of X.

Example ABC with FD’s A ->B and B ->C. Project onto AC. A +=ABC ; yields A ->B, A ->C. We do not need to compute AB + or AC +. B +=BC ; yields B ->C. C +=C ; yields nothing. BC +=BC ; yields nothing.

Example --- Continued Resulting FD’s: A ->B, A ->C, and B ->C. Projection onto AC : A ->C. Only FD that involves a subset of {A,C }.

A Geometric View of FD’s Imagine the set of all instances of a particular relation. That is, all finite sets of tuples that have the proper number of components. Each instance is a point in this space.

Example: R(A,B) {(1,2), (3,4)} {(5,1)} {} {(1,2), (3,4), (1,3)}

An FD is a Subset of Instances For each FD X -> A there is a subset of all instances that satisfy the FD. We can represent an FD by a region in the space. Trivial FD = an FD that is represented by the entire space. Example: A -> A.

Example: A -> B for R(A,B) {(1,2), (3,4)} {(5,1)} {} {(1,2), (3,4), (1,3)}

Representing Sets of FD’s If each FD is a set of relation instances, then a collection of FD’s corresponds to the intersection of those sets. Intersection = all instances that satisfy all of the FD’s.

Example Instances satisfying A->B, B->C, and CD->A A->B

Implication of FD’s If an FD Y -> B follows from FD’s X1 -> A1,…,Xn -> An , then the region in the space of instances for Y -> B must include the intersection of the regions for the FD’s Xi -> Ai . That is, every instance satisfying all the FD’s Xi -> Ai surely satisfies Y -> B. But an instance could satisfy Y -> B, yet not be in this intersection.

Example B->C A->C A->B