Parte II — Analisi e progettazione concettuale · Capitolo 7

Il Dimensional Fact Model

~32 min di lettura3 widget interattivi3 tavole

In questo capitolo

  1. Quale formalismo per il progetto concettuale?
  2. Il DFM e i suoi obiettivi
  3. Fatti, misure, dimensioni
  4. Attributi dimensionali e gerarchie
  5. Eventi primari, eventi secondari, group-by set
  6. L'additività
  7. Schemi vuoti, transazionali, istantanei
  8. Verifica le tue conoscenze

1. Quale formalismo per il progetto concettuale?

Mentre è universalmente riconosciuto che un DW si appoggia sul modello multidimensionale, non c'è accordo sulla metodologia di progetto concettuale. Le slide scartano esplicitamente due candidati ovvi.

CandidatoPerché non va bene
Il modello Entity/Relationship È molto diffuso nelle imprese come formalismo per la documentazione dei sistemi informativi relazionali, ma non può essere usato per modellare il DW: non ha i costrutti per esprimere fatti, misure, gerarchie di aggregazione e additività
Lo schema a stella Alcuni progettisti disegnano direttamente gli schemi a stella, ma uno schema a stella non è altro che uno schema relazionale, e racchiude pertanto solo la definizione di un insieme di relazioni e di vincoli di integrità: è già un modello logico, non concettuale
Attenzione

Il secondo punto è quello che si dimentica più facilmente all'esame. Se la traccia chiede «lo schema concettuale secondo il DFM» e voi disegnate una fact table circondata da dimension table, non avete risposto: avete saltato un livello. Lo schema a stella è la traduzione dello schema di fatto, e arriva nel capitolo 11.

2. Il DFM e i suoi obiettivi

Il DFM (Dimensional Fact Model) è un modello concettuale grafico per data mart, pensato per cinque scopi:

La rappresentazione concettuale generata dal DFM consiste in un insieme di schemi di fatto. Gli elementi di base modellati dagli schemi di fatto sono i fatti, le misure, le dimensioni e le gerarchie.

Idea chiave

Il quarto obiettivo è quello che giustifica l'esistenza del modello: lo schema di fatto è indipendente dal modello logico target. Lo stesso schema di fatto si traduce in uno star schema ROLAP, in uno snowflake, in un cubo MOLAP o in una costellazione — e ciascuna traduzione conserva il significato perché il significato sta nel livello concettuale, non nella tabella.

3. Fatti, misure, dimensioni

CostruttoDefinizioneEsempi
Fatto Un concetto di interesse per il processo decisionale; tipicamente modella un insieme di eventi che accadono nell'impresa. È essenziale che un fatto abbia aspetti dinamici, ovvero che evolva nel tempo vendite, spedizioni, acquisti
Misura Una proprietà numerica di un fatto, che ne descrive un aspetto quantitativo di interesse per l'analisi ogni vendita è misurata dal suo incasso
Dimensione Una proprietà con dominio finito di un fatto, che ne descrive una coordinata di analisi per il fatto vendite: prodotto, negozio, data

Due precisazioni che sembrano dettagli e non lo sono. La prima: è essenziale che un fatto abbia aspetti dinamici. Un concetto statico — un catalogo prodotti, un'anagrafica negozi — non è un fatto, per quanto sia importante: sarà una dimensione. La seconda: un fatto esprime un'associazione molti-a-molti fra le dimensioni. Ogni prodotto può essere venduto in molti negozi, ogni negozio vende molti prodotti, e la vendita è ciò che sta nel mezzo.

VENDITA quantità venduta incasso num. clienti data prodotto negozio mese anno settimana trimestre vacanza tipo categoria marca dieta peso città regione indirizzo telefono FATTO MISURE DIMENSIONE attributi dimensionali gerarchia un fatto esprime un'associazione molti-a-molti fra le dimensioni; ogni arco della gerarchia è un'associazione molti-a-uno fra attributi dimensionali
Tavola 7.1 — Lo schema di fatto VENDITA nella notazione del DFM. Il rettangolo è il fatto e contiene le misure; i pallini pieni sono le dimensioni; i pallini vuoti gli altri attributi dimensionali; ogni linea è un'associazione molti-a-uno.

