ANALISI DEI DATI OLAP (On Line Analytical Processing) Data Warehousing Data Mining Dall’OLTP all’OLAP La tecnologia delle basi di dati è finalizzata prevalentemente alla gestione dei dati in “linea”, si parla di OnLine Transaction Processing (OLTP) Analisi dei dati •I dati disponibili possono essere utilizzati non solo nella gestione, ma anche nella pianificazione • Un’analisi dei dati passati e presenti può essere utile per la programmazione delle attività future dell’impresa • Si parla in questo caso di On Line Analytical Processing (OLAP) Sistemi OLTP e OLAP •L’elemento principale dell’architettura OLAP è una particolare base di dati chiamata data warehouse (magazzino dei dati), in cui sono contenuti dati che, opportunamente analizzati possono fornire un supporto alle decisioni. •I sistemi OLTP forniscono i dati per l’ambiente OLAP, sono cioè una “sorgente di dati” (data source) per tale ambiente. •Tra i due sistemi cambia la tipologia di utente terminalisti (OLTP), analisti (OLAP) Sistemi OLTP e OLAP 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. Sistemi OLTP e OLAP • 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 Caratteristiche dei 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 di un DataWarehouse Export dei dati Data mining DW Prime due componenti operano nelle data source Export Data Filter Data Source Accesso ai Dati Allineamento dei Dati (refresh) Acquisizione dei Dati Export GliData altriFilter cinque componenti operano Data Source nella DW Export Data Filter Data Source Architettura di un DataWarehouse Data Source Possono essere di qualsiasi tipo, anche raccolte di dati non gestite tramite DBMS oppure gestite da DBMS di vecchia generazione (legacy system). Data Filter Controlla la correttezza dei dati prima dell’inserimento nella warehouse. Può eliminare dati scorretti e rilevare o correggere eventuali inconsistenze tra dati provenienti da più data source. Viene fatta la pulizia dei dati (data cleaning) necessaria ad assicurare un buon livello di qualità. Export L’esportazione dei dati avviene in maniera incrementale: il sistema colleziona solo le modifiche (inserzioni o cancellazioni) delle data source. Architettura di un DataWarehouse Acquisizione dei Dati (loader) • 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. • Le operazioni di acquisizione vengono svolte a lotti (in “batch”), quando la DW non è utilizzata. • 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, utilizzando il modulo di allineamento dei dati. Architettura di un DataWarehouse 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: • invio dei dati (data shipping) • invio delle transazioni (transaction shipping) Nel primo caso all’interno delle data source vengono inseriti dei trigger che registrano cancellazioni, inserimenti e modifiche(coppie inserimento-cancellazione) in archivi variazionali. Nel secondo caso viene usato il log delle transazioni per costruire gli archivi variazionali. Architettura di un DataWarehouse 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. Architettura di un DataWarehouse Data mining • Tecniche algoritmiche che consentono di fare deduzioni sui dati. • 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. Architettura di un DataWarehouse Moduli di ausilio alla progettazione e gestione di una DW: • un componente per l’assistenza allo sviluppo della DW, che permette di facilitare le definizione dello schema dei dati e i meccanismi per l’importazione dei dati. • un dizionario dei dati, che descrive il contenuto della DW, utile per comprendere quali analisi dei dati possono essere eseguite, una sorta di “glossario”. Schema di un DataWarehouse • Nel costruire una DW aziendale ci si concentra su sottoinsiemi molto semplici dei dati aziendali che si vogliono analizzare (dati dipartimentali). • Ogni schema semplificato dei dati dipartimentali 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 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 dell’analisi Schema a stella Varie relazioni uno a molti collegano ciascuna occorrenza di fatto con una ed una sola occorrenza di ciascuna delle dimensioni. La struttura è regolare e 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 Ciascuna occorrenza di vendita ha per identificatore i quattro codici: Prodotto: CodProd CodProd •Nome •Categoria CodMarket •Marca CodPromo •Peso •Fornitore CodTempo (0,N) Gli attributi non chiave sono Amm e Qta. Promozione: CodPromo (1,1) Supermercato: CodMarket •Nome •Città •Regione •Zona •Dimensioni •Disposizione (0,N) (1,1) (1,1) Vendita •Amm •Qta (1,1) (0,N) Tempo: CodTempo •GiornoSett •GiornoMese •GiornoAnno •SettimanaMese •SettimanaAnno •MeseAnno… (0,N) •Nome •Tipo •Percentuale •FlagCoupon •DataInizio •DataFine •Costo •Agenzia Ogni occorrenza di vendita è un dato aggregato Schema a stella • 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. Fornitore (1,1) Prodotto (1,1) (0,N) Categoria (0,N) (1,1) (0,N) Supermercato (1,1) (0,N) Città (1,1) (0,N) Regione (1,1) (0,N) Zona Vendita (1,1) (0,N) Promozione (1,1) (0,N) Giorno (1,1) (0,N) Mese (1,1) (0,N) Anno Tale schema rappresenta in modo esplicito le gerarchie, riducendo così le ridondanze e le anomalie Analisi dei dati: operazioni 1) Interfaccia standard di formulazione delle query 2) Drill down 3) Roll up 4) Data Cube (Slice-and-dice) INTERFACCIA STANDARD DI FORMULAZIONE DELLE QUERY 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 È possibile costruire moduli predefiniti per estrarre i dati in cui si offrono scelte predefinite (selezioni, aggregazioni,valutazioni di funzioni aggregate. INTERFACCIA STANDARD DI FORMULAZIONE DELLE QUERY 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 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 • Il drill down permette di aggiungere una dimensione di analisi disaggregando i dati. • Il roll up dualmente consente di eliminare una dimensione di analisi. • 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 Prodotto.Nome Tempo.Mese Vino Pasta Olio Gen … Dic Pasta Feb … Apr Prodotto.Nome Tempo.Mese Qta Schema Opzioni somma delle quantità vendute di pasta nel trimestre Feb-Apr Condizioni sum Vista Tempo.mese Prodotto.Nome Sum(Qta) Feb Pasta 46 Kg Mar Pasta 50 Kg Apr Pasta 51 Kg Drill-down Il manager è interessato alle vendite per zona: Drill down on Zona Tempo.mese Prodotto.Nome Sum(Qta) Feb Pasta 46 Kg Mar Pasta 50 Kg Apr Pasta 51 Kg 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 Analisi dei dati 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 Il manager è interessato solo alla suddivisione delle vendite per zona: roll up on Mese Zona Prodotto.Nome Sum(Qta) Nord Pasta 54 Kg Centro Pasta 50 Kg Sud Pasta 43Kg Rappresentazione Multidimensionale (Cube) Slice-and-dice •Seleziona un sottoinsieme delle celle del un cubo, ottenuta “affettando e tagliando” a cubetti il cubo stesso. •Seleziona e proietta riducendo la dimensionalità dei dati Slice-and-dice Il manager vuole effettuare un’analisi relativa alle vendite in tutti i periodi nella zona Roma-2 Slice-and-dice Il manager vuole effettuare un’analisi relativa alle vendite in tutti i periodi nella zona Roma-2 Luogo Articolo Tempo Slice-and-dice Il manager di prodotto esamina la vendita di un particolare prodotto in tutti i periodi e in tutti i mercati Luogo Articolo Tempo Slice-and-dice Il manager finanziario esamina la vendita di tutti i prodotti in tutti i mercati relativamente ad un particolare periodo Luogo Articolo Tempo Slice-and-dice Il manager strategico si concentra su una categoria di prodotti, una area regionale e un orizzonte temporale medio Luogo Articolo Tempo Slice-and-dice Il manager seleziona le vendite per trimestre e per negozio dei soli lettori di DVD Lettori DVD Roma-1 1 trim.03 2 trim.03 3 trim.03 4 trim.03 38 91 66 198 Roma-2 155 219 248 265 Milano-1 121 273 266 326 Milano-2 222 122 155 200 Data mining • Ricerca di informazioni “nascoste” all’interno delle DW. • Esempi: – analisi di mercato (individuazione di oggetti acquistati assieme o in sequenza) – analisi di comportamento (frodi o usi illeciti delle carte di credito) – analisi di previsione (costo futuro delle cure mediche) Fasi del processo di data mining 1. Comprensione del dominio. 2. Preparazione sul set di dati. Individuazione di un sottoinsieme dei dati della DW su cui effettuare il mining e loro codifica (input algoritmo) 3. Scoperta dei pattern. Ricerca e individuazione di pattern ripetitivi tra i dati. 4. Valutazione dei pattern. Partendo dai pattern scoperti si valutano quali esperimenti compiere successivamente e quali ipotesi formulare o quali conseguenze trarre. 5. Utilizzo dei risultati. Prendere decisioni operative a seguito del processo di data mining (allocazione merci, concessione credito). Problemi di data mining Struttura ricorrente Specifici algoritmi Buona “scalarità” Efficenti per grandi moli di dati Problemi di data mining •Regole di associazione •Discretizzazione •Classificazione Regole di associazione • • Scoprire associazioni ti tipo causa-effetto. Una regola associativa consta di una premessa e di una conseguenza. Pannolini → Birra e’ possibile definire in modo preciso le probabilità associate alle regole di associazione. – – supporto: probabilità che in una osservazione, cioè un insieme di elementi in esame, 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. Regole di associazione • pane,burro ⇒ latte • con supporto 0.03 • confidenza 0.9 Afferma che: • pane, burro e latte compaiono insieme nel 3% degli scontrini • Il 90% degli scontrini che contengono pane e burro contengono anche latte Regole di associazione Il problema di data mining relativo alla scoperta delle regole di associazione viene quindi enunciato come Segue: Trovare tutte le regole di associazione X⇒Y con supporto e confidenza superiori a valori prefissati Con riferimento ad una osservazione, la regola X⇒Y va interpretata come “nelle transazioni in cui compare X compare anche Y” X è detto anche corpo o rule body, Y è detta anche testa o rule head •Il supporto indica pertanto la percentuale di transazioni dell’osservazione che contengono entrambe X ed Y •La confidenza indica, date le transazioni che contengono X, qual è la percentuale di transazioni che contengono Y Regole di associazione: esempio 1. Prosciutto, mozzarella 2. ^*Prosciutto, mozzarella, pane, birra 3. ^Prosciutto, mozzarella, pane 4. pane, yoghurt, birra, scamorza 5. yoghurt, birra, scamorza 6. mozzarella, pane 7. ^*Prosciutto, mozzarella, pane, birra 8. ^Prosciutto, pane 9. Birra, pane, 10. ^*pane, yoghurt, birra, scamorza, prosciutto prosciutto, pane => birra: *supporto: 3/10, ^confidenza: 3/5 Il problema formale Un insieme I di “item” {I1…In} Una osservazione D di transazioni T, T⊆I due insieme X e Y di elementi, X⊆I Y⊆I X⇒Y indica che le transazioni T che contengono X (X⊆T), conterranno molto probabilmente anche gli elementi di Y (Y⊆T) Il supporto di X⇒Y rispetto a D è calcolato come support(X⇒Y,D) = freq(X∩Y,D) La confidenza di X⇒Y rispetto a D è calcolata come confidence(X⇒Y,D) = freq(X∩Y,D)/freq(X,D) Il problema formale • La basket analysis consiste nell’individuare strong association rules, i.e. regole aventi: • supporto superiore al parametro min_sup • confidenza superiore al parametro min_conf • k-itemset: {pane,burro,latte} è un 3-itemset • Support count è il numero di transazioni che contengono un certo itemset Il problema formale • La frequenza di un itemset è la percentuale di transazioni in cui tutti gli elementi dell’itemset compaiono. Un itemset con frequenza superiore a min_sup è un frequent itemset • L’insieme degli itemset di ordine k è indicato con Lk • N.b.: Se un itemset X non soddisfa min_sup allora nessuna sua estensione X∪Y soddiferà min_sup • Si parte dall’insieme L1 dei frequent itemset contenenti un solo elemento • L1 è utilizzato per trovare L2 • L2 è utilizzato per trovare L3 • Il processo continua fino a quando non è più possibile trovare frequent k-itemset L’algoritmo generale 1. Il supporto di ogni item viene contato e vengono determinati i frequent item set di dimensione 1 2. In ogni passo successivo, i frequent item set determinati al passo precedente sono utilizzati per generare i nuovi itemset detti candidate itemsets. 3. Il supporto di ogni candidato è calcolato e i frequent itemset sono determinati 4. Il processo è iterato fino a quando non vengono trovati nuovi frequent itemset. La determinazione delle regole confidence(X⇒Y) = support_count(X∩Y,D)/support_count(X,D) Noti i frequent itemset si determinano le regole come: for every frequent itemset X of FI for every non empty subset s of X { if support_count(X)/support_count(s)>min_conf output the rule s ⇒ (X-s) } Discretizzazione Consente di rappresentare un intervallo continuo di dati tramite pochi valori discreti, selezionati in modo da rendere più evidente il fenomeno sottoposto ad osservazione. Es. valori di pressione Classificazione Catalogazione di un fenomeno in una classe predefinita. Fa uso di algoritmi di classificazione (es. alberi decisionali) Quando i fenomeni sono descritti da un gran numero di attributi i classificatori si occupano di determinare gli attributi significativi, separandoli da quelli irrilevanti. Es. polizza assicurazione Classificazione: alberi decisionali Età <23 vero falso TipoAuto=‘Sportiva’ falso vero TipoAuto=‘Camion’ vero falso