Functional Dependency

A Functional dependency is a relationship between attributes. 
In functional dependency we can obtain the value of another attribute from given attribute.

For example,
If we know the value of student roll number, we can obtain student address, marks etc. By this, we say that student address and marks is functionally dependent on student roll number.

Types of functional dependency:

  1. Single Valued Functional Dependency
  2. Fully Functional Dependency
  3. Partial Functional Dependency
  4. Transitive Functional Dependency
  5. Trivial Functional Dependency

1) Single Valued Functional Dependency

A simple example of single value functional dependency is when Roll_Number is the primary key of an entity and Student_Name is some single valued attribute of the entity. Then, Roll_Number → Student_Name

011Jayesh UmreBurhanpur
012Kunal BatraBurhanpur
013Nilesh NimbhorkarIchchapur
014Aryan JagdaleUjjain

2) Fully Functional Dependency

A functional dependency P → Q is full functional dependency if removal of any attribute A from P means that the dependency does not hold any more.


From above table,{Roll_Number, Subject_Name} –> Paper_HourSince neither Roll_Number –> Paper_Hour nor Subject_Name –> Paper_Hour hold.

3) Partial Functional Dependency

A Functional Dependency in which one or more non key attributes are functionally depending on a part of the primary key is called partial functional dependency.

011DBMSJayesh Umre
012PythonKunal Batra
013AWTNilesh Nimbhorkar
014DBMSAryan Jagdale

From above table,{Roll_Number, Subject_Name} –> Student_Name is not a full FD.Since Roll_Number –> Student_Name also hold.

4) Transitive Functional Dependency

Given a relation R(A,B,C)  then dependency like A–>B, B–>C   is a transitive dependency, since   A–>C is implied 


From above table,Roll_Number –> Pin_Code and Pin_Code –> City_Name hold.Than Roll_Number –> City_Name is a transitive FD.

5) Trivial Functional Dependency

Functional dependency of the form A–>B is trivial if B subset of A or B = A.

011Jayesh Umre
012Kunal Batra
013Nilesh Nimbhorkar
014Aryan Jagdale

From above table,{Roll_Nuber, Student_Name} –> Roll_Number is a trivial functional dependency as Roll_Number is a subset of {Roll_Number,Student_Name}.