Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Database Normalization: I'm Not Weird and Neither is My Database!
Transcript of Database Normalization: I'm Not Weird and Neither is My Database!
I didn't know I had any
critters in my database!
What kinds are there
and what damage can they do?
You may not be normal, but here's why your database should be normalized:
Get rid of redundancies
- repetition breeds data errors and makes your database bigger
- get rid of insertion, update, and deletion anomalies that can cause errors
I'm Not Weird and Neither
is My Database!
This is when you can't
enter data because some
other data is missing.
(Ex. - Hey, I can't add your address to the
system until you create an account.)
(Ex. - Company that has two different spellings
of your name because there are multiple tables
with copies of your data.)
An instance where the
same information must
be updated in several
Where deleting one piece
of data inadvertently
causes other data
to be lost
(Ex. - You mean I can't delete the patient
records but still keep their emails?
So What Exactly is a Norm Form?
A normal form, or "norm form" is a set of rules designed to reduce or eliminate various anomalies.
The main norm forms we need to worry about are the first three.
An entity is in First Normal Form if:
Every attribute represents only 1 value
There are no repeating groups or arrays
Each row is unique
First Norm Form
Removes all repeating
groups or arrays
(Yes, There ARE more than 3 norm forms.)
the 2NL -->
An entity is in Second Normal Form if:
Each field is "functionally dependent"
on the ENTIRE KEY (not partial key)
Each entity is only about 1 thing
It fulfills 1NF
Second Norm Form
1NF AND all members are
dependent on the key,
not each other
the 3NL -->
An entity is in Third Normal Form if:
There are no transient dependencies (where 1
attribute depends on another attribute for
its meaning and not the key)
It fulfills 2NF
Third Norm Form
2NF AND removes "transient dependencies"
2NF: Each of the fields that isn't a part of the key
is functionally dependent on the entire key.
CHECK IT OUT: If a single-field key is
used, a 1NF table is ALREADY in 2NF
3NF: Transient dependencies need to go find their own homes in other tables or entities where they belong.
Created by Misty Melody Kitzul
The Million Dollar 3NF Question:
Are any of the non-key columns dependent
on any other non-key columns?
(Now what do we do?)
Functional Dependencies: Groups of
related attributes that form
subthemes within an entity.
Re: They're like subplots
that detract from the
main plot of a movie.
First Norm Form Example
Second Norm Form Example
Third Norm Form Example
First Norm Form (1NF):
Happier Data in 1NF,
But there's more to do -->
1 value! -->
<-- No repeating lists or arrays allowed!
Second Norm Form (2NF):
LOOK OUT! -->
There's two themes in this entity - tutor sessions and instructors. Each entity needs to be about one topic.
sub-theme into its own entity gets rid of functional dependencies
But wait, there's more! -->
Congratulations! You're Normal!
Third Norm Form (3NF):
LOOK OUT! -->
("Thar be dragons, arrh!")
data here that
does not depend on
the key for its meaning!
Removing non-key dependent data gets rid of transient dependencies
Repetition and anomalies can cause database errors which must be squashed by the normalization process!
Insertion anomalies - Can't insert data before other data
Update anomalies - Duplicated data in multiple spots
Deletion anomalies - Deleting one item deletes another
The first three norm forms help to remove potential errors.
1NF: Remove repeating lists and arrays
2NF: Remove functional dependencies - get the sub-themes to their own table - "One Table, One Theme"
3NF: Remove transient dependencies - anything that does not depend on the key needs to find its own home in another entity/table