Esercizio: fatto, dimensione o misura?

Classificate ciascun concetto secondo le definizioni del DFM.

4. Attributi dimensionali e gerarchie

Con il termine generale attributi dimensionali si intendono le dimensioni e gli eventuali altri attributi, sempre a valori discreti, che le descrivono. Per esempio, un prodotto è descritto dal suo tipo, dalla categoria cui appartiene, dalla sua marca, dal reparto in cui è venduto.

Definizione — gerarchia

Una gerarchia è un albero direzionato i cui nodi sono attributi dimensionali e i cui archi modellano associazioni molti-a-uno fra coppie di attributi dimensionali. Essa racchiude una dimensione, posta alla radice dell'albero, e tutti gli attributi dimensionali che la descrivono.

Tre parole di questa definizione vanno pesate una per una. Albero: niente cicli, e ogni nodo ha un solo padre — vedremo nel capitolo 8 che questa restrizione va rilassata con convergenze e gerarchie condivise. Direzionato: si sale verso l'aggregazione e si scende verso il dettaglio, mai il contrario. Molti-a-uno: è la proprietà che rende l'aggregazione ben definita, perché garantisce che ogni valore fine appartenga a esattamente un valore grosso, e quindi che nessun evento venga contato due volte.

La corrispondenza con l'E/R

Le slide mostrano che lo schema di fatto ha un equivalente E/R molto verboso: ogni attributo dimensionale diventa un'entità, ogni arco della gerarchia un'associazione (1,1)–(1,n), il fatto un'associazione n-aria fra le entità radice con gli attributi-misura sopra. Il confronto visivo è impietoso ed è esattamente l'argomento a favore del DFM: la stessa informazione, su una sola pagina invece che su venti.

5. Eventi primari, eventi secondari, group-by set

Definizioni

Un evento primario è una particolare occorrenza di un fatto, individuata da una ennupla costituita da un valore per ciascuna dimensione. A ciascun evento primario è associato un valore per ciascuna misura.

Dato un insieme di attributi dimensionali (group-by set), ciascuna ennupla di loro valori individua un evento secondario che aggrega tutti gli eventi primari corrispondenti. A ciascun evento secondario è associato un valore per ciascuna misura, che riassume in sé tutti i valori della stessa misura negli eventi primari corrispondenti.

L'esempio delle slide: con riferimento alle vendite, un possibile evento primario registra che il 10/10/2001, nel negozio NonSoloPappa, sono state vendute 10 confezioni di detersivo Brillo per un incasso complessivo pari a 25 euro.

Da qui la conclusione che tiene insieme tutto il modello: le gerarchie definiscono il modo in cui gli eventi primari possono essere aggregati e selezionati significativamente per il processo decisionale; mentre la dimensione in cui una gerarchia ha radice ne definisce la granularità più fine di aggregazione, agli altri attributi dimensionali corrispondono granularità via via crescenti.

eventi primari {prodotto, negozio, data} eventi secondari {tipo, città, mese} eventi secondari {categoria, regione, anno} operatore di aggregazione ancora aggregazione granularità più fine a sinistra (la dimensione, radice della gerarchia) → granularità crescenti verso destra
Tavola 7.2 — Da eventi primari a eventi secondari. Cambiare group-by set significa spostarsi lungo le gerarchie: ogni passo comprime il cubo e richiede un operatore di aggregazione per comporre le misure.
Nota del redattore

La parola significativamente nella frase «aggregati e selezionati significativamente» è il ponte verso la sezione successiva. Aggregare è sempre possibile: basta applicare un operatore. Aggregare in modo significativo richiede che l'operatore sia adatto alla misura e alla dimensione lungo cui si aggrega — ed è esattamente il problema dell'additività.

6. L'additività

