Passa al tema normale
Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

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

27/05/2020, 01:54

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?

27/05/2020, 03:03

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?

27/05/2020, 10:11

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?

29/05/2020, 23:31

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)\).
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.