Itec 65 - Advanced Database Management System Normalization
Itec 65 - Advanced Database Management System Normalization
Normalization
Usually involves dividing large table into smaller (less redundant) tables and defining
relationships between them.
Develop by E.F. Codd in 1972.
1NF
Vocabulary
Primary Key – unique identifier
Non-Key Attributes – children of the primary key
Determinant – attribute to find out values assigned to other attributes in the same row
Dependent – look to the primary key for reference
Determinant Dependents
b,c -> A
Primary Key A Non-Key b Non-Key c
Unique Attribute A Attribute b Attribute c
Unique Attribute A Attribute b Attribute c
Requirements
Identify a unique primary key
Have just one set of values per column
Have just one set values per cell
Eliminate repeating data
Hints
-in almost all cases when a table is normalized, it is broken into more than one table
-it is very important to identify the relationships between the parent and child tables
Un-Normalize
Normalize
AssignmentID EmployeeID First_Name Last_Name BeginDate
2 101 Jef Hinkle 2011-01-15
4 101 Jef Hinkle 2011-01-16
6 101 Jef Hinkle 2011-01-17
Another Example
ClientRental
Draw Here
ITEC 65 - ADVANCED DATABASE MANAGEMENT SYSTEM
2NF
Vocabulary
Composite Key – made of > 1 column
Partial Dependency – non-key that depends on part of the Composite Key
Requirements
Is in 1NF
Eliminate Partial Dependency
Non-Key columns must depend on all keys of the composite key
Hints
-If the Primary Key is made up of a single column, it is guaranteed to be in 2NF
-If a non-key column is related to just one of the columns in the composite key, it partially depends on
the whole key and needs to be in separate table.
Draw Here
ITEC 65 - ADVANCED DATABASE MANAGEMENT SYSTEM
3NF
Vocabulary
Composite Primary Key – made of > 1 column
Transitive Relationship – non-key is dependent to another non-key
Requirements
Is in 1NF
Is in 2NF
Eliminate transitive dependencies
Hints
-If a non-key attribute directly depends on another non-key attribute, then there is a transitive
dependency
-If attributes do not contribute to a description of the key, remove them to a separate table
Draw Here
Summary