L'additività esprime in che modo le misure possono essere aggregate. L'aggregazione richiede di definire un operatore adatto per comporre i valori delle misure che caratterizzano gli eventi primari in valori da abbinare a ciascun evento secondario.

Le tre categorie di misure

CategoriaDefinizioneEsempi
Misure di flusso Si riferiscono a un periodo, al cui termine vengono valutate in modo cumulativo il numero di prodotti venduti in un giorno, l'incasso mensile, il numero di nati in un anno
Misure di livello Vengono valutate in particolari istanti di tempo il numero di prodotti in inventario, il numero di abitanti di una città
Misure unitarie Vengono valutate in particolari istanti di tempo, ma sono espresse in termini relativi il prezzo unitario di un prodotto, la percentuale di sconto, il cambio di una valuta

La tabella che segue è, all'esame, una delle più redditizie del corso: dice quali operatori sono ammissibili per ciascuna categoria, distinguendo fra gerarchie temporali e gerarchie non temporali.

Gerarchie temporaliGerarchie non temporali
Misure di flussoSUM, AVG, MIN, MAXSUM, AVG, MIN, MAX
Misure di livelloAVG, MIN, MAX (niente SUM)SUM, AVG, MIN, MAX
Misure unitarieAVG, MIN, MAXAVG, MIN, MAX (niente SUM)
Idea chiave — perché mancano proprio quelle due caselle

Una misura di livello non si somma nel tempo: se in magazzino ci sono 100 pezzi lunedì e 100 martedì, non ce ne sono 200 — sono gli stessi. Ma si somma benissimo fra magazzini diversi, perché quelli sono pezzi distinti. Una misura unitaria non si somma mai, in nessuna direzione: sommare due prezzi unitari o due percentuali di sconto non produce niente di sensato.

Additiva, non-additiva, non-aggregabile

Le definizioni formali sono tre e vanno tenute distinte:

L'esempio delle slide sul fatto INVENTARIO chiarisce che l'additività è una proprietà della coppia misura-dimensione, non della misura da sola:

livelloquantità in ingresso
dataAVG, MINSUM
prodottoSUMSUM
magazzinoSUMSUM

La misura livello è non-additiva sulla dimensione data ma additiva su prodotto e magazzino; la misura quantità in ingresso, essendo di flusso, è additiva ovunque.

Un esempio numerico di non-additività

Le slide mostrano una tabella di prezzi unitari per prodotto e trimestre, e poi la stessa tabella aggregata per tipo e per categoria. I valori aggregati (1,75 — 2,17 — 2,40 — 2,67 per i detersivi) sono medie, non somme; e la riga «media» complessiva 1,50 — 1,76 — 2,08 — 2,09 non coincide con la media delle medie della categoria (1,50 — 1,84 — 2,14 — 2,38), perché i gruppi hanno cardinalità diverse. È il primo affacciarsi di un problema che il capitolo 10 affronterà in modo sistematico con le aggregazioni parziali e le misure di supporto.

Misura di flusso. Si riferisce a un periodo, al cui termine viene valutata in modo cumulativo: quantità venduta in un giorno, incasso mensile, numero di nati in un anno. È additiva su tutte le dimensioni, temporali e non: SUM, AVG, MIN e MAX sono tutti ammessi ovunque. È il caso più comodo e anche il più comune nei fatti transazionali.

Misura di livello. Viene valutata in particolari istanti di tempo: numero di prodotti in inventario, numero di abitanti di una città. È non-additiva sulle gerarchie temporali (sommare le giacenze di lunedì e martedì non ha senso: sono gli stessi pezzi) ma additiva sulle altre. Operatori: AVG, MIN, MAX nel tempo; SUM, AVG, MIN, MAX altrove.

Misura unitaria. Valutata in particolari istanti di tempo ma espressa in termini relativi: prezzo unitario, percentuale di sconto, cambio di una valuta. È non-additiva su ogni dimensione: mai SUM, né nel tempo né altrove. Operatori ammessi: AVG, MIN, MAX. Sommare due percentuali di sconto non produce una percentuale di sconto.

