Re: Two definitions for functional dependency.



"Aloha Kakuikanu" <aloha.kakuikanu@xxxxxxxxx> wrote in
news:1175201787.460169.95830@xxxxxxxxxxxxxxxxxxxxxxxxxxx:

Given a relation R(x,y) when does x->y functional dependency holds?
Let's try several relational algebra expressions over R.

1. Self join: R /\ R. It evaluates trivially to R. We have to rename
at least one variable to get an interesting expression. Here are 2
choces, rename x, or rename y. Let's consider renaming y first:

2a. R(x,y') /\ R(x,y"). Let's join it with the relation y'!=y". The x-
y holds iff the resulting relation is empty.

It is not surprising because you've simply rephrased the very definition of
functional dependency, namely that it is at least a surjection and that's
exactly why it is called functional !

This cute formulation
has been already discussed on this forum. What is new (at least for
me), is the option 2b:

2b. R(x',y) /\ R(x",y). Let's project this relation to <x',x">. The
x->y holds iff the resulting relation is an equivalence relation.

That is not surprising either because, conversely, each surjection
determines a partition of its domain or in other words an equivalence
relation.




.