ANALISI DEI DATI OLAP (On Line Analytical Processing) Data Warehousing Data Mining Il Sistema ideale A2 A1 DBMS Una sola interfaccia di comunicazione sia verso il DB che verso le applicazioni An DB Una sola base di Dati La situazione reale Non esiste una situazione stazionaria C’è una continua evoluzione dei parametri che influenzano la realizzazione e la vita di un DB: Esigenze Strutture Tempi di realizzazione Non esiste un’unica base di dati all’interno di una stessa organizzazione. Soluzioni: Eterogenee Distribuite Autonome Sistemi OLTP e OLAP (1) OLTP (On Line Transaction Processing) Sistemi per la gestione dei dati Utilizzo di un set di operazioni ben definito Bassa complessità delle operazioni Le operazioni coinvolgono una piccola quantità di dati Continuo aggiornamento dei dati Generalmente viene utilizzato lo “stato corrente” di un’applicazione Devono essere rispettate le proprietà ACIDe (atomicità, correttezza, isolamento, durabilità) delle transazioni Sistemi OLTP e OLAP (2) OLAP (On Line Analytical Processing): Sistemi per l’analisi dei dati Permettono di eseguire operazioni non previste nella progettazione del DB (sistemi di supporto alle decisioni) Operano su grosse moli di dati I dati sono “statici” (usualmente si utilizzano dati storici) Operano su dati provenienti da più fonti eterogenee Le proprietà ACIDe non sono rilevanti perché le operazioni sono di sola lettura Sistemi OLTP e OLAP (3) OLTP (On Line Transaction Processing) Sistemi per la gestione dei dati Utilizzo di un set di operazioni ben definito Bassa complessità delle operazioni Le operazioni coinvolgono una piccola quantità di dati Continuo aggiornamento dei dati Generalmente viene utilizzato lo “stato corrente” di un’applicazione Devono essere rispettate le proprietà ACIDe (atomicità, correttezza, isolamento, durabilità) delle transazioni OLAP (On Line Analytical Processing): Sistemi per l’analisi dei dati Permettono di eseguire operazioni non previste nella progettazione del DB (sistemi di supporto alle decisioni) Operano su grosse moli di dati I dati sono “statici” (usualmente si utilizzano dati storici) Operano su dati provenienti da più fonti eterogenee Le proprietà ACIDe non sono rilevanti perché le operazioni sono di sola lettura Sistemi OLTP e OLAP (4) OLTP A 1 A 2 OLAP terminalisti analisti A n DB Terminalisti: utenti finali. Possono eseguire operazioni di lettura e di scrittura A 2 A DWMS DW A 1 n Analisti: Pochi utenti, occupano posizioni di alto livello nell’impresa e svolgono attività di supporto alle decisioni. Data warehouse Utilizzano dati provenienti da più DB I meccanismi di importazione sono di tipo asincrono e periodico In tal modo non vengono penalizzate le prestazioni delle data source La warehouse non contiene dati perfettamente allineati con il flusso di transazioni negli OLTP Problema legato alla qualità dei dati: La semplice raccolta di dati può non essere sufficiente per una corretta analisi perché i dati possono contenere inesattezze, errori, omissioni Architettura della DW (1) Export dei dati Data mining DW Accesso ai Dati Allineamento dei Dati (refresh) Acquisizione dei Dati Export Export Export Data Filter Data Filter Data Filter Data Source Data Source Data Source Architettura della DW (2) Data Source Data Filter Export Sorgenti dei dati per la DW. Possono essere di qualsiasi tipo, anche non gestite tramite DBMS oppure gestite da DBMS di vecchia generazione (legacy system). Controlla la correttezza dei dati prima dell’inserimento nella warehouse. Può eliminare dati scorretti e rilevare o correggere eventuali inconsistenze tra dati provenienti da molteplici data source. Viene fatta la pulizia dei dati necessaria ad assicurare un buon livello di qualità. L’esportazione dei dati avviene in maniera incrementale: il sistema di esportazione colleziona solo le modifiche delle data source Architettura della DW (3) Acquisizione dei Dati • E’ responsabile del caricamento iniziale dei dati nella DW. • Predispone i dati all’uso operativo, svolge operazioni di ordinamento, aggregazione e costruisce le strutture dati della warehouse. • In applicazioni con pochi dati il modulo è invocato periodicamente per acquisire tutto il contenuto della DW • In genere,invece, i dati vengono allineati in modo incrementale, con il modulo successivo Allineamento dei Dati (refresh) Propaga incrementalmente le modifiche della data source in modo da aggiornare il contenuto della DW. L’aggiornamento può essere effettuato tramite l’invio dei dati o l’invio delle transazioni. Nel primo caso all’interno delle data source vengono inseriti dei trigger che registrano cancellazioni, inserimenti e modifiche(coppie inserimentocancellazione) in archivi variazionali. Nel secondo caso viene usato il log delle transazioni per costruire gli archivi variazionali. Architettura della DW (4) Accesso ai Dati E’ il modulo che si occupa dell’analisi dei dati. Realizza in maniera efficiente interrogazioni complesse caratterizzate da join tra tabelle, ordinamenti e aggregazioni complesse. Consente nuove operazioni come roll up, drill down e data cube. Data mining Consente di svolgere ricerche sofisticate sui dati e di esplicitare relazioni “nascoste” tra i dati. Export dei dati Consente l’esportazione dei dati da una DW ad un’altra. Architettura gerarchica. Schema di una DW Ci si concentra su sottoinsiemi molto semplici dei dati aziendali che si vogliono analizzare (dati dipartimentali). Ogni schema elementare prende il nome di data mart. L’organizzazione dei dati di un data mart avviene secondo uno schema multidimensionale o schema a stella. Schema a stella (1) prodotto Unità centrale rappresenta i fatti (0,N) (1,1) supermercato (0,N) (1,1) Vendita (1,1) (0,N) promozione (1,1) (0,N) tempo Diverse unità poste a raggiera intorno ai fatti rappresentano le dimensioni Schema a stella (2) Varie relazioni uno a molti collegano ciascuna occorrenza di fatto con una ed una sola occorrenza di ciascuna delle dimensioni. La struttura regolare è indipendente dal problema considerato. (occorrono almeno due dimensioni altrimenti il problema degenera in una semplice gerarchia uno-molti) Un numero elevato di dimensioni è sconsigliato perché la gestione dei fatti e l’analisi si complicano. Schema a stella: esempio (1) Ciascuna occorrenza di vendita ha per identificatore i quattro codici: Prodotto: CodProd •Nome •Categoria •Marca •Peso •Fornitore •CodProd •CodMarket (0,N) •CodPromo •CodTempo Gli attributi non chiave sono Amm e Qta. (1,1) Supermercato: CodMarket •Nome •Città •Regione •Zona •Dimensioni (0,N) (1,1) (1,1) Vendita •Amm •Qta (1,1) (0,N) Tempo: CodTempo •GiornoSett •GiornoMese •GiornoAnno •SettimanaMese •SettimanaAnno (0,N) Promozione: CodPromo •Nome •Tipo •Percentuale •FlagCoupon •DataInizio •DataFina •Costo •Agenzia Schema a stella: esempio (2) Nella dimensione del tempo sono presenti dati derivati e ridondanze. Le ridondanze servono per facilitare le operazioni di analisi dei dati. I fatti sono in forma normale di Boyce-Codd in quanto ogni attributo non chiave dipende funzionalmente dalla sua unica chiave. Le dimensioni sono in genere relazioni non normalizzate. Schema a fiocco di neve (0,N) Evoluzione dello schema a stella, introdotta per strutturare gerarchicamente le dimensioni non normalizzate (1,1) (1,1) Fornitore (0,N) Prodotto Categoria (0,N) (1,1) (0,N) Supermercato (1,1) (0,N) Città (1,1) (0,N) Regione Vendita (1,1) (0,N) Tempo (1,1) (0,N) Giorno (1,1) (0,N) Promozione ANALISI DEI DATI: OPERAZIONI 1) Interfaccia standard di formulazione delle query 2) Drill down e Roll up 3) Data Cube INTERFACCIA STANDARD DI FORMULAZIONE DELLE QUERY(1) L’analisi dei dati di un data mart organizzato a stella richiede l’estrazione di un sottoinsieme dei fatti e delle dimensioni Le dimensioni vengono usate per selezionare i dati e per raggrupparli I fatti vengono tipicamente aggregati Il tutto avviene in base agli interessi degli analisti. INTERFACCIA STANDARD DI FORMULAZIONE DELLE QUERY(2) Promozione.Nome Prodotto.Nome Tempo.Mese 3x2 Coupon 15% SuperSaver Vino Pasta Olio Gen … Dic SuperSaver Pasta … Olio Feb … Apr Prodotto.Nome Tempo.Mese •Prodotto •Tempo Amm Schema Opzioni Attributi delle dimensioni: •Promozione Qta Condizioni sum sum Vista Attributi dei Fatti: • Aggregati (SUM) INTERFACCIA STANDARD DI FORMULAZIONE DELLE QUERY(3) Promozione.Nome Prodotto.Nome Tempo.Mese 3x2 Coupon 15% SuperSaver Vino Pasta Olio Gen … Dic SuperSaver Pasta … Olio Feb … Apr Prodotto.Nome Tempo.Mese Qta Amm Schema Opzioni Condizioni sum sum Vista select Tempo.Mese, Prodotto.Nome, sum(Amm), sum(Qta) from Vendite, Tempo, Prodotto where Vendite.CodTempo = Tempo.CodTempo and Vendite.CodProdotto = Prodotto.CodProdotto and (Prodotto.Nome = ‘Pasta’ or Prodotto.Nome = ‘Olio’) and Tempo.Mese between ‘Feb’ and ‘Apr’ and Promozione.Nome = ‘SuperSaver’ group by Tempo.Mese, Prodotto.Nome order by Tempo.Mese, Prodotto.Nome Tempo.mese Prodotto.nome sum(Amm) sum(Qta) DRILL DOWN E ROLL UP(1) Il drill down permette di aggiungere una dimensione di analisi disaggregando i dati. Il roll up dualmente consente di eliminare una dimensione di analisi. Alternando operazioni di drill down e roll up l’analista può evidenziare la dipendenza dei fenomeni rappresentati nei fatti dai fatti delle varie dimensioni. L’operazione di roll up può essere fatta agendo sui risultati dell’interrogazione, quella di drill down richiede la riformulazione dell’interrogazione(servono dati non presenti nell’interrogazione). DRILL DOWN E ROLL UP(2) Tempo.mese Zona Esempio: Feb somma delle quantità vendute di Nord Mar Centro pasta Apr Sud Prodotto.Nome Sum(Qta) Pasta 46 Kg 54 Pasta 50 Kg Pasta 51 Kg 43Kg Tempo.mese Prodotto.Nome Zona Sum(Qta) Feb Pasta Nord 18 Feb Pasta Centro 15 Feb Pasta Sud 13 Mar Pasta Nord 18 Mar Pasta Centro 18 Mar Pasta Sud 14 Apr Pasta Nord 18 Apr Pasta Centro 17 Apr Pasta sud 16 DATA CUBE (1) L’operatore data cube permette di svolgere tutte le possibili aggregazioni presenti in una tabella estratta per l’analisi. Il valore polimorfo ALL(presente in tutti i domini e corrispondente all’insieme di tutti i possibili valori presenti nel dominio) viene usato per rappresentare l’aggregazione Marca Anno Colore Vendite Ferrari 1998 rosso 50 Ferrari 1999 rosso 85 Porsche 1998 rosso 80 select Marca, Anno, Colore, sum(Vendite) from Vendite where (Marca = ‘Ferrari’ or Marca = ‘Porsche’) and Colore = ‘Rosso’ and Anno between 1998 and 1999 group by Marca, Anno, Colore with cube Marca Anno Colore Sum(vendite) Ferrari 1998 Rosso 50 Ferrari 1999 Rosso 85 Ferrari 1998 ALL 50 Ferrari 1999 ALL 85 Ferrari ALL Rosso 135 Ferrari ALL ALL 135 Porsche 1998 Rosso 80 Porsche 1998 ALL 80 Porsche ALL Rosso 80 Porsche ALL ALL 80 ALL 1998 Rosso 130 ALL 1999 Rosso 85 ALL ALL Rosso 215 ALL 1998 ALL 130 ALL 1999 ALL 85 ALL ALL ALL ALL 215 ALL DATA CUBE (2) 1999 1998 rosso ALL Ferrari Porsche DATA CUBE (3) I punti dello spazio rappresentano le possibili tuple. I tre piani cartesiani rappresentano le aggregazioni su una sola dimensione. Gli assi cartesiani rappresentano le aggregazioni su due dimensioni. L’origine degli assi cartesiani rappresenta l’aggregazione di tutte e tre le dimensioni. DATA CUBE (4) La complessità della Marca Anno Colore Sum(vendite) valutazione del data cube cresce in modo Ferrari 1998 Rosso 50 combinatorio col crescere Ferrari 1999 Rosso 85 del numero degli attributi Porsche 1998 Rosso 80 di raggruppamento. Ferrari 1998 ALL 50 Per risolvere il problema Ferrari 1999 ALL 85 è stata introdotta una Porsche 1998 ALL 80 nuova estensione di SQL Ferrari ALL ALL 135 (che la clausola with roll Porsche ALL ALL 80 up), in cui le aggregazioni sono progressive. select Marca, Anno, Colore, sum(Vendite) from Vendite where (Marca = ‘Ferrari’ or Marca = ‘Porsche’) and Colore = ‘Rosso’ and Anno between 1998 and 1999 with roll up Data mining Ricerca di informazioni nascoste all’interno delle DW. Classici esempi sono quelli per le analisi di mercato, per l’individuazione di oggetti acquisiti assieme o in sequenza. Il processo di data mining: Fasi 1. Comprensione del dominio. 2. Preparazione sul set di dati. Individuazione di un sottoinsieme dei dati della DW su cui effettuare il mining. 3. Scoperta dei pattern. Ricerca e individuazione di pattern ripetitivi tra i dati. 4. Valutazione dei pattern. Trarre implicazioni applicative dai pattern trovati. Valutazione degli esperimenti da compiere successivamente. 5. Utilizzo dei risultati. Prendere decisioni operative a seguito del processo di data mining. Problemi di data mining (1) Regole di associazione. Scoprire associazioni ti tipo causa-effetto. Pannolini → Birra e’ possibile definire in modo preciso le probabilità relative alle regole di associazione. supporto: probabilità che in una osservazione sia presente sia la premessa che la conseguenza di una regola. confidenza: probabilità che in una osservazione sia presente la conseguenza di una regola essendo già presente la premessa. Problemi di data mining (2) Discretizzazione: viene rappresentato un intervallo continuo di valori tramite pochi valori discreti (es. alto, basso, medio) per preparare i dati. Classificazione: catalogazione di un fenomeno in una classe predefinita. Fa uso di algoritmi di classificazione (es. alberi decisionali)