- DBMS Tutorial
- DBMS - Home
- DBMS - Overview
- DBMS - Architecture
- DBMS - Data Models
- DBMS - Data Schemas
- DBMS - Data Independence

- Entity Relationship Model
- DBMS - ER Model Basic Concepts
- DBMS - ER Diagram Representation
- DBMS - Generalization, Aggregation

- Relational Model
- DBMS - Codd's Rules
- DBMS - Relational Data Model
- DBMS - Relational Algebra
- DBMS - ER to Relational Model
- DBMS- SQL Overview

- Relational Database Design
- DBMS - Database Normalization
- DBMS - Database Joins

- Storage and File Structure
- DBMS - Storage System
- DBMS - File Structure

- Indexing and Hashing
- DBMS - Indexing
- DBMS - Hashing

- Transaction And Concurrency
- DBMS - Transaction
- DBMS - Concurrency Control
- DBMS - Deadlock

- Backup and Recovery
- DBMS - Data Backup
- DBMS - Data Recovery

- DBMS Useful Resources
- DBMS - Quick Guide
- DBMS - Useful Resources
- DBMS - Discussion

# What is the minimal set of functional dependencies or canonical cover of FD?

A minimal cover of a set of functional dependencies (FD) E is a minimal set of dependencies F that is equivalent to E.

The formal definition is: A set of FD F to be minimal if it satisfies the following conditions −

Every dependency in F has a single attribute for its right-hand side.

We cannot replace any dependency X->A in F with a dependency Y->A, where Y is a proper subset of X, and still have a set of dependencies that is equivalent to F.

We cannot remove any dependency from F and still have a set of dependencies that are equivalent to F.

Canonical cover is called minimal cover which is called the minimum set of FDs. A set of FD FC is called canonical cover of F if each FD in FC is a −

- Simple FD.
- Left reduced FD.
- Non-redundant FD.

**Simple FD** − X->Y is a simple FD if Y is a single attribute.

**Left reduced FD** − X->Y is a left reduced FD if there are no extraneous attributes in X. {extraneous attributes: Let XA->Y then, A is a extraneous attribute if X_>Y}

**Non-redundant FD** − X->Y is a Non-redundant FD if it cannot be derived from F- {X->y}.

## Example

Consider an example to find canonical cover of F.

The given functional dependencies are as follows −

A -> BC

B -> C

A -> B

AB -> C

Minimal cover: The minimal cover is the set of FDs which are equivalent to the given FDs.

Canonical cover: In canonical cover, the LHS (Left Hand Side) must be unique.

First of all, we will find the minimal cover and then the canonical cover.

**First step** − Convert RHS attribute into singleton attribute.

A -> B

A -> C

B -> C

A -> B

AB -> C

**Second step** − Remove the extra LHS attribute

Find the closure of A.

A+ = {A, B, C}

So, AB -> C can be converted into A -> C

A -> B

A -> C

B -> C

A -> B

A -> C

**Third step** − Remove the redundant FDs.

A -> B

B -> C

Now, we will convert the above set of FDs into canonical cover.

The canonical cover for the above set of FDs will be as follows −

A -> BC

B -> C

- Related Articles
- Find the canonical cover of FD {A->BC, B->AC, C->AB} in DBMS
- What is an equivalence of sets of functional dependencies?
- Basics of Functional Dependencies and Normalization for Relational Databases
- Which normal form is the highest that satisfies the functional dependencies(DBMS)?
- Explain the inference rules for functional dependencies in DBMS
- What is the canonical label?
- What is the basic minimal structure of HTML document?
- What is Canonical Collection of LR (0) items in compiler design?
- What is the role of test automation in functional testing?
- What are Control dependencies?
- Write the dependencies of backbone.js in javascript?
- Types of dependencies in DBMS
- What is the generic functional interface in Java?
- What is functional dependency in DBMS?
- What is Functional Testing (Types & Examples)?