Introduzione al data warehousing 1 Il problema In genere: abbondanza di dati DB4 DB1 DB2 DB3 ma anche abbondanza di ridondanza ed inconsistenza che non permette di utilizzare i dati in modo utile a fini decisionali 2 Tipiche richieste a cui spesso è difficile dare una risposta • Qual è il volume delle vendite per regione e categorie di prodotto durante l’ultimo anno? • Come si correlano i prezzi delle azioni delle società produttrici di hardware con i profitti trimestrali degli ultimi 10 anni? • Quali sono stati i volumi di vendita dello scorso anno per regione e categoria di prodotto? • In che modo i dividendi di aziende di hardware sono correlati ai profitti trimestrali negli ultimi 10 anni? • Quali ordini dovremmo soddisfare per massimizzare le entrate? 3 Possibili applicazioni •telecomunicazioni contesti •banking •università •gestione dei rischi •assicurazioni •analisi finanziaria •programmi di marketing •beni di consumo •salute •analisi statistica •produzione •integrazione DB clienti •integrazione relazioni clienti problematiche •analisi temporale 4 Sistemi informatici: una classificazione • Transaction processing systems: – per i processi operativi • Decision support systems: – fortemente integrati, di supporto ai processi direzionali – Richiedono operazioni non previste a priori – Coinvolgono spesso grandi quantità di dati, anche storici e aggregati – Coinvolgono dati provenienti da varie fonti operative, anche esterne 5 In sintesi ... sistemi di supporto alle decisioni (DSS) dati conoscenza utile all’azienda DSS: Tecnologia che supporta la dirigenza aziendale nel prendere decisioni tattico-strategiche in modo migliore e più veloce 6 Perché i sistemi tradizionali non sono sufficienti? • no dati storici • sistemi eterogenei • basse prestazioni • DBMS non adeguati al supporto decisionale • problemi di sicurezza 7 Più formalmente ... • Sistemi tradizionali – On-Line Transaction Processing (OLTP) • Sistemi di data warehousing – On-Line Analytical Processing (OLAP) Profondamente diversi 8 In dettaglio ... funzione progettazione frequenza dati sorgente uso accesso flessibilità accesso # record acceduti tipo utenti # utenti tipo DB performance dimensione DB OLTP OLAP gestione giornaliera orientata alle applicazioni gironaliera recenti, dettagliati supporto alle decisioni orientata al soggetto sporadica storici, riassuntivi, multidimensionali singola DB DB multiple ripetitivo ad hoc read/write read uso di programmi generatori di query precompilati decine migliaia operatori manager migliaia centinaia singola multiple, eterogenee alta bassa 100 MB - GB 100 GB - TB 9 Evoluzione dei DSS • Anni ‘60: rapporti batch – difficile trovare ed analizzare i dati – costo, ogni richiesta richiede un nuovo programma • Anni ‘70: DSS basato su terminale – non integrato con strumenti di automazione d’ufficio • Anni ‘80: strumento d’automazione d’ufficio – strumenti di interrogazione, fogli elettronici, interfacce grafiche – accesso ai dati operazionali • Anni ‘90: data warehousing, con strumenti integrati OLAP 10 I sistemi di data warehousing Il Data Warehousing si può definire come il processo di integrazione di basi di dati indipendenti in un singolo repository (il data warehouse) dal quale gli utenti finali possano facilmente ed efficientemente eseguire query, generare report ed effettuare analisi 11 I sistemi di data warehousing Client Client Query & Analysis Metadata Warehouse Integration Source Source Source 12 Il data warehouse Collezione di dati che soddisfa le seguenti proprieta`: • usata per il supporto alle decisioni • orientata ai soggetti • integrata: livello aziendale e non dipartimentale • correlata alla variabile tempo: ampio orizzonte temporale • con dati tipicamente aggregati: per effettuare stime • fuori linea: dati aggiornati periodicamente 13 Il data warehouse • Orientata ai soggetti: considera i dati di interesse ai soggetti dell’organizzazione e non quelli rilevanti ai processi organizzativi – basi di dati operazionali dipartimentali: • vendita, produzione, marketing – data warehouse: prodotti, clienti, fornitori 14 Il data warehouse • Integrata: i dati provengono da tutte le sorgenti informative • il data warehouse rappresenta i dati in modo univoco, riconciliando le eterogeneita` delle diverse rappresentazioni: – – – – nomi struttura codifica rappresentazione multipla 15 Il data warehouse • Correlata alla variabile tempo: presenza di dati storici per eseguire confronti, previsioni e per individuare tendenze • Le basi di dati operazionali mantengono il valore corrente delle informazioni L’orizzonte temporale di interesse è dell’ordine dei pochi mesi • Nel data warehouse è di interesse l’evoluzione storica delle informazioni L’orizzonte temporale di interesse è dell’ordine degli anni 16 Il data warehouse • Dati aggregati: nell’attivita` di analisi dei dati per il supporto alle decisioni: – non interessa “chi” ma “quanti” – non interessa un dato ma la somma, la media, il minimo, il massimo di un insieme di dati 17 Il data warehouse • Fuori linea: – base di dati operazionale: i dati venono acceduti, inseriti, modificati, cancellati pochi record alla volta – data warehouse: • operazioni di accesso e interrogazione diurne • operazioni di caricamento e aggiornamento notturne che riguardano milioni di record 18 Il data warehouse • Un DW rappresenta spesso l’unione di più data mart • Data mart: restrizione data warehouse ad un singolo processo o ad un gruppo di processi aziendali (es. Marketing) DW Data mart #1 Data DW mart #2 Data mart #3 19 ... una base di dati separata ... • Per tanti motivi – non esiste un’unica base di dati operazionale che contiene tutti i dati di interesse – la base di dati deve essere integrata – non è tecnicamente possibile fare l’integrazione in linea – i dati di interesse sarebbero comunque diversi • devono essere mantenuti dati storici • devono essere mantenuti dati aggregati – l’analisi dei dati richiede per i dati organizzazioni speciali e metodi di accesso specifici – degrado generale delle prestazioni senza la separazione 20 Architettura di riferimento 21 Caratteristiche architetturali irrinunciabili • Separazione: l’elaborazione analitica e quella transazionale devono essere il più possibile separate • Scalabilità: l’architettura hw e sw deve essere facilmente ridimensionabile • Estendibilità: deve essere possibile accogliere nuove applicazioni e tecnologie • Sicurezza: il controllo sugli accessi è essenziale (dati strategici) • Amministabilità: l’attività di amministrazione non deve essere troppo complessa 22 Architettura di riferimento (a due livelli) acquisizione memorizzazione accesso Back room catalogo dei metadati Front room dw 23 Architettura ad un livello acquisizione middleware Back room catalogo dei metadati accesso Front room Dw virtuale 24 Architettura a tre livelli acquisizione memorizzazione accesso Back room catalogo dei metadati Front room dw Dati riconciliati 25 Sistemi sorgente • Ogni sorgente di informazioni aziendali • Spesso rappresentate da dati operazionali: insieme di record la cui funzione è quella di catturare le transazioni del sistema organizzativo • tipico accesso OLTP • uso di production keys (non vengono usate nel DW) 26 Dati riconciliati • Integrazione dati sorgente – simile ad integrazione schemi relazionali • Risiedono su data staging area – Area di memorizzazione – i dati sorgente vengono trasformati – tecnologia relazionale ma anche flat files 27 Data Warehouse • Risiede su Presentation Server – Componente che permette la memorizzazione e la gestione del data warehouse, secondo un approccio dimensionale • Può essere basato su: – tecnologia relazionale (ROLAP) – tecnologia multidimensionale (MOLAP) 28 End-user data access tools • Client del DW, di facile utilizzo • tools per interrogare, analizzare e presentare l’informazione contenuta del DW a supporto di un particolare bisogno aziendale • invio specifiche richieste al presentation server in formato SQL 29 Due ritmi diversi ... • Uso bimodale: – 16-22 ore al giorno usati per attività di interrogazione • funzionalità front room – 2-8 ore al giorno per caricamento, indicizzazione, controllo qualità e pubblicazione • funzionalità back room 31 Servizi principali back room Processo ETL: Extraction,Transformation, Loading • Extraction • – Estrazione dei dati dalle sorgenti informative operazionali – Opzioni: tutti i dati / solo dati modificati (incrementale) • Transformation – Pulizia, per migliorare la qualità dei dati – Trasformazione di formato, da formato sorgente a quello del DW – Correlazione con oggetti provenienti da altre sorgenti • Loading – Caricamento (refresh o update) con aggiunta di informazioni temporali e generazione di dati aggregati 32 Servizi principali back room • Il ruolo degli strumenti ETL è quello di alimentare una sorgente dati singola, dettagliata, esauriente e di alta qualità che possa a sua volta alimentare il DW • in caso di architettura a tre livelli questi strumenti alimentano il livello dei dati riconciliati • la riconciliazione avviene quando il DW viene popolato la prima volta e periodicamente quando il DW viene aggiornato 33 Servizi principali front room • Supporto di tool di accesso: tool che permettono all’utente di accedere in modo intuitivo ed altamente espressivo ai dati contenuti nel DW: – capacità di effettuare confronti – presentazione dati avanzata – risposte alla domanda: perche? 34 Tool di accesso • Ad hoc – permettono all’utente di specificare le proprie query attraverso interfaccie user-friendly • tools per la generazione di reportistica • applicazioni avanzate – applicazioni che permettono di applicare operazioni molto sofisticate al DW • previsione • DATA MINING • ... 35 Tool di accesso DBMS Presentazione Aggregate navigator Traduzione in SQL ODBC, JDBC 36 Progettazione di un data warehouse 37 Fattori di rischio • Tipiche ragioni di fallimento dei progetti di data warehousing: • Rischi legati alla gestione del progetto – necessità di condivisione di informazione tra i reparti – definizione dell’ambito e delle finalità del sistema • Rischi legati alle tecnologie (rapida evoluzione) • Rischi legati ai dati e alla progettazione – qualità dei dati e del progetto realizzato • Rischi legati all’organizzazione – difficoltà di trasformare la cultura aziendale, inerzia organizzativa 38 Metodologie di progettazione • Approccio top-down + visione globale dell’obiettivo + DW consistente e ben integrato – costi onerosi e lunghi tempi di realizzazione (rischio di scoraggiare la direzione) – complessità dell’analisi e riconciliazione contemporanea di tutte le sorgenti – impossibilità di prevedere a priori nel dettaglio le esigenze delle diverse aree aziendali – impossibilità di prevedere la consegna a breve termine di un prototipo 39 Metodologie di progettazione • Approccio bottom-up – il DW viene costruito in modo incrementale assemblando iterativamente più data mart – rischio: determina una visione parziale del dominio di interesse – il primo data mart da prototipare deve essere quello che gioca il ruolo più strategico per l’azienda e deve ricoprire un ruolo centrale per l’intero DW 40 Business Dimensional Lifecycle [Kimball] Pianificazione Definizione dei requisiti Progetto dell’architettura Selezione e installazione prodotti Tecnologia Modellazione dimensionale Specifica applicazioni Progettazione fisica Progetto dell’alimentazione Sviluppo applicazioni Dati Applicazioni Attuazione Manutenzione 41 La progettazione di un data mart • Analisi e riconciliazione delle fonti dati – input: schema delle sorgenti – output: schema riconciliato • Analisi dei requisiti – input: schema riconciliato – output: fatti, carico di lavoro preliminare • Progettazione concettuale – input: schema riconciliato, fatti, carico di lavoro preliminare – ouput: schemi di fatto • Raffinamento del carico di lavoro, validazione dello schema concettuale – input: schemi di fatto, carico di lavoro preliminare – ouput: carico di lavoro, schemi di fatto validati 42 La progettazione di un data mart • Progettazione logica – input: schema di fatto, modello logico target, carico di lavoro – output: schema logico del data mart • Progettazione dell’alimentazione – input: schemi delle sorgenti, schema riconciliato, schema logico del data mart – output: procedure di alimentazione • Progettazione fisica – input: schema logico del data mart, DBMS target, carico di lavoro – output: schema fisico del data mart 43 La progettazione di un data mart • Aspetto chiave: – basare la modellazione dei data mart sugli schemi operazionali – uno schema concettuale di massima per il data mart può essere derivato dal livello dei dati riconciliati – per questo motivo la fase di analisi e riconciliazione delle fonti avviene prima della fase di analisi dei requisiti utente • se queste due fasi sono invertite – lo schema viene ricavato dalle specifiche utente e solo a posteriori si verifica che le informazioni richieste siano effettivamente disponibili nei database operazionali – rischio di minare la fiducia del cliente verso il progettista 44 Analisi e riconciliazione delle fonti dati Campioni dei dati Schemi sorgenti operazionali Analisi e riconciliazione Schema riconciliato, Mapping sorgenti operazionali Metadati Progettazione del cleaning Schema riconciliato, Mapping sorgenti operazionali Progettazione della trasformazione Procedure per strumenti ETL Strumenti ETL 45 Analisi e riconciliazione delle fonti dati Sorgente 1 Sorgente 2 Schema logico (locale) Schema logico (locale) Ricognizione e normalizzazione Schema concettuale (locale) riconciliato Integrazione degli schemi Schema concettuale (globale) riconciliato Metadati Ricognizione e normalizzazione Schema concettuale (locale) riconciliato Schema concettuale (globale) riconciliato Definizione corrispondenza Schema logico (globale) riconciliato con le sorgenti e corrispondenza 46 Analisi e riconciliazione delle fonti dati • Ricognizione: Esame approfondito degli schemi locali mirato alla piena comprensione del dominio applicativo • normalizzazione: correzione degli schemi locali per modellare in modo più accurato il dominio applicativo (Fasi da svolgere anche se sorgente dati unica) • integrazione: v. quanto detto su integrazione di schemi concettuali • definizione delle corrispondenze: il risultato finale è lo schema riconciliato in cui sono risolti i conflitti e l’insieme delle corrispondenze tra gli elementi degli schemi sorgenti e quelli dello schema riconciliato 47 Le fasi della progettazione di un data mart • Progettazione concettuale: – fornisce una rappresentazione formale del contenuto informativo del data mart – indipendente dal sistema che verrà utilizzato per la sua implementazione • progettazione logica: – lo schema concettuale viene tradotto nel modello dei dati del sistema prescelto • progettazione fisica: – fase in cui vengono scelte le caratteristiche legate allo schema fisico del DW (indici, partizionamento) • non la vediamo 48 Le fasi della progettazione di un data mart Requisiti utente Schema riconciliato PROGETTAZIONE Carico di lavoro CONCETTUALE valori dei dati modello logico Schema di fatto PROGETTAZIONE Carico di lavoro LOGICA volume dei dati DBMS Schema PROGETTAZIONE logico FISICA Schema fisico 49 Progettazione concettuale di un data warehouse 50 Analisi multidimensionale • L’analisi richiede normalmente dimensioni multiple: – “quanti items ho venduto – per regione – per mese – per tipo di cliente?” • Dimensioni normalmente utilizzate per l’analisi: – – – – – Tempo Prodotto Cliente Area geografica Dipartimento/settore Progettazione concettuale OLTP • modello entità-relazione • si cerca di eliminare il più possibile la ridondanza – maggiore efficienza delle operazioni di aggiornamento • schema simmetrico • ci possono essere molti modi per connettere (mediante un’operazione di join) due tabelle • la rappresentazione dipende dalla struttura dei dati 52 Progettazione concettuale • • • • • • OLAP Un data warehouse si basa su un modello dei dati multidimensionale che rappresenta i dati sotto forma di data cube Un data cube permette di modellare e creare viste dei dati rispetto a molteplici dimensioni Modello dati multidimensionale Detto “Star Schema” Implementabile su un DB relazionale Consente volumi di dati molto grandi – volumi dell’ordine di 100 gbytes forniscono tempi di risposta sotto i 10 sec 53 Progettazione concettuale OLAP magazzino Processo: vendite in una catena di supermercati tempo A B feb C 1 15 12 apr 9 7 3 mag 10 2 23 set 42 25 11 vino acqua coca cola prodotto 54 Progettazione concettuale Il manager regionale esamina la vendita dei prodotti in tutti i periodi relativamente ai propri mercati Il manager finanziario esamina la vendita dei prodotti in tutti i mercati relativamente al periodo corrente e quello precedente magazzino tempo prodotto Il manager di prodotto esamina la vendita di un prodotto in tutti i periodo e in tutti i mercati Il manager strategico si concentra su una categoria di prodotti, un’area regionale e un orizzonte temporale medio 55 Progettazione concettuale OLAP • Ogni parametro puo` essere organizzato in una gerarchia che ne rappresenta i possibili livelli di aggregazione: – negozio, citta`, provincia, regione – giorno, mese, trimestre, anno 56 Progettazione concettuale OLAP • L’eliminazione della ridondanza non è un obiettivo – non si devono eseguire operazioni di aggiornamento – schemi denormalizzati • schemi asimmetrici • un solo modo per connettere (mediante un’operazione di join) due tabelle – minore numero dijoin – maggiore efficienza • la rappresentazione dipende dalla struttura dei dati 57 Concetti usati per definire un data cube • Fatto un tema di interesse per l’organizzazione (vendite, spedizioni, acquisti) • Misura una proprietà di un fatto da analizzare (numero di unità vendute, prezzo unitario) • Dimensione descrive una prospettiva lungo la quale un’organizzazione vuole mantenere i dati (prodotto, negozio, data) 58 Progettazione concettuale • Utilizza modelli multidimensionali – schemi di fatto • ogni schema di fatto mette in evidenza – le dimensioni (spigoli del cubo) – le misure (contenuto di ogni cubetto) – Fatti e dimensioni collegati attraverso associazioni uno-a-molti – lo schema complessivo rappresenta una relazione molti-a-molti 59 Schemi di fatto fatto ora negozio VENDITA Unità Incasso cliente dimensioni prodotto misure 60 Le dimensioni • Devono essere scelte solo le entità rilevanti per le analisi che si intendono effettuare • Le dimensioni sono tipicamente caratterizzate da attributi: – testuali – discreti ma possono anche essere numeriche – dimensione di un prodotto • esiste sempre una dimensione temporale 61 Dimensioni: esempi • Attività: vendita in una catena di supermercati – dimensioni: tempo, prodotti, magazzino • Attività: ordini – dimensioni: tempo, prodotti, clienti, spedizioni • Attività: iscrizioni universitarie – dimensioni: tempo, facoltà, tipologia studenti • Attività : vendita automobili – dimensioni: clienti, venditori, concorrenti, automobili, concessionarie 62 Le dimensioni • Problema: come si può identificare se un attributo numerico è un fatto o un attributo di una dimensione? • Se è una misura che varia continuamente nel tempo – fatto • analisi costo di un prodotto nel tempo • se è una descrizione discreta di qualcosa che è ragionevolmente costante – attributo di una dimensione • costo di un prodotto visto come informazione descrittiva 63 Le dimensioni • Le dimensioni utilizzate sono spesso le stesse in vari contesti applicativi: – – – – tempo collocazione geografica organizzazione clienti • il numero di attributi per ogni dimensione è in genere molto elevato (anche nell’ordine del centinaio) 64 La dimensione tempo • È presente in ogni DW in quanto virtualmente ogni DW rappresenta una serie temporale • Domanda: perché non campo di tipo DATE nella tabella dei fatti? • Risposta: la dimensione tempo permette di descrivere il tempo in modi diversi da quelli che si possono desumere da un campo date in SQL (giorni lavorativi-vacanze, periodi fiscali, stagioni, ecc.) 65 La dimensione tempo • Alcuni tipici attributi della dimensione tempo: – – – – – – – – – tempo-k (può essere un campo di tipo data in SQL) giorno-della-settimana n-giorno-nel-mese n-giorno-in-anno n-settimana-in-anno mese stagione periodo fiscale ... 66 I fatti • I fatti hanno delle proporietà che sono dette misure • Le propretà dei fatti sono tipicamente: – numeriche – additive • possono essere aggregati rispetto agli attributi delle dimensioni, utilizzando l’operazione di addizione 67 Fatti e misure: esempi • Attività (fatti): vendite in una catena di supermercati – misure: n. prodotti venduti, incassi, costi, ... • Attività (fatti): ordini – misure: n. spedizioni, n. clienti, importi, ... • Attività (fatti): iscrizioni universitarie – misure: n. studenti, … • Attività (fatti): chiamate gestite da compagnia telefonica – misure: costo, durata 68 Additività delle misure • Incasso, unità vendute: sono additive in quanto si possono aggregare sommando rispetto ad ogni dimensione: – somma incassi/unità su tempo – somma incassi/unità su prodotti – somma incassi/unità su dipartimenti 69 Semiadditività delle misure • Numero clienti non è una misura additiva: – somma n. clienti su tempo – somma n. clienti su dipartimenti MA: OK OK • somma n. clienti su prodotto genera problemi • si supponga che – clienti che hanno comprato carne 20 – clienti che hanno comprato pesce 30 • il numero di clienti che hanno comprato carne o pesce è un qualunque numero tra 30 e 50 70 Semiadditività delle misure • Il numero clienti è una misura semiadditiva, poiché può essere sommata solo rispetto ad alcune dimensioni • Soluzione: cambiare la granularità del database, portandola a livello singola transazione 71 Semiadditività delle misure • Tutte le misure che memorizzano una informazione statica, quali: – bilanci finanziari – misure di intensità (temperatura di una stanza) sono semiadditive rispetto al tempo • ciò che comunque si può fare è calcolare la media su un certo periodo di tempo 72 Non addittività delle misure • Le misure non additive sono misure che non possono essere sommate • Esempi: – misure: costo unitario e quantità nel contesto di un ordine – dimensioni: clienti, spedizioni, tempo, … – i costi unitari non possono essere sommati se prima non sono moltiplicati per le rispettive quantità, quindi tali costi sono misure non additive 73 Schemi di fatto VENDITA Unità Incasso NumClienti PrezzoUnitario (AVG) prodotto misure non additive 74 Fatti anomali • In alcuni contesti applicativi, puo` capitare di avere fatti senza misure – fatti anomali • in questo caso i fatti rappresentano semplicemente una relazione molti-a-molti, senza aggiungere alcuna nuova informazione • Esempi: – Attivita` principale: corsi universitari • dimensioni: corsi, professori, studenti, tempo – attivita` principale: assegnazione cure negli ospedali • dimensioni: ospedali, dottori, diagnosi, tempo, pazienti, assistenti, procedure 75 Gerarchie • Ciascuna dimensione è spesso organizzata in una gerarchia che rappresenta i possibili livelli di aggregazione per i dati • ogni livello della gerarchia rappresenta una relazione molti-a-uno regione anno provincia città negozio categoria marca prodotto trimestre mese giorno 76 Esempio di DW con gerarchie store customer id 53 81 111 name joe fred sally sType city address 10 main 12 main 80 willow region city sfo sfo la sType tId t1 t2 size location small downtown large suburbs city cityId pop sfo 1M la 5M regId north south region regId name north cold region south warm region 77 Gerarchie • Gli attributi della gerarchia vengono associati alle dimensioni a cui si riferiscono e chiaramente indicati • gli attributi della dimensione devono essere associati al livello della gerarchia a cui si riferiscono 78 Schemi di fatto gerarchia settimana anno trimestre giorno ora negozio città regione stato professione mese indirizzo VENDITA età cliente nome cognome indirizzo Unità Incasso prodotto modello attributi descrittivi categoria descrizione colore 79 Aggregazione • In alcune situazioni, non si hanno vincoli su tutte le dimensioni ma solo per alcune • Esempio: – qual’e` il rapporto tra vendite effettuate nei week-end e vendite effettuate nei giorni lavorativi in ogni magazzino? – Quale prodotto e` stato maggiormente venduto negli ultimi 3 mesi? • L’esecuzione di queste interrogazioni e` molto costosa se viene effettuata sui dati di base – Idea: precalcolare aggregati 80 Aggregazione • Un aggregato e` un insieme di misure ottenute come sintesi di varie misure che caratterizzano i fatti di base • una misura aggregata è spesso associata a dimensioni aggregate • è utile considerare gli aggregati a livello concettuale per capire – se lo schema di base permette il calcolo degli aggregati – rientra nell’analisi del carico di lavoro 81 Aggregazione • un aggregato viene utilizzato per due motivi: – efficienza – impossibilita` di rappresentare gli stessi dati al livello di dettaglio – Esempio: costi di promozione possono essere espressi a livello categoria e non a livello di singolo prodotto 82 Esempio Categoria per mese aggregati (livello 2) Categoria per prodotto per giorno aggregati (livello 1) Vendite mensili per prodotto per giorno vendite 83 Due problemi • Quali dati aggregare? • Come rappresentare i dati aggregati? 84 Quali dati aggregare? • È importante considerare: – tipiche richieste aziendali • distribuzione geografica, linee di prodotti, periodicità generazione reportistica • per ogni dimensione, identificare gli attributi e le combinazioni di attributi che può essere utile aggregare – distribuzione statistica dei dati • stimare la dimensione delle tabelle aggregate • se la dimensione della tabella aggregata non riduce di molto la dimensione della tabella di partenza, forse non conviene aggregare • aggregazioni non molto usate possono essere utili come punto di partenza per effettuare altre aggregazioni più significative 85 Come e dove memorizzare i dati aggregati? • Esistono due approcci di base: – nuovi fatti • vengono create nuove tabelle per i fatti e le dimensioni aggregate – nuovi campi • vengono aggiunti nuovi attributi nei fatti e nelle dimensioni • vediamo solo il primo approccio 86 Nuove tabelle dei fatti • Per ogni aggregato di interesse viene generato un nuovo fatto • si generano nuove dimensioni derivate da quelle di base ma contenenti solo i dati di interesse per i fatti aggregati 87 Esempio anno trimestre professione mese VENDITA negozio città regione stato Unità Incasso cliente età nome cognome indirizzo categoria indirizzo 88 Composizione degli schemi • Lo schema risultante da ogni processo aziendale può essere visto come lo schema associato ad uno specifico data mart • problema: combinare i fatti e le dimensioni contenuti negli schemi associati a ciascun processo, cioe’ contenuti in ciascun data mart 89 Composizione degli schemi • Gli schemi associati ai vari processi possono avere dimensioni a comune – Una singola dimensione puo` essere usata in relazione a diversi fatti • per potere passare dalle informazioni contenute in uno schema alle informazioni contenute in un altro (drill-across): le dimensioni con lo stesso nome devono avere lo stesso significato e contenere gli stessi attributi (o sottoinsiemi di attributi) – dimensioni conformate • Conseguenza: i vincoli su attributi delle dimensioni a comune devono restituire le stesse entità per ogni schema considerato 90 Fatti conformati • Anche le misure devono essere conformati – misure con lo stesso nome in fatti diversi hanno la stessa granularita` e le stesse unita` di misura – stesso periodo temporale – stesso riferimento geografico 91 Costellazione di fatti • Schema risultante: – costellazione di fatti 92 Progettazione logica di un data warehouse 93 Scelta sistema di gestione dei dati • DBMS operazionale: in genere relazionale • DBMS informativo: – relazionale (Oracle 8/8i, RedBrickInformix,…) – multidimensionale (Oracle Express Server) 94 DBMS relazionali • Tecnologia consolidata • molto efficienti su dati di dettaglio • estesi in modo da permettere la materializzazione degli aggregati – (Oracle 9i) • performance • scalabilità • general-purposes 95 DBMS multidimensionali vendite 1 2 3 4 5 … prodotto mese magazzino vino acqua coca cola acqua acqua … febbraio febbraio aprile maggio settembre … A B A A C ... magazzino A B feb tempo C 1 15 12 apr 9 7 3 mag 10 2 23 set 42 25 11 vino acqua coca cola prodotto 96 DBMS multidimensionali • Modello dei dati basato su hypercubi (vettori multidimensionali) • precalcolo aggregazioni • aumento prestazioni per le query utente ma – … sparsità (in genere meno del 20% delle celle contiene informazioni) – … no join – … no interfaccia SQL (API) --> no standard – … necessità sistema relazionale per dati dettaglio – … file molto grandi – … limitazioni a circa 10GB (problemi scalabilità) • Per superare questi problemi: – aggiunta capacità di navigare da un MDBMS ad un RDBMS 97 Sistemi ROLAP & MOLAP • ROLAP: – sistema di data warehouse in grado di supportare le interrogazioni tipiche (roll-up, drill-down,…) – presentation server relazionale • Oracle 9i + Discoverer • MOLAP: – sistema di data warehouse in grado di supportare le interrogazioni tipiche (roll-up, drill-down,…) – presentation server multidimensionale • Express Server • DOLAP (Desktop OLAP): – i dati vengono recuperati da un DW relazionale o multidimensionale e copiati localmente • Business Objects 98 ROLAP & MOLAP • Performance – Query: MOLAP – Caricamento: ROLAP • Analisi: MOLAP • Dimensione DW: ROLAP – MOLAP: problema sparsità • Flessibilità nello schema: ROLAP – MOLAP: minor numero di dimensioni ammesse 99 Progettazione logica • Durante questa fase, lo schema concettuale del DW viene tradotto in uno schema logico, implementabile sullo strumento scelto • Il modello logico deve essere il più possibile vicino al modello concettuale, anche se alcune variazioni possono essere rese necessarie dal particolare tool prescelto • supponiamo che il sistema prescelto sia ROLAP 100 Impatto dell’architettura sullo schema logico • Architettura a due livelli: – ogni tabella = una relazione • architettura a un livello: – ogni tabella = una vista • nel seguito ipotizziamo architettura a duetre livelli 101 Progettazione logica • Modelli logici per data mart in ROLAP: – modello a stella – modello snowflake 102 Modello a stella • Si interpretano fatti e dimensioni come entità del modello entità-relazione • si mappa lo schema entità-relazione in uno schema relazionale – fatti e dimensioni diventano tabelle a cui si aggiunge una chiave artificiale – le tabelle delle dimensioni contengono tutti gli attributi per tutti i livelli della gerarchia – poiché le associazioni sono tutte uno-amolti, si modellano con chiavi esterne 103 Chiavi • Le chiavi aggiunte devono essere chiavi artificiali (numeriche, progressive) – non sono le chiavi semantiche eventualmente utilizzate nella base di dati operazionale • si ottimizzano le operazioni di join • le chiavi semantiche possono essere comunque presenti come attributi comuni 104 Esempio di schema Tempo Prodotto Codice orario Ora Giorno Settimana Mese Trimestre Anno Codice prodotto Descrizione Colore Modello Codice categoria Categoria Luogo Codice luogo Negozio Indirizzo Codice Città Città Codice Regione Regione Codice Stato Stato Vendite Codice orario Codice luogo Codice prodotto Codice cliente Unità Incasso Cliente Codice cliente Nome Cognome Indirizzo Età Codice professione Professione 105 Esempio di instanza product prodId p1 p2 name price bolt 10 nut 5 sale oderId date o100 1/7/97 o102 2/7/97 105 3/8/97 customer custId 53 81 111 store custId 53 53 111 name joe fred sally prodId p1 p2 p1 storeId c1 c1 c3 address 10 main 12 main 80 willow qty 1 2 5 storeId c1 c2 c3 city nyc sfo la amt 12 11 50 city sfo sfo la 106 Osservazioni sulla normalizzazione dello schema • La tabella dei fatti è completamente normalizzata • le tabelle delle dimensioni possono non essere normalizzate, ma: – la dimensione delle tabelle delle dimensioni è in genere irrilevante rispetto alla dimensione della tabella dei fatti – quindi, ogni sforzo per normalizzare queste tabelle ai fini del DW è una perdita di tempo – lo spazio guadagnato è in genere meno dell’1% dello spazio richiesto dallo schema complessivo • la normalizzazione delle tabelle delle dimensioni può ridurre la capacità di browsing (navigazione) dello schema (si veda oltre) 107 Schemi snowflake • In presenza di gerarchie, una dimensione può essere facilmente normalizzata introducendo una nuova relazione per ogni livello della – schema snowflake Prodotto Codice prodotto Descrizione Colore Cod Modello Modello Codice modello Modello codice categoria Categoria Codice categoria categoria 108 Schemi snowflake • Uno schema snowflake rende meno efficienti le operazioni di ricerca, anche se la tabella e` grande (+ join) • e` conveniente utilizzare uno schema snowflake solo se questo approccio aumenta la leggibilita` dello schema e le prestazioni globali 109 Schemi aggregati • Approccio A – lo schema logico aggregato viene creato utilizzando le stesse regole utilizzate per lo schema di base • lo schema di base e gli schemi aggregati dovranno essere alimentati dalle procedure ETL • si aumenta il carico di lavoro della back room • non si altera il carico di lavoro del presentation server 110 Schemi aggregati • Approccio B – lo schema aggregato viene creato in modo virtuale, come insieme di viste, eventualmente materializzate • solo lo schema di base deve essere alimentato • si aumenta il carico di lavoro del presentation server • non si altera il carico di lavoro della back room (si semplificano le procedure di alimentazione) 111 Esempio • Fatti: unità, incasso • Dimensioni: prodotti, tempo • si vogliono analizzare unità e incasso per categoria di prodotto CREATE VIEW vendite_per_cat(categoria,tempo_k,unità_cat,incasso_cat) AS SELECT categoria, tempo_k, SUM(unità),SUM(incasso) FROM Vendite,prodotti WHERE vendite.prodotto_k = prodotti.prodotto_k GROUP BY categoria, tempo_k 112 Vantaggi e svantaggi nell’uso degli aggregati • Svantaggi: – L’uso degli aggregati aumenta di molto la dimensione del DB (anche del 300%!) – usare aggregazione nel caso in cui ogni aggregato sintetizza almeno 10-20 record di base • Vantaggi: – Miglioramento delle prestazioni – possono essere utilizzati in modo trasparente all’utente 113 Influenza aggregati sul codice SQL • Se gli aggregati sono presenti, per poterli utilizzare bisogna ovviamente scrivere codice SQL opportuno • partendo da una query sulle tabelle di base, le tabelle aggregate possono essere utilizzate sostituendole alle corrispondenti tabelle di base 114 Esempio query di base SELECT categoria, SUM(unità_cat) FROM vendite, prodotti, tempo WHERE vendite.prodotto-k = prodotti.prodotto-k AND vendite.tempo-k = tempo.tempo-k AND tempo.giorno = ‘1 Gennaio, 1996’ GROUP BY categoria 115 Esempio query aggregata SELECT categoria, unità_cat FROM vendite-per-cat, tempo WHERE vendite-aggreg-per-cat.tempo-k = tempo.tempo-k AND tempo.giorno = 1 Gennaio, 1996’ 116 Influenza sul codice SQL • Gli utenti finali e i tool di accesso devono generare codice differente in relazione che esistano o meno le tabelle agrgegate – discontinuità delle applicazioni • Soluzione: aggregate navigator 117 Aggregate navigator • Livello software il cui obiettivo è quello di intercettare le richieste SQL e tradurle utilizzando nel modo migliore le tabelle aggregate – si scelgono le più piccole • le richieste SQL si assumono utilizzare le tabelle di base • si rende trasparente l’uso degli aggregati all’utente finale 118 Progettazione logica in Oracle 9i • Oltre a creare una relazione per ogni tabella, è possibile rappresentare esplicitamente le gerarchie, utilizzando il concetto di DIMENSIONE – nuovo oggetto della base di dati • possibilità di materializzare le query 119 Dimensioni in Oracle 9i • Oggetti che permettono di descrivere gerarchie esistenti all’interno delle tabelle • vengono utilizzate per: – riscrivere le query – suggerire la creazione di view materializzate • non contengono nuovi dati ma specificano: – gli attributi coinvolti nelle gerarchie (livelli) – le gerarchie (anche >= 1 per una stessa tabella) – dipendenze funzionali tra livelli ed altri attributi delle tabelle sottostanti 120 Dimensioni in Oracle 8i CREATE DIMENSION <nome> LEVEL <nome_l1> IS <nome tabella>.<attr> LEVEL <nome_l2> IS <nome tabella>.<attr> … HIERARCHY <nome gerarchia> ( <nome_livello> CHILD OF <nome_livello> CHILD OF …) ATTRIBUTE <nome livello> DETERMINES <nome<tabella>.<attr> ... 121 Esempio VENDITA prodotto Unità categoria Incasso NumClienti descrizione PrezzoUnitario (AVG) colore modello Prodotti Prodotto_k Prodotto Modello Colore Descrizione Categoria 122 Dimensioni in Oracle 8i CREATE DIMENSION Prodotti_D LEVEL prod_l IS Prodotti.prodotto LEVEL categ_l IS Prodotti. categoria HIERARCHY Prodotti_H ( prod_l CHILD OF categ_l) ATTRIBUTE prod_l DETERMINES descrizione ATTRIBUTE prod_l DETERMINES modello ATTRIBUTE prod_l DETERMINES colore; 123 View materializzate • Materializzo la vista, cioe` la calcolo una sola volta, la memorizzo e la uso durante l’esecuzione delle query • Necessità di specificare: – Politiche di caricamento – Politiche di aggiornamento (refresh) – Utilizzo/non utilizzo da parte dell’aggregate navigator 124 View materializzate in Oracle 9i • Caricamento: – Immediate: all’atto della definizione (default) – Deferred: popolata alla successiva operazione di refresh (che deve essere completo) 125 View materializzate in Oracle 9i • Refresh: – Come: • Fast: incrementale (molte restrizioni) • Complete: totale • Force: incrementale quando possibile, totale altrimenti – Quando: • On Commit: fast refresh al commit delle transazioni sulle tabelle di definizione della view (solo per join view e single-table view) • On Demand: invocando specifiche procedure • Start with <date> Next <date expression> • …. 126 View materializzate in Oracle 9i • Query Rewrite: – Enable: utilizzata dall’aggregate navigator in fase di riscrittura delle query – Disable: non utilizzata dall’aggregate navigator in fase di riscrittura delle query 127 View materializzate in Oracle 9i CREATE MATERIALIZED VIEW nome BUILD <tipo caricamento> REFRESH <tipo refresh> [ENABLE QUERY REWRITE] AS <sottoquery di definizione> DROP MATERIALIZED VIEW nome ALTER MATERIALIZED VIEW ... 128 View materializzate in Oracle 9i CREATE MATERIALIZED VIEW vendite_cat BUILD immediate REFRESH complete on commit ENABLE QUERY REWRITE AS SELECT categoria, tempo_k, SUM(unità),SUM(incasso) FROM Vendite,prodotti WHERE vendite.prodotto_k = prodotti.prodotto_k GROUP BY categoria, tempo_k 129 Interrogazione di un data warehouse 130 Tipologie • Reportistica • On-Line Analytical Processing • Data mining 131 Reportistica • Approccio orientato ad utenti che hanno necessità di accedere a intervalli di tempo predefiniti a informazioni strutturate in modo pressochè invariabile • di questi rapporti è nota a priori la forma • un rapporto è definito da un’interrogazione e da una presentazione • l’interrogazione comporta in genere la selezione e l’aggregazione di dati multidimensionali • la presentazione può essere in forma tabellare o grafica • la reportistica non è nata con il DW, ma ha acquisito con il DW benefici in termini di affidabilità e tempestività dei risultati 132 OLAP: On-Line Analytical Processing • Una visione multidimensionale, logica, dei dati • Analisi interattiva dei dati • Modellazione analitica: derivazione delle proporzioni, delle varianze, etc • Aggregazioni per ogni sottoinsieme delle dimensioni • Previsione, trend analysis, e statistical analysis • Calcola e visualizza i dati in 2D o 3D crosstabs, charts, e grafi, con semplici operazioni di rotazione degli assi 133 OLAP su data cubes Mercati Quantità Periodi di tempo Prodotti Vendite 134 Progettazione concettuale Il manager regionale esamina la vendita dei prodotti in tutti i periodi relativamente ai propri mercati Il manager finanziario esamina la vendita dei prodotti in tutti i mercati relativamente al periodo corrente e quello precedente magazzino tempo prodotto Il manager di prodotto esamina la vendita di un prodotto in tutti i periodo e in tutti i mercati Il manager strategico si concentra su una categoria di prodotti, un’area regionale e un orizzonte temporale medio 135 I nuovi tipi di query • Dipendono dai tool di accesso • influenzano l’implementazione delle query • Operazioni di base: – – – – – drill-down/roll-up pivoting slicing dicing top-n 136 Operazioni tipiche • Roll up: riassumi i dati, salendo nella gerarchia dei concetti per una dimensione o attraverso una riduzione di una dimensione – il volume totale di vendite per categoria di prodotto e per regione per anno – si rimuove per esempio la dimensione tempo • Roll down or drill down: passa da un livello di dettaglio basso ad un livello di dettaglio alto, scendendo nella gerarchia o introducendo una nuova dimensione. – per un particolare prodotto, trova le vendite dettagliate per ogni venditore e per ogni data 137 Operazioni tipiche (cont.) • Slice and dice: select & project – L’operazione di Slice esegue una selezione su una dimensione del cubo. – L’operazione di Dice definisce un sottocubo eseguendo una selezione su due o più dimensioni Vendite delle bevande nel West negli ultimi 6 mesi • Pivot (rotate): riorienta il cubo • Top-n: – Esempio: determinare i 10 prodotti piu` venduti ad una certa data e in un certo magazzino, ordinati per vendite 138 Operazioni tipiche: Roll-Up Product Roll-up Year Product Drill-Down Roll-up Year Product Drill-Down Month 139 Operazioni tipiche: drill-down e roll-up Dipartimento down Panificio Cibo surgelato … Incassi Unità vendute Lit. 12100000 Lit. 23000000 Dipartimento Marca Panificio Panificio Cibo surgelato Cibo surgelato … Barilla Agnesi Findus Orogel 5088 15000 up Incassi Unità vendute 6000000 6100000 15000000 8000000 2600 2488 6500 8500 140 Operazioni tipiche: Slice and Dice Product Slice Month Product Month 141 Data mining • Attività orientata a scoprire informazioni nascoste nei dati • le tecniche di data mining sono utilizzate da anni in applicazioni scientifiche specialistiche (ricerca geologica, medica, astronomica, metereologica, …) • con il DW il data mining viene trasportato dall’analisi scientifica all’analisi commerciale (ricerche di mercato, segmentazione di mercato, analisi delle abitudini di acquisto, …) • permette di analizzare automaticamente grosse quantità di dati • tipologie di pattern estraibili con regole di data mining: regole associative, clustering, alberi di decisione, serie temporali 142 Impatto sul codice SQL • Tipiche query OLAP richiedono molte aggregazioni GE 1995 SELECT SUM (vendite) FROM vendite S, Tempo T, Magazzini M 1996 WHERE S.TId = T.TId AND S.Mid = M.Mid 1997 GROUP BY T.anno, M.citta` 63 81 144 38 107 145 75 35 110 223 388 Totale 176 SELECT SUM (vendite) FROM vendite S, Magazzini M WHERE S.MId = M.MId GROUP BY M.citta` MI Totale SELECT SUM (vendite) FROM vendite S, Tempo T WHERE S.TId = T.TId GROUP BY T.anno 143 Impatto sul codice SQL {PId, MId,TId} • In genere: – fatti con k dimensioni – 2k query SQL aggregate {PId, MId} {PId, TId} {PId} {MId} {MId, TId} {TId} {} • Nuovo operatore SQL CUBE per calcolare tutte le possibili aggregazioni rispetto ad un insieme di attributi CUBE Pid, Mid, Tid BY SUM Vendite equivalente ad un insieme di query: SELECT SUM (vendite) FROM vendite S GROUP BY grouping list • Presente in molti DBMS 144 Impatto sul codice SQL • Necessita` di determinare “i primi n elementi” rispetto ad un certo ordinamento • Esempio: determinare i 10 prodotti piu` venduti in un certo magazzino, ordinati per entita` delle vendit • Presente in molti DBMS 145 Operatori aggregati in Oracle 9i • SQL viene esteso con nuovi operatori di aggregazione. Tra i vari operatori: – ROLLUP – CUBE – RANK/TOP-N 146 Roll-up • SELECT …. GROUP BY ROLLUP (elenco colonne) • calcola l’aggregato standard rispetto all’elenco di colonne specificato • calcola subtotali di livello più alto, riducendo ad uno ad uno le colonne da aggregare, procedendo da destra a sinistra nella lista 147 • Esempio: Roll-up SELECT città, mese, prodotto, SUM(vendite) FROM Vendite v, Magazzini m, Tempo t, Prodotti p WHERE m.Magazzino_k = v.Magazzino_k AND p.Prodotto_k = v.Prodotto_k AND t.Tempo_k = v.Tempo_k GROUP BY ROLLUP(città,mese,prodotto) 148 Roll-up Città Mese Prodotto Vendite genova genova genova genova genova genova genova milano milano milano milano milano milano milano marzo marzo marzo luglio luglio luglio p1 p2 marzo marzo marzo luglio luglio luglio p1 p2 p1 p2 p1 p2 120 320 440 220 110 330 770 430 143 573 340 100 440 1013 149 Cube • SELECT …. GROUP BY CUBE (elenco colonne) • calcola l’aggregato standard rispetto all’elenco di colonne specificato e rispetto ad ogni sottoinsieme dell’elenco specificato 150 • Esempio: Cube SELECT città, mese, prodotto, SUM(vendite) FROM Vendite v, Magazzini m, Tempo t, Prodotti p WHERE m.Magazzino_k = v.Magazzino_k AND p.Prodotto_k = v.Prodotto_k AND t.Tempo_k = v.Tempo_k GROUP BY CUBE(città,mese,prodotto) 151 Cube Città Mese genova genova genova genova genova genova genova genova genova milano milano milano milano milano marzo marzo marzo luglio luglio luglio Prodotto Vendite p1 p2 p1 p2 p1 p2 marzo marzo marzo luglio luglio p1 p2 p1 p2 120 320 440 220 110 330 340 440 770 430 143 573 340 100 152 Top-N • SELECT A1,…,An FROM (SELECT B1,…,Bm, RANK() OVER(ORDER BY Ai ASC, ORDER BY Aj DESC) AS rank FROM … WHERE ... GROUP BY A1,…,An) WHERE rank <= N; • permette di ordinare i risultati e restituire solo i primi N rispetto all’ordinamento prescelto 153 Top-N • Esempio: SELECT città, mese, prodotto, sum_vendite FROM (SELECT città,mese,prodotto, SUM(vendite) AS sum_vendite, RANK() OVER (ORDER by SUM(vendite) DESC) AS rank FROM Vendite v, Magazzini m, Tempo t, Prodotti p WHERE m.Magazzino_k = v.Magazzino_k AND p.Prodotto_k = v.Prodotto_k AND t.Tempo_k = v.Tempo_k GROUP BY (città,mese,prodotto)) WHERE rank <= 3; 154 Top-N Città Mese Prodotto Vendite milano milano genova marzo luglio marzo p1 p1 p2 430 340 320 155