Prerequisite – Armstrong’s Axioms in Functional Dependency in DBMS

Armstrong mentioned that rules 1 through 3 have completeness along with soundness. Armstrong’s axioms are complete because for a given set of functional dependencies, F, all functional dependencies implied by F^{+} can be derived from F using these rules.

**What we need to prove –**

The set of functional dependencies that can be derived with logic from a given set of functional dependencies(F_{closure}) and the set of functional dependencies that can be inferred from Armstrong’s Axioms (F_{armstrong}) are same. In terms of sets, if we want to show equality, then we write it as, one is a proper subset of the other. Hence, we need to show that,

Fis a proper subset of_{closure }F_{armstrong }

Correctness means that whatever can be derived from F can also be derived using Armstrong’s Axioms.

F_{closure}^{+} represents the closure of F. Mathematically we can represent, F_{closure}^{+} = {A| F_{closure}^{+} implies A can be derived from F using Armstrong’s Axioms} where, A belongs to Real Numbers.

**Claim-1 :**

is derivable from F using Armstrong’s Axioms if and only if Y is a proper subset of F_{closure}^{+}.

To prove ‘if’ part :

Let Y={A_{0}, A_{1}, ……, A_{m}, } where Y is a proper subset of F_{closure}^{+}. F_{closure}^{+} implies A_{j} can be derived from F using Armstrong’s Axioms} where, A belongs to 0<j<=m

If we follow union rule then, is derivable from F

To prove the ‘only if’ part :

is derivable from F using Armstrong's Axioms

by projection rule we know that F_{closure}^{+} implies A_{j}where, A belongs to 0<j<=m

Thus by the property of F_{closure}^{+}, A_{j} belongs to F_{closure}^{+}.

This implies that Y is a proper subset of F_{closure}^{+}.

X determines Y follows from F using Armstrong’s Axioms.

We shall try to prove the contrapositive of the above statement.

We would prove that X determines Y cannot be determined from F using Armstrong’s Axioms. In terms of tuple Relations we can say that, There exists an instance r belonging to Real numbers such that, all the functional dependencies of F hold on r. However, X implies Y does not hold.

This mentions that our assumption was wrong and the claim stands correct.

Hence proved that Claim 01 is correct.

Let us consider that r has only 2 rows and is represented by r{F_{closure}^{+} attributes, other attributes}

**Claim-2 :**

All FDs of F are satisfied by r. Let us again take the negative of it. Let W implies R belonging to F does not satisfy r, then W is a proper subset of F_{closure}^{+} and Z is not a proper subset of F_{closure}^{+}.

Let G belongs to Z- F_{closure}^{+}

We get :

because W is a proper subset of F_{closure}^{+},

by rule of transitivity,

by rule of reflexivity as G belongs to Z and

by rule of transitivity.

By definition of closures G must belong to F_{closure}^{+}

We get a contradiction.

We had taken a contradiction which was proven wrong, which means that the statement is true.

Hence proved that Claim 02 is correct.

**Claim-3 :**

X implies Y is not satisfied by r.

We assume the contradiction again (X does not imply Y). Due to the Structure of r, Y is a proper subset of F_{closure}^{+} which means that X implies Y can be proved using Armstrong’s Axioms.

Our assumption is proved false hence the claim is correct.

Hence proved that Claim 03 is correct.

These mean that when X does not imply Y, using Armsrong’s Axioms, then F doesn’t logically imply that X implies Y.

We can also say that when X implies Y, using Armsrong’s Axioms (mechanically), then F logically implies that X implies Y as well.

Hence proved that Armstrong’s Axioms are complete.

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

## Recommended Posts:

- Proving Soundness of Armstrong's Axioms
- Armstrong's Axioms in Functional Dependency in DBMS
- Performing DataBase Operations in XAMPP
- Eventual vs Strong Consistency in Distributed Databases
- Difference between Open Source Database and Commercial Database
- Difference between MapR platform and Cloudera platform
- Difference between Cypress and Selenium
- Differences between Cassandra and Elasticsearch
- Overview of Apache Spark
- Difference between Traditional Data Center and Software Defined Data Center
- Constraints on Generalization
- Difference between Shared Lock and Exclusive Lock
- Difference between POM and PageFactory
- Difference between Selenium Webdriver and Protractor

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.