Reflexivity axiom for inferring functional dependencies 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)


Reflexivity: If X ⊆ Y, then Y → X
Augmentation: If X → Y, then XZ → YZ for any Z
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:


a → b
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.
"What does it really mean that some attribute is a subset of some other attribute?"

It means nothing.  Functional dependencies exist between SETS of attributes.

Whenever the treatment is supposed to be formal and precise (as in, e.g., when stating the very definition of the axioms), that's how X,Y and Z are supposed to be interpreted.

Unfortunately, people tend to always write down concrete examples of FD's without making the SET property explicit.  As in, e.g., AB->C, where A,B and C are attributes.  Formally, that should actually be {A B} -> {C}, but those braces don't add very much.

And your formulation of the augmentation axiom is incorrect precisely on that count.  If X,Y and Z are sets of attributes, then the only correct formulation of the augmentation axiom is

X -> Y   ===>   (X UNION Z) -> (Y UNION Z)

The reflexivity axiom provides a formal definition of what it means to be a trivial FD.  The various normal forms are defined in terms of nontrivial FDs, hence it must be pinned down what that means exactly.  The reflexivity axiom does that.