15 . Il modello relazionale Vers . 6.2 – Gennaio 2023
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 :
T1 = σNomeScuola = " ISIS G . Tassinari " ( Scuola ) Otterremo la seguente tabella
3 °
2 ° 1 °
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
|
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 . 50