Database Normalization

Overview As a database grows, it grows not only in size, but also complexity. One way to reduce complexity and minimize the size of the database is to reduce the amount of redundant data--for example, storing only a product number in a customer order instead of the full product name. This process, referred to as normalization, not only reduces database size and complexity, but can also be a great tool for reducing errors such as typos and misspellings as data is stored only once, instead of repeated multiple times. But how do you normalize a database? What types of data make good candidates for normalization? Is it sometimes better not to normalize? The links below can answer these questions and more.

General Information You can find a basic definition of “normalization” at the site ( For more information, read "Normalization" at W.J. Gilmore’s article “An Introduction to Database Normalization,” is an excellent introduction to database normalization, including descriptions of the rules of normalization, and detailed descriptions of important database terms. Several examples illustrating how these rules are used are also provided. At the end of the article, you'll find other resources, including a list of books and links. Database normalization does not have to be a confusing project. It can be an uncomplicated process if some fundamental rules are followed. Mike Chapple’s article, “Database Normalization Basics,” on, provides some basic guidelines that will make almost any database normalization project seem easy. For an excellent example of database normalization, visit Finally, be sure to read the database normalization tutorial found on this page, which includes normalization examples. Don’t miss Part 2 of this tutorial.

Additional Links Many database normalization articles can be accessed at this Normalization Web page. Normalization of a relational database is the main topic at: Finally, “Database Normalization Basics,” found on the Microsoft Product Support page, explains normalization terminology and provides a basic understanding of the normalization of relational databases.