Lecture notes

Functional Dependencies
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
Farkas
CSCE 520
2
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
Farkas
CSCE 520
3
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
4
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
5
Example - FD
Dog-Kennels(Name,Breed,Age,Weight,Date,Kennel)
Name
Breed
Age
Weight
Date
Pepper
G.S.
1
70
01/01/02 White Oak
Buddy
Mix
4
50
03/04/01 Little Creek
Pepper
G.S.
1
70
04/17/02 Little Creek
Panka
Vizsla
12
40
02/14/02 White Oak
Functional Dependencies:
Farkas
Kennel
Name,Breed  Age
Name,Breed  Weight
CSCE 520
6
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
7
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
8
Trivial FD
Given FD of the form
A1,A2,…,AnB1,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
9
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
Farkas
CSCE 520
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
Armstrong Axioms
 Reflexivity
 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
20
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
21
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
22
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
23
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
24
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
25
Example
 ABC with A  B, B  C and
projection on AC:






Farkas
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
CSCE 520
26