Schema a fiocco di neve
Che cos'è uno schema a fiocco di neve?
Lo schema a fiocco di neve (snowflake) è un modello di dati multidimensionale che rappresenta un'estensione dello schema a stella, dove le tabelle di dimensioni sono ramificate con altre tabelle (sottodimensioni). Gli schemi a fiocco di neve vengono solitamente utilizzati per business intelligence e per generare report in data warehouse OLAP, data mart e database relazionali.
In uno schema snowflake, gli ingegneri suddividono le singole tabelle di dimensioni in sottodimensioni logiche. Il modello di dati diventa così più complesso, ma facilita il lavoro degli analisti, soprattutto per determinate tipologie di dati.
Viene chiamato schema a fiocco di neve perché il suo diagramma entità-relazione assomiglia a un fiocco di neve, come raffigurato sotto.
Confronto fra schemi a fiocco di neve e schemi a stella
Come gli schemi a stella, anche gli schemi a fiocco di neve hanno una tabella dei fatti al centro, che referenzia più tabelle di dimensioni attraverso chiavi esterne. La differenza principale è che sono più normalizzati degli schemi a stella.
Gli schemi a fiocco di neve offrono maggiore efficienza di storage, grazie alla loro rigorosa conformità a standard di normalizzazione elevati, ma le prestazioni delle query non sono allo stesso livello dei modelli di dati più denormalizzati. I modelli di dati denormalizzati, come gli schemi a stella, presentano infatti una maggiore ridondanza dei dati (duplicazione), che aumenta la velocità delle query a costo della duplicazione dei dati.
Vantaggi degli schemi a fiocco di neve
- Rapidità di recupero dei dati
- Garanzia di qualità dei dati
- Modello di dati semplice e comune per data warehouse
Svantaggi degli schemi a fiocco di neve
- Costi elevati nella fase iniziale
- Modello di dati rigido
- Costi di manutenzione elevati