Esercizi Select, Project, Join #
Corrisponde al primo esercizio del compito d’esame.
es: Per ogni esame in cui il voto è 30, voglio il rispettivo studente
⚠️ Attenzione al per ogni, ovvero alla ricerca di una proprietà universale.
es: Studenti che non hanno mai preso 30
Push down della selezione #
Se in qualsiasi equazione in algebra relazionale si ha una selezione ed un join, posso invertire l’ordine delle operazioni.
\(\sigma*{F_1 \cdot F_2}(R \bowtie S) = \sigma*{F*1}({R}) \bowtie \sigma*{F_2}({S})\)Ovviamente il procedimento descritto dalla seconda equazione è più efficiente, perché il join è eseguito su relazioni più piccole. Il join è un’operazione molto costosa, quindi è sempre meglio ridurre il numero di tuple coinvolte.
Irrilevanza dell’ordine del join #
\(R \bowtie S = S \bowtie R\)Forma canonica #
- Prima tutti i join
- Poi tutte le selezioni
- Infine tutte le proiezioni