Estratto del documento

La join

Forma generale

Negli esempi visti finora, abbiamo sempre considerato una sola relazione per il calcolo della query. In questa parte illustreremo come sia possibile includere nel calcolo più di una tabella. Questa operazione, chiamata anche join, si ottiene specificando di seguito alla parola chiave FROM il nome delle relazioni da considerare. In termini di algebra relazionale, questa operazione si definisce "prodotto" ed il suo risultato è identico a quello che in matematica viene detto "prodotto cartesiano".

Riportiamo la forma generale di una query che effettua una join:

SELECT . . .
FROM nome_tab1, nome_tab2 [, . . .];

Allo scopo di facilitare la comprensione di questa operazione, consideriamo i dati di due nuove tabelle, una chiamata A, l'altra chiamata B.

A B
  • ANIMALE
  • NOME
  • PAESE
  • gatto
  • tom
gb
  • topo
  • jerry
i
  • cane
  • pluto
urss
  • papero
  • ciccio
  • struzzo
  • bipbip

Il risultato della join

La tabella A si compone di due attributi animale e nome, mentre la tabella B si compone del solo attributo paese. Stando così le cose, non esiste alcun legame tra nome dell'animale e paese di appartenenza e, dal punto di vista pratico, il risultato che si ottiene, apparentemente, non ha molto significato.

Lo riportiamo insieme al testo della query con lo scopo di evidenziare come agisce, se usata da sola, l'operazione di join.

SELECT *
FROM a, b; [19]
ANIMALE NOME PAESE
gatto tom gb
topo jerry gb
cane pluto gb
papero ciccio gb
struzzo bipbip gb
gatto tom i
topo jerry i
cane pluto i
papero ciccio i
struzzo bipbip i
gatto tom urss
topo jerry urss
cane pluto urss
papero ciccio urss
struzzo bipbip urss

Per chiarire sul risultato della query notiamo che fissata una tupla della relazione B, questa è stata associata a tutte le tuple della relazione A, e così via per tutte le tuple della relazione B. Le colonne invece sono banalmente la somma delle colonne di A con quelle di B. Questo risultato è detto "combinazione lineare".

In generale possiamo dire che l'operazione di join ottiene una relazione il cui grado è pari alla somma degli attributi di ogni tabella mentre la cardinalità è pari al prodotto delle cardinalità di ogni tabella.

È interessante notare, anche se dal punto di vista del risultato non cambia alcunché, cosa avviene se eseguiamo la query:

SELECT *
FROM b, a; [19]
PAESE ANIMALE NOME
gb gatto tom
i gatto tom
urss gatto tom
gb topo jerry
i topo jerry
urss topo jerry
gb cane pluto
i cane pluto
urss cane pluto
gb papero ciccio
i papero ciccio
urss papero ciccio
gb struzzo bipbip
i struzzo bipbip
urss struzzo bipbip

Il risultato solo apparentemente è molto diverso; in realtà le d

Anteprima
Vedrai una selezione di 3 pagine su 7
Informatica - la Join - SQL Pag. 1 Informatica - la Join - SQL Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Informatica - la Join - SQL Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher valeria0186 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Grande Antonio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community