2. • Un riassunto significativo di una grande sorgente di dati,
il quale raccoglie informazioni e statistiche
• Un ampia gamma di metodi per analizzare efficientemente
un Data Set, generando metadati
• Uno passaggio di preparazione per successivi Data
Menagement Task
3. Un dato (dal latino datum che significa letteralmente fatto) è una
descrizione elementare, spesso codificata, di una cosa, di una
transazione, di un avvenimento o di altro. L'elaborazione dei dati può
portare alla conoscenza di un'informazione. Ogni tipo di dato dipende
dal codice e dal formato impiegati.
I dati possono presentarsi sotto diverse forme: numeri e lettere
dell'alfabeto (testo), immagini statiche, immagini in movimento
(video), suono (audio) ed altri. I dati possono essere conservati su
diversi mezzi (o supporti) fisici (cartaceo, magnetico (floppy disk),
ottico (CD) ed altri supporti) e/o veicolati (trasmessi) attraverso una
rete di telecomunicazioni tra più utenti.
In informatica, il termine indica un valore, tipicamente numerico in
bit, che può essere elaborato e/o trasformato da un automa o meglio
da un elaboratore elettronico. Il dato rappresenta l'oggetto specifico
su cui interviene l'esecutore dell'algoritmo. Le memorie di massa
consentono di salvare i dati in modo permanente, mentre il processo
di registrazione dei dati in una memoria si chiama memorizzazione o
archiviazione. Singoli dati o più spesso insiemi di dati possono essere
conservati in file o nei database.
4. Un dato (dal latino datum che significa letteralmente fatto) è una
descrizione elementare, spesso codificata, di una cosa, di una
transazione, di un avvenimento o di altro. L'elaborazione dei dati
può portare alla conoscenza di informazione Ogni tipo di
dato dipende dal codice e dal formato impiegati.
I dati possono presentarsi sotto diverse forme: numeri e lettere
dell'alfabeto (testo), immagini statiche, immagini in movimento
(video), suono (audio) ed altri. I dati possono essere conservati su
diversi mezzi (o supporti) fisici (cartaceo, magnetico (floppy disk),
ottico (CD) ed altri supporti) e/o veicolati (trasmessi) attraverso una
rete di telecomunicazioni tra più utenti.
In informatica, il termine indica un valore, tipicamente numerico in
bit, che può essere elaborato e/o trasformato da un automa o meglio
da un elaboratore elettronico. Il dato rappresenta l'oggetto specifico
su cui interviene l'esecutore dell'algoritmo. Le memorie di massa
consentono di salvare i dati in modo permanente, mentre il processo
di registrazione dei dati in una memoria si chiama memorizzazione o
archiviazione. Singoli dati o più spesso insiemi di dati possono essere
conservati in file o nei database.
5. Un informazione da la conoscenza.
Ad esempio:
Permette ad un osservatore posto in una situazione, con almeno
due occorrenze possibili, di superare un’incertezza, risolve
un’alternativa ossia sostituisce il noto all’ignoto, il certo
all’incerto.
8. Applicando metodi di Data Profiling sui dati all’interno di un
Data Base si possono ottenere:
Statistiche:
Il numero di valori null e distinct in una colonna
Il tipo di dati di una colonna
Il pattern più frequente dei valori di una colonna
Metadati complessi:
Dipendenze Funzionali
9.
10. La necessità di profilare nuovi data set deriva dalla volontà di eseguire
sui dati analizzati operazioni come:
• Query Optimization
Uso di statistiche per stimare la selettività degli operatori ed ultimare i costi di un
piano di interrogazioni
• Data Cleansing
Rivela inconsistenze di formattazione e valori mancanti, determina la qualità
generale dei dati
• Data Integration
Prima di integrare dei nuovi dati occorre conoscere dimensione, tipi necessari,
semantica di colonne e tabelle
• Data Analytics
Analisi statistiche o esecuzione di data mining
La profilazione non è il FINE ma uno step intermedio.
11. • Profiling su query e viste
Un utente potrebbe voler agire sui risultati della profilazione in modo
puntuale senza dover intraprendere l’intero ciclo di ‘pulizia e
profilazione dei dati’ ad ogni modifica.
Inoltre mentre i risultati di una query vengono elaborati al lato
potrebbero essere mostrati i risultati della profilazione e la tipologia
dei dati analizzati.
• Online Profiling
Vengono mostrati i risultati intermedi della profilazione durante la
sua esecuzione, i quali non riflettono le proprietà dell’intero data set
analizzato.
Oltre ad avere un riscontro grafico l’utente sarà anche in grado di
interrompere la profilazione senza dover attenderne il termine.
12. • Sono previsti aggiornamenti periodici dei dati
• Si riutilizzano risultati di profilazioni precedenti per
velocizzare la computazione sui dati modificati.
• Viene fornita la conoscenza dei ‘delta’ rispetto alle
versioni precedenti al sistema di profilazione, il quale
conserva ogni risultato intermedio e/o finale di
profilazione sulla versione precedente.
• I metadati posso essere calcolati:
• Associativamente
• Tramite altri metadati
• Oppure ricalcolati da capo
13. • Viene previsto l’aggiornamento dei risultati di profilazione
quando i dati vengono aggiornati od inseriti
• Si utilizza per profilazioni continue come il
monitoraggio del traffico internet
• Bisogna trovare un buon compromesso fra
• Accuratezza
• Aggiornamento dei dati
• Consumo di risorse
14. In molti casi è necessaria la profilazione di fonti di dati
diversificate, bisogna tenere conto delle Gradazioni di
Eterogeneità:
• Sintattica
Trovare formattazioni inconsistenti
• Strutturale
Schemi non rispettati ed informazioni strutturalmente differenti
• Semantica
Sovrapposizione semantica dei dai ed i loro domini
15. Si può distinguere fra
• Profilazione Strutturale
Ricerca informazioni sullo schema
• Profilazione Semantica
Ricerca informazioni sui dati
Ambedue necessarie per l’integrazione, il cui sforzo va
calcolato in termini di similitudine ma anche di mesi-uomo
necessari.
Per similitudine dello schema si intende
• Il grado di sovrapposizione e di complementarietà dei due
schemi
16. La ricerca dell’unicità delle combinazioni di colonne in un
data base relazionale è uno degli scopi principali della Data
Profiling.
Algoritmi che permettono di fare questo, sfruttano la forza
bruta oppure un elevato carico di memoria, il quale però
può essere applicato solo su fonti di dati ‘piccole’.
Un algoritmo ben noto per effettuare questi calcoli è il
GORDIAN, ma prima di introdurlo diamo alcune definizioni
di base.
17. L’unicità di una combinazione di colonne K appartenente
ad una tabella può essere definita come:
Dato uno DB a schema relazionale R={C1,C2,…,Cm} con
colonne Ci ed un istanza r C1 x … x Cm, una
combinazione di colonne K è unica sse t1,t2 r : (t1 t2)
=> (t1[K] t2[K])
La scoperta dell’unicità è molto significata nel data
modeling, anomaly detections e query optimization.
18. L’unicità è una condizione necessaria ad una chiave, ma
solo un essere umano può promuovere un ‘unique’ a ‘key’
in quanto gli elementi unici possono apparire come
coincidenza per certi stati dei dati analizzati.
Mentre le chiavi devono essere consapevolmente
specificate e denotano le restrizioni dello schema
19. Sono quegli elementi unici dei quali nessun sottogruppo stretto
possiede la proprietà di unicità:
Preso un K R unico, si dice minimo sse
K’ K : (t1,t2 r : (t1[K’] = t2[K’]) (t1 t2))
Per definire se una combinazione di colonne K di dimensione fissata
sia unica:
tutte le tuple ti devono essere scannerizzate (O(n)) per n righe
Per individuare duplicati serve:
un altro ordinamento (O(n log n)) oppure
un algoritmo di hash (O(n))
Una combinazione di colonne K che non è unica viene definita:
non-unica
20. A B C
a 1 x
b 2 x
c 2 y
Unici: {A, AB, AC, BC, ABC}
Minimamente Unici: {A, BC}
(Massimi) Non-Unici: {B, C}
21. • Vieni utilizzato un algoritmo Row-based nel quale si
effettua una scansione riga per riga del database per
ogni combinazione di colonne.
• Sono richieste molteplici esecuzioni su tutte le colonne
poiché più e più righe sono prese in considerazione.
• Gli elementi non-unique possono essere individuati
senza considerare tutte le righe di una tabella.
22. L’algoritmo si suddivide in tre parti:
• Preorganizzare i dati della tabella sotto forma di prefix tree
• Trovare i Massimi Non-Unici scannerizzando il prefix tree
• Elaborare i gli elementi Minimante Unici dai massimi non-unici
Prefix Tree:
• Deve essere mantenuto in memoria principale (RAM)
• Ogni livello rappresenta una colonna della tabella
• Ciascun ramo rappresenta una tupla distinta
23. La ricerca degli elementi non unici è eseguita tramite una
visita dell’albero per trovare i rami ripetuti più volte che
costituiscono i Massimi Non-Unici.
Da questi vengono calcolati i Minimi Unici mediante la
generazione di minime combinazioni che non contengano
massimi non-unici.
Questo procedimento segna un serio collo di bottiglia in
caso di grandi numeri di massimi non-unici.
24. Per definire le dipendenze fra varie colonne dobbiamo definire
alcune grandezze:
• U = {v1,v2,…,vm} un set finito di variabili discrete, Attributi.
• Ogni attributo vi ha un dominio finito dom(vi) che rappresenta i valori
che può assumere
• Per un sottogruppo X = {vi,…,vj} di U definiamo dom(X) come il
prodotto cartesiano dei domini dei singoli attributi dim(X) = dom(vi) x
… x dom(vj)
• Una relazione r su U, scritta come r(U), è un gruppo finito che mappa
{t1,…,tn} da U a dom(U) con la restrizione che per ogni t r(U), t[vi]
deve essere in dom(vi) con 1 i m
Dato r(U) e X,Y U. Una dipendenza funzionale (FD) è una
restrizione che denota X Y. Soddisfatta in r(U) se ogni due
tuple ti,tj r(U) si ha ti[X] = tj[X] ti[Y] = tj[Y]. Si ci riferisce a X
come antecedente ed a Y come conseguente.
25. Dati tre set di attributi X,Y e Z si hanno tre inferenze:
• Riflessività, se Y X allora X Y
• Estensione, se X Y allora XZ YZ
• Transitività, se X Y e Y Z allora X Z
Altre proprietà
• Unione, se X Y e X Z allora X YZ
• Decomposizione, se X YZ allora X Y e X Z
Dati X,Y U e F come set di FD’s. La chiusura di X è definita
come {Y|X Y può essere dedotto da F usando gli assiomi di
Amstrong}
Esempio:
Sia F = {AC,BDAC} per definizione la chiusura di A = {A,C}
mentre la chiusura di BD = {A,B,C,D}
26. Attributi Equivalenti:
• Dati X,Y ⊆ U. se X Y e Y X allora X e Y sono equivalenti ( X
Y)
Lemma 1:
• Dati W,X,Y,Y’,Z ⊆ U e Y ⊆ Y’ Se X Y e WZ X allora Y’W
Z
Lemma 2:
• Dati W,X,Y,Z ⊆ U. Se X Y e WZ X allora WZ Y
Lemma 3:
• Dato X ⊂ S ⊆ U. Se X U – X allora S U – S
Teorema 1:
• Dati X,Y,Z ⊆ U presa la chiusura di Y ⊆ X allora X – Y* Z sse X
Z
27. In un contesto in cui tutte le FD’s sono soddisfatte dalla
relazione r(U) vengono definite le seguenti regole di
‘potatura’ per i candidati X e Y, dove X e Y e X,Y U:
• Se X Y è soddisfatta da r(U) allora Y può essere cancellato
• Se la chiusura di Y X allora il candidato X può essere cancellato
• Se vi U – X, X vi è soddisfatta da r(U) allora X può essere
cancellato
La regola 1 giustificata dai lemmi 1 e 2 riduce la
dimensione dello spazio di ricerca eliminando i candidati
ridondanti.
La regola 2 giustificata dal teorema 1 indica che X Z può
essere dedotto da X – Y* Z
La regola numero 3 giustificata dal Lemma 3 indica che per
ogni super-set S di X, si può dedurre S U – S
28. Tools commerciali dedicati:
• IBM WebSphere Information Analyzer
• Microsoft’s SQL Server Integration Services (SSIS)
• Oracle Data Profiling and Oracle Data Quality come Data Integrator
Ognuno di essi segue un approccio di questo tipo:
• Un utente specifica i dati che devono essere profilati e seleziona il
tipo di metadati che devono essere generati
• Successivamente il tool calcola i metadati utilizzando query SQL e/o
algoritmi specifici
• I risultati vengono mostrati in grandi collezioni di tabelle o grafici che
permettono all’utente di esplorarli
28
29. Il Data Profiling Task può computare otto data profile differenti
• Cinque per analizzare le singole colonne:
• Lunghezza di distribuzione
• Numero di elementi Null
• Statistiche e Pattern
• Tre per analizzare colonne multiple o relazioni fra colonne:
• Candidate Key Profile: riporta se una colonna od un gruppo di
colonne sono una chiave o chiave approssimativa per la tabella
selezionata
• Functional Dependency Profile: riporta il grado per cui i valori di
una colonna dipendono dai valore di un’altra o di un set di colonne
• Value Inclusion Profile: Calcola la sovrapposizione dei valori fra
due o più colonne. Questo profilo può determinare se una colonna
od un gruppo di esse è adatto a servire come foreign key fra le
tabelle selezionate
29
La Data Profiling si può riassumere in tre MACRO ASPETTI:
Un RIASSUNTO SIGNIFICATIVO contenente INFORMAZIONI e STATISCHE di una grande sorgente di dati
Insieme di METODI PER ANALIZZARE data set e GENERARE METADATI
completezza ed unicità delle colonne key e foreign key dipendenze funzionali (FD)
Un PASSAGGIO intemedio per successivi DATA MENADGMENT TASK
Data cleasing (patterns e violazioni)
Ma PERCHE’ analizziamo i dati?!
Potremmo rifarci alla definizione canonica di dato, una descrizione elementare spesso codificata di una cosa od un avvenimento.
Ma…
Ma se analizziamo la definizione vedremo che molti sostantivi sono attribuiti alla parola DATO.
Nello specifico possiamo notare il termine Informazione.
Per questo motivo è fondamentale analizzare i dati, per ottenere informazioni sulle cui basi prenderemo delle decisioni le quali ci porteranno ad un successo od al fallimento.
Per cui la correttezza dei dati e la loro corretta analisi risultano fondamentali.
Ma COSA PRODUCE?!
Fra i risultati più semplici possiamo trovare le STATISTICHE come…
Alcuni METADATI complessi richiedono il coinvolgimento di più colonne come FD
Single Source fa riferimento allo stato dell’arte mentre Multiple Source riflette le nuove ricerche nella Data Profiling.
Un esempio:
Dopo aver scoperto che il pattern di numero telefonico più frequente è (ddd) ddd-dddd, allora questo potrà essere promosso a REGOLA, tutti i numeri di telefono dovranno essere formattati così.
La maggior parte dei sistemi di cleansing trasformeranno automaticamente i numeri formattati diversamente o al più li segnaleranno come violazioni.
Ma in che casi serve eseguire DATA PROFILING?!
Nel caso in cui volessimo eseguire Data Menadgment Task quali: …
[Data MINING si occupa di scoprire risultati NON ovvi per supportare il business menadgment (row or wor sets)]
Per cui la PROFILAZIONE non è IL FINE ma sono uno step intermedio
Esistono vari tipi di data profiling fra cui:
Slide dopo INTERACTIVE
L’INTERACTIVE D.P. il quale ha due apsetti
Profiling su query e viste
In cui un utente può agire puntualmente sui risultati senza dover intraprendere l’intero ciclo di pulizia e profilazione.
Durante l’esecuzione delle query si mostrano i risultati della profilazione con la tipologia dei dati
Online
Vengono mostrati risultati intermedi della profilazione (dati parziali non totali); Utente in grado di interrompere la profilazione senza aspettare il termine
Altro tipo è l’INCREMENTAL D.P.
Aggiornamenti periodici; Possibilità di riutilizzare risultati vecchie profilazioni
Viene data la conoscenza di DELTA
METADATI calcolati:ASSOCIATIVAMENTE TRAMITE ALTRI METADATI RICALCOLATI
Terzo tipo proposto è il CONTINUOS D.P.
Nel quale si prevede aggiornamento all’inserimento dei dati;
Usato per profilazioni CONTINUE e.g. TRAFFICO INTERNET
Bisogna mediare fra
ACCURATEZZA AGGIORNAMENTO DATI CONSUMO RISORSE
Deciso un metodo di Profilazione vi sono altri aspetti da tenere in considerazione come … PROFILARE DATI ETEROGENEI
Quando si verifica la necessità di profilare fonti di dati diverse occerre tener conto delle GRADAZIONI DI ETEROGENEITA’
SINTATTICA STRUTTURALE SEMANTICA
Si può distingure fra
Profilazione STRUTTURALE … RICERCA INFO. SCHEMA
Profilazione SEMANTICA … RICERCA INFO. DATI
Necessarie entrambe per l’INTEGRAZIONE, il cui sforzo va calcolato in termini di SIMILITUDINE (SOVRAPPOSIZIONE E COMPLEMENTARIETA’ dello schema)
E mesi-uomo necessari
[Le architetture migliori sembrano essere gli storage in colonna]
Ma come funziona il D.P.?!
Uno degli scopi principali del D.P. è la ricerca di colonne o loro combinazioni UNICHE.
Per fare questo esistono algoritmi che sfruttano FORZA BRUTA od un eleveta quantità di memoria.
Un algoritmo ben noto è GORDIAN ma prima di introdurlo diamo alcune definizioni in primo l’uogo l’UNICITA’ di una o più colonne
Per UNICITA’ di una colonna si intende che non abbia ELEMENTI ripetuti al suo interno, nel caso di combinazioni di colonne che non ci siano COMBINAZIONI ripetute
La scoperta dell’UNICITA’ è importante nel data modeling e nell’anomaly detection
Ma il fatto di essere unici NON IMPLICA l’essere chiave, in quanto gli elementi UNICI possono apparire come coincidenza per certi stati dei dati.
Per cui una chiave deve essere specificata consapevolmente da un essere umano, in quanto denoterà delle restrizioni sullo schema
[dato uno schema (R(T),F), K sottoinsieme di T è CHIAVE sse K --> T appartiene alla chiusura di F e se non esiste un Y sottinsieme di K tale per cui
Y --> F appertiene alla chiusura di F]
Si può introdurre il concetto di UNICITA’ MINIMA considerando elementi UNICI MINIMAMENTE i quali nessun loro sottogruppo possiede la proprietà di UNICITA’
SPIEGA TABELLA RAPIDAMENTE
Date queste basi possiamo parlare analizzare l’algoritmo di GORDIAN
Il quale utilizza un APPROCCIO ROW-BASED ossia scansiona riga per riga il DB per ogni combinazione di colonne
Richiede molteplici esecuzioni su tutte le colonne e gli elementi NON-UNIQUE posso essere individuati senza considerare tutte le righe di una tabella
Ma come funziona…?!
L’algoritmo si suddivide in tre parti:
PREPARAZIONE DELLA TABELLA SOTTOFORMA DI PREFIX TREE
RICERCA MASSIMI NON-UNICI
ELABORAZIONE MINIMAMENTE UNICI
PREFIX-TREE un albero che DEVE essere mantenuto in MOMERIA PRINCIPALE, del quale OGNI LIVELLO raprresenta una COLONNA e CIASCUN RAMO una TUPLA distinta
Nello specifico …
Tramite una visita dell’albero che analizza I rami ripetuti si ricercano i MASSIMI NON-UNICI
Dai quali si calcolano I MINIMI UNICI mediante generazione di minime combinazioni che NON CONTENGONO massimi non-unici
Questo procedimento però segna un serio COLLO DI BOTTIGLIA in caso i MASSIMI NON-UNICI molto presenti.
Si è presentato come analizzare alcuni tipi di metadati, ma un aspetto fondamentale della D.P. è la capacità di definire FD, ma cosa sono?!
Per FD si intende un VINCOLO DI INTEGRITA’ tale per cui:
Dato uno SCHEMA R(U) e X,Y sottinsiemi di U è espresso in forma X --> Y
Soddisfatta in R(U) se per ogni coppia di tuple ti,tj appartenti ad R(U) si ha che ti[X] = tj[X] implica ti[Y] = tj[Y]
E’ possibile eseguire delle inferenze sulle FD date dagli ASSIOMI DI ARMSTRONG
Gli ASSIOMI sono 3:
RIFLESSIVITA’ ESTENSIONE TRANSITIVITA’
Esistono altre proprietà delle FD come UNIONE e DECOMPOSIZIONE
Un altro aspetto fondamentale, usato per risolvere problemi legati alla NORMALIZZAZIONE degli schemi, è la CHIUSURA di un INSIEME DI ATTRIBUTI
Espressa come: dato uno schema (R(T),F) e X sottonsieme T la chiusura di X [X+] è l’insieme di ATTRIBUTI A appartenente a T tale per cui X implica A sia Inferibile da F tramite
gli ASSIOMI di ARMSTRONG
Altri fondamenti teorici ci servomo per definire le regole di PRUNING (potatura) utili per eliminare candidati superflui
Nello specifico se le FD’s di R(U) sono soddisfatte si posso esprimere tre regole di potatura per i candidati X e Y,
Se X implica Y e viceversa allora Y può essere CANCELLATO, usata per eliminare CANDIDATI RIDONDANTI
Se la CHIUSURA di Y è sottoinsieme di X allora X può essere CANCELLATO
Se per ogni attributo che appartiene a U – X, X implica l’atrtibuto allora X può essere cancellato
Ma esistono Tool Commerciali che eseguono D.P.?!
Alcuni Tool Commerciali che eseguono D.P. sono:
IBM WEBSPHERE
MICROSOFT SQL SERVER INTEGRATION SERVICES
ORACOLE DATA PROFILING
Tutti si basano su un approccio nel quale, un UTENTE specifica I dati da profilare e seleziona il tipo di METADATI che vuole ottenere;
il tool calcola questi METADATI tramite QUERY e algoritmi specifici;
Infine i RISULTATI vengono mostrati all’utente in una forma esplorabile (tabelle, grafici …)
Prendiamo ad esempio Microsoft SSIS in cui il DATA PROFILING TASK può computare otto differenti profile
CINQUE per analizzare singole colonne e TRE per analizzare RELAZIONI fra colonne o COLONNE MULTIPLE
Quali:
CANDIDATE KEY PROFILE … riporta se colonna o gruppo è chiave o possibile per la tabella
FD PROFILE … grado per cui I valori di una colonna dipendono dai valori di un’altra
VALUE INCLUSION PROFILE … calcolca sovrapposizione fra due o più colonne, può determinare se una colonna o gruppo può servire come foreign key fra le tabelle in esame
Con questo esempio ho concluso grazie per l’attenzione