Tesina per il corso post-laurea per la New Economy I PROCESSI DI DATA WAREHOUSING E DATA MINING ED IL WEB Riccardo Zaupa Anno accademico 2001 / 2002 INDICE Introduzione 3 PARTE I - Il Data Warehouse ed il Data Mining 1.1 Definizione di Data Warehouse 5 1.2 La struttura del Data Warehouse 8 1.3 Il Multidimensional DBMS 11 1.4 Data Warehouse centralizzato e distribuito 14 1.5 Azioni di ricerca 16 1.6 On-Line Analytical Processing (OLAP) 18 1.7 Definizione di Data Mining 20 1.8 Il processo di estrazione della conoscenza 21 1.9 Perché usare strumenti di Data Mining 21 1.10 Tecniche ed ambiti operativi 23 PARTE II - Il Data Warehouse ed il Web 2.1 Il successo del Data Warehouse 25 2.2 Gli accessi al Data Warehouse 26 2.3 L'accesso tramite Intranet 26 2.4 L'accesso tramite Internet 27 2.5 I vantaggi dei Data Warehouse Web-enabled 28 2.6 L'architettura di un Data Warehouse Web-enabled 29 2.7 Classificazione di tools Web-enabled 31 2.8 Le caratteristiche dei tools Web-enabled 31 Conclusioni 33 Bibliografia 34 2 INTRODUZIONE Lo scenario attuale nelle aziende di medie e grandi dimensioni è rappresentato da un buon livello di "meccanizzazione" delle attività di routine della gestione aziendale (ciclo passivo: acquisti, contabilità fornitori, pianificazione e controllo delle forniture; ciclo attivo: fatturazione, gestione del credito, contabilità clienti). Questo, se ha portato uno sgravio nel lavoro quotidiano degli impiegati, di fatto non ha rappresentato un reale vantaggio competitivo per l'azienda, la quale deve sempre essere in grado di analizzare dinamicamente il mercato per capirne i meccanismi e prevederne gli andamenti. Sempre di più quindi i manager, nella loro attività decisionale, hanno necessità di accedere in maniera tempestiva a informazioni di sintesi e di analisi dei dati prodotti dai sistemi gestionali. La conseguenza immediata di ciò è il bisogno di far ricorso al personale del centro di calcolo che in questo modo viene gravato da compiti che non riguardano direttamente la gestione del sistema informativo. Da qualche anno il mercato informatico ha recepito questa esigenza sviluppando delle soluzioni dedicate ai decision maker aziendali per le loro attività di carattere strategico: questi sistemi vengono detti Decision Support System. Tali sistemi devono essere in grado di fornire in tempo reale informazioni, rapporti e consentire analisi di varia natura (What If Analisys, On Line Analitical Processing, Data Mining). Gli obiettivi che si prefiggono i DSS sono: fornire un ambiente integrato nel quale sia possibile ottenere dati trasversali a tutte le funzioni aziendali (produzione, amministrazione, finanza e controllo, marketing e vendite), ridurre il tempo di risposta alle query comunque complesse, ottenere semplicità d'uso che produce l'indipendenza dei manager nell'uso dei dati, mantenere la segretezza delle indagini dei manager. L'infrastruttura dei DSS è il Data Warehouse, vero e proprio "magazzino di dati", nel quale vengono registrate informazioni provenienti da molte fonti correlate e/o non correlate tra di loro. 3 Il mio lavoro verterà proprio sullo studio di questo processo, legato ormai inevitabilmente al Web. Nella prima parte mi soffermerò sul concetto di data warehouse, su come è strutturato e sull'apporto che il data mining può garantire all'analisi delle informazioni in esso contenute. Nella seconda sezione approfondirò il rapporto che si è venuto ad instaurare tra data warehouse ed Internet: in effetti, il Web si sta dimostrando come la "piattaforma" ideale per la distribuzione delle informazioni presenti in un data warehouse. 4 PARTE I IL DATA WAREHOUSE ED IL DATA MINING 1.1 Definizione di Data Warehouse La definizione di data warehouse fornitaci da W. H. Inmon, uno degli ideatori di questa metodologia, è la seguente: "il data warehouse è una collezione di dati: orientata al soggetto, integrata, non volatile, dipendente dal tempo". Nei tradizionali database spesso ci troviamo davanti ad una struttura dati orientata ad ottimizzare le operazioni che giornalmente più volte sono necessarie nella gestione di un'azienda: l'inserimento di un nuovo ordine o di una fattura, la registrazione dell'uscita di un prodotto, il carico e scarico dei magazzini, ecc. Tali sistemi, proprio perché pensati per questo scopo, sono detti operazionali oppure OLTP (On Line Transaction Processing). A differenza di questi un data warehouse è orientato ai soggetti che determinano le scelte dei manager, quali ad esempio: i clienti, i fornitori, le vendite e gli acquisti. Il data warehouse permette di raggruppare e confrontare i soggetti tra loro. La più importante delle caratteristiche di un data warehouse è l'integrazione. Essa nasce dalla necessità di dare coerenza ai dati provenienti da diverse applicazioni progettate per scopi diversi. Poiché i manager per poter prendere le loro decisioni abbisognano di ogni possibile fonte di dati interna o esterna all'azienda, il problema da affrontare è quello di rendere questi dati accessibili ed omogenei in un unico ambiente, ma questo pone delle difficoltà come quelle che si possono vedere in fig. 1.1. Possono esistere quattro fonti di dati dove il sesso di un cliente è stato memorizzato in modo diverso: allora nel data warehouse bisogna decidere quale forma vogliamo tenere come valida e di conseguenza bisogna codificare i dati provenienti dalle altre tre 5 applicazioni prima di inserirli nel data warehouse. Ovviamente le parti di codice che si occupano di trasformare i dati saranno diverse per ciascuna sorgente. Una situazione simile alla precedente si ha quando ad esempio applicazioni diverse misurano una grandezza con unità di misura diverse: allora bisogna trasformare le misure incompatibili in una che abbiamo scelto e definito come standard. Più applicazioni possono contenere la descrizione di un articolo ed in questo caso occorre decidere quale sia la descrizione più completa da memorizzare o se memorizzarle tutte in una sola. In applicazioni diverse gli attributi che si riferiscono ad uno stesso argomento (come un codice articolo) possono essere stati definiti in modo diverso, quindi bisogna scegliere il tipo più adatto alla memorizzazione nel data warehouse. Questi sono solo alcuni esempi dei problemi che si riscontrano nell'integrazione dei dati. La terza caratteristica che deve avere un data warehouse è la non-volatilità, ossia i dati in esso contenuti non devono poter essere cambiati dall'utente, questo perché il data warehouse viene usato per fare indagini e non per inserire o modificare operazioni. Non è nel data warehouse che si va a modificare l'indirizzo di un cliente, anche perché in tal caso si perderebbe ogni riferimento storico al fatto che il cliente ha cambiato indirizzo. I dati vengono caricati solitamente in massa ed in modalità batch e successivamente acceduti dagli end-user. L'ultima caratteristica importante di un data warehouse è la dipendenza dal tempo. A differenza dei database dove le operazioni direttamente accessibili, di solito, sono quelle degli ultimi 60-90 giorni, in un data warehouse l'intervallo temporale si allarga fino ad arrivare a coprire un arco di 5-10 anni. In ambiente operazionale il database contiene il "valore corrente" (ad esempio l'indirizzo odierno di un fornitore) e questo dato può essere modificato solo perdendo ogni riferimento al dato precedente, mentre in un data warehouse i dati possono essere visti come delle sofisticate foto istantanee (snapshot) fatte in determinati momenti, perciò tengono conto anche della storia dei soggetti. La struttura chiave di un sistema operazionale può o meno contenere degli elementi di tempo (anno, mese, data, ora , ... ), mentre quella di un data warehouse deve sempre contenere qualche elemento di tempo. Un data warehouse non è solo un insieme di dati strutturati, ma è piuttosto un sistema composto anche da applicazioni che servono ad estrarre, analizzare e presentare i dati. 6 I dati presenti in un data warehouse devono essere consistenti. Questo significa che se due persone interrogano l'archivio in momenti diversi per conoscere le vendite avvenute Figure 1.1: Esempio di integrazione dei dati nel mese di gennaio devono ottenere lo stesso risultato; inoltre se i dati di un determinato periodo per qualche motivo non sono stati caricati completamente, l'utente 7 che li richiede deve essere avvisato che i dati che sta analizzando sono incompleti. Da ciò si vede come risulti utile la figura del responsabile della qualità dei dati pubblicati nel data warehouse che rende disponibili le informazioni solo quando hanno sufficienti requisiti di analisi. 1.2 La struttura di un Data Warehouse La figura 1.2 riporta un esempio della struttura tipica di un data warehouse. Essa si compone di diversi livelli di dettaglio (detti anche summarization level). Partendo dal basso vediamo per primo un archivio di dati dettagliati dove sono registrati soggetti che si riferiscono ad un tempo lontano; generalmente questi dati sono salvati su nastri, perché , essendo richiesti solo di rado, si considera accettabile un tempo di accesso più elevato. Poi troviamo i dati attuali ad un elevato livello di dettaglio: essi tengono conto di un periodo relativamente breve. Quindi ci sono i dati "leggermente riassunti", ossia se ci si riferisce ad esempio alle vendite anziché la quantità di prodotto venduta in un giorno, in questo archivio potremo trovare la somma di ciò che è stato venduto in una settimana; a questo livello viene trattato un periodo abbastanza lungo. Infine all'ultimo livello troviamo dei dati "altamente riassunti", simili ai precedenti ma relativi a periodi di aggregazione e latenza più lunghi. Ogni livello di dettaglio viene ricavato a partire dal livello corrente. Una volta che i dati sono "invecchiati" passano automaticamente agli altri livelli di dettaglio. I soggetti I soggetti vengono rappresentati a livello logico nel data warehouse con una serie di tabelle collegate tra loro tramite relazioni. I soggetti sono il fulcro delle operazioni di ricerca e confronto eseguite dagli utenti del data warehouse. Essi vengono scelti in base al tipo di organizzazione aziendale ed al tipo di data warehouse che si intende progettare. Alcuni esempi di soggetti sono i seguenti: clienti, vendite, 8 prodotti, polizze, reclami. Come abbiamo appena notato relativamente ad un soggetto possono esserci più tabelle contenenti dati di epoche diverse a diversi livelli di aggregazione. Siamo in presenza di un'organizzazione continua dei dati quando i dati di un livello di dettaglio di un soggetto sono suddivisi su più tabelle sulla base del tempo: ciascuna tabella contiene i dati relativi ad un periodo diverso contiguo a quello di un'altra tabella. Figure 1.2: Esempio di summarization dei dati La granularità Per granularità si intende il livello di dettaglio dei dati salvati nel data warehouse. Più alto è il livello di dettaglio e più bassa è la granularità e viceversa. 9 Essa è il più importante aspetto progettuale di cui bisogna tener conto, perché è direttamente legata al volume di dati salvato e, di conseguenza, alle prestazioni del sistema e alla necessità di risorse hardware. Ovviamente bisogna scegliere il giusto livello di granularità per evitare di memorizzare dettagli che non verranno mai presi in considerazione o non registrarne altri di essenziali. Spesso la soluzione sta nello scegliere più livelli di granularità come mostrato in fig. 1.2. Questo significa registrare fisicamente dati di dettaglio diverso in tabelle diverse. Cos`i è possibile passare da una visione sintetica delle informazioni, ottenuta accedendo in un primo momento ai dati altamente riassunti, ad una visione dettagliata, presa dalle tabelle a più bassa granularità , ottimizzando cos`i il numero di accessi ai supporti magnetici e l'uso del DBMS. Questo processo è detto Drill Down. Il partizionamento Si ha un partizionamento dei dati quando quelli contenuti in una stessa struttura logica vengono divisi in più di una unità fisica ed inoltre un dato appartiene ad una ed una sola partizione. Nel data warehouse la questione non è se partizionare i dati, ma come partizionarli. Una volta scelto il giusto livello di granularità occorrerà scegliere come partizionare i dati in modo che ciascuna unità fisica di dati possa essere manipolata indipendentemente dalle altre. Lo sviluppatore deve scegliere se partizionare i dati a livello di sistema o di applicazione. La partizione a livello di sistema è una funzione del DBMS e del sistema operativo, mentre quella a livello di applicazione è contenuta nel codice della stessa applicazione e perciò direttamente controllata dallo sviluppatore. In questa seconda soluzione il DBMS non sa di alcuna relazione esistente tra i dati partizionati a livello di applicazione. Data la flessibilità che deve avere un data warehouse, acquista significato partizionare i dati a livello di applicazione. La ragione più importante che ci porta a questa scelta è che per anni diversi possono esserci diverse definizioni di un soggetto perché ad esempio nel frattempo le esigenze degli utenti sono cambiate. Se il partizionamento venisse fatto a livello di sistema, il DBMS esigerebbe una definizione di soggetto che rimanga inalterata nel tempo. Un cambio verrebbe interpretato dal sistema 10 come l'introduzione di un nuovo soggetto indipendente dal precedente e quindi non riconducibile al primo nel caso di query che coinvolgano periodi a cavallo tra le due definizioni. Il partizionamento porta con sè alcuni vantaggi: maggior facilità di creare indici, ristrutturare, riorganizzare, recuperare i dati e monitorare le operazioni degli utenti. 1.3 Il Multidimensional DBMS Per spiegare cosa sia un Multidimensional DBMS è opportuno introdurre brevemente lo Star Schema. Supponiamo di avere una catena di negozi di vendita al dettaglio della quale vogliamo gestire le vendite e le condizioni d'indagine siano dettate dal tempo, i negozi, i prodotti e le promozioni. Ogni giorno vengono registrate le vendite di ciascun prodotto. La struttura che immagazzina i dati può essere uno star schema come quello di fig. 1.3, dove la tabella VENDITE contiene pochissimi attributi ma moltissime righe (una per ogni prodotto venduto ogni giorno in ciascun negozio in qualsiasi condizione promozionale) e viene chiamata fact table; mentre le tabelle Tempo, Negozi, Prodotti e Promozioni hanno moltissimi attributi, ma bassa cardinalità (al confronto della fact table) e vengono chiamate dimension table. La fact table è legata alle dimension table tramite delle chiavi esterne e l'insieme degli attributi che sono chiavi esterne costituisce la chiave primaria della fact table. Il nome dimension table si giustifica dal fatto che possiamo pensare ad una riga della fact table come ad un elemento di un ipercubo le cui coordinate spaziali sono individuate dai singoli elementi delle dimension table: un elemento per ciascuna dimension table. Possiamo pensare ad esempio alla vendita di "caramelle al limone" del 23 dicembre 1998 nel negozio di Napoli sotto la promozione "Babbo Natale": questo è un elemento della fact table individuato da quattro elementi dimensionali che sono la data, il prodotto, il negozio e la promozione. Nella fact table relativamente a questo elemento saranno salvati per esempio la quantità venduta, il ricavo ottenuto ed il numero di clienti che hanno effettuato questo acquisto. 11 Figure 1.3: Esempio base di Star Schema. Dopo questa breve introduzione possiamo dire che il Multidimensional DBMS è un DBMS che è ottimizzato per l'uso di strutture simili a questa. Esso mette a disposizione dell'utente una struttura che è molto flessibile, soprattutto nell'analisi e la riorganizzazione dei dati nel passare da un livello di dettaglio ad un altro anche creati ad-hoc al volo. Spesso si dice che è possibile applicare ad un ipercubo la tecnica dello slice and dice ossia letteralmente dell' "affettare e tagliare a dadini" l'ipercubo, intendendo con questo che è possibile visualizzare parti della fact table selezionandole in base a qualsiasi range di valori di una o più dimensioni. Ad esempio è possibile vedere quale sia stata la vendita di latticini nei negozi di Milano, Roma e Napoli la seconda settimana di agosto del 1998 indipendentemente dalla promozione presente in ciascun negozio in quel periodo; questo implica che i dati vengano raggruppati e che vengano creati alcuni totali sommando i risultati di ciascun record appartenente ai gruppi, il tutto nel giro di qualche secondo al massimo. Esistono sostanzialmente due modi di pensare al data warehouse: uno secondo il quale è possibile basare tutto l'archivio su un Multidimensional DBMS ed un altro dove il data warehouse fornisce il supporto dettagliato dal quale caricare i dati che alimentano il Multidimensional DBMS. Noi ci atterremo al secondo. In questo modo è possibile caricare il MDBMS con dei dati leggermente riassunti e creare qualsivoglia livello di granularità in modo molto efficiente; poi eventualmente i dati cos`i ottenuti possono essere salvati nel data warehouse. In media un MDBMS contiene dati relativi agli ultimi 12 - 15 mesi mentre un data warehouse allarga i suoi orizzonti a 5 - 10 anni. Ovviamente deve essere possibile navigare da un sistema all'altro in modo indolore, ossia cominciare ad esempio una ricerca 12 nel MDBMS e poi fare un drill down nel data warehouse o fare l'operazione inversa, il tutto in modo trasparente per l'end-user. Figure 1.4: Relazioni tra le applicazioni in ambiente legacy e più strutture multidimensionali. Vi sono alcuni rischi nel realizzare un data warehouse utilizzando solo un MDBMS. Riferendoci alla fig. 1.4 si può vedere che, alimentando direttamente le strutture multidimensionali dalle applicazioni legacy, il codice può diventare ridondante perché le vendite possono richiedere alcuni dati dall'applicazione A comuni al marketing e alla produzione: questo significa che l'estrazione dei dati dai sistemi legacy può avvenire più volte, consumando di conseguenza più risorse. Il sistema risultante non è completamente integrato perché ogni dipartimento ha la propria interpretazione dei dati provenienti dall'ambiente operazionale. Il lavoro di progettazione e manutenzione del data warehouse risulta complicato dalla dimensione e ridondanza del codice. 1.4 Il Data Warehouse centralizzato e distribuito La maggior parte delle organizzazioni mantiene un data warehouse centralizzato. Esiste cioè un server che contiene tutti i dati ed un DBMS che li gestisce: a questo server 13 sono connessi molti client su ognuno dei quali girano le applicazioni di reporting ed analisi. Le ragioni di questa scelta tecnologica si possono riassumere così: il data warehouse risulta integrato in ogni ambiente dell'organizzazione; il volume di dati che contiene giustifica l'uso di un sistema centralizzato; anche se i dati fossero integrati ma distribuiti in vari siti, potrebbe risultare piuttosto difficile accedervi. Figure 1.5: Esempio Data Warehouse distribuito Il volume di dati che viene scambiato tra il DBMS e le applicazioni è tale da favorire le reti locali; sebbene in teoria sia possibile avere un client in Africa ed il server in Europa, i dati scambiati tra le due macchine per un semplice report sono tali da poter 14 impiegare parecchi minuti prima di giungere a destinazione, malgrado siano stati ottenuti in pochissimi secondi: questo è causa di notevole frustrazione da parte dell'utente. Ci sono casi però in cui può risultare necessario costruire un data warehouse distribuito. La fig. 1.5 mostra come possa esistere una realtà nella quale insistono più siti, ciascuno con un suo ambiente operazionale, ed un data warehouse locale indipendente da tutti gli altri nel funzionamento e nella struttura. Ciascun data warehouse locale viene alimentato da un ambiente operazionale locale e quest'ultimo a sua volta alimenta anche un data warehouse globale che contiene dati riguardanti tutti i settori dell'organizzazione. Con questa struttura non è possibile interrogare il data warehouse del sito C dal sito A. I dati contenuti nel data warehouse globale non sono contenuti in nessun data warehouse locale e sono comuni a tutta l'organizzazione. Poiché la struttura del data warehouse globale è definita centralmente, mentre la mappatura dei dati che lo alimentano è locale, è possibile che dopo lo start up del progetto si verifichino problemi di gestione del team di progetto, dal momento che i vari gruppi di lavoro che lo compongono sono dislocati fisicamente in aree diverse. È altrettanto possibile che con l'andare del tempo il feedback agli sviluppatori locali porterà alla stabilità dell'intero complesso. In alcuni casi una copia limitata del data warehouse globale può risiedere a livello locale per le operazioni più frequenti, in questi casi però bisogna fare molta attenzione all'allineamento dei dati. A differenza di un data warehouse centralizzato dove i dati dettagliati sono contenuti nel server ed i dati di sintesi eventualmente stanno a livello locale nei client, in un data warehouse distribuito la situazione si può ribaltare: i dati dettagliati sono contenuti nei data warehouse locali mentre quelli riassunti stanno nell'archivio globale, che è centralizzato. Un vantaggio di avere un data warehouse distribuito è che le risorse hardware e software costano meno perché si possono usare macchine e programmi meno complessi; se in un futuro ci si avvicina ai limiti di capacità delle macchine si può semplicemente aggiungere un nuovo server. Occorre però tener presente che, ogni volta che si aggiunge un server, malgrado la capacità di calcolo aumenti, contemporaneamente aumenta anche il traffico di rete e la difficoltà di reperire i dati di una query perché questi possono essere 15 distribuiti su più macchine. Perciò , sebbene l'intuito ci porti a pensare che l'aggiunta di un server aumenti le capacità del sistema e, di conseguenza riduca i tempi di risposta, di fatto il sistema può risultare più lento. 1.5 Azioni di ricerca Un data warehouse nasce soprattutto come base di dati sulla quale fare ricerche e calcoli che coinvolgono grandi quantità di dati. Come dicevamo prima, i tipi di ricerca che si possono fare non sono predeterminati, ma è l'utente che di volta in volta sceglie cosa cercare: perciò occorre mettere a sua disposizione una struttura semplice che gli permetta di muoversi tra i dati e strumenti potenti che lo aiutino nelle analisi. Per quanto riguarda la ricerca dei dati, i livelli di summarization permettono operazioni come il drill down ed il drill up, mentre per le analisi su grandi quantitativi di dati troviamo l'OLAP (On Line Analytical Processing) ed il Data Mining. L'operazione di drill down permette di partire da dati cumulativi altamente riassunti e scendere nei dettagli passo per passo, attraversando vari livelli di summarization del data warehouse. Un esempio può rendere più chiaro questo concetto. Supponiamo di avere un'azienda di latticini e fare una ricerca che metta a confronto le vendite di yogurt di questo mese rispetto a quello scorso, allora potremmo ottenere un report come quello di tab. 1.6. Prodotto Regione Questo mese Confronto Yogurt Nord 110 12% Yogurt Centro 179 -3% Yogurt Sud 55 5% Table 1.6: Dati altamente riassunti. Questi dati evidenziano una perdita nelle vendite nelle regioni centrali, a questo punto possiamo cercare i motivi di queste perdite e scendere più in dettaglio nella nostra 16 ricerca aggiungendo il nome degli agenti che distribuiscono i prodotti nelle varie zone. Il risultato può essere quello di tab. 1.7. Prodotto Regione Agente Questo mese Confronto Yogurt Nord Neri 52 21% Yogurt Nord Bianchi 28 5% Yogurt Nord Verdi 30 6% Yogurt Centro Rossi 93 4% Yogurt Centro Galli 75 5% Yogurt Centro Pietri 11 -15% Yogurt Sud Stani 25 5% Yogurt Sud Gralli 30 6% Table 1.7: Dati più dettagliati dopo una singola operazione di drill down. Già a questo livello di dettaglio le eventuali decisioni di chi sta facendo le ricerche sono più chiare. Più precisamente si dice che si è in presenza di un drill down quando l'interrogazione di un utente passa da un livello alto di summarization ad uno più basso attraversando tabelle diverse. Drill up, invece, è l'operazione opposta alla precedente dove si passa da un livello molto dettagliato ad una visione globale attraversando i livelli di summarization. 1.6 On-Line Analytical Processing (OLAP) 17 L'OLAP mira a fornire ai suoi utenti le caratteristiche di analisi che si trovano in un foglio elettronico unitamente all'affidabilità di un database. OLAP permette una vista dei dati che va oltre le due o tre dimensioni offerte dai fogli elettronici. Diversamente dai fogli elettronici i dati possono essere condivisi tra molti utenti senza dover duplicare i file. In molti casi gli utenti possono aggiungere o modificare i dati sotto il controllo del sistema senza comunque rischiare di sovrascrivere l'informazione originale. Le applicazioni OLAP sono caratterizzate dalla flessibilità con la quale gli utenti possono ottenere varie viste dei dati o i report che essi vogliono per realizzare nuove analisi ad-hoc, per eseguire calcoli complessi su larga scala e per ricercare dinamicamente eccezioni nei dati contenuti nei database di grosse dimensioni. Poiché l'OLAP si rivolge soprattutto all'utente finale, deve presentare un'interfaccia semplice: quella comunemente usata è molto simile a quella dei fogli elettronici. D'altro canto gli strumenti OLAP devono avere una buona integrazione con i sistemi che forniscono loro i dati. Alcuni OLAP usano i loro database multidimensionali, altri si integrano con i database relazionali ed altri ancora sono una forma ibrida che tiene alcuni dati in database multidimensionali ed accede ad altri direttamente sugli archivi relazionali. Fast Analysis of Shared Multidimensional Information Queste cinque parole sono considerate una nuova definizione di OLAP. Più in dettaglio significano: Fast: il sistema deve riuscire a rispondere alle interrogazioni in media in cinque secondi; alle domande più facili deve dare dei risultati in un secondo mentre a pochissime deve rispondere in più di 20 secondi. Analysis: il sistema deve riuscire a fare analisi statistiche e di mercato in modo abbastanza semplice per l'utente finale. Come minimo il sistema OLAP deve fornire la possibilità di eseguire nuovi calcoli ad-hoc come parte di un'analisi, di restituire report sui dati in ogni modo desiderato dall'utente senza che quest'ultimo debba inserire delle linee di codice. Shared: il sistema deve fornire tutti i requisiti di sicurezza affinché ognuno possa accedere ai dati e, se è possibile avere un accesso ai dati in scrittura da parte di più utenti, deve essere in grado di gestire la concorrenza. 18 Multidimensional: è il requisito più importante, l'essenza delle applicazioni OLAP. I sistemi OLAP devono fornire una vista concettuale multidimensionale dei dati. Information: è tutto ciò di cui necessita il sistema dovunque e comunque sia immagazzinato, proveniente dai dati dettagliati o aggregati. Le tecnologie per ottenere il FASMI includono architetture client-server, analisi di serie storiche, orientazione agli oggetti, calcolo parallelo, modi proprietari ottimizzati di immagazzinamento dati e multi-threading. Il modello multidimensionale Il modello multidimensionale organizza i dati in termini delle dimensioni di mercato attuali dell'azienda. Per esempio le vendite possono essere classificate per prodotto, cliente, periodo storico, localizzazione, valore e quantità venduta. L'intersezione di tutte le dimensioni produce una cella come nei fogli elettronici a due dimensioni. Sebbene questo tipo di dati possa essere certamente immagazzinato in un database relazionale, l'SQL non è il modo naturale di estrarre informazione da una struttura multidimensionale. Localizzare una cella in un database multidimensionale è facile per l'utente e per il calcolatore perché si conosce la posizione e non occorre ricorrere ad un indice, infatti le dimensioni ed i loro range sono noti, ciò che è ignoto è il dato contenuto nella cella, ma questo occupa uno spazio ed una posizione ben definiti in memoria. È questo il motivo che rende i database multidimensionali più facili da usare e aumenta notevolmente la resa nel manipolare dati multidimensionali in confronto a quella che si ha con i database relazionali. Il prezzo da pagare è la sparsity ossia la presenza di moltissime celle con contenuto nullo. Ciò accade per esempio perché in ciascun periodo ogni cliente compera una piccola porzione dei prodotti disponibili (se non addirittura niente). Nei modelli multidimensionali con molte dimensioni, la maggioranza delle celle non conterrà alcun dato. Perciò il prezzo della velocità è la memoria e viceversa. Come nei fogli elettronici, ciascuna cella può essere calcolata da formule che richiamano altre celle. Nelle applicazioni di grandi dimensioni bisogna bilanciare bene l'uso delle risorse, perché la maggior parte delle celle vengono calcolate a partire da altre, quindi bisogna scegliere un compromesso tra un calcolo in modalità batch, che salva i risultati in apposite tabelle (spreco di spazio), ed un calcolo in tempo reale, che fornisce i 19 risultati al volo (spreco di tempo e CPU). Il vantaggio che si ottiene dalla prima soluzione è la disponibilità di informazione derivata accessibile in tempi brevissimi perché non deve essere calcolata on line ad ogni richiesta. Gli utenti finali devono avere la possibilità di fare le analisi desiderate e navigare in tutte le dimensioni dell'applicazione senza restrizioni sulle funzionalità di calcolo o di report e con piccoli effetti sul rendimento del sistema. 1.7 Definizione di Data Mining Il termine data mining, che letteralmente significa "estrarre dati", è un processo di estrazione di conoscenza da banche dati di grandi dimensioni tramite l'applicazione di algoritmi che individuano le associazioni "nascoste" tra le informazioni e le rendono visibili. In altre parole, col nome data mining si intende l'applicazione di una o più tecniche che consentono l'esplorazione di grandi quantità di dati, con l'obiettivo di individuare le informazioni più significative e di renderle disponibili e direttamente utilizzabili nell'ambito del decision making. L'estrazione di conoscenza (informazioni significative) avviene tramite individuazione delle associazioni, o "patterns", o sequenze ripetute, o regolarità, nascoste nei dati (in questo contesto un "pattern" indica una struttura, un modello, o, in generale, una rappresentazione sintetica dei dati). Il termine data mining è spesso utilizzato come sinonimo di knowledge discovery in databases (KDD), anche se sarebbe più preciso parlare di knowledge discovery quando ci si riferisce al processo di estrazione della conoscenza, e di data mining come di una particolare fase del suddetto processo (la fase di applicazione di uno specifico algoritmo per l'individuazione dei "patterns"). 1.8 Il processo di estrazione della conoscenza 20 Indipendentemente dal tipo di applicazione specifica, un processo di estrazione di conoscenza percorre alcune fasi che possono essere schematizzate in: 1. Definizione dell'obiettivo 2. Individuazione delle fonti di dati 3. Estrazione / acquisizione dei dati (ed integrazione, se provenienti da fonti o data bases diversi) 4. Pre-processing (Pulizia dei dati - Analisi esplorative - Selezione - Trasformazione - Formattazione) 5. Data Mining (Scelta dell'algoritmo - Individuazione dei parametri - Elaborazione - Valutazione del modello) 6. Interpretazione / valutazione dei risultati 7. Rappresentazione dei risultati Mentre l'individuazione di "patterns" avviene automaticamente, l'intero processo di estrazione della conoscenza è difficilmente automatizzabile e richiede il coinvolgimento di varie professionalità (esperti del dominio applicativo, specialisti in analisi dati, informatici). La fase più impegnativa è, generalmente, quella del pre-processing. 1.9 Perché usare strumenti di Data Mining Gli algoritmi di data mining sono stati sviluppati per far fronte all'esigenza di sfruttare il patrimonio informativo contenuto nelle grandi raccolte di dati che abbiamo a disposizione. Avere dati non è infatti più un problema (basta pensare alla ricchezza delle sorgenti di dati accessibili su Web o attraverso Data Warehouse aziendali): il problema è cercare di utilizzarli, estrarne le informazioni. Spesso i dati, sia che si riferiscano all'attività giornaliera dell'azienda (o dell'ente), sia che si riferiscano alla clientela (o all'utenza), sia che si riferiscano al mercato o alla concorrenza, si presentano in forma eterogenea, ridondante, non strutturata. Tutto ciò fa sì che solo una piccola parte di essi venga analizzata. 21 D'altra parte la rapida evoluzione del mercato richiede rapidità di adattamento. In questo contesto riuscire a sfruttare la potenziale ricchezza di informazioni che abbiamo a disposizione costituisce un enorme vantaggio. Per fare ciò è necessario disporre di strumenti potenti e flessibili. La grande quantità di dati e la loro natura eterogenea rende infatti inadeguati gli strumenti tradizionali. Questi si dividono in due tipi: strumenti di analisi statistica e strumenti tipici di interrogazione di banche dati (data retrieval). Per quanto riguarda i primi, le difficoltà nascono dal fatto che: Difficilmente operano su grandi quantità di dati (richiedono operazioni di campionamento con conseguente perdita di informazioni) Spesso richiedono valori di tipo quantitativo (mentre i prodotti venduti, le caratteristiche della clientela, ecc … sono dati di tipo qualitativo) Non gestiscono i valori mancanti Richiedono personale tecnico sia per il loro utilizzo che per l'interpretazione dei risultati Per quanto riguarda il data retrieval, le difficoltà riguardano: I tempi di risposta (aumentano all'aumentare della quantità di dati) Inadeguatezza nell'individuare "associazioni nascoste" Il data retrieval è, infatti, uno strumento per interrogare banche dati che consiste nel formulare una query, o interrogazione. Il sistema cerca, all'interno della banca dati, tutti i casi che soddisfano le condizioni poste nella query (cioè tutti i dati che presentano le caratteristiche richieste) e fornisce la risposta. L'individuazione di "associazioni nascoste" può quindi solo procedere per tentativi. Facciamo l'esempio di un data base in cui i dati di vendita siano stati integrati con le caratteristiche della clientela (questo è reso possibile, anche nei settori in cui tradizionalmente l'atto di acquisto è "anonimo", dall'uso sempre più frequente di "fidelity cards"). Mentre l'uso di strumenti di data retrieval consente di avere risposte precise a qualsiasi domanda specifica, il data mining risponde a domande più generiche. Questo secondo approccio consente di far emergere dai dati le associazioni esistenti senza richiedere la formulazione di ipotesi a priori. Sarà l'algoritmo a mettere in evidenza le 22 fasce d'età, l'insieme di prodotti acquistati, e le altre caratteristiche, che si presentano ripetutamente (cioè sono "associati") nei dati. Si tratta quindi di un approccio esplorativo e non, come nel data retrieval, verificativo. In questo modo possiamo scoprire relazioni che non solo erano nascoste e sconosciute, ma che non avremmo nemmeno mai ipotizzato potessero esistere. 1.10 Tecniche ed ambiti applicativi Il data mining è stato definito come un processo, all'interno del quale si utilizzano una o più tecniche per estrarre, da grandi quantità di dati, conoscenza in termini di associazioni, "pattern", regole, o sequenze ripetute. Le tecniche utilizzabili sono varie e, di conseguenza, anche gli algoritmi che le implementano. La scelta dipende principalmente dall'obiettivo che si vuole raggiungere e dal tipo di dati da analizzare. Le più utilizzate sono: Clustering Reti Neurali Alberi di Decisione Individuazione di Associazioni Le tecniche di clustering e l'uso delle reti neurali non supervisionate consentono di effettuare operazioni di segmentazione sui dati, cioè di individuare gruppi omogenei, o tipologie, che presentano delle regolarità al loro interno in grado di caratterizzarli e differenziarli dagli altri gruppi. Le reti neurali (supervisionate) e gli alberi di decisione consentono di effettuare operazioni di classificazione, fanno cioè uso della conoscenza acquisita in fase di addestramento per classificare nuovi oggetti o prevedere nuovi eventi. Le tecniche di analisi delle associazioni consentono di individuare delle regole nelle occorrenze concomitanti di due o più eventi. A queste possiamo aggiungere "sequential patterns" (tecniche di individuazione di sequenze temporali), "naive Bayes", algoritmi genetici, … 23 Queste tecniche sono applicabili a qualsiasi ambito di indagine, in generale trovano applicazione tutte le volte che siamo di fronte a grandi quantità di dati e abbiamo l'esigenza di conoscerne il contenuto. Alcune delle applicazioni più comuni sono: Segmentazione della clientela (Database Marketing): consiste nell'applicazione di tecniche di clustering al fine di individuare gruppi omogenei in termini di comportamento d'acquisto e di caratteristiche socio-demografiche; l'individuazione delle diverse tipologie di clienti permette di effettuare campagne di marketing diretto e di valutarne gli effetti, nonché di ottenere indicazioni su come modificare la propria offerta, e rende possibile monitorare nel tempo l'evoluzione della propria clientela e l'emergere di nuove tipologie Analisi delle associazioni (Basket Analysis): consiste nell'applicazione di tecniche di individuazione di associazioni a dati di vendita al fine di conoscere quali prodotti sono acquistati congiuntamente; questo tipo d'informazione consente di migliorare l'offerta dei prodotti (disposizione sugli scaffali) e di incrementare le vendite di alcuni prodotti tramite offerte sui prodotti ad essi associati Analisi testuale (Text Mining): consiste nell'applicazione di tecniche di clustering al fine di individuare gruppi omogenei di documenti in termini di argomento trattato; consente di accedere più velocemente all'argomento di interesse e di individuarne i legami con altri argomenti Technology Watch (Competitive Intelligence): consiste nell'applicazione di tecniche di clustering a banche dati di tipo tecnico-scientifico al fine di individuare i gruppi tematici principali (nel caso di banche dati di brevetti, un gruppo tematico indica una particolare tecnologia), le loro relazioni, l'evoluzione temporale, le persone o le aziende coinvolte. 24 PARTE II Il DATA WAREHOUSE ED IL WEB 2.1 Il successo del Data Warehouse Se si considerano la produttività degli analisti e le decisioni più ponderate prese dai managers, ci si può facilmente rendere conto di come il data warehouse stia procurando enormi benefici alle aziende, diventando parte integrante della conduzione del loro business. La domanda di servizi di data warehousing è infatti cresciuta negli ultimi anni in maniera decisamente sostenuta: in Italia la spesa per implementare questo processo è stata nel 1999 di 480 miliardi di lire mentre per il 2002 si prevede che questa raggiunga un risultato più che doppio, pari a 1.040 miliardi di lire. Tra le diverse ragioni imputabili a questa espansione della domanda ha sicuramente la sua importanza il fatto che il data warehouse aiuta le aziende a trovare nuovi clienti e a mantenere quelli già acquisiti cercando di ottenere sempre nuovi profitti da entrambi. Inoltre gli utenti, grazie a questo processo, possono trovare più facilmente le informazioni di cui hanno bisogno nel momento stesso in cui esso si manifesta e, prendendo familiarità con queste applicazioni, tendono ad utilizzarle sempre con maggior frequenza. Purtroppo però, quello della Information Technology è uno tra i settori aziendali che soffrono maggiormente l'attuale riduzione dei costi. Da una parte esiste una domanda di servizi nuovi che aumenta, dall'altra continua la pressione sul controllo dei costi per crearli. Una delle strade che vengono maggiormente percorse da chi gestisce sistemi di supporto decisionale diventa quella di espandere l'uso del data warehouse attraverso tecnologie aperte e ben consolidate a basso costo, come quelle fornite dai thin-client, dal Wap, dal Publishing and Subscribe e, soprattutto, da Internet. 25 2.2 Gli accessi al Data Warehouse I data warehouse che vengono agganciati al mondo Internet sono spesso chiamati "Web-enabled", cioè abilitati al Web. Questo tipo di data warehouse consente di fornire l'accesso alle proprie informazioni sia agli utenti interni, come ad esempio i manager, sia agli utenti esterni quali i clienti, i fornitori ed i partner. 2.3 L'accesso tramite Intranet L'accesso al data warehouse da parte di coloro che stanno all'interno di un'azienda viene generalmente chiamato "supporto alle decisioni via Intranet". Le Intranet possono essere connesse o meno a Internet tramite firewall (gli accessi vengono controllati attraverso la tipologia di utente e del tipo di informazioni richieste) e garantiscono alle applicazioni data warehouse tutti i vantaggi dei Web browser, come la possibilità di arricchire le informazioni con link a documenti statici, foto, … (fig. 2.1). Inoltre via Intranet i manager possono ricevere report ed analizzare le informazioni in essi contenute attraverso dimensioni multiple. Data Warehouse Intranet Utente 1 Utente 2 Figure 2.1: Accesso interno al data warehouse. 26 2.4 L'accesso tramite Internet L'accesso alle informazioni di un data warehouse dall'esterno dell'azienda porta ad una nuova tipologia di decision support, quella di tipo Extranet. Gli accessi esterni al data warehouse hanno il grande vantaggio di facilitare interazioni business-to-business (B2B) e business-to-client (B2C). Data Warehouse Intranet Utente 1 Utente 2 Firewall Internet Fornitore Partner Cliente Figure 2.2: Accesso esterno al data warehouse. 27 Basti pensare alla possibilità per le aziende di dare informazioni sui prodotti, specifiche di progettazione, documenti tecnici, dati sulla competition, informazioni sugli ordini e report sui problemi direttamente ai partner, ai fornitori e ai clienti, migliorando tra l'altro il sevizio (sicuramente più puntuale e preciso) e abbattendo ovviamente molti costi. Le Extranet garantiscono la sicurezza necessaria nell'accedere alle Intranet aziendali attraverso opportuni firewall, che hanno il compito di riconoscere soltanto definiti gruppi esterni (fig. 2.2). 2.5 I vantaggi dei Data Warehouse Web-enabled Sono numerosi i vantaggi che un data warehouse può trarre da Internet, se quest'ultima tecnologia viene applicata correttamente. 1. Bassi costi di investimento In effetti, tutto ciò che serve agli utenti è un browser che permetta di richiedere e monitorare le informazioni richieste. Se l'azienda decidesse di aumentare il numero degli utenti abilitati all'accesso del data warehouse, il costo incrementale di questa operazione diverrebbe molto competitivo. 2. Accesso remoto Ad un data warehouse può accedere qualsiasi utente ovunque si trovi, in ogni momento ed indipendentemente se possiede un Pc anziché un Machintosh. 3. Gestione semplificata ed economica delle applicazioni Grazie alla natura server-based del Web, non occorre più modificare centinaia o magari migliaia di applicazioni installate nei computer degli utenti: basta caricare le eventuali modifiche a reports o programmi a livello di server aziendale. 28 4. Miglioramento del processo decisionale Grazie all'accesso maggiormente facilitato alle informazioni, gli utenti sono in grado di prendere le decisioni migliori ed in tempi più rapidi. 5. Opportunità per generare nuovi ricavi Si possono creare nuove opportunità di ricavi per le aziende che vendono l'accesso alle proprie informazioni per analisi da parte di esterni. 6. Agevolazione della condivisione della conoscenza Gli utenti, grazie alla rete, possono facilmente condividere informazioni ed analisi portando quindi notevoli vantaggi all'azienda. 2.6 L'architettura di un Data Warehouse Web-enabled L'architettura di un data warehouse Web-enabled è sicuramente un esempio di struttura facilmente implementabile, anche se presenta alcune criticità se si tiene conto dell'unidirezionalità del processo di comunicazione che si ha verso il Web. Consideriamo per esempio il percorso che compie una richiesta che parte dal browser, giunge al data warehouse e poi ritorna all'utente. 3 Parametri 1 e 2 URL Web browser del tag o URL Web server 6 HTML 3 Query Web gateway 5 HTML con OLAP Server / Data store 4 Data embadded data Figure 2.3: Percorso Web browser - data warehouse - Web browser tipico di una richiesta dell'utente. 29 Le fasi sono principalmente sei (vedi fig. 2.3). 1. Nel browser viene inserito l'URL della pagina corrispondente ad un servizio di warehousing 2. Il browser, dopo aver aperto una connessione al Web server, gli passa i parametri dell'utente 3. Il Web server passa la richiesta al Web gateway che a sua volta genera una query al data warehouse 4. Il data warehouse passa le informazioni al Web gateway che li converte in formato HTML 5. Il Web gateway passa le pagine così create al Web server 6. Il Web server consegna una pagina HTML con i dati dell'elaborazione all'utente In questa architettura, però, il client non ha nessun tipo di capacità elaborativa o di controllo, dovendosi sempre affidare alle risposte che gli arrivano dal server. Lo svantaggio maggiore sta nel fatto che in questo modo vengono utilizzate molte risorse sia a livello di server, sia a livello di rete, occupata anche per elaborazioni che potrebbe fare l'utente in piena autonomia. Le limitazioni iniziano a notarsi nel momento in cui il numero degli utenti aumenta sovraccaricando di accessi il data warehouse. La soluzione ottimale starebbe nell'utilizzo della rete solo per il trasferimento delle informazioni, lasciando l'analisi a potenti strumenti a livello di browser. Questo "sogno" è stato reso possibile dall'avvento di Java, tecnologia inventata da Sun Microsystems, che ha aggiunto al mondo Internet delle caratteristiche essenziali in grado di risolvere molti dei problemi sopra citati. Java è un linguaggio universale che abilita un qualsiasi sistema a collaborare dal punto di vista applicativo con qualsiasi altro elaboratore. Il risultato è un'architettura più efficiente che porta interattività ai client e distribuisce la potenza di calcolo attraverso l'organizzazione. Si creano così strumenti per la reportistica che non hanno bisogno di essere installati sui computer dei nuovi utenti che beneficieranno del data warehouse. Sarà sufficiente comunicare l'indirizzo Web della nuova pagina che conterrà l'applicazione. 30 2.7 Classificazione dei tools Web-enabled Sul mercato esiste una vasta varietà di tools in grado di costruire e sviluppare soluzioni a supporto delle decisioni che utilizzano la rete. Il Meta Group (Stamford, CT) ci offre un utile modello per "mappare" questi sofisticati strumenti "Web-enables" classificandoli in due categorie: 1. Web "Like " Riguarda l'abilità nel pubblicare informazioni statiche in formato HTML che possono essere lette dai browser. Questi tools sono solitamente client-based. 2. Web "Live" Riguarda l'abilità nello sviluppare pagine web contenenti informazioni, analisi e report on-demand in un ambiente browser interattivo. Questi tools, che sono client e server-based, hanno la particolarità di avere dei componenti scritti in Java o in ActiveX. 2.8 Le caratteristiche dei tools Web-enabled Mentre il modello fornitoci da Meta Group ci aiuta a delineare gli strumenti Webenabled tramite il loro grado di sofisticatezza, esistono altre caratteristiche-chiave che dovrebbero essere considerate quando si valutano questi tools. Le soluzioni Web-enabled devono : 1. essere complete Le soluzioni devono coprire tutti gli aspetti di implementazione, dal disegno e dalla costruzione dei reports fino allo sviluppo e l'amministrazione delle applicazioni Web. 31 2. supportare gli "Internet Standards" Gli strumenti Web-enabled dedicati al supporto delle decisioni devono sostenere gli standard di Internet come il linguaggio HTML o gli scripts CGI e gli applet Java o i controlli ActiveX in grado di rendere le pagine Web interattive e dinamiche. 3. permettere l'accesso a tutte le fonti più popolari di dati Se le aziende scelgono di sviluppare la loro soluzione a supporto delle decisioni in ambienti Unix o Windows NT, è essenziale che abbiano una completa flessibilità nell'accesso ai vari data warehouse, data marts e data base personali, dipartimentali e centrali. 4. le operazioni devono essere basate sul server Le soluzioni che non si basano su "server-based processing", come molti degli strumenti più popolari creati per fare reporting o query, sono destinate a fallire: senza il processing a livello di server, per esempio, agli utenti mancherebbero i benefici dell'automazione dello scheduling o del reporting on-demand. 32 CONCLUSIONI Il ruolo di Internet come uno degli strumenti più importanti per la "disseminazione" delle informazioni contenute nei data warehouse è ormai evidente. Il Data Warehouse Institute, a tal proposito, è convinto che il Web browser consentirà "una crescita esponenziale del numero degli utenti e la corrispondente esplosione del numero di data warehouse e data marts sviluppati". Il Web, come "piattaforma" per la distribuzione del supporto decisionale, ha il merito non solo di superare gli iniziali ostacoli che inibivano l'uso esteso dei data warehouse, ma sta diventando la vera "killer application" o il principale catalizzatore per l'utilizzo di questi processi. In definitiva, Internet e data warehouse sono soluzioni ormai altamente complementari: il primo, in particolar modo, si è rivelato il veicolo ideale per l'accesso e la divulgazione delle informazioni contenute nel secondo. 33 BIBLIOGRAFIA F. Rajola – L’organizzazione delle attività di data warehousing e data mining nel settore finanziario – Franco Angeli s.r.l. – 2000 M. Bacci – Domain e Java Computing: elementi fondamentali per la costruzione di una moderna architettura data warehouse - Franco Angeli s.r.l. – 2000 R. Vanzanelli, F. Gasperini – Il data warehouse nelle banche e nelle istituzioni finanziarie: ambiti applicativi e approcci allo sviluppo - Franco Angeli s.r.l. – 2000 W. H. Inmon - Building the Data Warehouse - John Wiley & Sons, Inc. – 1996 www.billinmon.com IBM – Soluzione di data warehouse per Prudential – www-5.ibm.com/e- business/it/components/crm/case_studies/crm_cs_bancolombia.html McEachem, M. Nykamp – Customer Relationship Report: Understanding the Customer Experience Cycle – DMReview.com – 2000 Tutto su Data Warehousing e OLAP – www.olap.it Explorer – www.dialog.it Greg Cawthorn - Synopsis of The OLAP Report - Business Intelligence, Inc. www.busintel.com/synopsis.htm Overcoming the Obstacles Inhibiting Widespread Use od Data Warehouse and Data Marts www.gruppospa.it 34