Functional Dependencies - Temple CIS

Temple University – CIS Dept.
CIS331– Principles of Database
Systems
V. Megalooikonomou
Functional Dependencies
(based on notes by Silberchatz,Korth, and Sudarshan and notes by C.
Faloutsos at CMU)
General Overview

Formal query languages


Commercial query languages





rel algebra and calculi
SQL
QBE, (QUEL)
Integrity constraints
Functional Dependencies
Normalization - ‘good’ DB design
Overview




Domain; Ref. Integrity constraints
Assertions and Triggers
Security
Functional dependencies




why
definition
Armstrong’s “axioms”
closure and cover
Functional dependencies

motivation: ‘good’ tables
takes1 (ssn, c-id, grade, name, address)
‘good’ or ‘bad’?
Functional dependencies
takes1 (ssn, c-id, grade, name, address)
Ssn c-id Grade Name
Address
123 413
A
smith Main
123 415
B
smith Main
123 211
A
smith Main
Functional dependencies
‘Bad’ - why?
Ssn c-id Grade Name
Address
123 413
A
smith Main
123 415
B
smith Main
123 211
A
smith Main
Functional Dependencies

Redundancy




space
inconsistencies
insertion/deletion anomalies (later…)
What caused the problem?
Functional dependencies


… ‘name’ depends on ‘ssn’
define ‘depends’
Ssn c-id Grade Name
Address
123 413
A
smith Main
123 415
B
smith Main
123 211
A
smith Main
Functional dependencies
Definition: a  b
‘a’ functionally determines ‘b’
Ssn c-id Grade Name
Address
123 413
A
smith Main
123 415
B
smith Main
123 211
A
smith Main
Functional dependencies
Informally: ‘if you know ‘a’, there is only
one ‘b’ to match’
Ssn c-id Grade Name
Address
123 413
A
smith Main
123 415
B
smith Main
123 211
A
smith Main
Functional dependencies
formally:
X Y
 (t1[ x]  t 2[ x]  t1[ y]  t 2[ y])
if two tuples agree on the ‘X’ attribute,
they *must* agree on the ‘Y’ attribute, too
(e.g., if ssn is the same, so should address)
… a functional dependency is a generalization
of the notion of a key
Functional dependencies


‘X’, ‘Y’ can be sets of attributes
other examples??
Ssn c-id Grade Name
Address
123 413
A
smith Main
123 415
B
smith Main
123 211
A
smith Main
Functional dependencies


ssn -> name, address
ssn, c-id -> grade
Ssn c-id Grade Name
Address
123 413
A
smith Main
123 415
B
smith Main
123 211
A
smith Main
Functional dependencies
K is a superkey for relation R iff K -> R
K is a candidate key for relation R iff:
K -> R
for no a  K, a -> R
Functional dependencies
Closure of a set of FD: all implied FDs –
e.g.:
ssn -> name, address
ssn, c-id -> grade
imply
ssn, c-id -> grade, name, address
ssn, c-id -> ssn
FDs - Armstrong’s axioms
Closure of a set of FD: all implied FDs –
e.g.:
ssn -> name, address
ssn, c-id -> grade
how to find all the implied ones,
systematically?
FDs - Armstrong’s axioms
“Armstrong’s axioms” guarantee
soundness and completeness:
Y  X  X Y
 Reflexivity:
e.g., ssn, name -> ssn
X  Y  XW  YW
 Augmentation
e.g., ssn->name then ssn,grade->
ssn,grade
FDs - Armstrong’s axioms

Transitivity
X Y
 X Z
Y Z 
ssn->address
address-> county-tax-rate
THEN:
ssn-> county-tax-rate
FDs - Armstrong’s axioms
Reflexivity:
Y  X  X Y
Augmentation:
X  Y  XW  YW
Transitivity:
X Y
 X Z
Y Z 
‘sound’ and ‘complete’
FDs – finding the closure F+
F+ = F
repeat
for each functional dependency f in F+
apply reflexivity and augmentation rules on f
add the resulting functional dependencies to F+
for each pair of functional dependencies f1and f2 in F+
if f1 and f2 can be combined using transitivity
then add the resulting functional dependency to F+
until F+ does not change any further

We can further simplify manual computation of F+ by
using the following additional rules 
FDs - Armstrong’s axioms
Additional rules:

Union
X Y 
  X  YZ
X  Z
X Y 

X  Z

Decomposition

X Y 
Pseudo-transitivity
  XW  Z
YW  Z 
X  YZ 
FDs - Armstrong’s axioms
Prove ‘Union’ from the three axioms:
X Y  ?
  X  YZ
X  Z
FDs - Armstrong’s axioms
Prove ‘Union’ from the three axioms:
X Y
(1) 

X  Z (2)
(1)  augm. w / Z  XZ  YZ (3)
(2)  augm. w / X  XX  XZ (4)
but XX is X ; thus
(3)  (4) and transitivity  X  YZ
FDs - Armstrong’s axioms
Prove Pseudo-transitivity:
Y  X  X Y
X  Y  XW  YW
X Y
 X Z
Y Z 
X Y  ?
  XW  Z
