SlideShare uma empresa Scribd logo
1 de 30
Tecnologia delle Basi di Dati A.A
2015/2016
• 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
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.
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.
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.
DATI:
Miglior canale?
Migliore creatività?
Migliore target?
Migliore orario?
Periodo ottimale?
Keyword più performante?
Informazione:
Strategia di
pianificazione
Informazioni per
prendere decisioni
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
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.
• 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.
• 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
• 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
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
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
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.
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.
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
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
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}
• 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.
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
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.
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.
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 = {AC,BDAC} per definizione la chiusura di A = {A,C}
mentre la chiusura di BD = {A,B,C,D}
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
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
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
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
FINE
Grazie per L’attenzione

Mais conteúdo relacionado

Semelhante a Data profiling

Database - Appunti teorici
Database - Appunti teoriciDatabase - Appunti teorici
Database - Appunti teoriciLuca Santoro
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis nimartini
 
Big: alla scoperta dei Big Data
Big: alla scoperta dei Big DataBig: alla scoperta dei Big Data
Big: alla scoperta dei Big DataAlumni Mathematica
 
Formez Opendata Inps - webinar 29 marzo 2012
Formez Opendata Inps - webinar 29 marzo 2012Formez Opendata Inps - webinar 29 marzo 2012
Formez Opendata Inps - webinar 29 marzo 2012INPSDG
 
Il progetto Open Data in Trentino
Il progetto Open Data in TrentinoIl progetto Open Data in Trentino
Il progetto Open Data in Trentinodatitrentinoit
 
Il sistema informativo statistico sulla popolazione e le statistiche demograf...
Il sistema informativo statistico sulla popolazione e le statistiche demograf...Il sistema informativo statistico sulla popolazione e le statistiche demograf...
Il sistema informativo statistico sulla popolazione e le statistiche demograf...Vincenzo Patruno
 
Sistemi Informativi Statistici
Sistemi Informativi StatisticiSistemi Informativi Statistici
Sistemi Informativi StatisticiVincenzo Patruno
 
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"MarziaPaschini
 
Micro Focus Data Express 4.0 - Conformità, produttività e protezione dati
Micro Focus Data Express 4.0 - Conformità,  produttività  e  protezione datiMicro Focus Data Express 4.0 - Conformità,  produttività  e  protezione dati
Micro Focus Data Express 4.0 - Conformità, produttività e protezione datiMicrofocusitalia
 
Data Profiling with Metanome
Data Profiling with MetanomeData Profiling with Metanome
Data Profiling with MetanomeMatteo Senardi
 
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biBig data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biMarco Pozzan
 
Big Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di MelenBig Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di Melencomunicareonline
 
Data mining 00-corso2017
Data mining 00-corso2017Data mining 00-corso2017
Data mining 00-corso2017Studiabo
 

Semelhante a Data profiling (20)

Database - Appunti teorici
Database - Appunti teoriciDatabase - Appunti teorici
Database - Appunti teorici
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis n
 
Big: alla scoperta dei Big Data
Big: alla scoperta dei Big DataBig: alla scoperta dei Big Data
Big: alla scoperta dei Big Data
 
Formez Opendata Inps - webinar 29 marzo 2012
Formez Opendata Inps - webinar 29 marzo 2012Formez Opendata Inps - webinar 29 marzo 2012
Formez Opendata Inps - webinar 29 marzo 2012
 
Database relazionali
Database relazionaliDatabase relazionali
Database relazionali
 
Open Data in Trentino - Corso Trentino School of Management (TSM)
Open Data in Trentino - Corso Trentino School of Management (TSM)Open Data in Trentino - Corso Trentino School of Management (TSM)
Open Data in Trentino - Corso Trentino School of Management (TSM)
 
Open Data in Trentino
Open Data in TrentinoOpen Data in Trentino
Open Data in Trentino
 
Il progetto Open Data in Trentino
Il progetto Open Data in TrentinoIl progetto Open Data in Trentino
Il progetto Open Data in Trentino
 
Il sistema informativo statistico sulla popolazione e le statistiche demograf...
Il sistema informativo statistico sulla popolazione e le statistiche demograf...Il sistema informativo statistico sulla popolazione e le statistiche demograf...
Il sistema informativo statistico sulla popolazione e le statistiche demograf...
 
Sistemi Informativi Statistici
Sistemi Informativi StatisticiSistemi Informativi Statistici
Sistemi Informativi Statistici
 
Data base elvira asile
Data base elvira asileData base elvira asile
Data base elvira asile
 
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
 
Micro Focus Data Express 4.0 - Conformità, produttività e protezione dati
Micro Focus Data Express 4.0 - Conformità,  produttività  e  protezione datiMicro Focus Data Express 4.0 - Conformità,  produttività  e  protezione dati
Micro Focus Data Express 4.0 - Conformità, produttività e protezione dati
 
Data Profiling with Metanome
Data Profiling with MetanomeData Profiling with Metanome
Data Profiling with Metanome
 
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biBig data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
 
ETL basics
ETL basicsETL basics
ETL basics
 
Basi di dati
Basi di dati Basi di dati
Basi di dati
 
Big Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di MelenBig Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di Melen
 
Presentazione
PresentazionePresentazione
Presentazione
 
Data mining 00-corso2017
Data mining 00-corso2017Data mining 00-corso2017
Data mining 00-corso2017
 

Data profiling

  • 1. Tecnologia delle Basi di Dati A.A 2015/2016
  • 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.
  • 6. DATI: Miglior canale? Migliore creatività? Migliore target? Migliore orario? Periodo ottimale? Keyword più performante? Informazione: Strategia di pianificazione
  • 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 = {AC,BDAC} 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

Notas do Editor

  1. 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)
  2. Ma PERCHE’ analizziamo i dati?! Potremmo rifarci alla definizione canonica di dato, una descrizione elementare spesso codificata di una cosa od un avvenimento. Ma…
  3. Ma se analizziamo la definizione vedremo che molti sostantivi sono attribuiti alla parola DATO. Nello specifico possiamo notare il termine Informazione.
  4. 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.
  5. Ma COSA PRODUCE?! Fra i risultati più semplici possiamo trovare le STATISTICHE come… Alcuni METADATI complessi richiedono il coinvolgimento di più colonne come FD
  6. 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.
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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]
  13. 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
  14. 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
  15. 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]
  16. Si può introdurre il concetto di UNICITA’ MINIMA considerando elementi UNICI MINIMAMENTE i quali nessun loro sottogruppo possiede la proprietà di UNICITA’
  17. SPIEGA TABELLA RAPIDAMENTE Date queste basi possiamo parlare analizzare l’algoritmo di GORDIAN
  18. 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…?!
  19. 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 …
  20. 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?!
  21. 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
  22. 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
  23. Altri fondamenti teorici ci servomo per definire le regole di PRUNING (potatura) utili per eliminare candidati superflui
  24. 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.?!
  25. 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 …)
  26. 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
  27. Con questo esempio ho concluso grazie per l’attenzione