Normalization Normalization: Databases 2009 Databases 2009
Normalization Normalization: Databases 2009 Databases 2009
Normalization
Michael I. Schwartzbach
Computer Science, University of Aarhus
Database Anomalies
Redundancy anomaly
• information is repeated unnecessarily
Update anomaly
• updating a row causes inconsistent information
Deletion anomaly
• deleting a row causes too much information to
disappear
Normalization 2
Redundancy Anomaly
MeetingsOwners
meetid what date slot userid name group office
Normalization 3
Update Anomaly
MeetingsOwners
meetid what date slot userid name group office
Normalization 4
Deletion Anomaly
MeetingsOwners
meetid what date slot userid name group office
Normalization 5
Decomposition
Owner
userid name group office
Normalization 6
Keys
Normalization 7
Superkeys
Normalization 8
Lossless Decomposition
Normalization 10
Dependencies Cause Anomalies
MeetingsOwners
meetid what date slot userid name group office
userid → name
userid → group
userid → office
Normalization 11
Recognizing Dependencies
Normalization 12
Obvious Dependencies
a1,...,an → ai
for any set of attributes a1,...,an
a1,...,an → b
for any b when a1,...,an is a superkey
Normalization 13
BCNF
Normalization 14
Nonreducible Functional Dependencies
A functional dependency:
a1,...,an → b
is nonreducible if
a1,...,ai-1,ai+1,...an → b
is not a functional dependency for any i
Normalization 15
BCNF Normalization (1/3)
Normalization 16
BCNF Normalization (2/3)
Decompose R into:
R1 = πa ,...,a ,b ,...,b (R)
1 n 1 k
Normalization 17
BCNF Normalization (3/3)
Normalization 18
Inferring Dependencies
Normalization 19
Complete Inference Rules
If A1,...,An → B then
A1,...,An,C → B
Exams
studentid date time vip room
20080001 2008-10-15 09:00 mis Turing-230
20080002 2008-10-15 09:30 mis Turing-230
20080001 2008-10-16 12:30 amoeller Turing-230
20080003 2008-10-16 10:30 eernst Ada-017
20080001 2008-10-17 11:00 eernst Ada-017
Normalization 22
BCNF Example (2/3)
Normalization 23
BCNF Example (3/3)
Exams
studentid date time vip
20080001 2008-10-15 09:00 mis
20080002 2008-10-15 09:30 mis
20080001 2008-10-16 12:30 amoeller
20080003 2008-10-16 10:30 eernst
20080001 2008-10-16 11:00 eernst
Rooms
date vip room
2008-10-15 mis Turing-230
Normalization 24
Other Normal Forms
Speeds up SELECT
Slows down INSERT, UPDATE, DELETE
Normalization 26