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,…,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
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: AB, AC, BC
Projection AC: A C
CSCE 520
26
© Copyright 2026 Paperzz