DAI DATI ALLE DECISIONI MODELLI DEI DATI PER DW Per definire la struttura di un DW si usano i seguenti formalismi, detti modelli dei dati: Le aziende per competere devono usare metodi di analisi, con tecniche di Business Intelligence, dei dati interni, accumulati nel tempo, e di dati esterni, sia per la formazione delle decisioni sia per rendere i processi efficienti ed efficaci. Il modello concettuale grafico dei fatti per DW. E’ necessario utilizzare una base di dati particolare, detta data warehouse, organizzata per analizzare i dati secondo una logica aziendale. Il modello logico relazionale, per mostrare come si rappresentano i dati nei sistemi per DW. Il modello logico multidimensionale (detto cubo), adatto per illustrare la nozione di analisi interattiva dei fatti. La realizzazione di un data warehouse avviene gradualmente, a diversi livelli di astrazione, con un modello concettuale, un modello logico e un modello fisico. DW: Modelli dei dati, A. Albano 1 IL DATA WAREHOUSE DEGLI ORDINI Metodo Pagamento MetodoPagamento Cliente CF Nome Indirizzo Città Telefono Fattura Data Articolo Nome Categoria PrezzoUnitario Quantità Ordine Numero Data RigaOrdine NumeroRiga QuantitàOrdinata Impiegato CF Nome Qualifica TelefonoUfficio 2 COSA SI MODELLA IN UN DW I fatti da analizzare (ad es. le vendite di articoli). Requisiti di analisi Quantità di articoli ordinati, per articolo, per cliente e per mese Le misure dei fatti: le proprietà numeriche da analizzare (ad es. la quantità venduta di un articolo). Fatturato per categoria di articolo, per cliente e per mese Spedizione Quantità Data DW: Modelli dei dati, A. Albano Fatturato verso clienti della provincia di Pisa per città dei clienti e per anno Le dimensioni: rappresentano le prospettive di analisi dei fatti (ad es. le vendite si analizzano per articolo, per mese). Gli attributi dimensionali: attributi descrittivi delle dimensioni. Metodo Spedizione MetodoSpedizione Le gerarchie fra attributi dimensionali. BASE DI DATI DW: Modelli dei dati, A. Albano 3 IL DATA WAREHOUSE DEGLI ORDINI Metodo Pagamento MetodoPagamento Cliente CF Nome Indirizzo Città Telefono Fattura Data Ordine Numero Data Articolo Nome Categoria Prezzo Quantità DW: Modelli dei dati, A. Albano 4 SCHEMA CONCETTUALE DEI FATTI Cliente I componenti di base sono i fatti, le misure e le dimensioni. Città Cliente Città Provincia Provincia Cliente Regione Regione RigaOrdine NumeroRiga QuantitàOrdinata NOrdine Cliente Fatti Impiegato CF Nome Qualifica TelefonoUfficio Spedizione Quantità Data Ordine Quantità Prezzo Articolo Ordini Data Quantità Prezzo Misure Metodo Spedizione MetodoSpedizione Articolo Articolo Nome Nome Categoria Categoria Data Data Giorno GiornoData Mese Trimestre Mese Anno Trimestre Anno BASE DI DATI DW: Modelli dei dati, A. Albano DATA MART = DW TEMATICO 5 DW: Modelli dei dati, A. Albano 6 SCHEMA CONCETTUALE DEI FATTI: DIMENSIONI CON ATTRIBUTI E GERARCHIE SCHEMA CONCETTUALE DEI FATTI: DIMENSIONI CON ATTRIBUTI NOrdine Articolo Cliente Ordini Data Città Quantità Prezzo Provincia Regione Regione Provincia NOrdine Città Nome Provincia Articolo Categoria Regione Città Cliente Ordini Data Quantità Prezzo Giorno NOrdine Mese Nome Trimestre Articolo NOrdine Nome Articolo Categoria Anno Cliente Ordini Data Quantità Prezzo Categoria Cliente Ordini Data Quantità Prezzo Giorno Mese Trimestre Giorno Anno Mese Trimestre Anno Con gerarchie Senza gerarchie DW: Modelli dei dati, A. Albano 7 PER INIZIARE IL PROGETTO DI UN DW DW: Modelli dei dati, A. Albano 8 METODOLOGIA (SEMPLIFICATA) DI PROGETTAZIONE DI UN DW Per ogni data mart: Identificare i patrocinatori, i dirigenti convinti del valore del progetto. Conoscere il problema aziendale prima di iniziare a discutere gli obiettivi del progetto. Intervistare gli interessati, per comprendere le loro esigenze informative da tradurre in requisiti del progetto. Analisi dei requisiti Progettazione concettuale • Un DW deve essere di supporto alle decisioni e quindi va progettato tenendo conto di come i dirigenti vogliono analizzare un certo processo aziendale e di quali informazioni sintetiche hanno bisogno. • Progettazione concettuale iniziale (cosa si vuole) • Progettazione concettuale dai dati operazionali (cosa si può ottenere) • Progettazione concettuale finale (cosa si può analizzare) Progettazione logica Progettazione logica del DW Progettazione fisica del DW Intervistare gli esperti del sistema informatico operazionale, per sapere quali dati esistono e come vengono gestiti. DW: Modelli dei dati, A. Albano • • Progettazione dell’alimentazione dei dati 9 PROGETTAZIONE CONCETTUALE (SEMPLIFICATA) DI UN DATA MART DW: Modelli dei dati, A. Albano 10 PROGETTAZIONE DI UN DATA MART(cont) Passo 1 Si raccolgono i requisiti di analisi che il committente vuol fare sugli eventi di Passo 3 Si sceglie la granularità del fatto da analizzare. La grana dei fatti è il interesse di un certo processo aziendale. significato di un suo elemento. Di solito si preferisce una grana fine. Ad es. il processo di registrazione degli ordini dei clienti fatti ai venditori. Ordini Requisito di analisi: Totale dell’importo per venditore e per articolo Aggregazione Misura Passo 4 Si scelgono le misure interessanti del fatto: grandezze numeriche che ha senso Dimensioni sommare. (metrica) Ordini Alternativa: Report di analisi che si vogliono. Quantità Importo Passo 2 Si analizzano i requisiti di analisi per individuare il fatto da analizzare. DW: Modelli dei dati, A. Albano 11 DW: Modelli dei dati, A. Albano 12 PROGETTAZIONE DI UN DATA MART (cont) PROGETTAZIONE DI UN DATA MART(cont) Passo 5 Si scelgono le dimensioni secondo le quali analizzare le misure dei fatti Passo 6 Per rendere le analisi più interessanti è in generale utile prevedere dimensioni (prospettive di analisi, contesto dei fatti) con degli attributi organizzati in gerarchie per consentire aggregazioni delle misure a diversi livelli di generalità. Si cerca una risposta a domande sul fatto tipo: Chi è coinvolto? Cosa riguarda? Quando è accaduto? Dove è accaduto? Regione Provincia ZonaVendita Sono domande che mirano a individuare le variabili determinanti delle misure e le Città NomeVenditore possibili leve di intervento. Venditore Venditore Cliente Nome Articolo Articolo Ordini Categoria Cliente Giorno Ordini Data Mese Quantità Importo Data Trimestre Quantità Importo NOrdine Anno NOrdine DW: Modelli dei dati, A. Albano DW: Modelli dei dati, A. Albano 13 1.1 14 Soluzione STUDIO DI UN CASO: REQUISITI DI ANALISI STUDIO DI UN CASO -&."#" 012334566 7'8, <=,.$">$;;";$'&, (a) Ricavo ?,>,@'&' Si consideri una BD di una casa di cura che contiene informazioni sugli interventi effettuati sui pazienti ricoverati. Di un paziente interessano il codice fiscale, che lo identifica, il nome e l’indirizzo. 4)!"#6"&,3$ Medici CF <<PK>> Nome Specializzazione Telefono Di un medico interessano il codice fiscale, che lo identifica, il nome, il telefono e la specializzazione. Un paziente può essere ricoverato più volte e ogni volta interessa la data, il medico che ne ha fatto la richiesta, il reparto assegnato, la diagnosi, la durata e l’attesa in giorni del ricovero e la tariffa (ricavo) del ricovero. Di una diagnosi interessa il codice e la 3.1 Soluzione descrizione. Pazienti CF <<PK>> Nome Indirizzo HaAvuto HaFatto HaRichietso ()*"&+," 012334566 Per Ricoveri 7'8, Data 9&:$*$;;' Durata Con Attesa Ricavo Nel 4):%;,$ Interventi Codice <<PK>> Descrizione Diagnosi Codice <<PK>> Descrizione Reparti Codice <<PK>> Nome NumeroLetti Telefono Lo schema concettuale della base di dati è mostrato in Figura 6. Di un reparto interessano il codice, che lo identifica, il nome, il numero dei letti e il -&."#" telefono. 012334566 7'8, 4)5),,$ (b) Numero totale dei ricoveri e ricavo totale per /+,&'%&+," (&' reparto e per sesso (età, città, regione) del !"#$%&'" 0':$.,2334566 !"#" paziente !,(.*$;$'&, !$"%&'($ !)*"#" +##,(" (c) Ricavo -$."/' ()*"&+," 012334566 7'8, 9&:$*$;;' 4):%;,$ 4)!"#6"&,3$ !"#$%&'" !"#" !$"%&'($ !)*"#" +##,(" -$."/' /+,&'%&+," 0':$.,2334566 !,(.*$;$'&, 9$+ 1")2+$3" 0':$.,2334566 !,(.*$;$'&, 7&8 SPECIFICA DEI REQUISITI La specifica dei requisiti viene data elencando gli esempi di analisi e, per ognuna di esse, le dimensioni e le misure utilizzate, e le aggregazioni da calcolare (metriche): N (a) (b) (c) (d) Requisito di analisi Ricavo totale dei ricoveri per codice (descrizione) della diagnosi e per mese (anno). Numero totale dei ricoveri e ricavo totale per reparto e per sesso (età, città, regione) del paziente. Ricavo totale, durata e attesa media dei ricoveri per descrizione della diagnosi e per nome (specializzazione) del medico richiedente. Ricavo totale, durata e attesa media de ricoveri per età (regione) del paziente e per codice (descrizione) dell’intervento. 16 Schema concettuale della BD dei ricoveri Requisito di analisi Ricavo totale dei ricoveri per codice (descrizione) della diagnosi e per mese (anno). 2 Numero totale dei ricoveri e ricavo totale per reparto e per sesso (età, città, regione) del paziente. 3 Ricavo totale, durata e attesa media del ricovero per descrizione della diagnosi e per nome (specializzazione) del medico SPECIFICA DEI REQUISITI richiedente. 4 Ricavo totale, durata e attesa media del ricovero per età (regione) del paziente e per codice (descrizione) dell’intervento. Schema concettuale della BD dei ricoveri per DW: Modelli dei dati, A. Albano Figura 1 N 1 !&0)'," 0':$.,2334566 7'8, 7)8,*'A,##$ ?,>,@'&' Figura 6 1")2+$3" codice (descrizione) dell’intervento 15 (&' 9$+ totale, durata e attesa media del 0':$.,2334566 !,(.*$;$'&, ricovero per descrizione della diagnosi e per 7&8 nome (specializzazione) del medico richiedente !&0)'," 0':$.,2334566 7'8, (d) Ricavo totale, durata e attesa media del 7)8,*'A,##$ ?,>,@'&'ricovero per età (regione) del paziente e Di un intervento interessano il <=,.$">$;;";$'&, codice, che lo identifica, la descrizione, il medico che la ?,>,@'&' effettua, il ricovero del paziente che ha subito l’intervento. DW: Modelli dei dati, A. Albano 4)5),,$ totale dei ricoveri per codice (descrizione) della diagnosi e per mese (anno) Dimensioni Diagnosi(CodiceDiagnosi, DescrizioneDiagnosi, Data(Mese, Anno) Reparto, Paziente(Sesso, Età, Città, Regione) Processo Ricoveri Misure Ricavo Ricavo Diagnosi(Descrizione), Medico(Nome, Specializzazione) Ricavo, Durata, Attesa Paziente(Età, Regione), Intervento(CodiceIntervento, DescrizioneIntervento) Ricavo, Durata, Attesa Processo Ricoveri Metriche Ricavo totale Dimensioni Diagnosi(Codice, Descrizione), Data(Mese, Anno) Misure Ricavo Reparto, Paziente(Sesso, Età, Città, Regione) Ricavo Numero totale Ricavo totale Diagnosi(Descrizione), Medico(Nome, Specializzazione) Ricavo, Durata, Attesa Ricavo totale Durata media Attesa media Paziente(Età, Regione), Intervento(Codice, Descrizione) Ricavo, Durata, Attesa Ricavo totale Durata media Attesa media Descrizione Un fatto riguarda un ricovero di un paziente, supponendo che comporti al più un intervento. Dimensioni preliminari Data, Reparto, Diagnosi, Intervento, Medico che lo ha richiesto Granularità del fatto Ricovero Misure preliminari Durata, Attesa, Ricavo Dalla specifica dei requisiti scaturisce la seguente granularità del fatto e lo schema concettuale del data mart di Figura 7: DW: Modelli dei dati, A. Albano Descrizione Un fatto riguarda un ricovero di un paziente, supponendo che comporti al più un intervento. Dimensioni preliminari Paziente, Data, Reparto, Diagnosi, Intervento, Medico che lo ha richiesto 10 Granularità del fatto Ricovero Misure preliminari Durata, Attesa, Ricavo 17 DW: Modelli dei dati, A. Albano 3 18 RICOVERI RIEPILOGO Medici CF <<PK>> Nome Specializzazione Telefono Esempio di progettazione concettuale a partire dai requisiti di analisi HaFatto Formulazione requisiti HaRichietso Ricoveri Pazienti CF <<PK>> Nome Indirizzo Per HaAvuto Data Durata Attesa Ricavo Con Nel Funzioni di aggregazioni da usare, Interventi Codice <<PK>> Descrizione Descrizione Diagnosi Codice Diagnosi Diagnosi Codice <<PK>> Descrizione Diagnosi Età Reparti Codice <<PK>> Nome NumeroLetti Telefono Paziente Sesso Città su quale sottoinsieme dei dati, Descrizione Intervento Codice Intervento Intervento Ricoveri Durata Attesa Ricavo Medico Data per quali raggruppamenti dei dati, Anno Reparto SELECT X FROM … WHERE B GROUP BY Y ORDER BY W Alternativa: Report di analisi che si vogliono Regione Specializzazione Granularità dei fatti Nome BASE DI DATI come presentare il risultato. Mese DATA MART DW: Modelli dei dati, A. Albano Problemi dei dati: come si ricavano dalla BD disponibile. 19 MODELLAZIONE CONCETTUALE: APPROFONDIMENTI DW: Modelli dei dati, A. Albano 20 MODELLAZIONE CONCETTUALE: APPROFONDIMENTI Tipi di misure e tipi di aggregazioni La granularità dei fatti determina il tipo di analisi che si possono fare Negozio Conto Agenzia Movimenti CC Vendite Quantità Prezzo Costo Sconto Ricavo Margine Conto Movimenti CC Data Ammontare Data Cliente Magazzino Scorte Scorta Livello Riordino Data Reclami Data Data ? Prodotto Prodotto Ammontare Prodotto Transazione Possono mancare Numeriche (calcolate) additive Movimenti sui conti correnti (Fatto istantaneo) Numeriche semiadditive (Scorta), Numeriche non additive (LivelloRiordino) Movimentazione mensile (Fatto istantanea periodica) (Margine sui ricavi ROS = Margine/Ricavo ?) DW: Modelli dei dati, A. Albano (Fatto istantanea accumulata) 21 DW: Modelli dei dati, A. Albano Il tipo di misura si specifica a parte. 22 MODELLAZIONE CONCETTUALE: APPROFONDIMENTI MODELLAZIONE CONCETTUALE: APPROFONDIMENTI TIPI DI MISURE Paese Stato Città Dimensioni degeneri Misure di flusso: sono le più comuni e si riferiscono a valori cumulati dello stato di eventi che si verificano in un intervallo temporale di riferimento. (es. Quantità di prodotti venduti in un giorno) (Additive) Cliente Attributi descrittivi Dimensioni o attributi opzionali Cliente Fatturazione Supervisore Dimensioni multivalore Misure di livello: valore dello stato di eventi che si verificano in un intervallo temporale di riferimento. (es. Giacenza di un prodotto, Saldo CC) (Semi additive) Agente Cliente Vendita Vendite Quantità Prezzo Ricavo Provvigione Nome Gerarchie bilanciate, incomplete, ricorsive Gerarchie condivise Articolo Data Giorno Mese Anno Numero ordine Nome Garanzia Misure unitarie: (Non additive) DW: Modelli dei dati, A. Albano 23 DW: Modelli dei dati, A. Albano 24 MODELLAZIONE CONCETTUALE: ATTRIBUTI DI DATA Column name Data type Format/Example date_key int yyyymmdd day_date smalldatetime day_of_week char week_begin_date tinyint week_num tinyint 1 to 52 or 53 month_num tinyint 1 to 12 month_name char January month_short_name char Jan month_end_date smalldatetime GiornoDellaSettimana days_in_month tinyint NomeMese yearmo int yyyymm Festività quarter_num tinyint 1 to 4 quarter_name char 1Q2000 year smallint weekend_ind bit workday_ind bit holiday_ind bit holiday_name char peak_period_ind bit Mese Fatti Anno Trimestre NumeroDellaSettimana Data GiorniDelMese Nella tabella relazionale Data come chiave surrogata si può usare l’intero AAAAMMGG DW: Modelli dei dati, A. Albano MODELLAZIONE CONCETTUALE: APPROFONDIMENTI Monday Attributi dimensionali con valori che cambiano raramente nel tempo • TIPO 1 (oggi per ieri): si perde la storia. • TIPO 2 (oggi o ieri): si conserva la storia. • TIPO 3 (oggi e ieri): si conserva la storia e la date della modifica. Attributi dimensionali con valori che cambiano frequentemente nel tempo • TIPO 4 Questi aspetti non si modellano nello schema concettuale, ma si specificano a parte Thanksgiving 25 MODELLO RELAZIONALE DW: Modelli dei dati, A. Albano 26 SCHEMI A STELLA Usando uno schema relazionale, la collezione dei fatti viene memorizzata in I sistemi ROLAP (Relational OLAP) sono dei DBMS relazionali estesi con una tabella con attributi le dimensioni e le misure. funzionalità per supportare efficientemente le applicazioni OLAP. Si parla di schema a stella quando ogni dimensione ha attributi propri che Nei sistemi ROLAP, un DW viene rappresentato con tabelle di uno schema vengono memorizzati in una tabella distinta. Nella tabella dei fatti le dimensioni sono le chiavi esterne. a stella (star schema), a fiocco di neve (snowflake schema) o Tutte le chiavi sono surrogate. a costellazione (constellation schema). DW: Modelli dei dati, A. Albano 27 DW: Modelli dei dati, A. Albano 28 SCHEMA A FIOCCHI DI NEVE UN ESEMPIO DI SCHEMA A STELLA Lo schema a fiocco di neve è un raffinamento dello schema a stella, con la normalizzazione delle gerarchie, che vengono rappresentate in tabelle Regione Provincia Città Prodotto PkProdotto Nome Categoria Nome Negozio Vendite Quantità Prezzo Sconto Ricavo Data separate. Prodotto PkProdotto Nome Categoria Anno Prodotto Nome Giorno Mese Vendite FkNegozio FkData FkProdotto Quantità Prezzo Sconto Ricavo Data PkData Giorno Mese Anno Categoria DW: Modelli dei dati, A. Albano Negozio PkNegozio Nome Città Provincia Regione Vendite FkNegozio FkData FkProdotto Quantità Prezzo Sconto Ricavo Negozio PkNegozio Nome FkCittà 29 DW: Modelli dei dati, A. Albano Data PkData Giorno Mese Anno Città PkCittà Città FkProvincia Provincia PkProvincia Provincia Regione 30 DIMENSIONE DATA: DAL MODELLO CONCETTUALE AL MODELLO LOGICO SCHEMA A COSTELLAZIONE Per situazioni più complesse si può pensare di avere più tabelle dei fatti che condividano alcune tabelle di dimensioni. E' il caso dello schema a Regione costellazione. Provincia Cliente PkCliente Nome Indirizzo Data PkData Giorno Mese Anno Vendite FkNegozio FkData FkProdotto Quantità Prezzo Sconto Ricavo Vendite Quantità Prezzo Sconto Ricavo Data Mese Negozio PkNegozio Nome Città Provincia Regione Categoria Città PkCittà Città FkProvincia Provincia PkProvincia Provincia Regione 31 Data PkData Mese Anno Anno Prodotto Nome Negozio PkNegozio Nome FkCittà DW: Modelli dei dati, A. Albano Vendite FkNegozio FkData FkProdotto Quantità Prezzo Sconto Ricavo NScontrino Negozio NScontrino Prodotto PkProdotto Nome Categoria Prodotto PkProdotto Nome Categoria Città Reclami FKCliente FKProdotto DataId Livello DW: Modelli dei dati, A. Albano 32 SQL PER ANALISI DEI DATI PROGETTAZIONE LOGICA: DIMENSIONI MODIFICABILI TIPO2 • Clienti con una chiave naturale Cliente ClienteSK<<PK>> CF <<PK1>> Città ... Vendite ... ClienteFK ... SQL è stato esteso con le funzioni analitiche. • Clienti senza chiave naturale Cliente ClienteSK<<PK>> PrimaSK Città ... Vendite ... ClienteFK ... Cliente ClienteSK<<PK>> ... Città ... Vendite ... ClienteFK ClientePrimaSK ... DW: Modelli dei dati, A. Albano 33 MODELLO MULTIDIMENSIONALE DW: Modelli dei dati, A. Albano 34 CUBO DEI DATI 2-D I dati vengono rappresentati con una matrice multidimensionale (cubo): un fatto corrisponde ad una cella, individuata dai valori delle possibili coordinate (le dimensioni), Rappresentazione a cubo di una tabella dei fatti con due dimensioni che contiene i valori delle possibili misure Data VENDITE Negozio Market ProdottoId p1 p2 p1 p2 M4 M3 M2 M1 NegozioId m1 m1 m3 m2 Quantità 12 11 50 8 T4 T3 Tabella dei fatti T1 ProdottoId p1 p2 m1 12 11 m2 m3 50 8 NegozioId Cubo 2-D T1 P1 DW: Modelli dei dati, A. Albano P2 P3 P4 Prodotto 35 DW: Modelli dei dati, A. Albano 36 CUBO E GERARCHIE CUBO DEI DATI 3-D Rappresentazione a cubo di una tabella dei fatti con tre dimensiomi VENDITE ProdottoId p1 p2 p1 p2 p1 p1 La rappresentazione delle gerarchie non è immediata, ma è possibile. Data d2 NegozioId m1 m1 m3 m2 m1 m2 DataId d1 d1 d1 d1 d2 d2 Quantità 12 11 50 8 44 4 DataId p1 p2 d1 ProdottoId p1 p2 m1 12 11 m1 44 m2 m2 4 m3 Negozio Market Gerarchia Data Anno Mese Giorno m3 50 20000220 8 02 NegozioId T4 20000220 2000 20000920 Tabella dei fatti 09 Cubo 3-D DW: Modelli dei dati, A. Albano 20000920 T3 T1 T1 P1 37 SISTEMI MOLAP Alcuni sistemi specializzati e i sistemi OLAP implementano direttamente il modello multidimensionale, usando un'opportuna struttura dati permanente tipo matrice. Sono i cosiddetti MOLAP (Multidimensional OLAP). Una rappresentazione molto comune di un cubo sono le tabelle pivot di Excel Operazioni su un cubo: slice, dice, pivot, roll-up, drill-down DW: Modelli dei dati, A. Albano M4 M3 M2 M1 39 DW: Modelli dei dati, A. Albano P2 P3 P4 Prodotto 38