Functional dependencies are relationship between two qualities. Within a table, it is often found between the primary key and a non-key property.

X -> Y. The left side of FD is a determinant, while the right side of the production is the dependent.

## Types of Functional Dependencie

### Trivial functional dependencies

If B is a subset of A, then A -> B has trivial functional dependency. The following dependencies are also trivial like: A -> A, B -> B

### Non-trivial functional dependency

If B is not a subset of A, then A -> B has a non-trivial functional dependency. When A intersection B is NULL, then A -> B is a complete non-trivial.

### Multivalued Dependency

When there are numerous independent multivalued characteristics in a single table, this is basically multivalued dependency. A multivalued dependency is a complete constraint in a relation between two sets of characteristics. It necessitates the presence of specific tuples in a relation.

### Transitive Dependency

A Transitive Dependency is a sort of functional dependency that occurs when the letter “t” is there indirectly for two functional dependencies. It is important to recall that transitive reliance can only occur in a three-attribute relationship.

## Rules of Functional Dependencies

The three most significant rules for Functional Dependency in Database are as follows:

The rule of reflexivity –. If X is an attribute set and Y is a subset of X, then X has the value Y.

When x -> y holds and c is set as an attribute, then ac -> bc also holds. That is, adding properties without changing the fundamental dependencies.

Transitivity rule: This rule is comparable to the transitive rule in algebra in that if x -> y and y -> z hold, then x -> z likewise holds. X -> y is the functional relationship that determines y.

## Advantages of Functional Dependencies

- Functional Dependency prevents data duplication. As a result, the same data does not appear several times in that database.
- It assists you in maintaining the database’s data quality.
- FD assists you in defining database semantics and constraints.
- It assists you in identifying faulty designs.
- It assists you in locating information about database design.