Armstrong’s Axioms in Functional Dependency in DBMS
Prerequisite – Functional Dependencies
The term Armstrong axioms refer to the sound and complete set of inference rules or axioms, introduced by William W. Armstrong, that is used to test the logical implication of functional dependencies. If F is a set of functional dependencies then the closure of F, denoted as , is the set of all functional dependencies logically implied by F. Armstrong’s Axioms are a set of rules, that when applied repeatedly, generates a closure of functional dependencies.
Axioms –
- Axiom of reflexivity –
Ifis a set of attributes and
is subset of
, then
holds
. If
then
This property is trivial property.
- Axiom of augmentation –
Ifholds and
is attribute set, then
also holds. That is adding attributes in dependencies, does not change the basic dependencies. If
, then
for any
.
- Axiom of transitivity –
Same as the transitive rule in algebra, ifholds and
holds, then
also holds.
is called as
functionally that determines
. If
and
, then
Secondary Rules –
These rules can be derived from the above axioms.
- Union –
Ifholds and
holds, then
holds. If
and
then
- Composition –
Ifand
holds, then
holds.
- Decomposition –
Ifholds then
and
hold. If
then
and
- Pseudo Transitivity –
Ifholds and
holds, then
holds. If
and
then
.
Why armstrong axioms refer to the Sound and Complete ?
By sound, we mean that given a set of functional dependencies F specified on a relation schema R, any dependency that we can infer from F by using the primary rules of Armstrong axioms holds in every relation state r of R that satisfies the dependencies in F.
By complete, we mean that using primary rules of Armstrong axioms repeatedly to infer dependencies until no more dependencies can be inferred results in the complete set of all possible dependencies that can be inferred from F.
References –
This article is contributed by Samit Mandal. 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 write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Please Login to comment...