Axiom of reflexivity for determining functional dependencies

As you know, there are three Axioms Armstrong for listing all functional dependencies in a relational database. (X, Y, and Z are attributes)

  • Reflexivity : if X ⊆ Y, then Y → X
  • Increase : if X → Y, then XZ → YZ for any Z
  • Transitivity : if X → Y and Y → Z, then X → Z

I understand the increase and transitivity, for example, if we had such a scheme:

SOME_SCHEMA (a, b, c, d)

with such functional dependencies:

  • a → b
  • b → c

Using augmentation, we could get ac → bc or using transitivity, we could get → c and much more, but I'm not sure how to derive more functional dependencies using the axiom of reflexivity? What does this mean that some attribute is a subset of some other attribute?

Could you show me an example using my circuit or create your own?

+4
source share
1 answer

The transitivity rule can also be specified as follows:

A1, A2, …, An → Ai 

Where I am any number between 1 and n. I think this definition of the rule is a little clearer. A1 is a subset of A1 through An, and thus you can infer the above dependency.

These types of dependencies are called trivial dependencies. The simplest form:

 A → A 

As you can see, A is a subset of A, therefore, by the definition of reflexivity, we can deduce the above dependence.

This is really not a very useful axiom, both first two axioms are not very useful on their own, but exist for the sake of formality, so we can move on to the last axiom, which is very useful.

To use your example, we could say the following. Given that we have a table:

 SOME_SCHEMA(a, b, c, d) 

We can conclude such dependencies as:

 a, b, c, d → a a, b, c, d → a, c 

And many more dependencies of the same nature.

By the way, here are some good slides that well explain functional dependencies in general. There are also some slides according to Armstrong's rules. I found them useful in exploring this material: Functional Slides

+4
source

All Articles