Funzioni aggregate

in caso di funzioni aggregate come

SELECT AVG(eta)
FROM Sommelier S

Tutti i record vengono scanditi e vengono mantenute informazioni aggiuntive

FunzioneInformazione mantenuta
SUMtotale dei valori stimati
AVGtotale e numero di valori
MINminimo dei valori
MAXmassimo dei valori
COUNTnumero dei valori

Group by

In caso di raggruppamenti come:

SELECT S.livello, MIN(età)
FROM Sommelier S
GROUP BY S.livello

e necessario partizionare i record e calcolare le funzioni di aggregazione per ogni record, ci sono 3 principali strategie:

Group by per mezzo di sorting

Una delle possibilità e quella di sfruttare tecniche di ordinamento come quelle viste per la proiezione, va sommato il costo di calcolo delle funzioni aggregate

Group by per mezzo di indici

In caso di indici sugli attributi di group by e di calcolo delle funzioni non e necessario accedere al file dati

in caso di b+tree se gli attributi di raggruppamento sono un prefisso della chiave si può utilizzare l'indice per accedere al file dati in maniera ordinata

Group by usando hashing

Si costruisce una tabella di hash in memoria centrale in maniera analoga al caso della proiezione

PREVIOUS NEXT