LSA Lab. Sistemi Informativi Economico-Aziendali Interpretation and Evaluation Data Mining & OLAP Cubes Knowledge Selection and Preprocessing p(x) = 0.02 Data Mining Models Data Consolidation Prepared Data Warehouse Consolidated Data Data Sources 4 lezioni OLAP 4 lezioni DM 3 lezioni 2 lezioni 5 lezioni
Analisi OLAP (On-Line Analytical Processing) LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento di Informatica, Università di Pisa
Lab. Sistemi Informativi Economico-Aziendali Sorgente: OLAP Report
Datawarehouse, data marts, cubi Lab. Sistemi Informativi Economico-Aziendali Datawarehouse, data marts, cubi OLAP Cubes Data warehouse OLAP Cubes Data mart: vista del dw di interesse ad un singolo processo di business Data mart ordini, clienti, contabilità, risorse umane, finanza Organiz. : datamart come collezione di tabelle fatti e dimensioni OLAP Cube: struttura di memorizzazione/visualizzazione dei fatti come celle di un ipercubo con un asse per ciascuna dimensione Data mart ordini: cubi su acquisti, vendite e magazzino
Schema di un data mart: elementi Lab. Sistemi Informativi Economico-Aziendali Schema di un data mart: elementi Un fatto è un evento di interesse (vendite, spedizioni, acquisti) Specificato da attributi dimensioni e misure Una dimensione determina il contesto in cui è avvenuto il fatto fatto vendita: prodotto, negozio, cliente, tempo La dimensione può essere organizzata in una gerarchia di livelli dimensione tempo: gerarchia giorno esatto, mese, anno Ogni possibile contesto è detto membro della dimensione membri dim. tempo: 20 Feb. 2004, Febbraio 2004, 2004, ecc. Dimensioni comuni a più cubi/data mart sono dette condivise o conformate Una misura descrive quantitativamente il fatto fatto vendita: numero unità vendute, prezzo unitario, sconto Tabella dei fatti: collezione di fatti, uno per ogni riga della tabella, con colonne per le dimensioni e per le misure dei fatti Tabella di una dimensione: collezione dei membri della dimensione e delle loro relazioni gerarchiche
Lab. Sistemi Informativi Economico-Aziendali Star Schema Date Month Year CustId CustName CustCity CustCountry Cust Sales Fact Table Product Store Customer unit_sales dollar_sales Yen_sales Measurements ProductNo ProdName ProdDesc Category QOH StoreID City State Country Region Chiavi Esterne
Lab. Sistemi Informativi Economico-Aziendali Snowflake schema Year ProductNo ProdName ProdDesc Category QOH Product Month Year Date Month Year Sales Fact Table Date Product Store Customer unit_sales dollar_sales Yen_sales Date Month StoreID City Store CustId CustName CustCity CustCountry Cust City State State Country Country Region Measurements
Gerarchie e aggregati di misure Lab. Sistemi Informativi Economico-Aziendali Gerarchie e aggregati di misure All All 8000 1333 Zona Nord Centro Sud Milano Torino 2800 1400 3600 1800 1600 800 Firenze Roma Napoli Palermo Città 2000 800 600 3000 1200 400 Misura: numero di abitanti Aggregato: SUM Aggregato: AVG
Gerarchie: bilanciate Lab. Sistemi Informativi Economico-Aziendali Gerarchie: bilanciate All All Zona Nord Centro Sud Milano Torino Firenze Roma Napoli Palermo Città Città Zona Milano Nord Firenze Centro Torino …
Gerarchie: non bilanciate Lab. Sistemi Informativi Economico-Aziendali Gerarchie: non bilanciate All All Dirigenti Rossi Bianchi Neri Tizio Caio Impiegati Sempronio Figlio Padre Tizio Rossi Neri NULL Sempronio Bianchi …
Lab. Sistemi Informativi Economico-Aziendali Gerarchie: ragged All All Moneta Dollari Euro New York Los Ang. Città Paris Rome San Marino
Analysis Manager: editor di cubi Lab. Sistemi Informativi Economico-Aziendali Analysis Manager: editor di cubi
Modello di memorizzazione Lab. Sistemi Informativi Economico-Aziendali Modello di memorizzazione ROLAP (Relational OLAP): utilizza le funzionalità di un’engine relazionale estesi in modo da permettere la materializzazione degli aggregati performance scalabilità MOLAP (Multidimensional OLAP): array multidimensionale su disco/memoria efficiente su dati di dimensioni ridotte problemi di performance su dati sparsi HOLAP (Hybrid OLAP): trade-off tra le due soluzioni precedenti fatti su tabella relazionale aggregazioni su array multidimensionale
Analysis Manager: elab. di cubi Lab. Sistemi Informativi Economico-Aziendali Analysis Manager: elab. di cubi
Lab. Sistemi Informativi Economico-Aziendali Navigazione All Products January 96, Pisa. Product Store All Lazio Milk Bread Orange … ... sum Roma Toscana Pisa Jan 96 Firenze sum Feb 96 Time … ... sum All, All, All Ogni dimensione contiene una gerarchia di valori una cella del cubo contiene valori aggregati (count, sum, max, etc.)
Lab. Sistemi Informativi Economico-Aziendali Navigazione di un cubo Il manager finanziario esamina la vendita dei prodotti in tutti i mercati relativamente al periodo corrente e quello precedente Il manager regionale esamina la vendita dei prodotti in tutti i periodi relativamente ai propri mercati magazzino tempo prodotto Il manager strategico si concentra su una categoria di prodotti, un’area regionale e un orizzonte temporale medio Il manager di prodotto esamina la vendita di un prodotto in tutti i periodo e in tutti i mercati
Lab. Sistemi Informativi Economico-Aziendali Roll-up e drill-down Product Store Time All Drill-Down Roll-up
Lab. Sistemi Informativi Economico-Aziendali Slice and Dice Product Store Month Slice
Lab. Sistemi Informativi Economico-Aziendali Altre operazioni Drill through: visualizza tutti i fatti relativi ad una cella del cubo Pivot: rotazione degli assi del cubo Drill across: collegamento ad altro cubo via dimensioni condivise Clienti Prodotti Fornitori Acquisti Vendite Store Tempo
Analysis Manager: browsing Lab. Sistemi Informativi Economico-Aziendali Analysis Manager: browsing
Analysis Manager: misure calcolate Lab. Sistemi Informativi Economico-Aziendali Analysis Manager: misure calcolate
Analysis Manager: misure calcolate Lab. Sistemi Informativi Economico-Aziendali Analysis Manager: misure calcolate Sintassi: EXP ::= Numeric | ( Member, Numeric ) Numeric ::= Measure | funzione_numeric(Parametri) | Numeric + Numeric | Numeric - Numeric | Numeric / Numeric | Numeric * Numeric Member ::= funzione_member(Parametri) Semantica: ( Member, Numeric ) l’espressione Numeric è valutata sul membro Member ([Product].CurrentMember.Parent,[Measures].[Quantity]) è la misura Quantity valutata sul padre del membro corrente rispetto alla dimensione Product (ParallelPeriod([Time].[Year], 1), [Measures].[Quantity] ) è la misura Quantity valutata nello stesso periodo dell’anno precedente
Accesso ai dati multidimensionali Lab. Sistemi Informativi Economico-Aziendali Accesso ai dati multidimensionali API Microsoft OLE DB for OLAP, ADO.MD, ADO MD.NET Linquaggio MDX (MultiDimensional Expressions) JOLAP Java OLAP Interface, JSR-69 Formato di interscambio XML for Analysis www.xmla.org Client di visualizzazione Excel Explorer Data Analyser DBMiner …
Lab. Sistemi Informativi Economico-Aziendali Excel
Lab. Sistemi Informativi Economico-Aziendali Data Analyser
Lab. Sistemi Informativi Economico-Aziendali DBMiner 2.0
Cubi e SQL: GROUP BY WITH CUBE Lab. Sistemi Informativi Economico-Aziendali Cubi e SQL: GROUP BY WITH CUBE -- fatti selezionati dalla clausola WHERE -- e aggregati dalla clausola GROUP BY -- su tutte le possibili (2^3) combinazioni di prodotto, dimensione e tempo SELECT F.product_id, F.customer_id, F.time_id, SUM(F.store_sales*F.unit_sales) FROM dbo.sales_fact_1997 AS F WHERE F.customer_id < 20 AND F.product_id < 200 GROUP BY F.product_id, F.customer_id, F.time_id WITH CUBE
Cubi e SQL: GROUP BY WITH ROLLUP Lab. Sistemi Informativi Economico-Aziendali Cubi e SQL: GROUP BY WITH ROLLUP -- fatti selezionati dalla clausola WHERE -- e aggregati dalla clausola GROUP BY -- su prodotto, dimensione e tempo -- su prodotto e dimensione -- su prodotto -- su tutti I dati SELECT F.product_id, F.customer_id, F.time_id, SUM(F.store_sales*F.unit_sales) FROM dbo.sales_fact_1997 AS F WHERE F.customer_id < 20 AND F.product_id < 200 GROUP BY F.product_id, F.customer_id, F.time_id WITH ROLLUP