Skip to main content

Third Normal Form (3NF)

.

Third Normal Form (3NF)

A table (relation is said to be in 3NF if and only if.
1. It is in 2NF
2. No non-prime attribute is transitively dependent on primary key.
                                         OR
Transitively functional dependency of non-prime attribute on any supper key should be removed.

In other words 3NF can be explain as a table is in 3NF if it is in 2NF  and for each functional dependency X - Y at list one of the following condition holds.
  • X is a supper key of table.
  • Y is a prime attribute of table.
An attribute that is a path of the candidate key is known as prime attributes.

Student Detail

Supper key : {S_id}, {S_id,S_Name},{S_id,S_Name,Age}
Candidate key : {S_id}
Non-Prime attribute : All attributes except S_id.

Functional dependency of above table are:
S_id : S_name
S_id : Age
S_id : Gender
S_id : Hostel-Name
Gender : Hostel-Name

    Thus in above relation contains transitive dependency i.e. S_id ->Gender, Geder->Hostel_Name & S_id->Hostel_Name. This violeds the second rule of 3NF. 

i.e. "No non-prime attribute is transitively dependent on primary key.

We can convert it into 3NF by decomposing the relation as bellow.







Comments

Popular posts from this blog

Important Questions of Data Structure and Algorithm (DSA)

 . 1. What is Data structure? Explain different operations to be performed on data structure. 2. Define stack as ADT. Convert P+Q-(R*S/T+U) - V*W into infix expression to postfix. 3. Define Queue. Explain its type with example. 4.  Difference between stack and Queue. 5. Difference between Linear Queue and circular Queue. 6. Write an algorithm to enqueue and dequeue data element in a circular queue.                              7. Define Linked List. Explain its type. How does double linked List is different from circular linked   List. 8. What is recursion and recursive function? write a recursive function to compute Fibonacci number. 9. What is an AVL tree ? Create an  AVL tree from the following data:      18, 12, 14, 8, 85, 25, 31, 24, 27 10. Define B-tree? How to insertion and deletions of elements can be done in a B-tree. 11. Create an B-tree from the following Data:  ...

Introduction of Computer

.  A computer is an electronic device. It take input and store the data in memory and performing the function to produce accurate result in output device. It is used to type document, send email, play game, browse the web and entertainment.   Characteristics of computer  1 . High speed  Computer is very fast device. It is capable of performing calculation of very large amount of data. The computer has unit of speed in microsecond, nanosecond and even in picosecond. The computer is capable of performing millions of tasks per second. 2. Accuracy  The computer produces highly accurate and reliable result.  It does not make any kind of mistake in calculating. The calculation are 100% error free. The computers perform accurate 'n' number of times. 3. Storage capability A computer has much more storage capability. It can store large amount of data. It can store any type of data such as image, video, text document, audio and many more. 4. Diligence Diligence ...

Introduce Linux, UNIX and Linux distribution.

 . Linux Linux is an open source operating system. The term Linux is actually referred to mean a kernel of Unix like operating system developed by a Finish software architect Linus Torvald. The name Linux is derived from Linus' Unix. Linux was originated from the inspiration of a small Unix like operating system MINIX by A.S Tanenbum. Linux is a complete multiuser, multiprocessing, secure and stable operating system which is also considered as UNIX clone. However no code from the proprietary from AT and T is included in Unix. It has flavor of Unix but is not Unix. UNIX  UNIX is a layered operating system. The innermost layer is the hardware that provides the service for the OS. The operating system, referred to in UNIX as the kernel, interacts directly with the hardware and provides the services to the user program. These user programs don't need to know anything about the hardware. They just need to know how to interact with the kernel and it's up to the kernel to provide ...