Equivalence of Functional Dependencies
Last Updated :
21 Jun, 2025
Equivalence of functional dependencies means two sets of functional dependencies (FDs) are considered equivalent if they enforce the same constraints on a relation. This happens when every FD in one set can be derived from the other set and vice versa using inference rules like Armstrong's axioms.
Equivalent FDs result in the same set of valid relations and preserve the same data integrity. Identifying equivalent FDs helps in normalization and optimizing database design without losing any constraints.
How To Find the Relationship Between Two Functional Dependency Sets?
Let FD1 and FD2 be two FD sets for a relation R.
- If all FDs of FD1 can be derived from FDs present in FD2, we can say that FD2 ⊃ FD1.
- If all FDs of FD2 can be derived from FDs present in FD1, we can say that FD1 ⊃ FD2.
- If 1 and 2 both are true, FD1=FD2.
All these three cases can be shown using the Venn diagram:
Equivalence of Functional DependencyWhy We Need to Compare Functional Dependencies?
Suppose in the designing process we convert the ER diagram to a relational model and this task is given to two different engineers. Now those two engineers give two different sets of functional dependencies. So, being an administrator we need to ensure that we must have a good set of Functional Dependencies. To ensure this we require to study the equivalence of Functional Dependencies.
Advantages
- It can help to identify redundant functional dependencies, which can be eliminated to reduce data redundancy and improve database performance.
- It can help to optimize database design by identifying equivalent sets of functional dependencies that can be used interchangeably.
- It can ensure data consistency by identifying all possible combinations of attributes that can exist in the database.
Disadvantages
- The process of determining the equivalence of functional dependencies can be computationally expensive, especially for large datasets.
- The process may require testing multiple candidate sets of functional dependencies, which can be time-consuming and complex.
- The equivalence of functional dependencies may not always accurately reflect the semantic meaning of data, and may not always reflect the true relationships between data elements.
Sample Questions
Q.1 Let us take an example to show the relationship between two FD sets. A relation R(A,B,C,D) having two FD sets FD1 = {A->B, B->C, AB->D} and FD2 = {A->B, B->C, A->C, A->D}
Step 1: Checking whether all FDs of FD1 are present in FD2
- A->B in set FD1 is present in set FD2.
- B->C in set FD1 is also present in set FD2.
- AB->D is present in set FD1 but not directly in FD2 but we will check whether we can derive it or not. For set FD2, (AB)+ = {A, B, C, D}. It means that AB can functionally determine A, B, C, and D. So AB->D will also hold in set FD2.
As all FDs in set FD1 also hold in set FD2, FD2 ⊃ FD1 is true.
Step 2: Checking whether all FDs of FD2 are present in FD1
- A->B in set FD2 is present in set FD1.
- B->C in set FD2 is also present in set FD1.
- A->C is present in FD2 but not directly in FD1 but we will check whether we can derive it or not. For set FD1, (A)+ = {A, B, C, D}. It means that A can functionally determine A, B, C, and D. SO A->C will also hold in set FD1.
- A->D is present in FD2 but not directly in FD1 but we will check whether we can derive it or not. For set FD1, (A)+ = {A, B, C, D}. It means that A can functionally determine A, B, C, and D. SO A->D will also hold in set FD1.
As all FDs in set FD2 also hold in set FD1, FD1 ⊃ FD2 is true.
Step 3: As FD2 ⊃ FD1 and FD1 ⊃ FD2 both are true FD2 =FD1 is true. These two FD sets are semantically equivalent.
Q.2 Let us take another example to show the relationship between two FD sets. A relation R2(A,B,C,D) having two FD sets FD1 = {A->B, B->C,A->C} and FD2 = {A->B, B->C, A->D}
Step 1: Checking whether all FDs of FD1 are present in FD2
- A->B in set FD1 is present in set FD2.
- B->C in set FD1 is also present in set FD2.
- A->C is present in FD1 but not directly in FD2 but we will check whether we can derive it or not. For set FD2, (A)+ = {A, B, C, D}. It means that A can functionally determine A, B, C, and D. SO A->C will also hold in set FD2.
As all FDs in set FD1 also hold in set FD2, FD2 ⊃ FD1 is true.
Step 2: Checking whether all FDs of FD2 are present in FD1
- A->B in set FD2 is present in set FD1.,
- B->C in set FD2 is also present in set FD1.
- A->D is present in FD2 but not directly in FD1 but we will check whether we can derive it or not. For set FD1, (A)+ = {A,B,C}. It means that A can’t functionally determine D.
- So A->D will not hold in FD1.
As all FDs in set FD2 do not hold in set FD1, FD2 ⊄ FD1.
Step 3: In this case, FD2 ⊃ FD1 and FD2 ⊄ FD1, these two FD sets are not semantically equivalent.
Similar Reads
Introduction of Relational Algebra in DBMS Relational Algebra is a formal language used to query and manipulate relational databases, consisting of a set of operations like selection, projection, union, and join. It provides a mathematical framework for querying databases, ensuring efficient data retrieval and manipulation. Relational algebr
9 min read
Anomalies in Relational Model Anomalies in the relational model refer to inconsistencies or errors that can arise when working with relational databases, specifically in the context of data insertion, deletion, and modification. There are different types of anomalies that can occur in referencing and referenced relations which c
5 min read
Types of Keys in Relational Model (Candidate, Super, Primary, Alternate and Foreign) In the context of a relational database, Keys are one of the basic requirements of a relational database model. keys are fundamental components that ensure data integrity, uniqueness, and efficient access. It is widely used to identify the tuples(rows) uniquely in the table. We also use keys to set
7 min read
Basic Operators in Relational Algebra The Relational Model is a way of structuring data using relations, which are a collection of tuples that have the same attributes. Relational Algebra is a procedural query language that takes relations as input and returns relations as output. Here, we'll explore the basic operators of Relational Al
4 min read
Extended Operators in Relational Algebra Extended operators in relational algebra are operators that go beyond the basic set of relational algebra operations. They are also known as derived operators because they can be constructed from combinations of the fundamental operators. There are mainly three types of extended operators in Relatio
7 min read
Tuple Relational Calculus (TRC) in DBMS Tuple Relational Calculus (TRC) is a non-procedural query language used in relational database management systems (RDBMS) to retrieve data from tables. TRC is based on the concept of tuples, which are ordered sets of attribute values that represent a single row or record in a database table.Syntax:
4 min read
Introduction of Database Normalization Normalization is an important process in database design that helps improve the database's efficiency, consistency, and accuracy. It makes it easier to manage and maintain the data and ensures that the database is adaptable to changing business needs.Database normalization is the process of organizi
8 min read
Normal Forms in DBMS In the world of database management, Normal Forms are important for ensuring that data is structured logically, reducing redundancy, and maintaining data integrity. When working with databases, especially relational databases, it is critical to follow normalization techniques that help to eliminate
7 min read
Functional Dependency and Attribute Closure Functional dependency and attribute closure are essential for maintaining data integrity and building effective, organized, and normalized databases.Functional DependencyA functional dependency A->B in a relation holds if two tuples having the same value of attribute A must have the same value fo
5 min read
Lossless Decomposition in DBMS The original relation and relation reconstructed from joining decomposed relations must contain the same number of tuples if the number is increased or decreased then it is Lossy Join decomposition.Lossless join decomposition ensures that never get the situation where spurious tuples are generated i
5 min read