Pagina 1 di 1
[Basi di dati] Come si dimostra l'associatività di INNER JOIN?
Inviato:
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?
Inviato:
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?
Inviato:
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?
Inviato:
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)\).