Associatività di quest'operatore

Daffeen
Ciao, vorrei sapere se quest'operazione su insiemi è associativa:
A ° B = { (a[size=60]1[/size],...a[size=60]n[/size],b[size=60]1[/size],...b[size=60]m[/size]) / (a[size=60]1[/size],...a[size=60]n[/size]) \(\displaystyle \in \) A AND (b[size=60]1[/size],...,b[size=60]m[/size]) \(\displaystyle \in \) B AND \(\displaystyle \exists \) a[size=60]i[/size] = b[size=60]i[/size] )

Questa è in realtà la definizione della funzione JOIN in SQL (spero di averla scritta correttamente).
Sostanzialmente mi piacerebbe conoscere la dimostrazione dell'associatività di quest'operazione.
Vi ringrazio anticipatamente <3.

Risposte
solaàl
Che numeri sono $n,m$? Stai enumerando tutti gli elementi di $A$ e di $B$, oppure ne stai prendendo solo alcuni?

Daffeen
"solaàl":
Che numeri sono $n,m$? Stai enumerando tutti gli elementi di $A$ e di $B$, oppure ne stai prendendo solo alcuni?


Ciao, innanzitutto grazie per la risposta.
Ho ipotizzato che l'insieme A è un insieme di n-uple, mentre l'insieme B è un "m-uple".
Spero di essere stato chiaro.

In poche parole A°B sta ad indicare "unisci tutte le n-uple con tutte le m-uple in modo da formare una "m+n"-upla se e solo se data una $i, a[size=60]i[/size] = b[size=60]i[/size] ".
In realtà potrebbe essere ancora più generico scritto come
"... se e solo se data una (i[size=60]1[/size],...i[size=60]h[/size]) , a[size=60]i[/size] = b[size=60]i[/size] , .... , a[size=60]h[/size] = b[size=60]h[/size] ".
Ti ringrazio ancora per l'attenzione

solaàl
Allora, vediamo; avevo imparato un paio di cose di SQL anni fa.

Hai due insiemi $A,B$ e stai considerando l'insieme (credo per $n,m$ fissati?) costruito a questo modo:
\[ A \circ B = \{(\underline a, \underline b) \mid \underline a \in A^n, \, \underline b \in B^m,\, \exists i \le \min\{n,m\} \colon a_i = b_i \}\] e vuoi sapere se questa operazione è associativa, ossia se dati tre insiemi a caso $A,B,C$ si ha $(A \circ B)\circ C = A \circ (B \circ C)$.

Giusto?

Daffeen
"solaàl":
Allora, vediamo; avevo imparato un paio di cose di SQL anni fa.

Hai due insiemi $A,B$ e stai considerando l'insieme (credo per $n,m$ fissati?) costruito a questo modo:
\[ A \circ B = \{(\underline a, \underline b) \mid \underline a \in A^n, \, \underline b \in B^m,\, \exists i \le \min\{n,m\} \colon a_i = b_i \}\] e vuoi sapere se questa operazione è associativa, ossia se dati tre insiemi a caso $A,B,C$ si ha $(A \circ B)\circ C = A \circ (B \circ C)$.

Giusto?

Ciao, esattamente!

Daffeen
"solaàl":
Allora, vediamo; avevo imparato un paio di cose di SQL anni fa.

Hai due insiemi $A,B$ e stai considerando l'insieme (credo per $n,m$ fissati?) costruito a questo modo:
\[ A \circ B = \{(\underline a, \underline b) \mid \underline a \in A^n, \, \underline b \in B^m,\, \exists i \le \min\{n,m\} \colon a_i = b_i \}\] e vuoi sapere se questa operazione è associativa, ossia se dati tre insiemi a caso $A,B,C$ si ha $(A \circ B)\circ C = A \circ (B \circ C)$.

Giusto?


In realtà un altro dubbio riguarda questa parte:
\(\displaystyle \exists i \le \min\{n,m\} \colon a_i = b_i \)
perché non è detto che tra A e B confronto solo un attributo, d'altro canto però come l'hai scritta tu potrebbe essere il modo più generale possibile?
Cioè tra A e B potrei fare il join su 2 attributi, e poi (A°B)°C su 3...

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.