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.
| Candidato | Perché 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 |
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.
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.
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.
| Costrutto | Definizione | Esempi |
|---|---|---|
| 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.
Classificate ciascun concetto secondo le definizioni del DFM.
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.
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.
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.
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.
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à.
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.
| Categoria | Definizione | Esempi |
|---|---|---|
| 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 temporali | Gerarchie non temporali | |
|---|---|---|
| Misure di flusso | SUM, AVG, MIN, MAX | SUM, AVG, MIN, MAX |
| Misure di livello | AVG, MIN, MAX (niente SUM) | SUM, AVG, MIN, MAX |
| Misure unitarie | AVG, MIN, MAX | AVG, MIN, MAX (niente SUM) |
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.
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:
| livello | quantità in ingresso | |
|---|---|---|
| data | AVG, MIN | SUM |
| prodotto | SUM | SUM |
| magazzino | SUM | SUM |
La misura livello è non-additiva sulla dimensione data ma additiva su prodotto e magazzino; la misura quantità in ingresso, essendo di flusso, è additiva ovunque.
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.
Data una misura e la dimensione lungo cui si aggrega, indicate se la somma è ammessa.
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 val1…valk 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.
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.
| Schema transazionale | Schema 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:
| settimana | schema transazionale | schema istantaneo | ||
|---|---|---|---|---|
| prodotto/magazzino | flusso | prodotto/magazzino | livello | |
| 1/10/06 | LCD TV / MI | +20 | LCD TV / MI | 20 |
| 8/10/06 | LCD TV / MI | −5 | LCD TV / MI | 15 |
| 15/10/06 | LCD TV / MI | +3 | LCD TV / MI | 18 |
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.
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.
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.
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.
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.
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).
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.
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».
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.
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.
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.
«Siano val1…valk 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.