---
description: What is a functional dependency? Functional Dependency is when one attribute determines another attribute in a DBMS system. Functional Dependency plays a vital role to find the difference between goo
title: "Functional Dependency in DBMS: Types with Examples"
image: https://www.guru99.com/images/functional-dependency-in-dbms.png
---

[Skip to content](#main)

**⚡ Smart Summary**

Functional Dependency is a constraint that determines how one attribute relates to another in a DBMS. It underpins normalization by identifying determinants and dependents, and it is classified into multivalued, trivial, non-trivial, and transitive dependencies.

- ➡️ **Core Idea:** In X → Y, the determinant X fixes the value of the dependent Y, written with an arrow.
- 🏷️ **Key Terms:** Determinant, dependent, axiom, decomposition, and union describe how dependencies are named and manipulated.
- 📐 **Armstrong’s Axioms:** Reflexivity, augmentation, and transitivity infer every dependency that a set logically implies.
- 🔀 **Four Types:** Multivalued, trivial, non-trivial, and transitive dependencies each describe a distinct attribute relationship.
- 🧹 **Normalization Link:** Dependencies drive normalization, which removes redundancy and update anomalies.
- 🔑 **Closure:** The attribute closure reveals candidate keys and whether a dependency holds.
- ✅ **Benefit:** Good dependencies signal good design and separate quality schemas from poor ones.

Read More

![Functional Dependency in DBMS](https://www.guru99.com/images/functional-dependency-in-dbms.png)

## What is Functional Dependency?

**Functional Dependency (FD)** is a constraint that determines the relation of one attribute to another attribute in a Database Management System (DBMS). Functional dependency helps to maintain the quality of data in the database. It plays a vital role in finding the difference between good and bad database design.

A functional dependency is denoted by an arrow “→”. The functional dependency of Y on X is represented by X → Y. Let us understand functional dependency with an example.

**Example:**

| Employee number | Employee Name | Salary | City |
| --- | --- | --- | --- |
| 1 | Dana | 50000 | San Francisco |
| 2 | Francis | 38000 | London |
| 3 | Andrew | 25000 | Tokyo |

In this example, if we know the value of Employee number, we can obtain Employee Name, City, Salary, and so on. By this, we can say that City, Employee Name, and Salary are functionally dependent on Employee number.

## Key Terms

Here are some key terms for functional dependency in a database:

| Key Terms | Description |
| --- | --- |
| **Axiom** | Axioms are a set of inference rules used to infer all the functional dependencies on a relational database. |
| **Decomposition** | A rule that suggests if you have a table that appears to contain two entities determined by the same primary key, you should consider breaking it into two different tables. |
| **Dependent** | It is displayed on the right side of the functional dependency diagram. |
| **Determinant** | It is displayed on the left side of the functional dependency diagram. |
| **Union** | It suggests that if two tables are separate and the primary key is the same, you should consider putting them together. |

## Rules of Functional Dependencies (Armstrong’s Axioms)

Below are the three most important rules for functional dependency in a database. They are known as Armstrong’s axioms, and every other inference rule can be derived from them.

- **Reflexive rule:** If X is a set of attributes and Y is a subset of X, then X → Y holds.
- **Augmentation rule:** When X → Y holds and C is an attribute set, then XC → YC also holds. Adding attributes does not change the basic dependency.
- **Transitivity rule:** Similar to the transitive rule in algebra: if X → Y holds and Y → Z holds, then X → Z also holds.

Three further rules are derived from these and are used constantly in practice:

- **Union rule:** if X → Y and X → Z, then X → YZ.
- **Decomposition rule:** if X → YZ, then X → Y and X → Z.
- **Pseudo-transitivity rule:** if X → Y and WY → Z, then WX → Z.

Applying these rules repeatedly to a set of dependencies produces its **closure**, the complete set of dependencies that logically follow. The closure of an attribute set is also how candidate keys are found, which links directly to the study of [DBMS keys](https://www.guru99.com/dbms-keys.html).

**Don't Miss:**

- [Entity Relationship (ER) Diagram Model with DBMS Example](https://www.guru99.com/er-diagram-tutorial-dbms.html)
- [Relational Algebra in DBMS with Examples](https://www.guru99.com/relational-algebra-dbms.html)
- [SQL vs NoSQL – Difference Between Them](https://www.guru99.com/sql-vs-nosql.html)
- [14 BEST Free SQL Database Software (2026)](https://www.guru99.com/free-database-software.html)

## Types of Functional Dependencies in DBMS

There are mainly four types of functional dependency in DBMS:

- **Multivalued Dependency**
- **Trivial Functional Dependency**
- **Non-Trivial Functional Dependency**
- **Transitive Dependency**

### Multivalued Dependency in DBMS

Multivalued dependency occurs in a situation where there are multiple independent multivalued attributes in a single table. A multivalued dependency is a complete constraint between two sets of attributes in a relation, requiring that certain tuples be present. Consider the following example.

**Example:**

| Car\_model | Maf\_year | Color |
| --- | --- | --- |
| H001 | 2017 | Metallic |
| H001 | 2017 | Green |
| H005 | 2018 | Metallic |
| H005 | 2018 | Blue |
| H010 | 2015 | Metallic |
| H033 | 2012 | Gray |

In this example, Maf\_year and Color are independent of each other but dependent on Car\_model. These two columns are said to be multivalue dependent on Car\_model. This is represented as:

car\_model → maf\_year

car\_model → colour

### Trivial Functional Dependency in DBMS

A trivial dependency is a set of attributes that is called trivial if the set of attributes is included in that attribute. So, X → Y is a trivial functional dependency if Y is a subset of X. Consider the example below.

| Emp\_id | Emp\_name |
| --- | --- |
| AS555 | Harry |
| AS811 | George |
| AS999 | Kevin |

Consider this table with two columns, Emp\_id and Emp\_name. {Emp\_id, Emp\_name} → Emp\_id is a trivial functional dependency, as Emp\_id is a subset of {Emp\_id, Emp\_name}.

### Non-Trivial Functional Dependency in DBMS

A non-trivial dependency occurs when A → B holds true and B is not a subset of A. If attribute B is not a subset of attribute A, the dependency is considered non-trivial.

| Company | CEO | Age |
| --- | --- | --- |
| Microsoft | Satya Nadella | 51 |
| Google | Sundar Pichai | 46 |
| Apple | Tim Cook | 57 |

**Example:**

{Company} → {CEO} (if we know the Company, we know the CEO name). But CEO is not a subset of Company, and hence it is a non-trivial functional dependency.

### Transitive Dependency in DBMS

A transitive dependency is a type of functional dependency that happens when an attribute is indirectly determined by two functional dependencies. Consider the example below.

| Company | CEO | Age |
| --- | --- | --- |
| Microsoft | Satya Nadella | 51 |
| Google | Sundar Pichai | 46 |
| Alibaba | Jack Ma | 54 |

{Company} → {CEO} (if we know the company, we know its CEO’s name).

{CEO} → {Age} (if we know the CEO, we know the age).

Therefore, by the rule of transitive dependency, {Company} → {Age} should hold, which makes sense because if we know the company name, we can find the age.

Note: transitive dependency can only occur in a relation of three or more attributes.

## What is Normalization?

Normalization is a method of organizing the data in a database that helps you avoid data redundancy and insertion, update, and deletion anomalies. It is a process of analyzing the relation schemas based on their different functional dependencies and primary key.

Normalization is inherent to relational database theory. It may have the effect of splitting data across additional tables so that each fact is stored once. The full process is covered in the guide to [database normalization](https://www.guru99.com/database-normalization.html), which builds directly on the dependency types above.

## Advantages of Functional Dependency

- Functional dependency avoids data redundancy, so the same data does not repeat at multiple locations in the [database](https://www.guru99.com/introduction-to-database-sql.html).
- It helps you maintain the quality of data in the database.
- It helps you define the meanings and constraints of databases.
- It helps you identify bad designs.
- It helps you find the facts regarding the database design.

## FAQs

➡️ What is the difference between a determinant and a dependent?

The determinant is the attribute on the left of the arrow that fixes the value. The dependent is the attribute on the right whose value is determined. In X → Y, X determines Y.

🔀 What is the difference between functional and multivalued dependency?

A functional dependency fixes a single value for the dependent. A multivalued dependency allows a set of independent values, which is why it needs its own attribute and leads to fourth normal form.

🔑 How does functional dependency help find a candidate key?

Compute the closure of an attribute set using the dependencies. If the closure includes every attribute of the relation, that set is a superkey; the minimal such set is a candidate key.

🤖 Can AI discover functional dependencies from data?

Yes. Dependency-discovery algorithms, some AI assisted, scan a dataset and propose candidate dependencies. A designer must confirm them, because a pattern true in sample data may not hold as a rule.

🧹 Why does a transitive dependency cause problems?

It stores a fact about a non-key attribute, so updating it risks anomalies. Removing transitive dependencies is exactly what third normal form requires, which keeps each fact in one place.

#### Summarize this post with:

ChatGPTPerplexityGrokGoogle AI

**Stay Updated on AI** **Get Weekly AI Skills, Trends, Actionable Advice.**

##### Sign up for the newsletter

Subscribe for Free

You have successfully subscribed.  
Please check your inbox.

![AI-Newsletter]() Chosen by over **350,000+** professionals

[Scroll to top](#wrapper)

×

Search for:

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.guru99.com/#organization","name":"Guru99","sameAs":["https://www.facebook.com/Guru99Official","https://twitter.com/guru99com"],"logo":{"@type":"ImageObject","@id":"https://www.guru99.com/#logo","url":"https://www.guru99.com/images/guru99-logo-v1-150x59.png","contentUrl":"https://www.guru99.com/images/guru99-logo-v1-150x59.png","caption":"Guru99","inLanguage":"en-US"}},{"@type":"WebSite","@id":"https://www.guru99.com/#website","url":"https://www.guru99.com","name":"Guru99","publisher":{"@id":"https://www.guru99.com/#organization"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://www.guru99.com/images/functional-dependency-in-dbms.png","url":"https://www.guru99.com/images/functional-dependency-in-dbms.png","width":"700","height":"250","caption":"Functional Dependency in DBMS","inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://www.guru99.com/dbms-functional-dependency.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://www.guru99.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://www.guru99.com/dbms","name":"DBMS"}},{"@type":"ListItem","position":"3","item":{"@id":"https://www.guru99.com/dbms-functional-dependency.html","name":"Functional Dependency in DBMS: Types with Examples"}}]},{"@type":"WebPage","@id":"https://www.guru99.com/dbms-functional-dependency.html#webpage","url":"https://www.guru99.com/dbms-functional-dependency.html","name":"Functional Dependency in DBMS: Types with Examples","dateModified":"2026-10-07T18:57:51+05:30","isPartOf":{"@id":"https://www.guru99.com/#website"},"primaryImageOfPage":{"@id":"https://www.guru99.com/images/functional-dependency-in-dbms.png"},"inLanguage":"en-US","breadcrumb":{"@id":"https://www.guru99.com/dbms-functional-dependency.html#breadcrumb"}},{"@type":"Person","@id":"https://www.guru99.com/author/editorial","name":"Editorial Team","url":"https://www.guru99.com/author/editorial","image":{"@type":"ImageObject","@id":"https://www.guru99.com/images/favicon-new-logo.png","url":"https://www.guru99.com/images/favicon-new-logo.png","caption":"Editorial Team","inLanguage":"en-US"},"sameAs":["https://www.guru99.com/editorial-team"],"worksFor":{"@id":"https://www.guru99.com/#organization"}},{"articleSection":"DBMS","headline":"Functional Dependency in DBMS: Types with Examples","description":"What is a functional dependency? Functional Dependency is when one attribute determines another attribute in a DBMS system. Functional Dependency plays a vital role to find the difference between goo","keywords":"dbms, sql","speakable":{"@type":"SpeakableSpecification","cssSelector":[".entry-title",".summary"]},"@type":"Article","author":{"@id":"https://www.guru99.com/author/editorial","name":"Editorial Team"},"dateModified":"2026-10-07T18:57:51+05:30","image":{"@id":"https://www.guru99.com/images/functional-dependency-in-dbms.png"},"copyrightYear":"2026","name":"Functional Dependency in DBMS: Types with Examples","subjectOf":[{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is the difference between a determinant and a dependent?","acceptedAnswer":{"@type":"Answer","text":"The determinant is the attribute on the left of the arrow that fixes the value. The dependent is the attribute on the right whose value is determined. In X to Y, X determines Y."}},{"@type":"Question","name":"What is the difference between functional and multivalued dependency?","acceptedAnswer":{"@type":"Answer","text":"A functional dependency fixes a single value for the dependent. A multivalued dependency allows a set of independent values, which is why it needs its own attribute and leads to fourth normal form."}},{"@type":"Question","name":"How does functional dependency help find a candidate key?","acceptedAnswer":{"@type":"Answer","text":"Compute the closure of an attribute set using the dependencies. If the closure includes every attribute of the relation, that set is a superkey; the minimal such set is a candidate key."}},{"@type":"Question","name":"Can AI discover functional dependencies from data?","acceptedAnswer":{"@type":"Answer","text":"Yes. Dependency-discovery algorithms, some AI assisted, scan a dataset and propose candidate dependencies. A designer must confirm them, because a pattern true in sample data may not hold as a rule."}},{"@type":"Question","name":"Why does a transitive dependency cause problems?","acceptedAnswer":{"@type":"Answer","text":"It stores a fact about a non-key attribute, so updating it risks anomalies. Removing transitive dependencies is exactly what third normal form requires, which keeps each fact in one place."}}]}],"@id":"https://www.guru99.com/dbms-functional-dependency.html#schema-1148255","isPartOf":{"@id":"https://www.guru99.com/dbms-functional-dependency.html#webpage"},"publisher":{"@id":"https://www.guru99.com/#organization"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://www.guru99.com/dbms-functional-dependency.html#webpage"}}]}
```
