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