Reflexivity axiom for inferring functional dependencies

database-theory

As you know there are three Armstrong's Axioms for inferring all the functional dependencies on a relational database. (X, Y and Z are set of attributes)

  1. Reflexivity: If X ⊆ Y, then Y → X
  2. Augmentation: If X → Y, then XZ → YZ for any Z
  3. Transitivity: if X → Y and Y → Z, then X → Z

I understand the augmentation and transitivity for example if we had such schema:

SOME_SCHEMA(a, b, c, d)

with such functional dependencies:

  1. a → b
  2. b → c

By using augmentation we could get ac → bc or by using transitivity we could get a → c and much more, however I am not sure how to infer more functional dependencies using reflexivity axiom? What does it really mean that some attribute is a subset of some other attribute?

Could you show me an example using my schema or creating your own, please?

Thank you in advance!

P.S. Not sure what tag I should use for this question, feel free to change it and remove this line.

Best Answer

ab → a means that if two tuples in a relation have the same values for the attribute a then they have the same values for both attributes a and b. This seems trivial but it cannot be deduced from the Augmentation axiom and Transitivity axiom. So if you have a relation with attributes a,b,c you can deduce functional dependencies like

a→a
ab→a
abc→ac

without knowing any additional functional dependency on abc