Data Normalization Simplified{2}


After last week’s lecture, I decided to supplement my dull understanding of data normalization through further readings on this topic. Data normalization is most important when working with transactional websites because data is constantly being modified by the front-end users.   Data normalization helps to reduce duplicates and create useful tables. In “Why you need Database Normalization” Michelle A. Poolet summarizes the process in which data is normalized. The article talks about three levels of normalization: First Normal Form, Second Normal Form, and Third Normal Form.  If you want a “slow, inaccurate and inefficient database” then this information its not applicable to you.  It is important to understand the business rules before you can start this process.

In the first normal form, data must be atomic meaning a single value for each attribute.  For example an Address consist of multiple attributes such as City, State, and Zip. Each of these attributes should be represented in a different column. Now to get our database in the second normal form we must satisfy the  full functional dependency condition. That basically means that if an attribute is not listed as a primary key it must rely on a primary key. The article states that a simple way of satisfying this condition is to ask for each non-primary key attribute  “What determines that particular attribute?”(Article Example: What determines the CompanyName ?). The last level of normalization involves searching for transitional dependencies. The third normal form requires us to to see if a non-key attribute relies on another non-key attribute. I included a gallery that the article used to illustrate these examples. In the first picture you see that address is listed as one column, although it has many components. Recall that for a table to be in the first normal form- all attributes must be atomic. In the second picture you will notice that table has been decomposed and address now consist of several columns.

 

This article summarized the different levels in data normalization and also presented some useful tips at each stage during this process. After reading this article, my understanding of data normalization has increased tremendously. The article explained everything we went over in class. For example, in class we talked about transitional types and full functional dependencies.  The pictures in the article also gave me a visual on what each stage in the normalization process should look like.

 

SQL by Design: Why You Need Database Normalization. (n.d.). SQL Server Pro | Microsoft SQL Server Information & Tech Resources. Retrieved October 22, 2012, from http://www.sqlmag.com/content1/topic/sql-by-design-why-you-need-database-normalization/catpath/performance