Esercizio: quali operatori sono ammissibili?

Data una misura e la dimensione lungo cui si aggrega, indicate se la somma è ammessa.

Per l'esame

Nella progettazione concettuale le non-additività vanno rappresentate esplicitamente sullo schema di fatto: si annota accanto alla misura l'operatore ammesso, per esempio (AVG). La domanda da porsi, per ogni coppia dimensione–misura, è quella formulata dalle slide: «siano val1valk i valori assunti dalla misura mj nei k eventi primari corrispondenti a k differenti valori presi dal dominio della dimensione di e da un valore prefissato di ciascuna delle altre n–1 dimensioni. Volendo caratterizzare complessivamente i k eventi con un unico valore di mj, quali operatori di aggregazione ha senso utilizzare?». Va posta per tutte le accoppiate dimensione-misura, non solo per quelle sospette.

7. Schemi vuoti, transazionali, istantanei

Schemi di fatto vuoti

Uno schema di fatto si dice vuoto se non ha misure. In questo caso il fatto registra solo il verificarsi di un evento. L'esempio delle slide è il fatto FREQUENZA, con dimensioni studente, corso e semestre, la cui unica «misura» implicita è il COUNT degli eventi.

Schemi transazionali e schemi istantanei

Schema transazionaleSchema istantaneo
Che cosa registra ogni evento Una singola transazione, oppure riassume un insieme di transazioni che avvengono durante lo stesso intervallo di tempo Una fotografia periodica del fatto
Tipo di misure prevalente La maggior parte delle misure sono di flusso La maggior parte delle misure sono di livello
Esempio dalle slide VENDITE, con misure quantità e guadagno PORTATA di un fiume, con misura livello rilevata da un idrometro

La scelta fra i due non è libera. Le slide danno una regola precisa:

L'esempio numerico è l'inventario di un televisore LCD nel magazzino di Milano:

settimanaschema transazionaleschema istantaneo
prodotto/magazzinoflussoprodotto/magazzinolivello
1/10/06LCD TV / MI+20LCD TV / MI20
8/10/06LCD TV / MI−5LCD TV / MI15
15/10/06LCD TV / MI+3LCD TV / MI18
SCHEMA TRANSAZIONALE SCHEMA ISTANTANEO misure di flusso: delta misure di livello: fotografie +20 −5 +3 20 15 18 1/108/1015/10 1/108/1015/10 somma nel tempo: legittima somma nel tempo: priva di senso
Tavola 7.3 — Flussi contro livelli. Gli stessi dati di magazzino, modellati nei due modi: a sinistra i delta si sommano lungo il tempo, a destra le fotografie no.

Verifica le tue conoscenze

Perché il modello E/R non basta per la progettazione concettuale di un DW? E perché non basta lo schema a stella?

Il modello E/R è diffusissimo come formalismo di documentazione dei sistemi informativi relazionali, ma non può essere usato per modellare il DW: non esprime fatti, misure, gerarchie di aggregazione e additività. Lo schema a stella non è un modello concettuale ma uno schema relazionale: racchiude solo la definizione di un insieme di relazioni e di vincoli di integrità, e appartiene quindi al livello logico.

Quali sono gli obiettivi del DFM?

Supportare efficacemente il progetto concettuale; creare un ambiente su cui formulare in modo intuitivo le interrogazioni dell'utente; permettere il dialogo fra progettista e utente finale per raffinare le specifiche dei requisiti; creare una piattaforma stabile per il progetto logico, indipendentemente dal modello logico target; restituire una documentazione a posteriori espressiva e non ambigua.

Definite fatto, misura e dimensione.

Un fatto è un concetto di interesse per il processo decisionale, che tipicamente modella un insieme di eventi che accadono nell'impresa; è essenziale che abbia aspetti dinamici, ovvero che evolva nel tempo. Una misura è una proprietà numerica di un fatto che ne descrive un aspetto quantitativo di interesse per l'analisi. Una dimensione è una proprietà con dominio finito di un fatto che ne descrive una coordinata di analisi.

Che cos'è una gerarchia nel DFM?

Un albero direzionato i cui nodi sono attributi dimensionali e i cui archi modellano associazioni molti-a-uno fra coppie di attributi dimensionali. Racchiude una dimensione, posta alla radice, e tutti gli attributi dimensionali che la descrivono. Gli attributi dimensionali sono le dimensioni e gli eventuali altri attributi, sempre a valori discreti, che le descrivono.

Che differenza c'è fra evento primario ed evento secondario?

Un evento primario è una particolare occorrenza di un fatto, individuata da un'ennupla con un valore per ciascuna dimensione; a esso è associato un valore per ciascuna misura. Un evento secondario è individuato da un'ennupla di valori di un group-by set di attributi dimensionali e aggrega tutti gli eventi primari corrispondenti; a esso è associato, per ciascuna misura, un valore che riassume tutti i valori di quella misura negli eventi primari corrispondenti.

Quali sono le tre categorie di misure e come si distinguono?

Misure di flusso: si riferiscono a un periodo, al termine del quale vengono valutate in modo cumulativo (prodotti venduti in un giorno, incasso mensile, nati in un anno). Misure di livello: vengono valutate in particolari istanti di tempo (prodotti in inventario, abitanti di una città). Misure unitarie: valutate in particolari istanti di tempo ma espresse in termini relativi (prezzo unitario, percentuale di sconto, cambio di una valuta).

Quali operatori sono ammessi per ciascuna categoria di misura?

Flusso: SUM, AVG, MIN, MAX sia su gerarchie temporali sia non temporali. Livello: AVG, MIN, MAX su gerarchie temporali; SUM, AVG, MIN, MAX su quelle non temporali. Unitarie: AVG, MIN, MAX in entrambi i casi. In altre parole, il livello non si somma nel tempo e l'unitaria non si somma mai.

Che differenza c'è fra misura non-additiva e misura non-aggregabile?

Una misura è additiva su una dimensione se i suoi valori possono essere aggregati lungo la corrispondente gerarchia tramite l'operatore di somma; altrimenti è non-additiva. Una misura non-additiva è non-aggregabile se nessun operatore di aggregazione può essere usato su di essa. Non-additivo significa quindi «niente SUM»; non-aggregabile significa «niente del tutto».

Che cos'è uno schema di fatto vuoto?

Uno schema di fatto senza misure: in questo caso il fatto registra solo il verificarsi di un evento, e l'unica informazione quantitativa ricavabile è il conteggio degli eventi (COUNT). L'esempio delle slide è il fatto FREQUENZA con dimensioni studente, corso e semestre.

Qual è la differenza fra schema transazionale e schema istantaneo?

In uno schema transazionale ciascun evento registra una singola transazione o riassume un insieme di transazioni avvenute nello stesso intervallo di tempo; la maggior parte delle misure sono di flusso. In uno schema istantaneo ciascun evento corrisponde a una fotografia periodica del fatto; la maggior parte delle misure sono di livello.

Come si sceglie fra schema transazionale e istantaneo?

Il transazionale è migliore se gli eventi sono misurati come flussi entranti e uscenti (delta), e non può essere adottato se gli eventi sono misurati come livelli, a meno che non sia possibile decomporli univocamente in flussi. L'istantaneo è migliore se gli eventi sono misurati come livelli, e può essere adottato anche per i flussi se è nota la funzione che li compone in livelli — ma in tal caso può comportare perdita di informazione. In generale la scelta dipende anche dal carico di lavoro.

Qual è la domanda da porsi per stabilire l'additività di una coppia dimensione-misura?

«Siano val1valk i valori assunti dalla misura mj nei k eventi primari corrispondenti a k differenti valori presi dal dominio della dimensione di e da un valore prefissato di ciascuna delle altre n−1 dimensioni. Volendo caratterizzare complessivamente i k eventi con un unico valore di mj, quali operatori di aggregazione ha senso utilizzare?» Va posta considerando tutte le accoppiate dimensione-misura.