Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduzione
al Data Warehousing
Molte di queste slide sono state realizzate dal
Prof. Stefano Rizzi
(http://www-db.deis.unibo.it/~srizzi/)
e sono state tratte dal suo libro
Data Warehouse - teoria e pratica della Progettazione
Autori: Matteo Golfarelli, Stefano Rizzi
Editore: McGraw-Hill
Business Intelligence
!
indicazioni
strategiche!
rapporti!
informazioni selezionate!
Data Warehousing
!
Data Warehousing:
Una collezione di metodi, tecnologie e strumenti di ausilio al
knowledge worker (dirigente, amministratore, gestore, analista) per
condurre analisi dei dati finalizzate allattuazione di processi
decisionali e al miglioramento del patrimonio informativo.
Introduzione
DATA
WAREHOUSE
!
!
!
!
!
!
Le lamentele
" abbiamo montagne di dati ma non possiamo
"
"
"
"
accedervi!
come possibile che persone che svolgono lo stesso
ruolo presentino risultati sostanzialmente diversi?
vogliamo selezionare, raggruppare e manipolare i
dati in ogni modo possibile!
mostratemi solo ci che importante!
tutti sanno che alcuni dati non sono corretti!
Il Data Warehouse
Al centro del processo, il data warehouse
un contenitore di dati che si fa garante dei
requisiti esposti.
# Un Data Warehouse una collezione di dati
di supporto per il processo decisionale che
presenta le seguenti caratteristiche:
!
...orientato ai soggetti
assistiti
calcolo
ticket
prenotazioni
medici
di base
regioni
refertazione
gestione
ricoveri
...integrato e
consistente
Il DW si appoggia a pi fonti di
dati eterogenee: dati estratti
dall ambiente di produzione, e
quindi originariamente archiviati
in basi di dati aziendali, o
addirittura provenienti da sistemi
informativi esterni allazienda. Di
tutti questi dati il DW restituisce
una visione unificata.
Dati operazionali"
ed esterni"
Estrazione"
Pulitura"
Validazione"
Filtraggio"
Trasformazione"
Caricamento"
Data Warehouse"
11
...rappresentativo dellevoluzione
temporale
DB operazionali
DW
...non volatile
DB operazionale
update
load
insert
delete
DW
access
13
15
Data warehouse
centinaia
interrogazioni di analisi
ad hoc
a milioni di record,
per lo pi u in lettura
supporto alle decisioni
di sintesi,
prevalentemente
numerici
per soggetto
in termini di
consistenza
dati correnti e storici
periodici
denormalizzato,
multidimensionale
per accessi OLAP
su gran parte
del database
iterativo
16
Architetture di un DW : tipologie
$ Le principali tipologie di architetture per un DW
Architettura ad un livello
DB operazionale
DW alimentato dal DB operazionale
DB operazionale
DB riconciliato alimentato dal DB operazionale
alimentato dal DB riconciliato
DW
18
Possibili architetture
1) Il DM un sottoinsieme e/o aggregazione di dati presenti
nel DW
! DM dipendente, estratto dal DW
nel DB operazionale
! DM indipendente, parte del DW,
ovvero il DW l unione dei DM
Architetture a 1 livello
!
Dati operazionali"
warehouse
DW virtuale
(non rispetta la separazione
OLTP-OLAP)
Dati-livello1
sorgenti
Prevede solo i DB
operazionali, quindi i dati
coincidono con quelli del DB
operazionale
Middleware"
analisi
Strumenti"
di reportistica"
Strumenti"
OLAP"
Architetture a 2 livelli
Dati esterni"
Dati"
operazionali"
Strumenti ETL"
Data Warehouse!
analisi
warehouse
Alimentaz.
DM dipendenti
alimentati dal DW
sorgenti
Dati-livello1
Dati-livello2
Data mart"
Strumenti"
di reportistica"Strumenti"
OLAP"
Architetture a 2 livelli
DM indipendenti
alimentati dalle sorgenti
Dati esterni"
Dati"
operazionali"
Strumenti ETL"
warehouse
Alimentaz.
$ L assenza di un DW
sorgenti
Dati-livello1
Dati-livello2
Data mart"
analisi
Strumenti"
di reportistica"Strumenti"
OLAP"
Architetture a 2 livelli
!
Vantaggi:
$ A livello del warehouse continuamente disponibile
informazione di buona qualit anche quando, per motivi
tecnici oppure organizzativi, temporaneamente precluso
l accesso alle sorgenti
$ L interrogazione analitica effettuata sul DW non interferisce
con la gestione delle transazioni a livello operazionale, la cui
affidabilit essenziale per il funzionamento dellazienda
$ L organizzazione logica del DW basata sul modello
multidimensionale, mentre le sorgenti offrono in genere
modelli relazionali o semi-strutturati
$ C una discordanza temporale e di granularit tra sistemi
OLTP, che trattano dati correnti e al massimo livello di
dettaglio, e sistemi OLAP che operano su dati storici e di
sintesi
$ A livello del warehouse possibile impiegare tecniche
specifiche per ottimizzare le prestazioni per applicazioni di
analisi e reportistica
Architetture a 3 livelli
DATI RICONCILIATI
Alimentaz.
warehouse
analisi
sorgenti
Dati-livello1
Dati operazionali"
Dati esterni"
Strumenti ETL"
Dati riconciliati"
Dati-livello2
Caricamento"
Data Warehouse!
Dati-livello3
Data mart"
Strumenti"
di reportistica"
Strumenti" Strumenti"
di data mining"
OLAP"
ETL
!
#Progettazione logica
#Star schema e snowflake schema. Scenari temporali
#Progettazione dell'alimentazione
#Metodi ed interrogazioni (SQL) per alimentare lo schema logico
#Progettazione fisica
#Viste Materializzate ed Indici
26
Verso il modello
multidimensionale
Che incassi sono stati registrati l anno passato per ciascuna
regione e ciascuna categoria di prodotto?
Che correlazione esiste tra l andamento dei titoli azionari dei
produttori di PC e i profitti trimestrali lungo gli ultimi 5 anni?
Quali sono gli ordini che massimizzano gli incassi?
Quale di due nuove terapie risulter in una diminuzione della
durata media di un ricovero?
Che rapporto c tra i profitti realizzati con spedizioni di meno di
10 elementi e quelli realizzati con spedizioni di pi di 10
elementi?
prodotti
(1,1)
(0,n)
(0,n)
(1,1)
negozio
(0,n)
(1,1)
(1,1)
vendite
(1,1)
(0,n)
regione
quantit
(1,1)
(0,n)
(0,n)
citt
tipo
data
categoria
28
Ottobre 2001
80
20
50
25
15
60
Settembre 2001
100
40
5
35
20
50
Agosto 2001
50
10
10
20
5
20
Quantit
!
!
29
Il modello multidimensionale
Eventi nella realt
Acquisto da
parte di Rossi
di detersivo per piatti
Progetto del DB
(selezione degli
aspetti di interesse)
Dato nel DB operazionale
(rappresentazione degli eventi della realt)
Progetto del DW
(aggregazione di
interesse analitico)
Fatto o evento nel DW
Vendita di
detersivo per piatti
N vendite
del prodotto X
Nel negozio Y
Nella data Z
negozio!
prodotto!
30
Il modello multidimensionale
il fondamento per la rappresentazione e l interrogazione
dei dati nei data warehouse.
! I fatti di interesse sono rappresentati in cubi in cui:
$ ogni cella contiene misure numeriche che quantificano
il fatto da diversi punti di vista;
$ ogni asse rappresenta una dimensione di interesse per
l analisi;
$ ogni dimensione pu essere la radice di una gerarchia
di attributi usati per aggregare i dati memorizzati nel
cubo.
!
31
negozio
quantit = 10
10 !
BigWare!
prodotto!
vite!
data
10-10-2001!
32
Le gerarchie
prodotto
tipo
Brillo"
Sbianco"
Lucido"
"
Manipulite"
Scent"
"
Latte Fresco Slurp"
Latte UHT Slurp"
Yogurt Slurp"
"
Bevimi"
Colissima"
negozio
categoria!
detersivo"
"
"
"
sapone"
"
"
"
latticino"
"
"
"
bibita"
pulizia casa"
"
"
"
"
"
"
"
alimentari"
citt
DiTutto2"
"
Nonsolopappa"
DiTutto"
"
DiTutto3"
tutti i"
prodotti"
regione!
Emilia"
Romagna"
"
"
Lombardia"
Bologna"
"
"
Milano"
"
"
Como"
tutti i"
negozi"
33
fatto
prodotti
dimensione
(1,1)
(0,n)
(0,n)
misura
(1,1)
negozio
(0,n)
(1,1)
(1,1)
vendite
(1,1)
(0,n)
quantit
tipo
(1,1)
(0,n)
(0,n)
citt
regione
data
categoria
34
prodotto
(1,1)
(0,n)
tipo
(1,1)
(0,n)
categoria
tipo
categoria!
detersivo"
"
"
"
sapone"
"
"
"
latticino"
"
"
"
bibita"
pulizia casa"
"
"
"
"
"
"
"
alimentari"
tutti i"
prodotti"
Una
gerarchia
corrisponde
ad
negozio
citt
regione!
associazioni
uno-a-molti
Emilia"
Bologna"
DiTutto2"
"
Romagna"
tutti i"
"
! Un
associazione
corrisponde
" uno-a-molti
"
negozi"
Nonsolopappa"
Milano
"
"
DiTutto"Dipendenza
"
ad una
Funzionale
Lombardia"
"
"
Como"tipo
DiTutto3
"
prodotto
"
tipo " categoria
!
35
Eventi e aggregazione
!
36
Eventi e aggregazione
Evento secondario
(1-2001,Viteria)
Evento secondario
(1-2001,Roma,Viteria)
tipo!
prodotto!
citt!
negozio!
mese!
tipo!
prodotto!
negozio!
mese!
Evento primario
prodotto!
(10-1-2001,BigWare,Vite)
data!
37
Operatori di Aggregazione
!
tipo!
prodotto!
citt!
negozio!
mese!
tipo!
prodotto!
#
negozio!
mese!
prodotto!
data!
38
Aggregazione
1/1/2000
2/1/2000
3/1/2000
..........
1/1/2001
2/1/2001
3/1/2001
..........
1/1/2002
2/1/2002
3/1/2002
..........
DiTutto
10
20
..........
15
20
..........
20
20
..........
DiTutto2
15
..........
10
20
..........
8
12
..........
Nonsolopappa
5
5
..........
20
25
..........
25
20
..........
2000
2001
2002
DiTutto
2400
3200
3400
DiTutto2
2000
2300
2200
Nonsolopappa
1600
3000
3200
Gennaio 2000
Febbraio 2000
Marzo 2000
..........
Gennaio 2001
Febbraio 2001
Marzo 2001
..........
Gennaio 2002
Febbraio 2002
Marzo 2002
..........
Totale:
DiTutto
9000
DiTutto
200
180
220
..........
350
300
310
..........
380
310
300
..........
DiTutto2
6500
DiTutto2
180
150
180
..........
220
200
180
..........
200
200
160
..........
Nonsolopappa
150
120
160
..........
200
250
300
..........
220
250
280
..........
Nonsolopappa
7800
39
Aggregazione e raggruppamento
!
negozio
anno
from Fatto
2000
2001
2002
DiTutto
2400
3200
3400
DiTutto2
2000
2300
2200
Nonsol opappa
1600
3000
3200
Progettazione di un DW
Il punto di partenza
potrebbe essere lo
schema E/R !
# ! ma lo schema E/R
non uno strumento
efficace per
rappresentare fatti,
dimensioni e gerarchie
#
negozio
gerarchia
prodotti
(1,1)
(0,n)
(0,n)
(1,1)
(1,1)
(0,n)
tipo
vendite
(1,1)
(1,1)
(0,n)
(1,1)
quantit
(0,n)
(0,n)
citt
categoria
data
regione
41
Categoria
E un modello
concettuale grafico per
DW
Tipo
Prodotto
VENDITA
Mese
Quantit
Data
la sua efficacia si
apprezza in situazioni
complesse:
gruppo di
marketing
Negozio Citt
reparto
categoria
dimensione
tipo
Regione
gerarchia
prodotto
anno
giorno
vacanza
data
trimestre mese
settimana
negozio
citt del regione stato
negozio
misure
42
$ Una relazione FT, chiamata fact table, che importa le chiavi di tutte
le dimension table.
La chiave di FT data dall insieme delle chiavi esterne dalle
dimension table, d1!, dn;
FT contiene inoltre un attributo per ogni misura.
43
Lo schema a stella
Categoria
Fornitore
Tipo
Prodotto
Mese
Rappresentante
VENDITE
Settimana Quantit
Guadagno
Negozio Citt
Stato
Settimane
ID_Settimane
Settimana
Mese
Prodotti
ID_Prodotti
Prodotto
Tipo
Categoria
Fornitore
Negozi
ID_Negozi
ID_Settimane
ID_Prodotti
Quantit
Guadagno
ID_Negozi
Negozio
Citt
Stato
Rappresentante
44
Lo schema a stella
ID_Negozi Negozio Citt
1
N1
RM
2
N2
RM
3
N3
MI
4
N4
MI
Stato Rappresentante
I
R1
I
R1
I
R2
I
R2
ID_Sett.
1
2
3
4
Settimana
Gen1
Gen2
Feb1
Feb2
Mese
Gen.
Gen.
Feb.
Feb.
Dimension
Table
Guadagno
100
150
350
200
ID_Prodotti Prodotto
1
P1
2
P2
3
P3
4
P4
Tipo
A
A
B
B
Dimension
Table
Fact Table
Categoria Fornitore
X
F1
X
F1
X
F2
X
F2
45
46
drill-down
roll-up
47
DiTutto
200
180
220
..........
350
300
310
..........
380
310
300
..........
DiTutto2
180
150
180
..........
220
200
180
..........
200
200
160
..........
roll-up
2000
2001
2002
DiTutto
2400
3200
3400
drill-down
DiTutto2
2000
2300
2200
roll-up
Totale:
DiTutto
9000
Nonsolopappa
150
120
160
..........
200
250
300
..........
220
250
280
..........
Nonsolopappa
1600
3000
3200
drill-down
DiTutto2
6500
Nonsolopappa
7800
48
negozio!
'DiTutto'"
"
"
"
"
"
data!
negozio!
negozio!
slice-and-dice
"
'DiTutto'"
"
"
"
'DiTutto'"
"
"
"
"
"
'Brillo'"
"
"
'5/4/2001'"
data!
"
'5/4/2001'"
data!
49
mercati!
Esempi di Slicing
Al manager di prodotto interessa la
vendita di un prodotto in tutti i
periodi e in tutti i mercati "
mercati!
data!
50
mercati!
Esempi di Slicing
Al manager finanziario interessa la
vendita dei prodotti in tutti i mercati
relativamente al periodo corrente e
quello precedente"
mercati!
data!
51
drill-down
52
data
15/4/2001'!
'5/4/2001'!
10 !30 !
BigWare!
SELECT
{ (data.[5/4/2001]), (data.
prodotto
[15/4/2001]) } ON AXIS(0),
{ (parte.[vite]) } ON AXIS(1),
{(negozio.[BigWare]) } ON AXIS(2)
vite!
FROM CuboVendite
SELECT
{(negozio.[BigWare]) } ON COLUMNS,
{(parte.[vite],data.[5/4/2001]), (parte.[vite],data.[15/4/2001]) } ON ROWS
FROM CuboVendite
VITE
5/4/2001
15/4/2001
BIGWARE
10
30
53
55
56