?
Solved

Can anyone please explain Normalization?

Posted on 2014-01-30
4
Medium Priority
?
290 Views
Last Modified: 2014-02-04
I know this is basic, but normalization always confuses me.
I know the definitions for normalization.
Let  me say I have a
Company and Employee details like COMPANYNAME, COMPANYLOCATION,EMPLOYEEID,EMPLOYEEFIRSTNAME,EMPLOYEELASTNAME,DEPT,EMPLOYEEDEPT,EMPLOYEEID ........something like this.
Can any one please explain me how I can divide this in 1NF,2NF,3NF and 4NF.
0
Comment
Question by:RajG1978
4 Comments
 
LVL 16

Accepted Solution

by:
Surendra Nath earned 800 total points
ID: 39822670
ok, dividing this into normal form and explaining it can be done....
but this question is also better answered in here....

Before we go ahead for the explanation of normal forms here, I suggest you to go with the below web site which has a nice example related to the students

http://www.studytonight.com/dbms/database-normalization.php

check it out and let us know, if that does not serve your purpose of the question.
0
 
LVL 61

Assisted Solution

by:Kevin Cross
Kevin Cross earned 800 total points
ID: 39823008
It appears you know the theoretical definition but are seeking practical guidance.  With that in mind, think of normalization as the simplification of data.  The goal is to remove redundancy.  Do not store anything you can calculate from other data items.  For example, age is a function of birth date.  Volume, area, perimeter, et cetera are functions of length, width, and height.  Similarly, normalization seeks to reduce unnecessary repetition of lengthy data.  Instead of storing the same address for the 80 people in a company, you can save the address of the company once and reference the ID of the company/location on each employee or in an associative table.

Therefore, I would not get caught up in the normal forms.  In some practice, it may make sense to have some denormalization — or at least normalization at a lower normal form.  The key is to normalize data, so it fits business needs efficiently as well as effectively.

Hence, start with the entities.  In your case, you have companies, employees, departments, locations, et cetera.  Once you know the entities, think of the relationships.  If you put each entity in a table and carefully build relationships through associative tables or foreign keys, you will achieve sufficient normalization.

It also will force you to think through things like multiple locations per company, and other less obvious details about the entity relationships.

I am on my phone, so I trust my ramblings are translating well.

Anyway, I hope that helps some.

Best regards,

Kevin
0
 
LVL 15

Assisted Solution

by:JimFive
JimFive earned 400 total points
ID: 39824086
The idea of normalization is to remove redundancy in your data and make all of your data accessible via queries:
1NF:  Ensure that all data items contain only one value (no lists inside of columns).  Pull those items into their own table linked by the parent ID
2NF/3NF:  Ensure that all data in the table depends on the whole key.  In your example, the Employee information(depends on EmployeeID), Department information( on DeptID), and Company information are relatively independent and should be separated into distinct tables.  The difference between 2NF and 3NF is very subtle and has do with with whether the data is directly dependent or transitively dependent on the Candidate key.  The joke is that 2NF depends on "the whole key" and 3NF depends on "Nothing but the key"

Beyond 3NF is technical and often either trivial or not necessary.  One of them (I don't recall which one right now) requires that there be no NULL values.  Any column that could be null is extracted out into its own relation.  For practical purposes going beyond 3NF will either be unnecessary or will happen automatically as you need whatever feature you gain from it.

For your example, Extracting your data into tables for Company, Department, Employee and possibly location would easily put it into 3NF.
0
 

Author Closing Comment

by:RajG1978
ID: 39832978
Thanks a lot!!
0

Featured Post

What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Microsoft Access has a limit of 255 columns in a single table; SQL Server allows tables with over 255 columns, but reading that data is not necessarily simple.  The final solution for this task involved creating a custom text parser and then reading…
Here is how to restore SQL Server database to the point in time.  Follow the step by step approach to restore your database at a specific point in time and also understand its alternate approach.
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Via a live example, show how to shrink a transaction log file down to a reasonable size.

569 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question