In relational database design, Functional Dependency (FD) describes how one set of attributes determines another set in a table. If a set of attributes XX functionally determines a set YY, it is written as XYX \to Y. Functional dependencies are the foundation of normalization in DBMS.

Among these dependencies, different types exist that help classify their behavior and guide schema design. Understanding these types makes it easier to remove redundancy and design clean, well‑normalized tables.

1. Trivial Functional Dependency

A functional dependency XYX \to Y is trivial if YY is a subset of XX. In other words, the right‑hand side attributes are already contained in the left‑hand side.

A trivial FD is always true and does not add any meaningful information, but it is still valid from a formal point of view.

Example:
In a STUDENT table with attributes {RollNo,Name,Branch}\{Roll_No, Name, Branch\}:

  • {RollNo,Name}{Name}\{Roll_No, Name\} \to \{Name\} is a trivial functional dependency because Name is already present in the left side.

2. Non‑Trivial Functional Dependency

A functional dependency XYX \to Y is non‑trivial if YY is not a subset of XX. This type is the most useful in database design because it represents a real dependency between attributes.

Non‑trivial FDs are the ones that actually help in identifying keys and normal forms.

Example:
In a COURSE table:

  • {CourseID}{CourseName,Credits}\{Course_ID\} \to \{Course_Name, Credits\} is non‑trivial because the right‑hand side is not part of the left side.

3. Full Functional Dependency

In a relation, an attribute set YY is fully functionally dependent on XX if YY depends on the whole of XX and not on any proper subset of XX.

Full functional dependency is important in Second Normal Form (2NF), where partial dependencies must be eliminated.

Example:
In a table R(RollNo,CourseID,Marks)R(Roll_No, Course_ID, Marks):

  • If {RollNo,CourseID}{Marks}\{Roll_No, Course_ID\} \to \{Marks\} and Marks does not depend on RollNoRoll_No alone or CourseIDCourse_ID alone, then Marks is fully functionally dependent on the composite key.

4. Partial Functional Dependency

A functional dependency XYX \to Y is partial if YY can be determined by a proper subset of XX rather than the whole of XX.

Partial dependencies are avoided in normalized schemas, especially in 2NF.

Example:
In a RESULT table (RollNo,CourseID,Branch,Marks)(Roll_No, Course_ID, Branch, Marks):

  • If RollNoBranchRoll_No \to Branch, then even though {RollNo,CourseID}{Branch}\{Roll_No, Course_ID\} \to \{Branch\} holds, it is a partial functional dependency because Branch is determined by Roll_No alone.

5. Transitive Functional Dependency

A functional dependency XZX \to Z is transitive if it exists only because there is some intermediate attribute YY such that XYX \to Y and YZY \to Z, but XX does not directly determine ZZ in a meaningful independent way.

Transitive dependencies are removed in Third Normal Form (3NF).

Example:
In a STUDENT table (RollNo,Branch,HODName)(Roll_No, Branch, HOD_Name):

  • If RollNoBranchRoll_No \to Branch and BranchHODNameBranch \to HOD_Name, then RollNoHODNameRoll_No \to HOD_Name is a transitive functional dependency.

6. Multivalued Dependency (MVD)

A Multivalued Dependency occurs when, for a given value of attribute XX, there are multiple independent values of another attribute YY. MVDs are written as XYX \twoheadrightarrow Y.

This type is important in Fourth Normal Form (4NF).

Example:
In a COURSE table (CourseID,ProfName,Textbook)(Course_ID, Prof_Name, Textbook):

  • If a course can have multiple professors and multiple textbooks, and these are independent of each other, there are MVDs like:

    • CourseIDProfNameCourse_ID \twoheadrightarrow Prof_Name

    • CourseIDTextbookCourse_ID \twoheadrightarrow Textbook

Why Types of Functional Dependencies Matter

Understanding these types of functional dependencies helps in:

  • Identifying keys and candidate keys from given FDs.

  • Detecting redundant and anomalous data patterns.

  • Applying normalization rules up to 3NF and 4NF.

  • Ensuring data integrity and clean relational design.

Summary

Functional dependencies in DBMS are classified into trivial, non‑trivial, full, partial, transitive, and multivalued dependencies. Each type plays a distinct role in schema design and normalization. Recognizing these patterns enables better database structure, reduced redundancy, and improved data consistency in relational databases.