ANALISI DEI DATI
OLAP
(On Line Analytical Processing)
Data Warehousing
Data Mining
Dall’OLTP all’OLAP
La tecnologia delle basi di dati è finalizzata
prevalentemente alla gestione dei dati in “linea”, si parla
di OnLine Transaction Processing (OLTP)
Analisi dei dati
•I dati disponibili possono essere utilizzati non solo
nella gestione, ma anche nella pianificazione
• Un’analisi dei dati passati e presenti può essere utile
per la programmazione delle attività future dell’impresa
• Si parla in questo caso di On Line Analytical
Processing (OLAP)
Sistemi OLTP e OLAP
•L’elemento principale dell’architettura OLAP è una
particolare base di dati chiamata data warehouse
(magazzino dei dati), in cui sono contenuti dati che,
opportunamente analizzati possono fornire un supporto
alle decisioni.
•I sistemi OLTP forniscono i dati per l’ambiente OLAP,
sono cioè una “sorgente di dati” (data source) per tale
ambiente.
•Tra i due sistemi cambia la tipologia di utente
terminalisti (OLTP), analisti (OLAP)
Sistemi OLTP e OLAP
OLTP
A
A
1
1
OLAP
terminalisti
A
A
2
2
A
A
n
n
DB
Terminalisti: utenti finali. Possono
eseguire operazioni di lettura e di
scrittura
analisti
A
A
1
1
A
A
2
2
DWMS
A
A
n
n
DW
Analisti: Pochi utenti, occupano
posizioni di alto livello nell’impresa
e svolgono attività di supporto
alle decisioni.
Sistemi OLTP e OLAP
• OLTP (On Line Transaction
Processing)
• Sistemi per la gestione dei
dati
• Utilizzo di un set di
operazioni ben definito
• Bassa complessità delle
operazioni
• Le operazioni coinvolgono
una piccola quantità di dati
• Continuo aggiornamento dei
dati
• Generalmente viene utilizzato
lo “stato corrente” di
un’applicazione
• Devono essere rispettate le
proprietà ACIDe (atomicità,
correttezza, isolamento,
durabilità) delle transazioni
• OLAP (On Line Analytical
Processing):
• Sistemi per l’analisi dei dati
• Permettono di eseguire operazioni
non previste nella progettazione del
DB (sistemi di supporto alle
decisioni)
• Operano su grosse moli di dati
• I dati sono “statici” (usualmente si
utilizzano dati storici)
• Operano su dati provenienti da più
fonti eterogenee
• Le proprietà ACIDe non sono
rilevanti perché le operazioni sono
di sola lettura
Caratteristiche dei Data warehouse
• Utilizzano dati provenienti da più DB
• I meccanismi di importazione sono di tipo asincrono
e periodico
• In tal modo non vengono penalizzate le prestazioni delle
data source
• La warehouse non contiene dati perfettamente
allineati con il flusso di transazioni negli OLTP
• Problema legato alla qualità dei dati:
• La semplice raccolta di dati può non essere sufficiente per
una corretta analisi perché i dati possono contenere
inesattezze, errori, omissioni
Architettura di un DataWarehouse
Export dei dati
Data mining
DW
Prime due
componenti
operano nelle
data source
Export
Data Filter
Data Source
Accesso ai Dati
Allineamento dei Dati (refresh)
Acquisizione dei Dati
Export
GliData
altriFilter
cinque
componenti operano
Data Source
nella DW
Export
Data Filter
Data Source
Architettura di un DataWarehouse
Data Source
Possono essere di qualsiasi tipo, anche raccolte di
dati non gestite tramite DBMS oppure gestite da
DBMS di vecchia generazione (legacy system).
Data Filter
Controlla la correttezza dei dati prima
dell’inserimento nella warehouse. Può eliminare
dati scorretti e rilevare o correggere eventuali
inconsistenze tra dati provenienti da più data
source. Viene fatta la pulizia dei dati (data
cleaning) necessaria ad assicurare un buon livello
di qualità.
Export
L’esportazione dei dati avviene in maniera
incrementale: il sistema colleziona solo le modifiche
(inserzioni o cancellazioni) delle data source.
Architettura di un DataWarehouse
Acquisizione dei Dati (loader)
• E’ responsabile del caricamento iniziale dei dati nella DW.
• Predispone i dati all’uso operativo, svolge operazioni di
ordinamento, aggregazione e costruisce le strutture dati della
warehouse.
• Le operazioni di acquisizione vengono svolte a lotti (in “batch”),
quando la DW non è utilizzata.
• In applicazioni con pochi dati il modulo è invocato periodicamente
per acquisire tutto il contenuto della DW.
• In genere,invece, i dati vengono allineati in modo incrementale,
utilizzando il modulo di allineamento dei dati.
Architettura di un DataWarehouse
Allineamento dei Dati (refresh)
Propaga incrementalmente le modifiche della data source in modo da
aggiornare il contenuto della DW. L’aggiornamento può essere
effettuato tramite:
• invio dei dati (data shipping)
• invio delle transazioni (transaction shipping)
Nel primo caso all’interno delle data source vengono inseriti dei
trigger che registrano cancellazioni, inserimenti e modifiche(coppie
inserimento-cancellazione) in archivi variazionali. Nel secondo caso
viene usato il log delle transazioni per costruire gli archivi variazionali.
Architettura di un DataWarehouse
Accesso ai Dati
•E’ il modulo che si occupa dell’analisi dei dati.
•Realizza in maniera efficiente interrogazioni complesse,
caratterizzate da join tra tabelle, ordinamenti e aggregazioni
complesse.
•Consente nuove operazioni come roll up, drill down e data
cube.
Architettura di un DataWarehouse
Data mining
• Tecniche algoritmiche che consentono di fare deduzioni sui
dati.
• Consente di svolgere ricerche sofisticate sui dati e di esplicitare
relazioni “nascoste” tra i dati.
Export dei dati
• Consente l’esportazione dei dati da una DW ad un’altra.
Architettura gerarchica.
Architettura di un DataWarehouse
Moduli di ausilio alla progettazione e gestione di una
DW:
• un componente per l’assistenza allo sviluppo della DW,
che permette di facilitare le definizione dello schema dei
dati e i meccanismi per l’importazione dei dati.
• un dizionario dei dati, che descrive il contenuto della
DW, utile per comprendere quali analisi dei dati possono
essere eseguite, una sorta di “glossario”.
Schema di un DataWarehouse
• Nel costruire una DW aziendale ci si concentra su
sottoinsiemi molto semplici dei dati aziendali che si
vogliono analizzare (dati dipartimentali).
• Ogni schema semplificato dei dati dipartimentali
prende il nome di data mart.
• L’organizzazione dei dati di un data mart avviene
secondo uno schema multidimensionale (o schema
a stella).
Schema a stella
prodotto
Unità centrale
rappresenta i fatti
(0,N)
(1,1)
supermercato
(0,N)
(1,1)
Vendita
(1,1)
(0,N)
promozione
(1,1)
(0,N)
tempo
Diverse unità poste a
raggiera intorno ai
fatti rappresentano le
dimensioni dell’analisi
Schema a stella
Varie relazioni uno a molti collegano ciascuna
occorrenza di fatto con una ed una sola occorrenza di
ciascuna delle dimensioni.
La struttura è regolare e indipendente dal problema
considerato. (occorrono almeno due dimensioni
altrimenti il problema degenera in una semplice
gerarchia uno-molti)
Un numero elevato di dimensioni è sconsigliato
perché la gestione dei fatti e l’analisi si complicano.
Schema a stella
Ciascuna occorrenza di vendita ha
per identificatore i quattro codici:
Prodotto: CodProd
CodProd
•Nome
CodMarket
•Categoria
•Marca
CodPromo
•Peso
•Fornitore
CodTempo
(0,N)
Gli attributi non chiave sono
Amm e Qta.
Promozione:
CodPromo
(1,1)
Supermercato:
CodMarket
•Nome
•Città
•Regione
•Zona
•Dimensioni
•Disposizione
(0,N)
(1,1)
(1,1)
Vendita
•Amm
•Qta
(1,1)
(0,N)
Tempo: CodTempo
•GiornoSett
•GiornoMese
•GiornoAnno
•SettimanaMese
•SettimanaAnno
•MeseAnno…
(0,N)
•Nome
•Tipo
•Percentuale
•FlagCoupon
•DataInizio
•DataFine
•Costo
•Agenzia
Ogni occorrenza di
vendita è un dato
aggregato
Schema a stella
• Nella dimensione del tempo sono presenti dati
derivati e ridondanze.
• Le ridondanze servono per facilitare le operazioni di
analisi dei dati.
• I fatti sono in forma normale di Boyce-Codd in
quanto ogni attributo non chiave dipende
funzionalmente dalla sua unica chiave.
• Le dimensioni sono in genere relazioni non
normalizzate.
Schema a fiocco di neve
(0,N)
Evoluzione dello
schema a stella,
introdotta per
strutturare
gerarchicamente le
dimensioni non
normalizzate.
Fornitore
(1,1)
Prodotto
(1,1)
(0,N)
Categoria
(0,N)
(1,1)
(0,N)
Supermercato
(1,1)
(0,N)
Città
(1,1)
(0,N)
Regione
(1,1)
(0,N)
Zona
Vendita
(1,1)
(0,N)
Promozione
(1,1)
(0,N)
Giorno
(1,1)
(0,N)
Mese
(1,1)
(0,N)
Anno
Tale schema
rappresenta in modo
esplicito le gerarchie,
riducendo così le
ridondanze e le
anomalie
Analisi dei dati: operazioni
1) Interfaccia standard di formulazione
delle query
2) Drill down
3) Roll up
4) Data Cube (Slice-and-dice)
INTERFACCIA STANDARD DI
FORMULAZIONE DELLE QUERY
L’analisi dei dati di un data mart organizzato a
stella richiede l’estrazione di un sottoinsieme
dei fatti e delle dimensioni
Le dimensioni vengono usate per selezionare i
dati e per raggrupparli
I fatti vengono tipicamente aggregati
È possibile costruire moduli predefiniti per
estrarre i dati in cui si offrono scelte predefinite
(selezioni, aggregazioni,valutazioni di funzioni
aggregate.
INTERFACCIA STANDARD DI
FORMULAZIONE DELLE QUERY
Promozione.Nome
Prodotto.Nome
Tempo.Mese
3x2
Coupon 15%
SuperSaver
Vino
Pasta
Olio
Gen … Dic
SuperSaver
Pasta … Olio
Feb … Apr
Prodotto.Nome
Tempo.Mese
•Prodotto
•Tempo
Amm
Schema
Opzioni
Attributi delle dimensioni:
•Promozione
Qta
Condizioni
sum
sum
Vista
Attributi dei Fatti:
• Aggregati (SUM)
INTERFACCIA STANDARD DI
FORMULAZIONE DELLE QUERY
Promozione.Nome
Prodotto.Nome
Tempo.Mese
3x2
Coupon 15%
SuperSaver
Vino
Pasta
Olio
Gen … Dic
SuperSaver
Pasta … Olio
Feb … Apr
Prodotto.Nome
Tempo.Mese
Qta
Amm
Schema
Opzioni
Condizioni
sum
sum
Vista
select Tempo.Mese, Prodotto.Nome, sum(Amm), sum(Qta)
from Vendite, Tempo, Prodotto
where Vendite.CodTempo = Tempo.CodTempo
and Vendite.CodProdotto = Prodotto.CodProdotto
and (Prodotto.Nome = ‘Pasta’ or Prodotto.Nome = ‘Olio’)
and Tempo.Mese between ‘Feb’ and ‘Apr’
and Promozione.Nome = ‘SuperSaver’
group by Tempo.Mese, Prodotto.Nome
order by Tempo.Mese, Prodotto.Nome
Tempo.mese
Prodotto.nome
sum(Amm)
sum(Qta)
Drill-down e Roll-up
• Il drill down permette di aggiungere una
dimensione di analisi disaggregando i dati.
• Il roll up dualmente consente di eliminare una
dimensione di analisi.
• L’operazione di roll up può essere fatta agendo
sui risultati dell’interrogazione, quella di drill
down richiede la riformulazione
dell’interrogazione(servono dati non presenti
nell’interrogazione).
Drill-down e Roll-up
Prodotto.Nome
Tempo.Mese
Vino
Pasta
Olio
Gen … Dic
Pasta
Feb … Apr
Prodotto.Nome
Tempo.Mese
Qta
Schema
Opzioni
somma delle
quantità vendute
di pasta nel
trimestre Feb-Apr
Condizioni
sum
Vista
Tempo.mese
Prodotto.Nome Sum(Qta)
Feb
Pasta
46 Kg
Mar
Pasta
50 Kg
Apr
Pasta
51 Kg
Drill-down
Il manager è interessato
alle vendite per zona:
Drill down on Zona
Tempo.mese
Prodotto.Nome Sum(Qta)
Feb
Pasta
46 Kg
Mar
Pasta
50 Kg
Apr
Pasta
51 Kg
Tempo.mese Prodotto.Nome Zona
Sum(Qta)
Feb
Pasta
Nord
18
Feb
Pasta
Centro
15
Feb
Pasta
Sud
13
Mar
Pasta
Nord
18
Mar
Pasta
Centro
18
Mar
Pasta
Sud
14
Apr
Pasta
Nord
18
Apr
Pasta
Centro
17
Apr
Pasta
Sud
16
Analisi dei dati
Tempo.mese Prodotto.Nome Zona
Sum(Qta)
Feb
Pasta
Nord
18
Feb
Pasta
Centro
15
Feb
Pasta
Sud
13
Mar
Pasta
Nord
18
Mar
Pasta
Centro
18
Mar
Pasta
Sud
14
Apr
Pasta
Nord
18
Apr
Pasta
Centro
17
Apr
Pasta
Sud
16
Il manager è
interessato solo
alla suddivisione
delle vendite per
zona:
roll up on Mese
Zona
Prodotto.Nome Sum(Qta)
Nord
Pasta
54 Kg
Centro
Pasta
50 Kg
Sud
Pasta
43Kg
Rappresentazione Multidimensionale (Cube)
Slice-and-dice
•Seleziona un sottoinsieme delle celle del un cubo, ottenuta
“affettando e tagliando” a cubetti il cubo stesso.
•Seleziona e proietta riducendo la dimensionalità dei dati
Slice-and-dice
Il manager vuole
effettuare un’analisi
relativa alle vendite
in tutti i periodi
nella zona Roma-2
Slice-and-dice
Il manager vuole
effettuare un’analisi
relativa alle vendite
in tutti i periodi
nella zona Roma-2
Luogo
Articolo
Tempo
Slice-and-dice
Il manager di prodotto
esamina la vendita di
un particolare
prodotto in tutti i
periodi e in tutti i
mercati
Luogo
Articolo
Tempo
Slice-and-dice
Il manager finanziario
esamina la vendita di
tutti i prodotti in tutti
i mercati relativamente
ad un particolare
periodo
Luogo
Articolo
Tempo
Slice-and-dice
Il manager strategico
si concentra su una
categoria di prodotti,
una area regionale e
un orizzonte
temporale medio
Luogo
Articolo
Tempo
Slice-and-dice
Il manager seleziona le vendite per trimestre e per
negozio dei soli lettori di DVD
Lettori
DVD
Roma-1
1 trim.03 2 trim.03 3 trim.03 4 trim.03
38
91
66
198
Roma-2
155
219
248
265
Milano-1
121
273
266
326
Milano-2
222
122
155
200
Data mining
• Ricerca di informazioni “nascoste” all’interno
delle DW.
• Esempi:
– analisi di mercato (individuazione di oggetti
acquistati assieme o in sequenza)
– analisi di comportamento (frodi o usi illeciti delle
carte di credito)
– analisi di previsione (costo futuro delle cure
mediche)
Fasi del processo di data mining
1. Comprensione del dominio.
2. Preparazione sul set di dati. Individuazione di un
sottoinsieme dei dati della DW su cui effettuare il
mining e loro codifica (input algoritmo)
3. Scoperta dei pattern. Ricerca e individuazione di
pattern ripetitivi tra i dati.
4. Valutazione dei pattern. Partendo dai pattern
scoperti si valutano quali esperimenti compiere
successivamente e quali ipotesi formulare o quali
conseguenze trarre.
5. Utilizzo dei risultati. Prendere decisioni operative
a seguito del processo di data mining (allocazione
merci, concessione credito).
Problemi di data mining
Struttura ricorrente
Specifici algoritmi
Buona “scalarità”
Efficenti per grandi moli di dati
Problemi di data mining
•Regole di associazione
•Discretizzazione
•Classificazione
Regole di associazione
•
•
Scoprire associazioni ti tipo causa-effetto.
Una regola associativa consta di una premessa e di
una conseguenza.
Pannolini → Birra
e’ possibile definire in modo preciso le probabilità
associate alle regole di associazione.
–
–
supporto: probabilità che in una osservazione, cioè un
insieme di elementi in esame, sia presente sia la premessa
che la conseguenza di una regola.
confidenza: probabilità che in una osservazione sia
presente la conseguenza di una regola essendo già
presente la premessa.
Regole di associazione
• pane,burro ⇒ latte
• con supporto 0.03
• confidenza 0.9
Afferma che:
• pane, burro e latte compaiono insieme nel 3% degli
scontrini
• Il 90% degli scontrini che contengono pane e burro
contengono anche latte
Regole di associazione
Il problema di data mining relativo alla scoperta delle
regole di associazione viene quindi enunciato come Segue:
Trovare tutte le regole di associazione X⇒Y con supporto e
confidenza superiori a valori prefissati
Con riferimento ad una osservazione, la regola X⇒Y va
interpretata come “nelle transazioni in cui compare X
compare anche Y” X è detto anche corpo o rule body, Y è
detta anche testa o rule head
•
Il supporto indica pertanto la percentuale di transazioni
dell’osservazione che contengono entrambe X ed Y
•
La confidenza indica, date le transazioni che contengono X,
qual è la percentuale di transazioni che contengono Y
Regole di associazione: esempio
1. Prosciutto, mozzarella
2. ^*Prosciutto, mozzarella, pane, birra
3. ^Prosciutto, mozzarella, pane
4. pane, yoghurt, birra, scamorza
5. yoghurt, birra, scamorza
6. mozzarella, pane
7. ^*Prosciutto, mozzarella, pane, birra
8. ^Prosciutto, pane
9. Birra, pane,
10. ^*pane, yoghurt, birra, scamorza, prosciutto
prosciutto, pane => birra: *supporto: 3/10, ^confidenza: 3/5
Il problema formale
Un insieme I di “item” {I1…In}
Una osservazione D di transazioni T, T⊆I
due insieme X e Y di elementi, X⊆I Y⊆I
X⇒Y indica che le transazioni T che contengono X (X⊆T),
conterranno molto probabilmente anche gli elementi di Y
(Y⊆T)
Il supporto di X⇒Y rispetto a D è calcolato come
support(X⇒Y,D) = freq(X∩Y,D)
La confidenza di X⇒Y rispetto a D è calcolata come
confidence(X⇒Y,D) = freq(X∩Y,D)/freq(X,D)
Il problema formale
• La basket analysis consiste nell’individuare strong
association rules, i.e. regole aventi:
• supporto superiore al parametro min_sup
• confidenza superiore al parametro min_conf
• k-itemset: {pane,burro,latte} è un 3-itemset
• Support count è il numero di transazioni che
contengono un certo itemset
Il problema formale
• La frequenza di un itemset è la percentuale di transazioni in
cui tutti gli elementi dell’itemset compaiono. Un itemset con
frequenza superiore a min_sup è un frequent itemset
• L’insieme degli itemset di ordine k è indicato con Lk
• N.b.: Se un itemset X non soddisfa min_sup allora nessuna sua
estensione X∪Y soddiferà min_sup
• Si parte dall’insieme L1 dei frequent itemset contenenti un
solo elemento
• L1 è utilizzato per trovare L2
• L2 è utilizzato per trovare L3
• Il processo continua fino a quando non è più possibile trovare
frequent k-itemset
L’algoritmo generale
1. Il supporto di ogni item viene contato e vengono determinati
i frequent item set di dimensione 1
2. In ogni passo successivo, i frequent item set determinati al
passo precedente sono utilizzati per generare i nuovi itemset
detti candidate itemsets.
3. Il supporto di ogni candidato è calcolato e i frequent itemset
sono determinati
4. Il processo è iterato fino a quando non vengono trovati nuovi
frequent itemset.
La determinazione delle regole
confidence(X⇒Y) =
support_count(X∩Y,D)/support_count(X,D)
Noti i frequent itemset si determinano le regole
come:
for every frequent itemset X of FI
for every non empty subset s of X
{
if
support_count(X)/support_count(s)>min_conf
output the rule s ⇒ (X-s)
}
Discretizzazione
¾Consente di rappresentare un intervallo continuo di dati
tramite pochi valori discreti, selezionati in modo da
rendere più evidente il fenomeno sottoposto ad
osservazione.
¾Es. valori di pressione
Classificazione
ƒCatalogazione di un fenomeno in una classe predefinita.
Fa uso di algoritmi di classificazione (es. alberi
decisionali)
ƒQuando i fenomeni sono descritti da un gran numero di
attributi i classificatori si occupano di determinare gli
attributi significativi, separandoli da quelli irrilevanti.
ƒEs. polizza assicurazione
Classificazione: alberi decisionali
Età <23
vero
falso
TipoAuto=‘Sportiva’
falso
vero
TipoAuto=‘Camion’
vero
falso