Put simply, normalization is an attempt to make sure you do not destroy true data or create false data in your database. Errors are avoided by representing a fact in the database one way, one time, and in one place. Duplicate data is a problem as old as data processing. Efficient and accurate data processing relies on the minimizing redundant data and maximizing data integrity. Normalization and the Normal Forms (NF) are efforts to achieve these two core objectives of data processing. This article will examine the concept of normalization in-depth.
This is only an introduction to the subject of normalization. The topic is extensive. For those of you who are developing databases on a day to day basis, knowing how to formally normalize a table can save large amounts of time in the long run. Being able to determine what level of normalization a database needs and designing to that level of normalization can be difficult in larger applications and will often have many possible solutions. Education and experience are the tools you will need to design efficient databases with minimal (or, in a dream, no) anomalies. I hope this introduction to normalization is helpful to the readers, and I intend to publish a future article covering denormalization and case studies of some database and the way in which they were normalized.