5° Anno TEORIA 3. Un modello logico: il modello relazionale | Page 50

Π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
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 °

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
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