Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Database (http://www.go4expert.com/articles/database/)
-   -   Database Normalization (http://www.go4expert.com/articles/database-normalization-t299/)

pradeep 10May2005 11:28

Database Normalization
 
If you've been working with databases for a while, chances are you've heard the term normalization. Perhaps someone's asked you "Is that database normalized?" or "Is that in BCNF?" All too often, the reply is "Yeah." Normalization is often brushed aside as a luxury that only academics have time for. However, knowing the principles of normalization and applying them to your daily database design tasks really isn't all that complicated and it could drastically improve the performance of your DBMS.

In this article, we'll introduce the concept of normalization and take a brief look at the most common normal forms. Future articles will provide in-depth explorations of the normalization process.

So, what is normalization? Basically, it's the process of efficiently organizing data in a database.

There are two goals of the normalization process: eliminate redundant data (for example, storing the same data in more than one table) and ensure data dependencies make sense (only storing related data in a table). Both of these are worthy goals as they reduce the amount of space a database consumes and ensure that data is logically stored.

The database community has developed a series of guidelines for ensuring that databases are normalized. These are referred to as normal forms and are numbered from one (the lowest form of normalization, referred to as first normal form or 1NF) through five (fifth normal form or 5NF). In practical applications, you'll often see 1NF, 2NF, and 3NF along with the occasional 4NF. Fifth normal form is very rarely seen and won't be discussed in this article.

Before we begin our discussion of the normal forms, it's important to point out that they are guidelines and guidelines only. Occasionally, it becomes necessary to stray from them to meet practical business requirements. However, when variations take place, it's extremely important to evaluate any possible ramifications they could have on your system and account for possible inconsistencies. That said, let's explore the normal forms.

First normal form (1NF) sets the very basic rules for an organized database:
Eliminate duplicative columns from the same table.
Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).
Second normal form (2NF) further addresses the concept of removing duplicative data:
Remove subsets of data that apply to multiple rows of a table and place them in separate tables.
Create relationships between these new tables and their predecessors through the use of foreign keys.
Third normal form (3NF) goes one large step further:
Remove columns that are not dependent upon the primary key.
Finally, fourth normal form (4NF) has one requirement:
A relation is in 4NF if it has no multi-valued dependencies.
Remember, these normalization guidelines are cumulative. For a database to be in 2NF, it must first fulfill all the criteria of a 1NF database.

shabbir 10May2005 14:28

Re: Database Normalization
 
I must say that its not always that repetitive columns are store in a different tables. Here is a very practical example of the same

If you have some user/employee/student information table then you have the city and zip stored. Now if you look at the table in a very strict normal forms way then you will realize that many city have the same codes and so what can be done is we can have a seperate table for zip code and that can be the perfect normalization.

But from the practical point of view that is not done and we denormalize so that the information stored is in efficient manner as well as much more easily fetchable. The reason behind denormalization is to avoid the joins which are much complex and time consuming process.

prashanthpolam 7Mar2006 13:30

Re: Database Normalization
 
Normalization is a process or removing the data redendacy to identify a value uniquely in a table.
The process of implementing or rules to be followed to implement in a normlization is called normal rules or normal forms. there are 5 types.

1NF: A table can be said to be 1NF by identifying the non-key attibute is dependt up on no-key attirbute and identify the colum or attibute which produces more than one value.

Q: How to eliminate the values in an attribute having moe than one?
Ans: RDBMS provieds resources called cell values by the cell values we can eliminate an attirute containing more than one value. cell values are represented by ...line.
when we eliminate the full functional dependancy then we can sya that table is in 1NF.

2NF: A table can set to be in 2NF, if the tab le is already satify the 1NF and eliminating partial functional depency.

3NF: A Table can be said to be 3 NF if the table already satisfy 2NF and eliminate transitive depency.

4NF: A table can be said to be 4NF if the table is already said to be satisfy the 3NF

5NF: A table can said to be 5NF if it is already satify the 4NF and it has to satisfy the degree of reationship.
1. 1:1
2. 1:M or M:1
3. M: M

I think by reading all these u can easily understand the Normal forms

okay
bye
prashanth

shabbir 7Mar2006 20:32

Re: Database Normalization
 
Quote:

Originally Posted by prashanthpolam
4NF: A table can be said to be 4NF if the table is already said to be satisfy the 3NF

I could not get this one.

manbeer 27Oct2006 08:09

Re: Database Normalization
 
Quote:

Originally Posted by shabbir
I could not get this one.

hey can you explain functional dependency and transitive dependency??

pradeep 27Oct2006 10:14

Re: Database Normalization
 
Functional Dependency

Definition: A functional dependency occurs when one attribute in a relation uniquely determines another attribute. This can be written A -> B which would be the same as stating "B is functionally dependent upon A."
Examples: In a table listing employee characteristics including Social Security Number (SSN) and name, it can be said that name is functionally dependent upon SSN (or SSN -> name) because an employee's name can be uniquely determined from their SSN. However, the reverse statement (name -> SSN) is not true because more than one employee can have the same name but different SSNs.

Transitive Dependency

Definition: A type of functional dependency in which the value in a non-key field is determined by the value in another non-key field and that field is not a candidate key

manbeer 28Oct2006 07:21

Re: Database Normalization
 
Thanks Pradeep

Quote:

Originally Posted by pradeep
Functional Dependency

Definition: A functional dependency occurs when one attribute in a relation uniquely determines another attribute. This can be written A -> B which would be the same as stating "B is functionally dependent upon A."
Examples: In a table listing employee characteristics including Social Security Number (SSN) and name, it can be said that name is functionally dependent upon SSN (or SSN -> name) because an employee's name can be uniquely determined from their SSN. However, the reverse statement (name -> SSN) is not true because more than one employee can have the same name but different SSNs.

Transitive Dependency

Definition: A type of functional dependency in which the value in a non-key field is determined by the value in another non-key field and that field is not a candidate key


Govinda Rao 9Jan2007 19:38

Re: Database Normalization
 
Give a exact Defination to Instance?

shabbir 9Jan2007 20:30

Re: Database Normalization
 
Quote:

Originally Posted by Govinda Rao
Give a exact Defination to Instance?

:confused:

ranjithach 11Jul2007 14:27

Re: Database Normalization
 
hi
i want to know about what is the importance of data models ? how they are useful while designing any database;i want clear and easy of understanding .

Minty 30Oct2007 20:14

Re: Database Normalization
 
what do u do with tables having many to many relaionship.
because in the erd we make another table of containing the primary keys of both the tables.

its confussinnnn me how we change those tables in inf

vikas1234 11Sep2008 13:19

Re: Database Normalization
 
nice short tutorial on normalization ... I just would like to add that that too much normalization make lots of table so you should always go for optimal normalization ...

pradeep 11Sep2008 14:17

Re: Database Normalization
 
Very right said Vikas!

satyedra pal 20Apr2010 15:26

Re: Database Normalization
 
Normalization is the process of organizing data into tables in such a way that the results of using the database are always unambiguous or
the process of organizing data to minimize redundancy. Normalization divides a database into two or more tables and links relationships between the tables
Normalization is done in two step that puts data into tabular form by removing redundent data and then removes duplicated data from the relational tables.
In normalization we do:
Avoiding repetitive entries.
Increased speed and flexibility of queries.
Reducing required space of storage for data by removing redundent data.

It has following normal form:
1NF(Normal form)
2NF
2NF
3NF
BCNF
4NF
5NF

smithshn 6May2010 00:39

Re: Database Normalization
 
When data records are in large form then there is required normalization.
Normalization is a process of removing data which is repeated and filtering data to identify a value as uniquely in a table.
In RDBMS there is different method for normalization of the records which is shown as below:
(1) 1st Normal Form
(2) 2nd Normal Form
(3) 3rd Normal Form
(4) 4th Normal Form
(5) 5th Normal Form
(6) BCNF - Boyce Codd Normal Form- In this normal form you have follow the 32 rules of it.

seomanju 3Dec2010 16:40

Re: Database Normalization
 
Thanks for this detail.

seomanju 3Dec2010 16:42

Re: Database Normalization
 
Data models are the techniques to handle our databases.

sneha123 13Dec2010 16:30

Re: Database Normalization
 
Quote:

Originally Posted by pradeep (Post 5076)
Functional Dependency

Definition: A functional dependency occurs when one attribute in a relation uniquely determines another attribute. This can be written A -> B which would be the same as stating "B is functionally dependent upon A."
Examples: In a table listing employee characteristics including Social Security Number (SSN) and name, it can be said that name is functionally dependent upon SSN (or SSN -> name) because an employee's name can be uniquely determined from their SSN. However, the reverse statement (name -> SSN) is not true because more than one employee can have the same name but different SSNs.

Transitive Dependency

Definition: A type of functional dependency in which the value in a non-key field is determined by the value in another non-key field and that field is not a candidate key

Hello Pradeep,,,,sneha here,,its excellent job,,,,,Thanks lot for share with us,,,,,,,,,

samantha1230 28Mar2012 17:23

Re: Database Normalization
 
Thanks for letting me know about Normalization, I just heard this but now come to know what exactly it is.


All times are GMT +5.5. The time now is 02:36.