Download presentation
Presentation is loading. Please wait.
1
Functional Dependencies
2
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 Stanford Farkas CSCE 520
3
Database Design Goal: Anomalies: 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 Farkas CSCE 520
4
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 t1 and t2 are two tuples of r over R and t1[X]= t2[X] then t1[A]= t2[A] What is the relation between functional dependencies and primary keys? Farkas CSCE 520
5
Functional Dependency Example
Owner(Name, Phone) FD: Name Phone Dog(Name, Breed, Age, Weight) FD: Name, Breed Age FD: Name, Breed Weight Farkas CSCE 520
6
Example - FD Dog-Kennels(Name,Breed,Age,Weight,Date,Kennel)
Pepper G.S. 1 70 01/01/02 White Oak Buddy Mix 4 50 03/04/01 Little Creek 04/17/02 Panka Vizsla 12 40 02/14/02 Functional Dependencies: Name,Breed Age Name,Breed Weight Farkas CSCE 520
7
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! Farkas CSCE 520
8
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. Farkas CSCE 520
9
Trivial FD Given FD of the form A1,A2,…,AnB1,B2,…,Bk 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. Farkas CSCE 520
10
Keys and FD K is a (primary) key for a relation R if
K functionally determines all attributes in R 1 does not hold for any proper subset of K Superkey: 1 holds, 2 does not hold Farkas CSCE 520
11
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} Farkas CSCE 520
12
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 Farkas CSCE 520
13
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 Farkas CSCE 520
14
Closure of Attributes Let A1,A2,…,An be a set of attributes and S a set of FDs. The closure of A1,A2,…,An under S is the set of attributes B such that every relation that satisfies S also satisfies A1,A2,…,An B. Closure of attributes A1,A2,…,An is denoted as {A1,A2,…,An}+ Farkas CSCE 520
15
Algorithm – Attribute Closure
Let X = A1,A2,…,An Find B1,B2,…,Bk C such that B1,B2,…,Bk all in X but C is not in X Add C to X Repeat until no more attribute can be added to X X= {A1,A2,…,An}+ Farkas CSCE 520
16
Closures and Keys {A1,A2,…,An}+ is a set of all attributes of a relation if and only if A1,A2,…,An is a superkey for the relation. Farkas CSCE 520
17
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? Farkas CSCE 520
18
FD on Relation Relation schema design: which FDs hold on relation
Given: X1 A1, X2 A2, …, Xn An whether Y B must hold on relations satisfying X1 A1, X2 A2, …, Xn An Example: A B and B C, then A C must also hold Farkas CSCE 520
19
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. Farkas CSCE 520
20
Armstrong Axioms Reflexivity Augmentation Transitivity
If {A1,A2,…,Am} superset of {B1,B2,…,Bn} then A1,A2,…,Am B1,B2,…,Bn Augmentation If A1,A2,…,Am B1,B2,…,Bn then A1,A2,…,Am,C1,…,Ck B1,B2,…,Bn,C1,…,Ck Transitivity If A1,A2,…,Am B1,B2,…,Bn and B1,B2,…,Bn C1,C2,…,Ck then A1,A2,…,Am C1,C2,…,Ck Farkas CSCE 520
21
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+ . Farkas CSCE 520
22
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 Farkas CSCE 520
23
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 Farkas CSCE 520
24
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 Farkas CSCE 520
25
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 Farkas CSCE 520
26
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: AB, AC, BC Projection AC: A C Farkas CSCE 520
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.