Database Normalization

Discussion in 'Database' started by pradeep, May 10, 2005.

  1. pradeep

    pradeep Team Leader

    Joined:
    Apr 4, 2005
    Messages:
    1,645
    Likes Received:
    87
    Trophy Points:
    0
    Occupation:
    Programmer
    Location:
    Kolkata, India
    Home Page:
    http://blog.pradeep.net.in
    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.
     
  2. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,375
    Likes Received:
    388
    Trophy Points:
    83
    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.
     
    snisha217 likes this.
  3. prashanthpolam

    prashanthpolam New Member

    Joined:
    Mar 7, 2006
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    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
     
  4. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,375
    Likes Received:
    388
    Trophy Points:
    83
    I could not get this one.
     
  5. manbeer

    manbeer New Member

    Joined:
    Oct 27, 2006
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    hey can you explain functional dependency and transitive dependency??
     
  6. pradeep

    pradeep Team Leader

    Joined:
    Apr 4, 2005
    Messages:
    1,645
    Likes Received:
    87
    Trophy Points:
    0
    Occupation:
    Programmer
    Location:
    Kolkata, India
    Home Page:
    http://blog.pradeep.net.in
    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
     
  7. manbeer

    manbeer New Member

    Joined:
    Oct 27, 2006
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Thanks Pradeep

     
  8. Govinda Rao

    Govinda Rao New Member

    Joined:
    Jan 9, 2007
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    0
    Give a exact Defination to Instance?
     
  9. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,375
    Likes Received:
    388
    Trophy Points:
    83
    :confused:
     
  10. ranjithach

    ranjithach New Member

    Joined:
    Jul 5, 2007
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    0
    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 .
     
  11. Minty

    Minty New Member

    Joined:
    Oct 30, 2007
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    0
    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
     
  12. vikas1234

    vikas1234 New Member

    Joined:
    Aug 21, 2008
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    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 ...
     
  13. pradeep

    pradeep Team Leader

    Joined:
    Apr 4, 2005
    Messages:
    1,645
    Likes Received:
    87
    Trophy Points:
    0
    Occupation:
    Programmer
    Location:
    Kolkata, India
    Home Page:
    http://blog.pradeep.net.in
    Very right said Vikas!
     
  14. satyedra pal

    satyedra pal New Member

    Joined:
    Mar 26, 2010
    Messages:
    93
    Likes Received:
    1
    Trophy Points:
    0
    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
     
  15. smithshn

    smithshn New Member

    Joined:
    May 3, 2010
    Messages:
    7
    Likes Received:
    0
    Trophy Points:
    0
    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.
     
  16. seomanju

    seomanju Banned

    Joined:
    Nov 19, 2010
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    0
    Thanks for this detail.
     
  17. seomanju

    seomanju Banned

    Joined:
    Nov 19, 2010
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    0
    Data models are the techniques to handle our databases.
     
  18. sneha123

    sneha123 New Member

    Joined:
    Dec 8, 2010
    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    0
    Hello Pradeep,,,,sneha here,,its excellent job,,,,,Thanks lot for share with us,,,,,,,,,
     
  19. samantha1230

    samantha1230 Banned

    Joined:
    Mar 28, 2012
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    0
    Thanks for letting me know about Normalization, I just heard this but now come to know what exactly it is.
     
  20. sai hemanth

    sai hemanth New Member

    Joined:
    May 3, 2017
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    Gender:
    Male
    WHAT ARE THE SCHEMA REFINEMENT
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice