Cos’è e come è fatto un modello dati su Power BI

Quando usiamo Power BI con un set di dati complesso, bisogna organizzare tali dati in un “modello”. Il modello più semplice a cui possiamo pensare è semplicemente una tabella. Tuttavia, immaginiamo di avere una tabella che contenga tutti i dati di tutte le vendite di una grande società: potremmo avere centinaia di informazioni associate ad ogni singola vendita, relative alle caratteristiche della vendita stessa (per esempio il prodotto venduto, il prezzo, la quantità, il cliente…) e a quelle più specifiche del cliente coinvolto (come nome, indirizzo, mail, età, numero di telefono…) o del prodotto (colore, peso, larghezza, altezza, materiale…).

Se il mio modello fosse composto da un’unica tabella, allora tutte le informazioni relative a un determinato prodotto sarebbero ripetute in tutte le righe che rappresentano una vendita di quell’oggetto. Ad esempio se il cliente 1 e il cliente 3 comprano delle scarpe identiche, avremo due righe (una per ogni vendita) ognuna con le stesse informazioni sul colore, il peso e la misura di tali scarpe.

Questa ridondanza ha un costo in termini di peso e di performance delle analisi, che siano svolte su Excel, su Power BI o su un Database. Per questo motivo, a meno che le tabelle con cui lavoriamo non siano molto piccole, si cerca di separare le informazioni in “fatti” e “anagrafiche” (dette anche dimension), cioè tabelle contenenti informazioni relative a uno specifico attore del processo. Le informazioni dei clienti le troverò in anagrafica clienti, le informazioni dei prodotti in anagrafica prodotti e così via.

Vediamo un esempio pratico. Abbiamo in un primo caso un unico file con una tabella di vendite.

Esempio di modello con un'unica tabella di vendita con informazioni ridondanti

Nel secondo caso abbiamo separato la tabella in 3, una tabella dei fatti e 2 anagrafiche.

Prima tabella di un modello a stella contenente soltanto i fatti
Seconda e terza tabella di un modello a stella contenenti due anagrafiche

La seconda configurazione richiede circa il 30% di spazio in meno. Nei prossimi paragrafi approfondiamo i due principali tipi di modello dati, ossia il modello a stella ed il modello snowflake, analizzando i loro vantaggi e i loro svantaggi.

Modello a stella

Le sui principali caratteristiche sono:

  • Struttura semplice: Nel modello a stella, i dati sono organizzati intorno a una tabella dei fatti centrale. Questa tabella contiene le informazioni principali che si desidera analizzare o riportare, come le vendite giornaliere in un negozio.
  • Tabelle anagrafiche: Intorno alla tabella dei fatti ci sono tabelle anagrafiche (anche dette delle dimensioni). Queste tabelle contengono informazioni dettagliate sulle dimensioni o categorie associate ai dati nella tabella dei fatti. Ad esempio, come visto prima, una tabella delle dimensioni potrebbe contenere informazioni sui prodotti venduti o sui clienti. Per rendere il modello semplice è probabile che queste tabelle contengano delle ridondanze. Ad esempio l’associazione tra una città e una regione (ad esempio Milano e Lombardia) potrebbe essere ripetuta per ogni cliente o fornitore.
  • Relazioni semplici: Le relazioni tra la tabella dei fatti e le tabelle delle dimensioni sono di solito semplici e dirette. Ogni riga nella tabella dei fatti si collega direttamente a una riga nelle tabelle delle dimensioni tramite le chiavi.
  • Facile da comprendere e interrogare: Il modello a stella è noto per la sua facilità di comprensione e interrogazione, ed è particolarmente utile per l’analisi dei dati.

Modello snowflake o a fiocco di neve

Le sui principali caratteristiche sono:

  • Struttura più complessa: Nel modello snowflake, la struttura dei dati è più complessa rispetto a quella a stella. Le tabelle delle dimensioni possono essere suddivise ulteriormente in sotto-tabelle, creando una struttura simile a un “fiocco di neve“.
  • Normalizzazione dei dati: Nel modello snowflake, le tabelle delle dimensioni sono spesso normalizzate fino alla 3FN, il che significa che le informazioni ripetitive vengono suddivise in tabelle separate. Ad esempio, invece di avere un’unica tabella sull’anagrafica dei prodotti, potresti avere una tabella per i dettagli del prodotto e una tabella separata per i fornitori dei prodotti. Le associazioni tra città e regioni potrebbero essere riportate in un’anagrafica a parte.
  • Relazioni più complesse: A causa della normalizzazione e della suddivisione delle tabelle, le relazioni tra le tabelle nel modello snowflake possono diventare più complesse, richiedendo più passaggi per accedere ai dati desiderati. Se ad esempio volessi raggruppare le vendite per regione, dovrei passare prima dalla tabella dei fatti all’anagrafica dei clienti, e poi da quest’ultima all’anagrafica delle regioni.
  • Utilizzato per risparmiare spazio: Il modello snowflake è utilizzato spesso quando è necessario risparmiare spazio di archiviazione, poiché normalizzando i dati si evita la duplicazione delle informazioni.

In sintesi, la principale differenza tra i due modelli sta nella complessità della struttura e nella normalizzazione dei dati nelle tabelle anagrafiche. Il modello a stella è più semplice e intuitivo,  mentre il modello snowflake è più complesso e utilizzato principalmente per risparmiare spazio di archiviazione. In alcuni casi basta comunque utilizzare un modello a stella in quanto adottare un modello snowflake fa risparmiare una percentuale non troppo significativa di memoria.

Continua a imparare

Torna in alto
Torna su