SQL SERVER – Rules of Third Normal Form and Normalization Advantage – 3NF

I always ask question about Third Normal Form in interviews I take.

Q. What is Third Normal Form and what is its advantage?
A. Third Normal Form (3NF) is most preferable normal form in RDBMS. Normalization is the process of designing a data model to efficiently store data in a database. The rules of 3NF are mentioned here

  • Make a separate table for each set of related attributes, and give each table a primary key.
  • If an attribute depends on only part of a multi-valued key, remove it to a separate table
  • If attributes do not contribute to a description of the key, remove them to a separate table.

Normalization is very close to concept of object oriented schema’s and it stores one data at only one place by removing all the redundant data. It also helps to draw the schema easier. Normalization comes at the cost of performance.

Reference : Pinal Dave (https://blog.sqlauthority.com) , DataModel.org.

Data Warehousing, Database, DBA
Previous Post
SQLAuthority News – SQL Server Compact 3.5 Downloads and ReportViewer Visual Studio Download
Next Post
SQL SERVER – 2005 – List All Stored Procedure in Database

Related Posts

29 Comments. Leave new

  • Hi…
    i need to know my pending jobs for the day…
    can u give me some idea on this…

    pending means… jobs are scheduled to run for today, but not run for the day.. yet to run… on the day…!

    i tried a lot using sysjobschedules table.. but no clue…!

    regards,
    Raghavendra

    Reply
  • i ges its being kept hanging / waiting

    Reply
  • SQL Server Agent provides a new stored procedure for enumerating real-time job activity based on the current session.
    Performing the query sp_help_jobactivity reveals a list of all active SQL Server Agent jobs.

    This new stored procedure for enumerating real-time job activity obtains some data from the sysjobactivity table in msdb.
    The sysjobactivity table is where SQL Server Agent stores job status information for the current session and all previous sessions of SQL Server Agent.

    If the SQL Server Agent Service fails unexpectedly, users can determine which SQL Server Agent jobs were in the middle of being executed by looking that the sysjobactivity table for the previous session.

    Reply
  • Hi Pinal,

    Very well explained…

    Thanks and keep it up.

    -Surendra

    Reply
  • Hi Pinal,

    Can you please explain 3rd NF with example?

    Thanks & Regards

    Pravin Patel.

    Reply
  • hi sir,
    i m alws confus about normalization………

    plz explain with simple example

    Reply
  • Kindly Define 3rd Normal Form with two Example

    thanks
    sakendra kumar

    Reply
  • What are the different types of backup avaible in SQL SErver

    Reply
  • how many instance use in sql server 2000,2005,2008

    Reply
  • I have 98 lac row in a table. To fetch a query it takes too much time. give me some idea to improve the performance.
    here we have already used non-clustered index on required column and also repairing time to time.

    thanks

    Reply
    • to sakendra kumar.
      what u can do is

      1.limit the no of columns in ur select query

      2.check the fragmentation of indexes on that table
      and accordingly rebuild or reorganize.

      3.use recommendations from db tuning advisor.

      4. check he execution plan and find out to get ur results
      how many rows it is scanning

      Reply
  • Hi Pinal,

    Can you explain me the normalization process through an example?(All the normal forms 1NF, 2NF, 3NF, BCNF, 4NF, 5NF).

    Reply
  • i m beginner to sql server 2005
    so teach me job schedules concept one by one

    Please help me

    Reply
  • How can i know in which NF the tabe is?

    For example I have a table created like this:

    CREATE TABLE customers
    (
    cCustomer ID char(4) not null constraint pkCustomerID primary key,
    CCustName char(20) not null,
    vCustName varchar(20) not null,
    CAddress char(40) not null,
    CCity char(20) null,
    CState char(20) null,
    CPhone char(10) null,
    )

    Reply
  • Pinal Sir,
    i’m new to ur blog sir. Recently found u sir. It’s Very useful and helpful to us sir.
    And i’m a fresher for Sql.
    I need simple examples how to use Stored procedure and Trigger.

    Kindly Reply me sir..

    Reply
  • Hi,
    Can you please explain all normal forms with eaxmple?

    Reply
    • I also want examples.

      Pinal please give examples of each type of normalization.

      Thanks in advance.

      Reply
  • Hi Pinal,

    You have written very nice article.

    Thanks for sharing with us.

    Reply
  • Good One !

    Reply
  • please tell me
    is there any code review tool for sql?

    Reply
  • please tell me
    is there any code review tool for sql?

    Reply
  • vikas kumar pathak
    January 19, 2012 11:37 am

    hi

    I am not getting any use of BCNF. can u give me one example where BCNF is imlemented.

    thanks
    vikas

    Reply

Leave a Reply