VOOZH about

URL: https://www.geeksforgeeks.org/dbms/types-of-functional-dependencies-in-dbms/

⇱ Types of Functional dependencies in DBMS - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Types of Functional dependencies in DBMS

Last Updated : 5 Mar, 2026

A functional dependency occurs when one attribute uniquely determines another attribute within a relation. There are the following types of functional dependencies.

1. Trivial Functional Dependency

In Trivial Functional Dependency, a dependent is always a subset of the determinant. i.e., If X → Y and Y is the subset of X, then it is called a trivial functional dependency.

Symbolically: A→B is a trivial functional dependency if B is a subset of A.

The following dependencies are also trivial: A→A & B→B

Example 1 :

  • ABC -> AB
  • ABC -> A
  • ABC -> ABC

Example 2:

roll_nonameage
42abc17
43pqr18
44xyz18

Here, {roll_no, name} → name is a trivial functional dependency, since the dependent name is a subset of determinant set {roll_no, name}. Similarly, roll_no → roll_no is also an example of trivial functional dependency. 

2. Non-trivial Functional Dependency

In Non-trivial functional dependency, the dependent is strictly not a subset of the determinant. i.e. If X → Y and Y is not a subset of X, then it is called Non-trivial functional dependency.

Example 1 :

  • Id -> Name
  • Name -> DOB

Example 2:

roll_nonameage
42abc17
43pqr18
44xyz18

Here, roll_no → name is a non-trivial functional dependency, since the dependent name is not a subset of determinant roll_no. Similarly, {roll_no, name} → age is also a non-trivial functional dependency, since age is not a subset of {roll_no, name} 

3. Semi Non Trivial Functional Dependencies

A semi non-trivial functional dependency occurs when part of the dependent attribute (right-hand side) is included in the determinant (left-hand side), but not all of it. This is a middle ground between trivial and non-trivial functional dependencies. X -> Y is called semi non-trivial when X intersect Y is not NULL. 

Example:

Consider the following table:

Student_IDCourse_IDCourse_Name
101CSE101Computer Science
102CSE102Data Structures
103CSE101Computer Science

Functional Dependency:

{StudentID,CourseID}→CourseID

This is semi non-trivial because:

  • Part of the dependent attribute (Course_ID) is already included in the determinant ({Student_ID, Course_ID}).
  • However, the dependency is not completely trivial because {StudentID}→CourseID is not implied directly.

4. Multivalued Functional Dependency

In Multivalued functional dependency, entities of the dependent set are not dependent on each other. i.e. If a → {b, c} and there exists no functional dependency between b and c, then it is called a multivalued functional dependency.

Example:

bike_modelcoloraccessory
tu1001BlackHelmet
tu1001BlackGloves
tu1001RedHelmet
tu1001RedGloves

In this table:

  • X = bike_model
  • Y = color
  • Z = accessory

For each bike model (bike_model):

  1. There is a group of colors (color) and a group of accessories (accessory).
  2. The colors do not depend on the accessory, and the accessories do not depend on the colors. They are independent of each other.
  3. The sets of color and accessory are linked only to bike_model.

That’s what makes it a multivalued dependency.

In this case, these two columns (color and accessory) are said to be multivalued dependent on bike_model.These dependencies can be represented like this:

bike_model →→ color 
bike_model →→ accessory

5. Transitive Functional Dependency

In transitive functional dependency, dependent is indirectly dependent on determinant. i.e. If a → b & b → c, then according to axiom of transitivity, a → c. This is a transitive functional dependency.

Example:

enrol_nonamedeptbuilding_no
42abcCO4
43pqrEC2
44xyzIT1
45abcEC2

Here, enrol_no → dept and dept → building_no. Hence, according to the axiom of transitivity, enrol_no → building_no is a valid functional dependency. This is an indirect functional dependency, hence called Transitive functional dependency.

6. Fully Functional Dependency

In full functional dependency an attribute or a set of attributes uniquely determines another attribute or set of attributes. If a relation R has attributes X, Y, Z with the dependencies X->Y and X->Z which states that those dependencies are fully functional.

7. Partial Functional Dependency

In partial functional dependency a non key attribute depends on a part of the composite key, rather than the whole key. If a relation R has attributes X, Y, Z where X and Y are the composite key and Z is non key attribute. Then X->Z is a partial functional dependency in RDBMS.


Comment

Explore