YW  Z 
FDs - Armstrong’s axioms
Prove Decomposition
Y  X  X Y
?
X  Y  XW  YW
X Y
 X Z
Y Z 
X  YZ 
X Y 

X  Z
FDs - Closure F+
Given a set F of FD (on a schema)
F+ is the set of all implied FD.
E.g.,
takes(ssn, c-id, grade, name, address)
ssn, c-id -> grade
F
ssn-> name, address
}
FDs - Closure F+
ssn, c-id -> grade
ssn-> name, address
ssn-> ssn
ssn, c-id-> address
c-id, address-> c-id
...
F+
FDs - Closure F+
R=(A,B,C,G,H,I)
F= { A->B
A->C
CG->H
CG->I
B->H}
Some members of F+:
A->H
AG->I
CG->HI
FDs - Closure A+
Given a set F of FD (on a schema)
A+ is the set of all attributes determined by A:
takes(ssn, c-id, grade, name, address)
ssn, c-id -> grade
F
ssn-> name, address
}
{ssn}+ =??
FDs - Closure A+
takes(ssn, c-id, grade, name, address)
ssn, c-id -> grade
F
ssn-> name, address
}
{ssn}+ ={ssn,
name, address }
FDs - Closure A+
takes(ssn, c-id, grade, name, address)
ssn, c-id -> grade
F
ssn-> name, address
}
{c-id}+ = ??
FDs - Closure A+
takes(ssn, c-id, grade, name, address)
ssn, c-id -> grade
F
ssn-> name, address
}
{c-id, ssn}+ = ??
FDs - Closure A+
if A+ = {all attributes of table}
then ‘A’ is a candidate key
FDs - Closure A+

Algorithm to compute a+, the closure of a under F
result := a;
while (changes to result) do
for each    in F do
begin
if   result then result := result  
end
FDs - Closure A+ (example)



R = (A, B, C, G, H, I)
F = {A  B, A  C, CG  H, CG  I, B  H}
(AG)+
1. result = AG
2. result = ABCG (A  C and A  B)
3. result = ABCGH(CG  H and CG  AGBC)
4. result = ABCGHI
(CG  I and CG  AGBCH)

Is AG a candidate key?
1.
Is AG a super key?
1.
2.
Does AG  R?
Is any subset of AG a superkey?
1.
2.
Does A+  R?
Does G+  R?
FDs - A+ closure
Diagrams
AB->C
A->BC
B->C
A->B
(1)
(2)
(3)
(4)
A
B
C
FDs - ‘canonical cover’ Fc
Given a set F of FD (on a schema)
Fc is a minimal set of equivalent FD. E.g.,
takes(ssn, c-id, grade, name, address)
ssn, c-id -> grade
ssn-> name, address
F
ssn,name-> name, address
ssn, c-id-> grade, name
FDs - ‘canonical cover’ Fc
Fc
ssn, c-id -> grade
ssn-> name, address
ssn,name-> name, address
ssn, c-id-> grade, name
F
FDs - ‘canonical cover’ Fc



why do we need it?
define it properly
compute it efficiently
FDs - ‘canonical cover’ Fc

why do we need it?



easier to compute candidate keys
define it properly
compute it efficiently
FDs - ‘canonical cover’ Fc

define it properly - three properties



every FD a->b has no extraneous
attributes on the RHS
same for the LHS
all LHS parts are unique
FDs - ‘canonical cover’ Fc
‘extraneous’ attribute:


if the closure is the same, before and after
its elimination
or if F-before implies F-after and vice-versa
FDs - ‘canonical cover’ Fc
ssn, c-id -> grade
ssn-> name, address
ssn,name-> name, address
ssn, c-id-> grade, name
F
FDs - ‘canonical cover’ Fc



Algorithm:
examine each FD; drop extraneous LHS
or RHS attributes
merge FDs with same LHS
repeat until no change
FDs - ‘canonical cover’ Fc
Trace
AB->C
A->BC
B->C
A->B
algo for
(1)
(2)
(3)
(4)
FDs - ‘canonical cover’ Fc
Trace algo for
AB->C (1)
A->BC (2)
B->C
(3)
A->B
(4)
(4) and (2) merge:
AB->C (1)
A->BC (2)
B->C (3)
FDs - ‘canonical cover’ Fc
AB->C (1)
A->BC (2)
B->C (3)
in (2): ‘C’ is extr.
AB->C (1)
A->B (2’)
B->C (3)
FDs - ‘canonical cover’ Fc
AB->C (1)
A->B (2’)
B->C (3)
in (1): ‘A’ is extr.
B->C (1’)
A->B (2’)
B->C (3)
FDs - ‘canonical cover’ Fc
B->C (1’)
A->B (2’)
B->C (3)
(1’) and (3) merge
A->B
B->C
(2’)
(3)
nothing is extraneous:
‘canonical cover’
FDs - ‘canonical cover’ Fc
BEFORE
AB->C (1)
A->BC (2)
B->C (3)
A->B (4)
AFTER
A->B
B->C
(2’)
(3)
Overview - conclusions



Domain; Ref. Integrity constraints
Assertions and Triggers
Functional dependencies




why
definition
Armstrong’s “axioms”
closure and cover