Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mark Kelly
McKinnon Secondary College
Vceit.com
Based on work by Robert Timmer-Arends
Thanks
This example is based on Relational
Databases a simplified account by Robert
Timmer-Arends
Is it 1NF?
Is it 2NF?
Step 1
Step 2
Step 3
Step 3
Step 4 - relationships
STUDENT TABLE (key = StudentID)
Step 4 - cardinality
STUDENT TABLE (key = StudentID)
Step 4 - cardinality
STUDENT TABLE (key = StudentID)
1
SUBJECTS TABLE (key = Subject)
1
Step 4 - cardinality
STUDENT TABLE (key = StudentID)
1
SUBJECTS TABLE (key = Subject)
Step 4 - cardinality
STUDENT TABLE (key = StudentID)
1
SUBJECTS TABLE (key = Subject)
A 2NF check
STUDENT TABLE (key = StudentID)
1
SUBJECTS TABLE (key = Subject)
SubjectCost is only
dependent on the
primary key,
Subject
A 2NF check
STUDENT TABLE (key = StudentID)
1
SUBJECTS TABLE (key = Subject)
A 2NF check
STUDENT TABLE (key = StudentID)
So it is
2NF!
But is it 3NF?
RESULTS TABLE (key = StudentID+Subject)
A 3NF check
STUDENT TABLE (key = StudentID)
Oh oh
8
What?
8
A 3NF check
STUDENT TABLE (key = StudentID)
HouseName is
dependent on both
StudentID +
HouseColour
8
A 3NF check
STUDENT TABLE (key = StudentID)
Or HouseColour is
dependent on both
StudentID +
HouseName
8
A 3NF check
STUDENT TABLE (key = StudentID)
A 3NF check
STUDENT TABLE (key = StudentID)
A 3NF check
STUDENT TABLE (key = StudentID)
WHAT DO
WE DO?
A 3NF fix
A 3NF fix
A 3NF win!
1
1
SUBJECTS TABLE (key = Subject)
RESULTS TABLE (key =
StudentID+Subject)
Or
The Reveal
Before
After
8
1
8
1
SUBJECTS TABLE (key = Subject)
The end
Thanks to Robert Timmer-Arends for the
scenario and staging of the normalisation
Mark Kelly
Vceit.com