NORMALIZATION
NORMALIZATION
Normalization is the process for evaluating and correcting table
Normalization
structures to minimize data redundancies
/mnlinan
• Reduces data anomalies
Normalization
• Helps eliminate data redundancy
WHY NORMALIZE?
/mnlinan
• It must be in table format
Normalization Stages
• Repeating groups removed
FIRST NORMAL • Primary key (PK) identified
FORM (1NF)
/mnlinan
SECOND NORMAL FORM
(2NF) Normalization Stages
• It must be in the 1NF
• No partial dependencies
/mnlinan
THIRD NORMAL FORM
(3NF) Normalization Stages
• It must be in 2NF
• No transitive dependencies
/mnlinan
BOYCE-CODD NORMAL FORM
(BCNF) Normalization Stages
• Every determinant is a candidate key
• Special case of 3NF
/mnlinan
FOURTH NORMAL FORM
(4NF) Normalization Stages
• It must be in the 3NF
• No independent multivalued dependencies
/mnlinan
NOTE:
Normalization Stages
• 2NF is better than 1NF; 3NF is better than 2NF.
• For most business database design purposes, 3NF is as high as we
need to go in normalization process.
• Highest level of normalization is not always most desirable
/mnlinan
NORMALIZATION PROCESS
Normalization Process
• Each table represents a single subject
• No data item will be unnecessarily stored in more than one
table • All attributes in a table are dependent on the primary key
/mnlinan
CONVERSION TO FIRST
NORMAL FORM Normalization Process
Step 1: Eliminate the Repeating Groups
• Present data in tabular format. Each cell has single value and there
are no repeating groups
• Eliminate repeating groups. Eliminate nulls by making sure that
each repeating group attribute contains an appropriate data
value
/mnlinan
CONVERSION TO FIRST
NORMAL FORM Normalization Process
/mnlinan
CONVERSION TO FIRST
NORMAL FORM Normalization Process
Step 2: Identify the Primary Key
• Primary key must uniquely identify attribute value
• New key must be composed
/mnlinan
CONVERSION TO FIRST
NORMAL FORM Normalization Process
• Step 3: Identify All Dependencies
Dependencies can be depicted with help of a dependency diagram
/mnlinan
DEPENDENCY DIAGRAM
Normalization Process
• Depicts all dependencies found within given table structure •
Helpful in getting bird’s-eye view of all relationships among table’s
attributes
• Makes it less likely that will overlook an important dependency
/mnlinan
DEPENDENCY DIAGRAM
Normalization Process
/mnlinan
CONVERSION TO FIRST
NORMAL FORM Normalization Process
First normal form describes tabular format in which:
• All key attributes are defined
• There are no repeating groups in the table
• All attributes are dependent on primary key
• All relational tables satisfy 1NF requirements
/mnlinan
CONVERSION TO SECOND
NORMAL FORM Normalization Process
Step 1: Write Each Key Component on a Separate Line
• Write each key component on separate line, then write original
(composite) key on last line
• Each component will become key in new table
/mnlinan
CONVERSION TO SECOND
NORMAL FORM Normalization Process
Step 2: Assign Corresponding Dependent Attributes
• Determine those attributes that are dependent on other
attributes • At this point, most anomalies have been eliminated
/mnlinan
DEPENDENCY DIAGRAM
Normalization Process
/mnlinan
CONVERSION TO SECOND
NORMAL FORM Normalization Process
Table is in second normal form (2NF) when:
• It is in 1NF and
• It includes no partial dependencies: No attribute is dependent on
only portion of primary key
/mnlinan
CONVERSION TO THIRD
NORMAL FORM Normalization Process
Step 1: Identify Each New Determinant
• For every transitive dependency, write its determinant as PK for
new table
Determinant
• A determinant is any attribute whose value determines other
values within a row.
/mnlinan
CONVERSION TO THIRD
NORMAL FORM Normalization Process
Step 2: Identify the Dependent Attributes
• Identify attributes dependent on each determinant identified in Step
1 and identify dependency
• Name table to reflect its contents and function
/mnlinan
CONVERSION TO THIRD
NORMAL FORM Normalization Process
Step 3: Remove the Dependent Attributes from
Transitive Dependencies
• Eliminate all dependent attributes in transitive relationship(s) from
each of the tables that have such a transitive relationship
• Draw new dependency diagram to show all tables defined in Steps
1–3
• Check new tables as well as tables modified in Step 3 to make sure
that each table has determinant and that no table contains
inappropriate dependencies
/mnlinan
DEPENDENCY DIAGRAM
Normalization Process
/mnlinan
CONVERSION TO THIRD
NORMAL FORM Normalization Process
A table is in third normal form (3NF) when both of the following are
true:
• It is in 2NF
• It contains no transitive dependencies
/mnlinan
ISSUES TO ADDRESS IN ORDER TO
PRODUCE A GOOD NORMALIZED SET
OF TABLES
Normalization Process
• Evaluate PK Assignments
• Evaluate Naming Conventions
• Refine Attribute Atomicity
• Identify New Attributes
• Identify New Relationships
• Refine Primary Keys as Required for Data Granularity
• Maintain Historical Accuracy
• Evaluate Using Derived Attributes
/mnlinan