ΠCognome, Nome( Studente �� σNomeScuola =“ ISIS G. Tassinari”( Scuola)) CodScuola1 = CodScuola 3 °
la prima interrogazione: T1 = σNomeScuola =“ ISIS G. Tassinari”( Scuola)
T1 = σNomeScuola = " ISIS G. Tassinari "( Scuola) Otterremo la seguente tabella
15. Il modello relazionale Vers. 7.2 – Dicembre 2025
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.
2 ° 1 °
ΠCognome, Nome( Studente �� σNomeScuola =“ ISIS G. Tassinari”( Scuola)) CodScuola1 = CodScuola 3 °
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:
T1 = σNomeScuola = " ISIS G. Tassinari "( Scuola) Otterremo la seguente tabella
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