Nomi degli studenti che quest’anno hanno preso un voto STUDENTE(MATR, NOME, RESIDENZA) ESAME(MATR, C#, VOTO, DATA) CORSO(C# , TITOLO , D#) Nomi degli studenti che quest’anno hanno preso un voto superiore a 28 nell’esame di Basi di Dati) SELECT NOME FROM STUDENTE S , ESAME E , CORSO C WHERE VOTO>28 AND TITOLO='BdD'AND DATA'01/01/2019' AND S.MATR=E.MATR AND E.C#=C.C#
pNOME sF X X CORSO STUDENTE ESAME Dove F è la condizione: VOTO28 DATA'01/01/2019' S.MATR=E.MATR TITOLO='BdD' E.C#=C.C#
Passo 1 Usa la regola 4 per ottenere cascate di selezioni
pNOME Applico regola 4 sF X X CORSO STUDENTE ESAME Dove F è la condizione: VOTO28 DATA'01/01/2019' S.MATR=E.MATR TITOLO='BdD' E.C#=C.C#
pNOME s VOTO28 s DATA'01/01/2019' s S.MATR=E.MATR s TITOLO='BdD' s E.C#=C.C# X X CORSO STUDENTE ESAME
Passo 2 Usa le regole da 4 a 9 per spostare le selezioni il più in basso possibile
Applico regole 4 e 6 pNOME s VOTO28 s DATA'01/01/2019' s S.MATR=E.MATR s TITOLO='BdD' s E.C#=C.C# X X CORSO STUDENTE ESAME
pNOME s E.C#=C.C# X s S.MATR=E.MATR s TITOLO='BdD' X CORSO STUDENTE s VOTO28 DATA'01/01/2019' ESAME
Passo 3 Usa le regole da 3, 5, 10 e 11 per spostare le proiezioni il più in basso possibile
Applico regola 5 pNOME s E.C#=C.C# X s S.MATR=E.MATR s TITOLO='BdD' X CORSO STUDENTE s VOTO28 DATA'01/01/2019' ESAME
Applico regola 10 pNOME s E.C#=C.C# pNOME E.C# C.C# X s S.MATR=E.MATR s TITOLO='BdD' X CORSO STUDENTE s VOTO28 DATA'01/01/2019' ESAME
Applico regola 5 pNOME s E.C#=C.C# X pNOME E.C# pC.C# s TITOLO='BdD' s S.MATR=E.MATR X CORSO STUDENTE s VOTO28 DATA'01/01/2019' ESAME
Applico regola 10 pNOME s E.C#=C.C# X pNOME E.C# pC.C# s S.MATR=E.MATR s TITOLO='BdD' pNOME E.C# S.MATR E.MATR pC.C# TITOLO X CORSO STUDENTE s VOTO28 DATA'01/01/2019' ESAME
Applico regola 5 pNOME s E.C#=C.C# X pNOME E.C# pC.C# s S.MATR=E.MATR s TITOLO='BdD' X pC.C# TITOLO pNOME S.MATR p E.C# E.MATR CORSO STUDENTE s VOTO28 DATA'01/01/2019' ESAME
pNOME s E.C#=C.C# X pNOME E.C# pC.C# s S.MATR=E.MATR s TITOLO='BdD' X pC.C# TITOLO p E.C# E.MATR pNOME S.MATR CORSO s VOTO28 DATA'01/01/2019' STUDENTE p E.C# E.MATR VOTO DATA ESAME
Passo 4 Usa le regole da 3 e 5 per combinare cascate di selezioni e proiezioni in una singola proiezione o in una selezione seguita da una proiezione
Applico regola 5 pNOME s E.C#=C.C# X pNOME E.C# pC.C# s S.MATR=E.MATR s TITOLO='BdD' X pC.C# TITOLO p E.C# E.MATR pNOME S.MATR CORSO s VOTO28 DATA'01/01/2019' STUDENTE p E.C# E.MATR VOTO DATA ESAME
pNOME s E.C#=C.C# X pNOME E.C# pC.C# s S.MATR=E.MATR s TITOLO='BdD' X CORSO p E.C# E.MATR pNOME S.MATR s VOTO28 DATA'01/01/2019' STUDENTE ESAME
Partiziona i nodi dell’albero: Passo 5 Partiziona i nodi dell’albero: Ogni nodo che rappresenta un’operazione binaria è raggruppato insieme a: i suoi immediati antenati che rappresentano operazioni unarie e - ogni catena di discendenti che rappresentano operazioni unarie e termina in una foglia
pNOME s E.C#=C.C# X pNOME E.C# pC.C# s S.MATR=E.MATR s TITOLO='BdD' X CORSO p E.C# E.MATR pNOME S.MATR s VOTO28 DATA'01/01/2019' STUDENTE ESAME
Passo 6 Esamina i gruppi ottenuti in un qualsiasi ordine tale che nessun gruppo è esaminato prima di un suo discendente e per ciascun gruppo genera un passo del piano di esecuzione
pNOME s E.C#=C.C# X pNOME E.C# pC.C# s S.MATR=E.MATR s TITOLO='BdD' X CORSO p E.C# E.MATR pNOME S.MATR s VOTO28 DATA'01/01/2019' STUDENTE ESAME
pE.C# E.MATR (s VOTO28 DATA'01/01/2019'(ESAME)))) pNOME E.C# R1 s S.MATR=E.MATR X p E.C# E.MATR pNOME S.MATR s VOTO28 DATA'01/01/2019' STUDENTE ESAME R1=pNOME E.C# (s S.MATR=E.MATR (pNOME S.MATR(STUDENTE) X pE.C# E.MATR (s VOTO28 DATA'01/01/2019'(ESAME))))
R2=pNOME (sE.C#=C.C# (R1 X pC.C# (s TITOLO='BdD'(CORSO))))
PIANO DI ESECUZIONE R1=pNOME E.C# (s S.MATR=E.MATR (pNOME S.MATR(STUDENTE) X pE.C# E.MATR (s VOTO28 DATA'01/01/2019'(ESAME)))) R2=pNOME (sE.C#=C.C# (R1 X pC.C# (s TITOLO='BdD'(CORSO))))