Note: Click the
(plus icon) to show more details. Click the
(minus icon) to hide details.
On this Page
Normalization is a technique, or discipline, applied to the design of a database. If you
are designing a database, you should normalize your databases to the third normal form.
If you use normalized databases, understanding how they are structured can help you query
or report against that database.
Top of page
- Normalization offers many benefits for developers and users:
- Flexibility: Normalization allows complex reporting and queries.
If you can get the data into the system correctly, then getting
it back out is not a problem. You will find business activities
change more than business information. Storing the data flexibly
facilitates a fluid business environment.
- Expandability: Adding new fields to a normalized database doesn't
create a lot of problems.
- Integrity: Normalization allows you to maintain a greater degree of data
consistency and prevent certain cases of data loss.
- Efficiency: Normalization can give you hard-disk space savings. The less
data that must be managed, then the faster a database can operate.
- Performance: The fastest speeds are obtained by planning. The initial
design will impact performance more than remedial tuning, so make sure your
blueprint is correct up front.
- RDMS's

(Relational Database Management System, commonly called a "relational database."
Relational databases are not necessarily normalized, but must be designed that
way by their designers.) are the de facto standard for databases.
There are many vendors, many products, and multiple platforms running relational databases.
Therefore, if you are building or modifying a relational database, it is important
that your work be normalized. Pre-built database designs (e.g., PeopleSoft applications,
Oracle applications, Kronos, etc.) are delivered normalized, so power-users and
administrators for these should be well versed in normalization.
- Most relational databases now offer standardized access via SQL

(Structured Query Language is a non-procedural language used to retrieve, store, or
modify database information. The example SQL statements in this tutorial
are the Oracle "flavor.") , which allows SQL programmers access to a larger
array of database products, portability between products, lower training costs,
access to a broader range of tools, and is a marketable job skill. As a higher level
language, SQL offers more power for less code.
Top of page
- Terms: We will define the terms 3NF (third normal form), ER (entity relationship),
ERD (entity relationship diagram), DD (data dictionary), and Triggers.
- Techniques: You will learn to read an ERD, create and ERD, and migrate a sample,
unnormalized database, to the third normal form. This tutorial focuses on the practical
aspects of normalization. Therefore, it doesn't discuss the (primarily) theoretical
fourth or fifth normal forms. Also, we ignore the mathematical theory upon which
relational databases were designed, and instead focus on what vendors have actually
implemented.
When this material was originally taught in a classroom setting, the course took
approximately two hours. This included two breaks, hands-on exercises, and a Q&A session.
The audiences also included a good proportion of students without any technical background.
Top of page
Copyright © 1995 Craig Edward Given