Download presentation
Presentation is loading. Please wait.
Published byGriffin Lane Modified over 9 years ago
1
Functional Dependencies
2
FarkasCSCE 5202 Reading and Exercises Database Systems- The Complete Book: Chapter 3.1, 3.2, 3.3., 3.4 Following lecture slides are modified from Jeff Ullman’s slides for Fall 2002 -- Stanford
3
FarkasCSCE 5203 Database Design Goal: Represent domain information Avoid anomalies Avoid redundancy Anomalies: Update: not all occurrences of a fact are changed Deletion: valid fact is lost when tuple is deleted
4
FarkasCSCE 5204 Functional Dependencies FD: X A for relation R X functional determines A, i.e., if any two tuples in R agree on attributes X, they must also agree on attribute A. X: set of attributes A: single attribute If t 1 and t 2 are two tuples of r over R and t 1 [X]= t 2 [X] then t 1 [A]= t 2 [A] What is the relation between functional dependencies and primary keys?
5
FarkasCSCE 5205 Functional Dependency Example Owner(Name, Phone) FD: Name Phone Dog(Name, Breed, Age, Weight) FD: Name, Breed Age FD: Name, Breed Weight
6
FarkasCSCE 5206 Example - FD NameBreedAgeWeightDateKennel PepperG.S.17001/01/02White Oak BuddyMix45003/04/01Little Creek PepperG.S.17004/17/02Little Creek PankaVizsla124002/14/02White Oak Functional Dependencies:Name,Breed Age Name,Breed Weight Dog-Kennels(Name,Breed,Age,Weight,Date,Kennel)
7
FarkasCSCE 5207 FD with Multiple Attributes Right side: can be more than 1 attribute – splitting/combining rule E.g., FD: Name, Breed Age FD: Name, Breed Weight combine into: FD: Name, Breed Age,Weight Left side cannot be decomposed!
8
FarkasCSCE 5208 FD Equivalence Let S and T denote two sets of FDs. S and T are equivalent if the set of relation instances satisfying S is exactly the same as the set of instances satisfying T. A set of FDs S follows from a set of FDs T if every relation instance that satisfies all FDs in T also satisfies all FDs in S. Two sets of FDs S and T are equivalent if S follows from T and T follows from S.
9
FarkasCSCE 5209 Trivial FD Given FD of the form A 1,A 2,…,A n B 1,B 2,…,B k FD is Trivial: if the Bs are subset of As Nontrivial: if at least one of the Bs is not among As Completely nontrivial: if none of the Bs is in As.
10
FarkasCSCE 52010 Keys and FD K is a (primary) key for a relation R if 1.K functionally determines all attributes in R 2.1 does not hold for any proper subset of K Superkey: 1 holds, 2 does not hold
11
FarkasCSCE 52011 Example Dog-Kennels(Name,Breed,Age,Weight,Date,Kennel) Name,Breed,Date is a key: K={Name,Breed,Date} functionally determines all other attributes The above does not hold for any proper subset of K What are? {Name,Breed,Kennel} {Name,Breed,Date,Kennel} {Name,Breed,Age} {Name,Breed,Age,Date}
12
FarkasCSCE 52012 Where do Keys Come From? Assert a key K, then only FDs are K A for all attributes A (K is the only key from FDs) Assert FDs and deduce the keys E/R gives FDs from entity set keys and many-one relationships
13
FarkasCSCE 52013 E/R and Relational Keys E/R keys: properties of entities Relation keys: properties of tuples Usually: one tuple corresponds to one entity Poor relational design: one entity becomes several tuples
14
FarkasCSCE 52014 Closure of Attributes Let A 1,A 2,…,A n be a set of attributes and S a set of FDs. The closure of A 1,A 2,…,A n under S is the set of attributes B such that every relation that satisfies S also satisfies A 1,A 2,…,A n B. Closure of attributes A 1,A 2,…,A n is denoted as {A 1,A 2,…,A n } +
15
FarkasCSCE 52015 Algorithm – Attribute Closure Let X = A 1,A 2,…,A n Find B 1,B 2,…,B k C such that B 1,B 2,…,B k all in X but C is not in X Add C to X Repeat until no more attribute can be added to X X= {A 1,A 2,…,A n } +
16
FarkasCSCE 52016 Closures and Keys {A 1,A 2,…,A n } + is a set of all attributes of a relation if and only if A 1,A 2,…,A n is a superkey for the relation.
17
FarkasCSCE 52017 Projecting FDs Some FD are physical laws E.g., no two courses can meet in the same room at the same time A professor cannot be at two places at the same time. How to determine what FDs hold on a projection of a relation?
18
FarkasCSCE 52018 FD on Relation Relation schema design: which FDs hold on relation Given: X 1 A 1, X 2 A 2, …, X n A n whether Y B must hold on relations satisfying X 1 A 1, X 2 A 2, …, X n A n Example: A B and B C, then A C must also hold
19
FarkasCSCE 52019 Inference Test Test whether Y B Assume two tuples agree on attributes Y Use FDs to infer these tuples also agree on other attributes If B is one of the “other” attributes, then Y B holds.
20
FarkasCSCE 52020 Armstrong Axioms Reflexivity If {A 1,A 2,…,A m } superset of {B 1,B 2,…,B n } then A 1,A 2,…,A m B 1,B 2,…,B n Augmentation If A 1,A 2,…,A m B 1,B 2,…,B n then A 1,A 2,…,A m,C 1,…,C k B 1,B 2,…,B n,C 1,…,C k Transitivity If A 1,A 2,…,A m B 1,B 2,…,B n and B 1,B 2,…,B n C 1,C 2,…,C k then A 1,A 2,…,A m C 1,C 2,…,C k
21
FarkasCSCE 52021 FD Closure Compute the closure of Y, denoted as Y + Basis: Y + = Y Induction: look FD, where left side X is subset of Y +. If FD is X A then add A to Y +.
22
FarkasCSCE 52022 Finding All FDs Normalization: break a relation schema into two or more schemas Example: R(A,B,C,D) FD: AB C, C D, D A Decompose into (A,B,C), (A,D) FDs of (ABC): A,B C and C A
23
FarkasCSCE 52023 Basic Idea What FDs hold on a projections: Start with FDs Find all FDs that follow from given ones Restrict to FDs that involve only attributes from a schema
24
FarkasCSCE 52024 Algorithm For each X compute X + Add X A for all A in X + - X Drop XY A if X A Use FD of projected attributes
25
FarkasCSCE 52025 Tricks Do not compute closure of empty set of the set of all attributes If X + = all attributes, do not compute closure of the superset of X
26
FarkasCSCE 52026 Example ABC with A B, B C and projection on AC: A + = ABC, yields A B and A C B + = BC, yields B C C + = C, yields nothing BC + = BC, yields nothing Resulting FDs: A B, A C, B C Projection AC: A C
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.