ΠCognome, Nome( Studente �� σNomeScuola =“ ISIS G. Tassinari”( Scuola)) CodScuola1 = CodScuola
la prima interrogazione: T1 = σNomeScuola =“ ISIS G. Tassinari”( Scuola)
T1 = σNomeScuola = " ISIS G. Tassinari "( Scuola) Otterremo la seguente tabella( con ovviamente molte meno righe rispetto a quelle dell’ intera relazione“ Scuola”)
15. Il modello relazionale Vers. 8.0 – Gennaio 2026
Domanda: sarebbe stato possibile eseguire la query 2 in un modo più efficiente, ossia minimizzando il numero di n-ple coinvolte per la sua risoluzione?
Questo quesito si pone ogni qualvolta ci troviamo ad eseguire PRIMA un EQUI-JOIN e POI una SELEZIONE sul risultato ottenuto.
Cosa avverrebbe se eseguissimo uno scambio di posizione tra le due operazioni da effettuare ossia eseguissimo PRIMA la SELEZIONE per POI eseguire l’ EQUI-JOIN? Ossia:
1) Eseguiamo una SELEZIONE sulla relazione Scuola con condizione NomeScuola =“ ISIS G. Tassinari”. 2) Poi eseguiamo un EQUI-JOIN tra la relazione Studente e quella appena ottenuta uguagliando i valori della chiave esterna CodScuola1( sulla relazione Studente) con quelli della chiave primaria CodScuola( della relazione Scuola). 3) Successivamente operiamo una PROIEZIONE( taglio verticale) rispetto agli attributi scelti Studente. Cognome, Studente. Nome.
ΠCognome, Nome( Studente �� σNomeScuola =“ ISIS G. Tassinari”( Scuola)) CodScuola1 = CodScuola
Anche questa interrogazione può essere quindi vista come una interrogazione composta da tre interrogazioni( due elementari ed una derivata) ossia:
la prima interrogazione: T1 = σNomeScuola =“ ISIS G. Tassinari”( Scuola)
la seconda interrogazione: T2 =( Studente �� T1)
CodScuola1 = CodScuola
la terza interrogazione: T3 = ΠCognome, Nome( T2) Allora eseguiamo innanzitutto la prima operazione relazionale prevista:
3 °
T1 = σNomeScuola = " ISIS G. Tassinari "( Scuola) Otterremo la seguente tabella( con ovviamente molte meno righe rispetto a quelle dell’ intera relazione“ Scuola”)
2 ° 1 °
T1 CodScuola NomeScuola NATF091011
ISIS G. Tassinari
Indirizzo Via Fasano, 78
Eseguiamo poi la seconda operazione relazionale prevista
T2 =( Studente �� T1)
CodScuola1 = CodScuola
Tale operazione come ricordiamo, risulta essere un’ operazione derivata che da come risultato una tabella le cui n-ple si ottengono dal seguente procedimento:
a) prima di tutto dobbiamo eseguire il prodotto cartesiano delle relazioni Studente e T1
Studente X T1 |
Matricola Cognome Nome
M001 Rossi Paolo
|
CodScuola1 NATF091011 |
CodScuola NATF091011 |
NomeScuola
ISIS G. Tassinari
|
Indirizzo Via Fasano, 78 |
|
M002 Bianchi Aldo |
NATF091011 |
NATF091011 |
ISIS G. Tassinari |
Via Fasano, 78 |
|
M003 |
Verdi |
Ada |
M004 |
Neri |
Maria |
|
NAXX123456 NAXX123456 |
NATF091011 NATF091011 |
ISIS G. Tassinari ISIS G. Tassinari |
Via Fasano, 78 Via Roma, 144 |
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 51