Pagina 1 di 1

[Basi di dati] Come si dimostra l'associatività di INNER JOIN?

MessaggioInviato: 27/05/2020, 01:54
da daffeen
Ciao, mi piacerebbe conoscere una dimostrazione dell'associatività dell'operatore INNER JOIN in SQL, ovvero
A°(B°C) = (A°B)°C
dove ° è l'operazione di giunzione.

Ciò è ulteriormente equivalente a fare (AxBxC) per poi applicare il Join, ma ancora una volta non sono riuscito a dimostrarlo.
Vi ringrazio anticipatamente.

Re: [Basi di dati] Come si dimostra l'associatività di INNER JOIN?

MessaggioInviato: 27/05/2020, 03:03
da apatriarca
Questo genere di dimostrazioni si basano di solito sull'applicazione diretta della definizione sulle tre tabelle per vedere che i due lati della tua espressione sono effettivamente uguali..

Re: [Basi di dati] Come si dimostra l'associatività di INNER JOIN?

MessaggioInviato: 27/05/2020, 10:11
da daffeen
apatriarca ha scritto:Questo genere di dimostrazioni si basano di solito sull'applicazione diretta della definizione sulle tre tabelle per vedere che i due lati della tua espressione sono effettivamente uguali..

Grazie mille per la risposta! Quindi non c'è alcun modo per dimostrare ciò nel modo più generale possibile?

Re: [Basi di dati] Come si dimostra l'associatività di INNER JOIN?

MessaggioInviato: 29/05/2020, 23:31
da apatriarca
La tua operazione è costruita a partire dal prodotto cartesiano e dalla selezione. Se riscrivi la tua espressione usando queste operazioni di base ti scontri con il problema di dimostrare il seguente:

Siano \(A\) e \(B\) due relazioni e \(F\) una qualche condizione su \(B\). Allora \(A \times (\sigma_F B) = \sigma_F (A \times B)\). Analogamente, se \(G\) fosse una condizione su \(A\) avremmo \( (\sigma_G A) \times B = \sigma_G (A \times B)\).