What is a functional dependency?

Functional Dependency is a relationship between one attribute to another attribute in a Database. Typically, a non-key attribute is dependent on the primary key attribute. Any changes made in the primary key attribute bring in changes to the non-key attribute as well.
A functional dependency is represented by an arrow “→”.
Ex. : X→Y – Here X is functional dependent on Y. Here, the left side (X) is called determinant and the right side (Y) is called dependent.

Types of functional dependencies:-

1.  Trivial Functional Dependency
2.  Non-Trivial Functional Dependency
3.  Completely Non-Trivial Functional Dependency
• Trivial Functional Dependency: Any dependency is said to be Trivial Functional dependency if the attributes of the dependent are a subset of determinant attributes.
Ex. : A→B is a trivial dependency if B is a subset of A.

Here {Roll_no, Name} → Roll_no is a trivial functional dependency as Roll_no is a subset of {Roll_no, Name}

• Non-trivial Functional Dependency: Any dependency is said to be Non-Trivial Functional dependency if the attributes of the dependent are not a subset of determinant attributes.
Ex. : A→B is a non-trivial dependency if B is not a subset of A.

Here Name → Roll_no as if we know a student’s roll no. Then we can easily find his name but Roll_no is not a subset of Name so it is a non-trivial functional dependency.

• Completely Non-trivial Functional Dependency: Any dependency is said to be Completely Non-Trivial Functional dependency if the attributes of the intersection of dependent and determinant attributes are null.
Ex. : A→B is a non-trivial dependency if A intersection B is null.