Analisi di Metriche e Algoritmi per la Qualit`a dei Dati. Progettazione

annuncio pubblicitario
UNIVERSITÀ DEGLI STUDI DI MILANO - BICOCCA
Dipartimento di Informatica Sistemistica e Comunicazione
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica
Analisi di Metriche e Algoritmi
per la Qualità dei Dati.
Progettazione e Realizzazione di un Framework
per l’Assessment della Qualità.
Supervisori:
Chiar.mo Prof. Carlo BATINI
Dott. Daniele BARONE
Relazione della prova finale di:
Carmine Carella
Matricola: 055465
Anno Accademico 2005-2006
Ai miei genitori
e alle mie sorelle Brunilde e Milena.
A Danilo, Maurizio e Marzio,
compagni di avventura di questi ultimi tre anni.
Ai miei cari ed eterni amici materani
Vittorio, Giuseppe, Angelo e Giuseppe.
A Valeria, per il suo aiuto e
per ogni momento condiviso con me.
Un ringraziamento particolare al Prof. Batini per avermi dato questa
opportunitá, al Dott. Barone per avermi pazientemente seguito ed aiutato
in questi mesi di stage.
Indice
1 Introduzione
1.1 L’importanza della Qualità dei Dati . . . . . . . . . . . . . .
1.2 Definizione di dato e sue proprietà . . . . . . . . . . . . . . .
1.3 Valutazione Quantitativa di Dato . . . . . . . . . . . . . . . .
5
5
8
9
2 Qualità dei Dati e Dimensione
2.1 Il Concetto di Qualità dei Dati . . . . . . . . .
2.2 Tipi di Dati . . . . . . . . . . . . . . . . . . . .
2.3 Il Concetto di Dimensione . . . . . . . . . . . .
2.3.1 Qualità nel Modello Concettuale . . . .
2.3.2 Qualità nella Rappresentazione dei Dati
2.3.3 Qualità dei Valori dei Dati . . . . . . .
2.4 TradeOffs tra Dimensioni . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
15
16
16
20
21
26
3 Analisi delle Metriche
3.1 Tabella Dimensioni - Metriche - Algoritmi .
3.2 Dimensioni della Qualità dei Dati: Metriche
3.2.1 Syntactic Accuracy . . . . . . . . . .
3.2.2 Semantic Accuracy . . . . . . . . . .
3.2.3 Duplication . . . . . . . . . . . . . .
3.2.4 Completeness . . . . . . . . . . . . .
3.2.5 Currency . . . . . . . . . . . . . . .
3.2.6 Volatility . . . . . . . . . . . . . . .
3.2.7 Timeliness . . . . . . . . . . . . . . .
3.2.8 Consistency . . . . . . . . . . . . . .
3.2.9 Concise Representation . . . . . . .
3.2.10 Relevancy . . . . . . . . . . . . . . .
3.2.11 Ease of manipulation . . . . . . . . .
3.2.12 Believability . . . . . . . . . . . . . .
3.2.13 Appropriate amount of data . . . . .
3.2.14 Accessibility . . . . . . . . . . . . . .
3.2.15 Objectivity . . . . . . . . . . . . . .
3.2.16 Reputation . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
29
30
32
34
35
36
37
39
39
40
41
41
41
42
42
43
43
44
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
INDICE
3.2.17
3.2.18
3.2.19
3.2.20
Security . . . . . . . . .
Ease of Understanding .
Variety of Data Sources
Usefulness . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
44
45
45
4 Realizzazione del Framework
4.1 Obiettivi . . . . . . . . . . . . . . . . . . . . . .
4.2 Strumenti Utilizzati . . . . . . . . . . . . . . .
4.3 Funzioni e Struttura . . . . . . . . . . . . . . .
4.3.1 Funzioni . . . . . . . . . . . . . . . . . .
4.3.2 Struttura . . . . . . . . . . . . . . . . .
4.4 Analisi Metriche Implementate nel Framework
4.4.1 Completezza . . . . . . . . . . . . . . .
4.4.2 Accuratezza Sintattica . . . . . . . . . .
4.4.3 Currency . . . . . . . . . . . . . . . . .
4.4.4 Consistenza . . . . . . . . . . . . . . . .
4.5 Localizzazione e Correzione di Errori . . . . . .
4.5.1 Il Framework: Attività di Localizzazione
.
.
.
.
.
.
.
.
.
.
.
e
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
Correzione
46
46
46
47
47
48
49
50
53
60
63
64
64
5 Caso di Studio
69
5.1 Descrizione del Caso di Studio . . . . . . . . . . . . . . . . . 70
5.2 Analisi dei Risultati . . . . . . . . . . . . . . . . . . . . . . . 71
A Descrizione del Metamodello
A.1 Descrizione dei Dati e Metadati . . . .
A.1.1 Dati-Metadati in Input . . . .
A.1.2 Dati-Metadati in Output . . .
A.2 XML . . . . . . . . . . . . . . . . . . .
A.2.1 Vantaggi Derivanti dall’Utilizzo
A.2.2 Cenni ad XML . . . . . . . . .
A.3 Metamodello del Framework . . . . . .
A.3.1 Metadati Misurazione . . . . .
A.3.2 Metadati Dimensione . . . . .
B Funzioni di Similarità
B.1 Principali Funzioni di Similarità
Bibliografia
. . . . .
. . . . .
. . . . .
. . . . .
di XML
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
81
81
82
82
82
83
84
84
86
91
. . . . . . . . . . . . . . . . 91
94
Capitolo 1
Introduzione
1.1
L’importanza della Qualità dei Dati
In molte organizzazioni la situazione del data asset, ovvero del patrimonio
informativo è critica per cause differenti. E’ fuori dubbio che il successo delle
aziende sia sempre più legato alla raccolta e all’ utilizzo di grandi quantità
di informazioni. Le decisioni a tutti i livelli sono guidate inevitabilmente
dai dati acquisiti da un numero sempre maggiore di fonti e fruiti attraverso
svariate tipologie di sistemi (datawarehouse, CRM, ERP) per i quali gli
investimenti rappresentano una quota significativa del budget aziendale.
Questa situazione critica porta a considerare la problematica della qualità dei dati (d’ora in avanti si utilizzerà l’acronimo DQ che indica
Data Quality) nei sistemi informativi.
La scarsa DQ, problema solo in parte percepito come affrontabile e gestibile, determina danni in termini di extra costi, mancati ricavi e demotivazione all’interno dell’azienda. La DQ è un aspetto che pochissime aziende
percepiscono determinante per i loro livelli di servizio, i loro ricavi e i loro
costi. Ai dati normalmente non viene assegnato alcun valore economico;
molte esperienze dimostrano però che una scarsa qualità dei dati ha degli
impatti economici sull’organizzazione.
Molto spesso l’insufficiente DQ viene confusa con un problema di scorretto funzionamento del software che gestisce i dati e molte aziende intervengono acquistando nuovi sistemi software. Il problema però è nei dati
veri e propri, quindi la soluzione potrebbe essere invece quella di definire ed
attuare una strategia di controllo della DQ. Ci si rende conto quando i dati
continuano ad essere inesatti anche con il nuovo sistema sofware.
Ma perchè la DQ è cosi importante? La risposta si può sintetizzare in
due punti essenziali, come detto in [2]:
• La scarsa DQ è pervasiva: Spieghiamo il concetto con un esempio.
Questo esempio tratto da [2] è, pur nella sua banalità, estremamente
significativo sul ruolo che una strategia per il controllo della DQ può
5
CAPITOLO 1. INTRODUZIONE
6
avere in una azienda. Le ripercussioni in termini di costi e di mancati
ricavi generate dalla scarsa attenzione ai dati possono essere veramente
gravi.
Ci rivolgiamo ad un’ agenzia turistica per organizzare un viaggio che
prevede l’utilizzo, una volta arrivati sul luogo di destinazione, di un’auto a noleggio per recarsi dall’aeroporto fino al luogo in cui abbiamo
deciso di trascorrere le nostre vacanze. Arrivati all’aeroporto, ci rechiamo presso lo sportello dell’azienda che deve fornirci l’auto e scopriamo
che la nostra auto non è disponibile e che, come sempre avviene nei
periodi di alta stagione, non ve ne sono altre disponibili prima delle
prossime 48 ore. Il motivo è che la prenotazione dell’auto non risulta
nel database. La persona preposta alla consegna delle auto non sa spiegarsi l’accaduto e telefona all’agenzia che aveva organizzato il viaggio
cercando informazioni sulla nostra prenotazione. Dopo vari minuti di
telefonata, l’agenzia si rende conto che per un errore, la prenotazione
dell’auto non era stata inserita nei dati del viaggio e che, quindi, l’azienda di noleggio auto, non poteva averla ricevuta. A questo punto
si scatena una serie di eventi:
1. Noi telefoniamo irritati all’agenzia.
2. La persona dell’agenzia che risponde è mortificata per l’accaduto
e promette che ci troverà un’altra auto nel giro di un’ora.
3. Inoltre, l’agenzia ci offre di pagare l’auto per scusarsi dello spiacevole accaduto.
4. Nonostante l’auto messa a disposizione gratuitamente, continuiamo ad essere seccati per quanto è successo e non esitiamo a
raccontare il tutto ad amici e conoscenti.
5. Decidiamo di non rivolgerci mai più a quella agenzia di viaggi.
Un banale errore di immissione dati in un database ha quindi determinato per l’agenzia:
1. Lo sconforto dell’impiegato.
2. Il costo da sostenere per pagare l’auto a noleggio che ci è stata
data gratuitamente.
3. La perdita sicura di un cliente.
4. Un numero imprecisato di mancati clienti (i nostri conoscenti
e amici ai quali abbiamo raccontato l’accaduto). Quindi, una
quantità imprecisata di mancati ricavi.
• La scarsa DQ è costosa: Il dato fornito dal Datawarehousing Institute [28] parla di una spesa, negli Stati Uniti, di 600 miliardi di dollari
CAPITOLO 1. INTRODUZIONE
7
all’anno determinata dalla non gestione dei dati. Introdurre in azienda processi di gestione della qualità dei dati viene percepito come un
costo che spesso scoraggia i decisori. Il motivo è che manca la percezione dei costi indotti dalla scarsa qualità dei dati. Molti di tali costi,
infatti, sono in qualche modo nascosti, nel senso che non sempre vengono associati alla insufficiente qualità dei dati: basti pensare al costo
di un depliant pubblicitario che verrà inviato ad un indirizzo inesatto
e che andrà, quindi, inevitabilmente perso. Oppure si pensi al tempo
che il personale addetto ad un Call Center impiega per discutere con
un cliente insoddisfatto. Gli esempi sono molteplici. E poi cosa più
importante, il costo di una decisione per l’azienda presa sulla base di
informazioni errate.
Altri motivi per cui la DQ è importante sono:
• La qualità dei dati degrada con il tempo: Oggi quasi tutti i dati
sono dinamici: indirizzi, numeri di telefono, professioni, indirizzi email, dati di mercato, giacenze di magazzino e cosı̀ via. Questo implica
che bisogna seguire l’alta frequenza di cambiamento per evitare che i
dati diventino obsoleti.
• La qualità dei dati può costituire un forte vantaggio competitivo: La scarsa qualità dei dati, come detto in precedenza, ha degli
impatti sull’economia dell’azienda, in particolare costi aggiuntivi che
hanno delle conseguenze nell’ambito delle decisioni di marketing.
Effetti della scarsa qualità dei dati
Noto che il problema del DQ esiste, abbiamo già detto che i suoi effetti non
sono da sottovalutare. Anche se abbiamo già citato alcune conseguenze che
l’insufficiente DQ può arrecare, riassumiamone le principali:
• Diminuizione della soddisfazione del cliente.
• Sostenimento di costi alti e superflui.
• Influenza sui processi decisionali: Implementare sistemi di data warehouse o data mining su dati di scarsa qualità è molto rischioso.
• Impossibilità di pianificare una strategia a lungo termine.
CAPITOLO 1. INTRODUZIONE
1.2
8
Definizione di dato e sue proprietà
I dati sono un insieme di fatti ovvero rappresentazioni di eventi appartenenti
al mondo reale; sono frutto di misurazioni e sono la materia prima per la
costruzione dell’informazione, infatti costituiscono l’input di un processo che
genera informazioni.
Il mondo reale viene rappresentato con un modello. Il modello è composto da
entità, che rappresentano i concetti equivalenti del mondo reale. Ogni entità
è caratterizzata da attributi. Ogni attributo ha un dominio dei possibili
valori. Si definisce un datum (data item) una tripla < e, a, v > dove v è il
valore selezionato dal dominio dell’attributo a per l’entità e. Data (in lingua
inglese) indica una qualsiasi collezione di data item. Una data rapresentation
è un insieme di regole per registrare le triple su un mezzo fisico. Il data
recording (record) è l’istanza fisica che rappresenta l’insieme di data item
secondo le regole della rappresentazione. I vantaggi di questa definizione
sono nella separazione tra l’attività di modellazione e di rappresentazione.
I dati hanno proprietà particolari che li distinguono dalle altre risorse e che
hanno un impatto sulla definizione di DQ.
Le proprietà sono:
1. Consumability e Depreciability: i dati non si consumano né si usurano.
2. Dipendenza dal Contesto: i dati hanno significato solo in un determinato contesto che è fondamentale per interpretarli e ricavare informazione.
3. Copyability: i dati possono essere copiati in modo economico, a differenza di altre risorse/prodotti per le quali il costo per fare una copia
è paragonabile al costo di produzione di un nuovo prodotto.
4. Costo di Ottenimento e Conservazione: è molto basso.
5. Fungibility: significa che un’unità di risorsa può essere scambiata con
un’altra, esempio i soldi godono di tale proprietà; i dati no.
6. Lag Time: quanto impiegano i dati ad essere trasmessi e rispecchiare
la realtà.
7. Shareability: i dati sono condivisibili.
8. Supply: Un organizzazione può facilmente rifornirsi di dati (a volte ne
hanno anche troppi).
CAPITOLO 1. INTRODUZIONE
1.3
9
Valutazione Quantitativa di Dato
L’analisi della DQ è vincolata all’analisi dei processi in cui i dati vengono
utilizzati; per migliorare la DQ, è necessario analizzare il processo di origine
e individuare le attività che introducono errori o influenzano la DQ. Inoltre
è necessario capire bene cosa significhi DQ e come essa viene valutata. Il
concetto di dato e di informazione sono correlati. Una valutazione quantitativa della qualità per entrambi, dipende dal contesto di utilizzo. Quindi la
DQ dipende dal progetto del sistema informativo e dal contesto di utilizzo.
In letteratura esistono diversi approcci per valutare i concetti di dato e
di informazione in modo quantitativo.
Due approcci per la valutazione quantitativa del concetto di informazione:
1. Il primo basato sulla communication theory di Shannon.
2. Il secondo basato sull’information economics.
Due approcci per la valutazione quantitativa del concetto di dato:
• Data Centric, legato alla struttura progettuale ed implementativa del
sistema informativo e dei database, considera concetti quali entità,
attributo e valore.
• Il secondo considera come il ruolo di un sistema informativo sia quello
di fornire una rappresentazione di un dominio applicativo (il sistema
mondo reale, Real World System) cosi come percepita dall’utente. Le
deficienze nella qualità sono dovute allora alla difformità tra la vista
del real world system che può essere inferita dal sistema informativo
che lo rappresenta e la vista che può essere ottenuta dall’osservazione
diretta.
Di seguito, viene proposto un modello astratto del ciclo di vita dei dati
per mettere in evidenza le attività che hanno maggiore impatto sui dati,
perchè come si è detto precedentemente per misurare e migliorare la DQ è
necessario agire sui processi o per dir meglio sulle attività di tali processi. Il
modello considera come attività centrale la memorizzazione dei dati ( Data
Storage ) e i sistemi vengono classificati in base al ruolo ricoperto da questa
attività.
Tre tipologie di sistemi:
1. Sistema d’Acquisizione. La Data Storage è l’obiettivo finale del sistema.
2. Sistema d’Utilizzazione. Il sistema accede a dati memorizzati precedentemente da qualche altro sistema.
3. Sistema Combinato. Il sistema memorizza ed utilizza i dati. Esistono
due sottocategorie:
CAPITOLO 1. INTRODUZIONE
10
Figura 1.1: Cause della scarsa DQ: mondo reale vs. sistema informativo
(a) Il sistema rigido (Store And Forward): in cui la fase di acquisizione e quella di utilizzo si devono obbligatoriamente alternare.
(b) Il sistema flessibile: in cui le due fasi possono susseguirsi senza rispettare pattern prestabiliti; i moderni sistemi informativi basati
su DBMS sono flessibili.
Le attività che manipolano i dati sono ripetitive quindi è preferibile parlare di cicli di acquisizione ed utilizzazione; i sistemi reali sono una combinazione di questi cicli. Le principali attività incluse nel ciclo di acquisizione
sono le seguenti:
• Definire la view dei dati: una view è composta dalle parti del mondo
reale che devono essere memorizzate. Devono essere specificate una o
più entità con gli attributi relativi.
• Implementazione: dopo aver definito gli elementi che devono essere
memorizzati, si devono tenere conto restrizioni e/o limitazioni imposte
dal mezzo di memorizzazione e dal DBMS. Viene definito lo schema
dei dati.
• Ottenere i valori: si acquisiscono i valori degli attributi delle singole
istanze delle entità definite.
CAPITOLO 1. INTRODUZIONE
11
Figura 1.2: Tipologie di sistemi
• Aggiornare record: i dati sono memorizzati in uno o più database. Il termine aggiornare include l’inserimento di un nuovo record,
cancellazione e modifica dei record esistenti.
Le principali attività incluse nel ciclo di utilizzo sono le seguenti:
• Definire una subview: tipicamente un processo di utilizzo userà solo
una piccola parte dei dati disponibili. Si definisce il sottoinsieme di
dati da utilizzare.
• Recupero: i dati precedente memorizzati vengono recuperati.
• Manipolazione: i dati recuperati vengono utilizzati come input in
un processo di trasformazione che deve generare come output i dati
soddisfacenti la richiesta di un utente.
• Presentazione risultati: i risultati devono essere presentati all’utente
finale con una rappresentazione appropriata che dipende da molti fattori: la natura del risultato, il mezzo di visualizzazione, e le preferenze
dell’utente.
• Utilizzo dei dati: l’utilizzatore del dato potrà giudicare la qualità dello
stesso.
Per migliorare la DQ bisogna però inserire le seguenti attività:
CAPITOLO 1. INTRODUZIONE
12
• Valutazione (Assessment): in questa fase si valuta la qualità dei dati
ottenuti. E’ necessario valutare le dimensioni legate ai valori dei dati:
consistenza, accuratezza, currency, e completezza che verranno approfondite nel capitolo successivo. Se i dati sono di qualità accettabile
sono memorizzati, altrimenti sono intraprese attività di miglioramento
della DQ.
• Analisi: in questa fase vengono individuate le ragioni della bassa
qualità dei dati riscontrata nella fase di valutazione.
• Correzione: in molti casi, i dati insoddisfacenti possono essere corretti
o migliorati.
• Scarto: se un dato giudicato di bassa qualità non può essere corretto,
dovrebbe essere scartato.
Da quanto esposto precedentemente si nota che la gestione della DQ è una
parte molto importante del processo di creazione e utilizzo dei dati; la qualità dei dati viene analizzata e l’analisi va condotta tramite quattro fasi:
definizione delle dimensioni di qualità, analisi dei dati, misurazione delle
dimensioni di qualità, miglioramento della qualità dei dati. Un concetto
fondamentale della DQ è quello di dimensione, che vedremo meglio nel capitolo 2. Un metodo standard, per esempio, per l’analisi delle dimensioni di
qualità è l’IP-MAP (Information Product Map) [11] e [12], un meccanismo
di data tracking, un modello grafico progettato per aiutare a comprendere, valutare e descrivere il modo in cui un’informazione viene assemblata.
IPMAP consente di visualizzare le fasi più importanti della lavorazione di
un prodotto informativo e di identificarne i percorsi critici in relazione alla
qualità. Sulla base di tale identificazione, azioni di miglioramento possono essere intraprese. Consente di identificare le unità informative (business
unit) e i limiti del sistema informativo/informatico (system boundaries). E’
basato su una notazione grafica, sulla considerazione di dato come prodotto,
sull’analisi dei processi e su passi metodologici. La costruzione e l’utilizzo
di IP-MAP si compone di cinque fasi:
• Catalogare i prodotti informativi.
• Identificare i prodotti informativi critici.
• Definire i requisiti di qualità per i prodotti informativi critici.
• Costruire l’IP-map e il repository di metadati.
• Valutare e migliorare la qualità del prodotto informativo.
Capitolo 2
Qualità dei Dati e
Dimensione
Abbiamo già parlato dell’importanza della DQ, delle cause e delle conseguenze di una scarsa qualità dei dati. In questo capitolo vedremo cosa significa
Data Quality e definiremo il concetto di dimensione, presentandone alcune
tra le più importanti.
2.1
Il Concetto di Qualità dei Dati
La Data Quality è un tema di ricerca in molti domini applicativi come
statistica, management e informatica. Nel 1960, gli statistici sono stati
i primi ad interessarsi ad alcuni problemi di DQ, proponendo una teoria
matematica per studiare la duplicazione dei dati statistici [3]. Negli anni 80
i primi passi furono mossi nel campo del management e poi solo agli inizi
degli anni 90 gli informatici iniziarono a considerare il problema di definire,
misurare e migliorare la qualità dei dati digitali, memorizzati nei database
e nei data warehouse. Nella DQ vengono affrontati diversi aspetti, illustrati
in figura 2.1, essi sono:
Le Dimensioni, la scelta di esse per misurare il livello di DQ è l’inizio
di ogni attività relativa alla DQ. Le dimensioni sono applicate in modo
differente in base al modello, alle tecniche, tools e frameworks.
I Modelli sono utilizzati nei database per rappresentare i dati e gli schemi
dei dati.
Le Tecniche corrispondono agli algoritmi, euristiche, conoscenze che
forniscono una soluzione allo specifico problema di DQ.
Le tecniche necessitano del supporto di tools, come ad esempio procedure automatizzate con interfacce grafiche che sollevano l’utente dal compito
di eseguire manualmente alcune tecniche. Quando un insieme di tools coordinati sono integrati per fornire un insieme di servizi di DQ, utiliziamo il
termine Frameworks.
13
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
14
Infine, le Metodologie forniscono linee guida per la scelta, partendo da
tecniche e tools disponibili, dei processi di misurazione e miglioramento più
efficienti per uno specifico sistema informativo.
Figura 2.1: Principali aree di ricerca in DQ
E’ molto difficile dare una definizione di DQ, è un concetto molto complesso. Una prima, ma non completa definizione è quella che deriva dalla
constatazione che un qualsiasi database non è altro che una rappresentazione
di un qualche aspetto del mondo reale. In altre parole, un database modella
una realtà; il problema è fare in modo che la modellazione risulti, nel tempo,
il più fedele possibile. Quindi la DQ potrebbe essere considerata il livello di
rispondenza delle basi informative alle realtà modellate. Quando si pensa al
concetto di DQ, molto spesso si associa essa alla definizione di accuratezza
dei dati. Il fatto di associare la DQ ad una sola delle dimensioni di qualità,
l’accuratezza, è piuttosto normale visto che tale dimensione è quella che più
si avvicina alla definizione di qualità, nella sua accezione più generale. Ma
la DQ è più di un semplice problema di accuratezza. Per definire cos’è la
DQ non si può non considerare il concetto di dimensione di qualità, ma è
proprio questo concetto che caratterizza la definizione di DQ. Altre dimensioni oltre all’accuratezza, sono la completezza, la currency e la consistenza.
Introduciamole con un esempio, nei paragrafi successivi verranno definite
più precisamente. Consideriamo la relazione in tabella 2.1:
Dalla relazione, è possibile notare problemi di accuratezza: il title del movie
3 è Rman invece di Roman, Director del movie 1 e movie 2 sono scambiati
(Curtiz è director del movie 1 e Weir del movie 2). Problemi di completezza:
15
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
ID
1
2
3
4
Title
Casablanca
Dead Poets Society
Rman Holiday
Sabrina
Director
Weir
Curtiz
Wylder
NULL
Year
1942
1989
1953
1964
#Remakes
3
0
0
0
LastRemakeYear
1940
NULL
NULL
1985
Tabella 2.1: Una relazione Movies con problemi di data quality
un valore mancante del director del movie 4 e un valore zero per l’attributo
#Remake sempre del movie 4. Considerando sempre il movie 4, vediamo
che un remake è stato fatto nel 1985, quindi il valore zero di #Remakes può
essere considerato un problema di currency, il remake non è stato ancora
registrato nel database. Infine, due problemi di consistenza: il primo per il
movie 1 dove il valore di LastRemakeYear non può essere minore di Year ; il
secondo per il movie 4 dove il valore di LastRemakeYear e #Remakes sono
inconsistenti, o #Remakes non è zero o LastRemakeYear è NULL.
Dall’esempio sopra riportato, è possibile dedurre che la Data Quality è un
concetto complesso e multi-dimensionale, alla propria definizione concorrono
differenti dimensioni di qualità. Le quattro dimensioni finora esposte sono
solo alcune di un grande insieme di dimensioni presente nella letteratura,
sono le più importanti ma ne esistono altre che si differenziano in base alla
struttura del dato (strutturato, semistrutturato, non strutturato) e al modo
di misurarle (misura qualitativa o quantitativa).
2.2
Tipi di Dati
L’esempio visto precedentemente, riguardava problemi di DQ di un tabella
relazionale, di un singolo database, ma la DQ si differenzia in base al tipo di
dato e sistema informativo presi in considerazione. Come detto nel capitolo
1, i dati sono rappresentazioni del mondo reale, in un formato che può essere
memorizzato, letto, elaborato da un software e comunicato tramite una rete.
Esistono, in letteratura, diverse proposte di classificazione dei dati, ma
prendiamo in considerazione quella che classifica i dati in base alla loro
struttura, esistono tre tipi di dati:
1. Strutturati: i dati strutturati sono quelli distinti in parti elementari, e
ciascuna di loro è rappresentata con un formato che può essere descritto da una grammatica. Le tabelle relazionali sono i dati strutturati
per eccellenza.
2. Semi strutturati: sono quei dati la cui struttura ha qualche grado di
flessibilità. XML è un linguaggio di markup utilizzato per rappresentare dati semi-strutturati. Questi dati non hanno una definizione
formale, ma alcune caratteristiche:
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
16
(a) i dati possono avere campi non predefiniti in fase di progetto, ad
esempio, quando un file XML non ha uno schema XML o DTD
associato.
(b) lo stesso tipo di dato può essere rappresentato in modi diversi,
basti pensare al formato che una data può assumere e in quanti
modi può essere rappresentata.
3. Non strutturati: quando i dati sono espressi in linguaggio naturale
e non hanno una struttura specifica o un dominio di possibili valori
associato.
2.3
Il Concetto di Dimensione
Abbiamo parlato finora della DQ, accennando solo al concetto di dimensione.
Inoltre, abbiamo visto che le dimensioni concorrono alla definizione di DQ.
Approfondiamo in questo paragrafo il concetto di DQ, dal punto di vista
delle molte dimensioni ad essa associate.
Una Dimensione non è altro che un punto di vista da cui osservare e
valutare la qualità dei dati. Cattura uno specifico aspetto della DQ.
Le Dimensioni sono definite in modo qualitativo e le definizioni stesse
non forniscono alcun elemento per assegnare valori alle dimensioni, ovvero
misure quantitative, quindi una o più metriche devono essere associate alle
dimensioni come proprietà separate. Per ciascuna metrica, devono essere
forniti uno o più metodi di misura (o frameworks), costituiti da:
1. definizione della fonte su cui si fa la misura.
2. quali dati sono coinvolti.
3. strumento di misura.
4. la scala utilizzata per riportare il risultato.
Le dimensioni di qualità possono riferirsi allo schema o modello concettuale, alla rappresentazione dei dati e ai valori dei dati. Per ogni categoria
esiste un insieme di dimensioni, ce ne sono diversi ma presentiamo quello
tratto da [2] e mostrato in tabella 2.2.
2.3.1
Qualità nel Modello Concettuale
La qualità del modello concettuale è importante nella fase di progettazione
di un database, infatti sono un risultato della prima fase dello sviluppo di un
sistema informativo e errori concettuali nello schema hanno un forte impatto
sullo processo di sviluppo del sistema. Nel modello concettuale la qualità
è essenziale in quanto il modello rappresenta la porzione di mondo reale
catturata, e quindi è il contesto all’interno del quale valutare l’utilità del
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
Categoria
Modello Concettuale
Rappresentazione dati
Valore dei dati
17
Dimensioni
Contenuto
Composizione
Copertura
Consistenza
Livello di dettaglio
Reazione al cambiamento
Appropriatezza
Flessibilità del formato
Interpretabilità
Abilità rappr. valori nulli
Portabilità
Uso efficiente memoria
Precisione del formato
Accuratezza
Currency
Completezza
Consistenza
Tabella 2.2: Insieme di Dimensioni e Categorie
dato. Le dimensioni legate al modello concettuale sono una misura della
qualità del processo di progettazione del database e di modellazione.
Contenuto
• Rilevanza: il modello deve fornire i dati rilevanti per l’applicazione.
Questa caratteristica pone in evidenza l’importanza della fase di raccolta dei requisisti, in quanto spesso gli utenti non sono in grado di
esprimere chiaramente quali dati sono interessanti e come verranno
utilizzati. Un aspetto da considerare è l’utilizzo di surrogati al posto
di dati desiderati e difficilmente ottenibili: questa pratica è giustificata solamente quando esistono delle correlazioni e dei modelli empirici
provati.
• Ottenibilità: i valori devono essere facilmente ottenibili. Questa caratteristica è legata alla precedente (nel caso in cui i dati non sono
disponibili è meglio utilizzare dei surrogati, piuttosto che non possedere nessun tipo di informazione) e sempre più spesso a problemi di
riservatezza e rispetto della privacy.
• Chiarezza della definizione: ogni termine nella definizione del modello
deve essere chiaramente definito. Le metodologie di progettazione dei
database pongono sempre in primo piano l’importanza del glossario
degli elementi del modello utilizzato.
Copertura
E’ definito come il grado con cui il modello comprende abbastanza dati per
soddisfare le necessità delle applicazioni, e non comprende dati in eccesso.
Idealmente il database dovrebbe contenere tutti e soli i dati necessari e niente
di più.
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
18
• Comprensività: ogni dato necessario deve essere compreso nel modello. E’ necessario considerare tutti i possibili utenti e come le rispettive
necessità si sovrappongono; inoltre può essere necessario considerare, oltre alle applicazioni attuali, anche eventuali applicazioni future,
estendendo quindi lo scope del modello.
• Essenzialità: nessun dato non necessario deve essere compreso; infatti
dati non necessari distolgono dalla “cura adeguata” dei dati effettivamente necessari e aumentano i costi della gestione dei dati stessi.
Livello di Dettaglio
E’ la quantità di dati da includere e quanto precisi essi debbano essere.
• Granularità degli attributi: numero e copertura degli attributi utilizzati per rappresentare un singolo concetto. Ad esempio, per rappresentare il concetto di Indirizzo, in un’applicazione può essere sufficiente definire un solo attributo Address, mentre in un’altra è necessario
definire gli attributi Apartment, Street, State, Country. La granularità degli attributi deve essere progettata tenendo conto di differenti
trade-off: dettaglio vs. maggiori costi per ottenere e memorizzare i valori, possibilità di controlli di consistenza vs. minore flessibilità, maggiore applicabilità vs. la considerazione che troppi dettagli possono
“annoiare”l’utente.
• Precisione dei domini: è il livello di dettaglio nelle misure (o nello
schema di classificazione) che definiscono il dominio. In generale maggiore è il numero di valori nel dominio, maggiore è la precisione. Ad
esempio un dominio definito su un tipo enumerato con 20 valori è più
preciso dello stesso definito su 5 valori, cosı̀ come utilizzare i millimetri
per misurare l’altezza di una persona implica una precisione maggiore che utilizzare i centimetri. Ovviamente deve essere valutato se la
precisione è effettivamente necessaria ed utile (ad esempio in molte
applicazioni non serve conoscere l’altezza al millimetro; in altre addirittura può bastare un tipo enumerato a due valori: bassa, quando
l’altezza è minore/uguale di 160 cm ed alta).
Composizione
è la strutturazione interna della view. Si compone delle seguenti caratteristiche:
• Naturalezza: ogni elemento del modello deve avere una controparte “naturale”nel mondo reale. Questo spinge a limitare al minimo
l’utilizzo di attributi multifatto, viceversa il dominio di ogni attributo dovrebbe specificare l’informazione in modo naturale: domini
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
19
non naturali spesso nascono dalla necessità di incorporare, per motivi
implementativi, informazioni secondarie nell’attributo.
• Identificabilità: ogni entità deve essere univocamente identificabile
rispetto alle altre (utilizzo della primary key).
• Omogeneità: i tipi delle entità dovrebbero essere definiti in modo da
minimizzare l’occorrenza di attributi non necessari/non applicabili.
Per promuovere l’omogeneità è utile ricorrere alle generalizzazioni (supertipi e sottotipi). Ad esempio in un database devono essere memorizzate informazioni sugli impiegati, che possono essere pagati mensilmente o giornalmente. Un modello potrebbe prevedere Employee =
<Name, Classification, MonthlySalary, DailySalary > ed in questo caso,
per ogni entità, uno degli ultimi due attributi è non applicabile (mancanza di omogeneità). Invece un modello che prevede: DailyEmployee
= <Name, Classification, DailySalary >, MonthlyEmployee = <Name, Classification, MonthlySalary > promuove l’omogeneità attraverso
l’uso del costrutto gen/spec.
• Ridondanza minima necessaria: la ridondanza deve essere sempre attentamente vagliata ed accuratamente giustificata, altrimenti va eliminata; questo perchè aumenta i costi e la gestione della sua coerenza
distoglie da dati maggiormente importanti.
Consistenza della Vista
• Consistenza semantica: il modello deve essere non ambiguo e consistente. Bisogna prestare attenzione ai cicli di relazioni 1:1 ed 1:N, cosı̀
come alla definizione dei vincoli di molteplicità nelle associazioni.
• Consistenza strutturale: i tipi delle entità e degli attributi devono
avere sempre la stessa struttura di base. Ad esempio tutte le date
devono essere in un formato comune, anche se sono attributi di entità diverse; la stessa considerazione vale per i nomi o le informazioni
toponomastiche.
Reazione al Cambiamento
Ognuna delle precedenti cinque dimensioni viene valutata rispetto all’insieme attuale delle applicazioni. Con il passare del tempo le necessità applicative si modificano, e di pari passo dovrebbe evolvere anche il modello dei
dati sottostante. Quest’ultima dimensione considera appunto la capacità del
modello di soddisfare le necessità in continua evoluzione.
• Robustezza: è la capacità del modello di sopportare cambiamenti nei
requisisti e/o nel mondo reale senza forti impatti sulla struttura di
base.
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
20
• Flessibilità: è la capacità del modello di soddisfare nuove interrogazioni.
In conclusione, va notato che le quindici caratteristiche non sono indipendenti tra di loro, ma ci sono correlazioni positive (migliorare una caratteristica migliora anche l’altra) e negative (migliorare una peggiora l’altra)
tra di esse; solo per citare alcuni esempi, godono di correlazione positiva la
terna comprensività, granularità degli attributi e precisione del dominio, la
coppia ottenibilità e naturalezza, la tripla consistenza semantica, chiarezza
della definizione e identificabilità, la coppia essenzialità ed omogeneità, la
coppia robustezza e flessibilità. Godono di correlazione negativa la coppia
costo e rilevanza, la coppia rilevanza e naturalezza, la tripla comprensività,
ridondanza e precisione dei domini. Quanto detto rientra nel problema del
Trade Off tra dimensioni, che approfondiremo nei paragrafi successivi.
2.3.2
Qualità nella Rappresentazione dei Dati
La registrazione di un dato è composta da un formato e da una o più istanze
fisiche dei valori. Un formato è un mapping dal dominio ad un insieme di
simboli; sia V il dominio concettuale e S un insieme di rappresentazioni
simboliche, allora il formato è una funzione
θ:V→S
Questa qualità è quella riferita allo schema logico, che è alla base dell’implementazione di qualunque database. Le dimensioni legate al formato
sono:
• Appropriatezza: Un formato è più appropriato di un altro se è più
adatto a soddisfare le esigenze dell’utente. Dipende dall’utente e dal
mezzo utilizzato.
• Interpretabilità: Un buon formato aiuta l’utente ad interpretare i dati
correttamente. Ad esempio, si consideri un dato che ha un dominio di tipo categoria, e come differiscono, secondo l’interpretabilità,
il formato con valori (1,2,3) e quello con valori (insufficiente, buono,
ottimo).
• Precisione del Formato: Un formato è preciso se permette di distinguere elementi del dominio che devono essere distinti dall’utente. Questa
dimensione è importante, ad esempio, nel caso di valori numerici reali, e nel caso di etichette in cui la dimensione della stringa è limitata
(troncamenti non permettono di distinguere valori differenti).
• Flessibilità del Formato: è la facilità di cambiamento del data item in
corrispondenza al cambiamento delle esigenze dell’utente od al cambiamento della piattaforma di supporto alla memorizzazione del data
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
21
item. Ad esempio, una rappresentazione di un data item anno a due
cifre è stata sufficiente fino a quando non si è raggiunto l’anno 2000.
• Capacità a Rappresentare Valori Nulli: è relativa all’insieme di rappresentazione e rappresenta il grado con cui è possibile distinguere gli
elementi di tale insieme rispetto alle esigenze dell’utente. Rappresentazioni precise devono anche garantire la possibilità di rappresentare
valori nulli. Ad esempio, si hanno diversi livelli di precisione a seconda
che i valori numerici siano rappresentati con un formato integer oppure
real.
• Uso Efficiente della Memoria Fisica: spieghiamo il concetto con un
esempio. Memorizzare due icone corrispondenti a maschio e femmina
è meno efficiente che memorizzare (0,1); questo esempio mostra anche
come alcuni requisiti possano essere in conflitto; infatti la memorizzazione di (0,1), pur essendo positiva per l’efficienza di memorizzazione,
inficia la interpretabilità. E’ dunque, in alcuni casi, necessario gestire
un tradeoffs tra le varie dimensioni.
L’efficienza nell’impiego dei supporti di memorizzazione è spesso in contrasto
con le altre dimensioni, in particolare con appropriatezza ed interpretabilità.
Per quanto riguarda un approfondimento degli aspetti di appropriatezza
ed interpretabilità, si possono considerare alcuni testi sulle problematiche
dell’Interazione Uomo-Computer (HCI Human-Computer Interaction) e di
Usabilità come [6] e [7].
L’unica dimensione legata alle istanze fisiche è la Consistenza del Formato, definita come l’assenza di conflitti tra il formato e l’istanza fisica.
2.3.3
Qualità dei Valori dei Dati
La definizione di metodi e tecniche per valutare e migliorare gli schemi concettuali e gli schemi logici in differenti domini applicativi è ancora una fertile
area di ricerca. La qualità dei valori dei dati, è l’area dove si è sperimentato
di più. Descriviamo in dettaglio quattro dimensioni di qualità dei valori, più
precisamente, l’accuratezza, la completezza, la currency e la consistenza.
Accuratezza
L’accuratezza è definita come la vicinanza tra un valore v e un valore v’,
considerato la corretta rappresentazione dell’evento del mondo reale che v
vuole rappresentare. Per esempio se il nome di una persona è John, il
valore v’ =John è corretto, invece il valore v =Jhn non è corretto. Esistono
due tipi di accuratezza chiamati rispettivamente, accuratezza sintattica e
accuratezza semantica.
L’accuratezza sintattica è la vicinanza di un valore v agli elementi del
corrispondente dominio di definizione D. Nell’accuratezza sintattica non si
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
22
è interessati a confrontare v con il vero valore v’ ; piuttosto, si è interessati
a controllare se v è uno dei valori in D. Ad esempio, se v =Jack, anche se
v’ =John, v è considerato sintatticamente corretto e Jack è un valore ammissibile nel dominio dei nomi di persona. Nel capitolo 3 vengono approfonditi
i metodi per misurare l’accuratezza sintattica, ma diamo uno sguardo generale alle possibili misurazioni; si possono utilizzare delle funzioni di distanza
che valutano la distanza tra v e i valori in D, i vari tipi di funzioni sono
descritte in dettaglio nell’appendice. Consideriamo la tabella 2.1 introdotta
precedentemente che descrive una relazione Movies, il valore Rman Holiday
del Title del movie 3 è sintatticamente inaccurato, in quanto non corrisponde a nessun titolo di movie. Roman Holiday è il titolo di movie più vicino a
Rman Holiday.
L’accuratezza semantica è la vicinanza del valore v al vero valore v’.
Consideriamo nuovamente la relazione Movies mostrata in tabella 2.1. Lo
scambio di director per le tuple 1 e 2 è un esempio di errore di accuratezza
semantica. Per quanto riguarda la misurazione, mentre per l’accuratezza
sintattica è ragionevole utilizzare funzioni di confronto, per l’accuratezza
semantica è più accettabile un dominio come <corretto, non corretto> per
la sua misurazione. A differenza dell’accuratezza sintattica, la misurazione
di quella semantica di un valore v necessita che il vero valore di v sia noto.
L’accuratezza semantica è di solito più complessa da misurare.
L’accuratezza, in generale, può essere misurata a differenti livelli di granularità del modello dei dati, facendo riferimento al modello relazionale l’accuratezza può riguardare: i singoli valori di un attributo di una relazione,
il singolo attributo, la relazione e perfino l’intero database. Quando viene
considerata l’accuratezza di un insieme di valori, si può introdurre un tipo di
accuratezza chiamata Duplicazione. La Duplicazione si manifesta quando,
un’entità del mondo reale viene memorizzata due o più volte in una sorgente dati. Al momento del popolamento del database, se viene effettuato un
controllo di consistenza sulla chiave primaria il problema della duplicazione
è escluso a priori.
Completezza
Esistono tre tipi di completezza. La completezza dello schema è definita
come il grado con il quale i concetti e le loro proprietà sono presenti nello
schema. La completezza dell’ attributo è definita come una misura dei valori
mancanti per uno specifico attributo di una relazione. La completezza della
popolazione valuta i valori mancanti rispetto ad una popolazione di riferimento. Focalizziamoci su un particolare modello di dati, più precisamente
sul modello relazionale e vediamo cosa significa completezza in questo caso.
La completezza di una relazione può esser definita come il grado con il
quale la relazione rappresenta la corrispondente parte del mondo reale. Nel
modello relazionale, la completezza è definita in base a:
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
23
1. la presenza/assenza e significato dei valori nulli.
2. la validità di una delle due assunzioni chiamate rispettivamente open
world assumption e closed world assumption
In un modello con valori nulli, la presenza di un valore nullo ha il significato generale di valore mancante, ma è importante capire perchè tale valore
non è presente. I significati che si possono dare sono:
• il valore non è presente perchè esiste nel mondo reale ma non è conosciuto.
• il valore non è presente perchè non esiste in generale.
• il valore non è presente perchè potrebbe esistere ma attualmente non
si è a conoscenza del fatto che esista oppure no.
Nei modelli logici come quello relazionale, ci sono due assunzioni per
la completezza dei dati di una istanza r di relazione. La closed world assumption (CWA) indica che solo i valori attualmente presenti in una tabella
relazionale r e nessun altro valore rappresentano i fatti veri del mondo reale.
Nella open world assumption (OWA) non possimo indicare ne la verità ne
la falsità dei fatti non rappresentati nelle tuple di r.
Dalle quattro possibili combinazioni, considerare/non considerare i valori
nulli e OWA/CWA vengono fuori due casi:
1. modello senza valori nulli che rispetta OWA.
2. modello con valori nulli che rispetta CWA.
Nel modello con valori nulli che rispetta CWA, la completezza può esser
definita considerando la granularità degli elementi del modello: valore, tupla,
attributo e relazione come mostrato in figura 2.2. E’ possibile definire:
• Completezza del Valore: rileva la presenza di valori nulli per alcuni
campi di una tupla.
• Completezza della Tupla: definita per una tupla, in base ai valori di
tutti i suoi campi.
• Completezza dell’Attributo: misura il numero di valori nulli di un
particolare attributo in una relazione.
• Completezza della Relazione: rileva la presenza di valori nulli in una
relazione.
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
24
Figura 2.2: Completezza di differenti elementi del modello relazionale
Dimensioni Temporali: Currency, Timeliness e Volatility
La Currency riguarda quanto tempestivamente i dati sono aggiornati. Può
esser considerata una accuratezza temporale. Riprendendo l’esempio della
relazione Movies mostrata in tabella 2.1, si può notare che l’attributo #Remakes del movie 4 ha una bassa currency, in quanto un remake del movie
4 è stato fatto, ma questa informazine non risulta nell’aumento del valore
del numero di remake. Altro esempio è quello dell’indirizzo, se un indirizzo
di residenza di una persona è aggiornatso, quindi corrisponde all’indirizzo
dove attualmente vive, la currency è alta.
La Volatility riguarda la frequenza in base alla quale i dati cambiano nel
tempo. Per esempio, dati stabili come le date di nascita hanno volatilità
pari a zero, invece il numero di scorte di un magazzino ha un alto grado di
volatilità, in quanto cambia frequentemente.
La Timeliness esprime quanto è aggiornato il dato per il compito preso in considerazione. Esistono casi in cui i dati sono aggiornati, ma non
sono attualmente utili perchè in ritardo rispetto ad uno specifico utilizzo.
Per esempio, consideriamo la tabella degli orari dei corsi universitari, essa
può essere aggiornata con i valori più recenti, ma è possibile che non sia
disponibile in tempo, ad esempio dopo l’inizio dei corsi.
Consistenza
La dimensione consistenza rileva le violazioni di regole semantiche definite
su un insieme di dati. Con riferimento alla teoria del modello relazionale, i
vincoli di integrità sono un istanza di queste regole semantiche. Diamo una
panoramica dei vincoli di integrità del modello relazionale che permettono
di comprendere il concetto di consistenza.
I vincoli di integrità sono proprietà che devono essere soddisfatte da
tutte le istanze di uno schema di basi di dati. Sono normalmente definiti
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
25
sugli schemi ma possono essere controllati su una singola istanza di uno
schema. Ogni vincolo può essere visto come un predicato che associa ad
ogni istanza, il valore vero o falso. Se il predicato assume il valore vero
diciamo che l’istanza soddisfa il vincolo. In generale ad uno schema di basi
di dati si associano un insieme di vincoli e si considerano corrette le istanze
che soddisfano tutti i vincoli.
Si possono distinguere due principali categorie di vincoli di integrità, in
base agli elementi di un database che sono coinvolti: vincoli intra-relazionali
e vincoli inter-relazionali. I vincoli intra-relazionali possono riguardare i
singoli attributi o più attributi di una singola relazione. Questi vincoli hanno
due casi particolari, vincolo di tupla: è un vincolo che può essere valutato su
ciascuna tupla indipendentemente dalle altre, e vincolo sui valori o vincolo
di dominio: che impone restrizioni sul dominio dell’attributo. I vincoli
inter-relazionali coinvolgono gli attributi di più relazioni.
I vincoli di integrità principali sono le Dipendenze.
• Dipendenza di chiave: è il più semplice tipo di dipendenza. Data una
istanza r di relazione con un insieme di attributi, per un sottoinsieme
K degli attributi una dipendenza di chiave è definita, se non ci sono
tuple di r che hanno gli stessi valori per il sottoinsieme K.
• Dipendenza di inclusione: detta anche vincolo referenziale, su un’istanza di relazione r dichiara che alcune colonne di r sono contenute
in altre colonne di r o in altre istanze relazionali s. Un vincolo di
chiave esterna è un esempio di dipendenza di inclusione.
• Dipendenza Funzionale: data un’istanza di relazione r, siano X e Y
due insiemi non vuoti di attributi in r. r soddisfa la dipendenza
funzionale
X→Y
se per ogni coppia di tuple t1 e t2 in r vale:
If t1.X =t2.X, then t1.Y =t2.Y
dove la notazione t1.X significa la proiezione delle tuple t1 sugli attributi in X.
CAPITOLO 2. QUALITÀ DEI DATI E DIMENSIONE
2.4
26
TradeOffs tra Dimensioni
Le dimensioni di qualità non sono indipendenti, ma correlate tra loro. Se
una dimensione viene considerata più importante delle altre per una specifica
applicazione, la scelta di favorire tale dimensione potrebbe avere conseguenze
negative per le altre. Stabilire i tradeoffs tra dimensioni è un problema da
non sottovalutare. Facciamo alcuni esempi.
Primo, tradeoffs tra timeliness e una tra le dimensioni accuratezza, completezza e consistenza. Avere dati accurati (o completi o consistenti) potrebbe richiedere tempo, avendo un effetto negativo sulla timeliness. Al
contrario, avere dati tempestivi potrebbe causare una bassa accuratezza (o
completezza o consistenza). Un esempio di questo caso, sono le applicazioni web. Considerando i vincoli di tempo che sono spesso molto stretti
per disponibilità di dati sul web, è possibile che tali dati abbiamo qualche
problema rispetto alle altre dimensioni di qualità. Per esempio, una lista
di corsi pubblicata su un sito web di un’università deve essere tempestiva,
sebbene potrebbe contenere errori di accuratezza o consistenza e alcuni campi potrebbero non essere presenti. Se consideriamo, invece, un’applicazione
di e-banking l’accuratezza, la consistenza e la completezza sono molto più
importanti della timeliness.
Un caso di tradeoffs interessante è quello tra consistenza e completezza. La domanda che ci si pone è la seguente: è meglio avere pochi dati
ma consistenti, o avere più dati ma inconsistenti ? In base al dominio applicativo la scelta cambia. Nel campo statistico, l’analisi dei dati richiede
una gran quantità di dati e l’approccio è favorire la completezza tollerando
l’inconsistenza o adottando tecniche per risolverla. Invece, se consideriamo
un’applicazione che calcola i salari degli impiegati di una compagnia è più
importante la consistenza della completezza.
Le dipendenze tra le dimensioni di DQ, sebbene non siano analizzate in
modo consistente nell’area di ricerca dell’information quality, rappresentano
un problema di importanza primaria. La conoscenza delle dipendenze può
aiutare gli analisti di DQ nel trovare errori e può essere utile per valutare
il livello di qualità di un insieme di dati. In [10] viene proposto un approccio data-driven per l’analisi delle dipendenze tra le dimensioni di qualità.
L’analytical framework proposto fornisce modelli di dipendenze e formule
analitiche basate sull’entropia di Shannon. Quest’ultima caratterizza ogni
modello e propone misure di correlazione tra le dimensioni. L’identificazione automatica di modelli di dipendenze per un particolare insieme di dati è
possibile grazie al framework implementato.
Capitolo 3
Analisi delle Metriche
Questo capitolo analizza le metriche presenti in letteratura, relative ad alcune dimensioni di DQ. Per alcune delle dimensioni esistenti viene fatta una
panoramica delle possibili metriche. Le dimensioni prese in considerazione
sono relative alla qualità dei dati, in quanto la valutazione e l’implementazione delle metriche è meno complessa delle dimensioni del modello concettuale
e della rappresentazione dei dati.
Per ogni dimensione viene fornito il Nome e la Definizione, i Tipi
di Dati : il tipo di dato (strutturato, semistrutturato, non strutturato) sul
quale è possibile valutare la dimensione. Per ogni metrica viene fornita la
Descrizione, il Tipo: se essa è diretta, ovvero calcolabile direttamente
sui dati strutturati (dati del database) o indiretta se necessita di altri dati/informazioni, Informazioni : se necessita di informazioni esterne ai dati
da valutare , ovvero di metadati, il Contesto: se può essere applicata su
qualunque contesto di dati (generale) oppure su contesti particolari (finanziario, scientifico, statistico, etc.) (particolare), la Granularità: il livello di
granularità sul quale può essere applicata (database, relazione, tupla, attributo, valore), la Scala dei Risultati : la scala sul quale vengono riportati
i risultati della metrica (intervallo [0, 1], insieme N+ , R+ , etc.).
Nel paragrafo 3.1, viene presentata una tabella che elenca per alcune dimensioni di qualità, la presenza o assenza di metriche e la relativa creazione
dell’algoritmo di implementazione. Spieghiamo il significato della tabella e
dei valori. Sono presenti tre colonne, il nome della dimensione, la metrica di valutazione e la creazione dell’algoritmo. Tralasciando il nome della
dimensione, la colonna metrica di valutazione vuole indicare per quella particolare dimensione l’esistenza (Presente) o la non esistenza (Assente) di
almeno una metrica nella letteratura presente o se non è presente un metodo di misura esplicito, almeno un’euristica o conoscenza che fornisca una
soluzione al problema di DQ. La colonna creazione algoritmo, vuole indicare la possibilità di creare un algoritmo, un implementazione delle metriche
esistenti, se appunto sono presenti (in base al relativo valore nella colonna
27
CAPITOLO 3. ANALISI DELLE METRICHE
28
metrica di valutazione). I valori di questa colonna non si basano su esperimenti reali e pratici, ma su valutazioni teoriche, nel senso che per quella
particolare metrica si è cercato di “farsi un’idea” di come implementarla con
gli strumenti a disposizione. Infatti, il valore Non Possibile indica che la
creazione non è possibile perchè non sono presenti metriche di valutazione,
il valore Possibile indica che la creazione è possibile perchè la metrica non
richiede particolari metodi di misura, come dati coinvolti non troppo particolari o strumenti di misura non troppo specifici e il valore Difficile indica
che la creazione è molto complessa in quanto la metrica richiede strumenti
particolari (tecniche di Intelligenza Artificiale, questionari su un insieme di
utenti) o informazioni aggiuntive non disponibili. Facciamo due esempi, il
primo di metrica presente e creazione algoritmo possibile, il secondo di metrica presente e creazione algoritmo difficile. Il primo esempio è relativo alla
dimensione duplication per la quale la metrica si basa sul calcolo del numero di duplicati (record duplicati), la metrica potrebbe essere implementata
con tecniche di record matching quindi la creazione dell’algoritmo è possibile. Il secondo esempio è relativo alla dimensione relevancy, ovvero al grado
con cui i dati sono adatti e utili per uno specifico scopo, la metrica si basa
sulla forma funzionale simple ratio con un rapporto tra i dati considerati
“pertinenti” e il numero totale di dati. La creazione dell’algoritmo è molto
difficile, in quanto prima di effettuare il semplice rapporto (il numero totale
di dati è facilmente calcolabile), l’algoritmo dovrebbe risolvere il vero problema: determinare il significato di “pertinente allo scopo” e successivamente
dividere i dati in base alla loro utilità rispetto all’obiettivo. Con algoritmi
tradizionali questo è molto difficile e si rendono utili, ad esempio tecniche di
intelligenza artificiale.
29
CAPITOLO 3. ANALISI DELLE METRICHE
3.1
Tabella Dimensioni - Metriche - Algoritmi
Nome Dimensione
Metrica di Valutazione
Creazione Algoritmo
Accessibility
Accuracy Syntactic
Accuracy Semantic
Appropriate amount of data
Believability
Completeness
Concise Representation
Consistency
Currency
Detail
Duplication
Ease of Manipulation
Objectivity
Relevancy
Reputation
Security
Timeliness
Ease of Understanding
Variety of Data Sources
Value-Added (Usefulness)
Volatility
Presente
Presente
Presente
Presente
Presente
Presente
Presente
Presente
Presente
Assente
Presente
Presente
Presente
Presente
Presente
Presente
Presente
Presente
Assente
Presente
Presente
Possibile
Possibile
Possibile
Difficile
Difficile
Possibile
Difficile
Possibile
Possibile
Non Possibile
Possibile
Difficile
Difficile
Difficile
Difficile
Possibile
Possibile
Difficile
Non Possibile
Difficile
Possibile
Tabella 3.1: Tabella Dimensioni-Metriche-Algoritmi
CAPITOLO 3. ANALISI DELLE METRICHE
3.2
30
Dimensioni della Qualità dei Dati: Metriche
Presentiamo di seguito, uno schema che mette in relazione il concetto di
dimensione, metrica e algoritmo con alcune particolarità per il concetto di
metrica.
Figura 3.1: Schema relazione tra dimensione, metrica e algoritmo
Approfondiamo i concetti dello schema:
• Dimensione: La dimensione, definita in modo preciso nel Capitolo 2,
è l’aspetto della qualità che si vuole analizzare e valutare.
• Metrica: La metrica è il metodo con il quale deve essere effettuata la
valutazione (quantitativa) della dimensione.
• Algoritmo: L’algoritmo è l’implementazione della metrica.
• Contesto di Utilizzo: Esistono metriche che possono essere utilizzate in contesti generali, su qualunque database senza informazioni
riguardanti il contesto di utilizzo; altre metriche invece dipendono dal
contesto d’uso; ad esempio, delle metriche possono essere applicate su
database che contengono qualunque tipo di dato, come quelle relative
alla completezza, altre invece sono legate ai dati contenuti nel database (finanziari, scientifici, etc.) perchè necessitano di informazioni sui
dati che provengono dal contesto, come nel caso della currency, che
necessita del metadato frequenza media di aggiornamento del dato; la
frequenza varia notevolmente in base al tipo di dato. La frequenza dei
CAPITOLO 3. ANALISI DELLE METRICHE
31
dati finanziari è molto più alta dei dati scientifici, basti pensare alle
quotazioni in borsa dei titoli azionari che variano minuto dopo minuto.
• Informazioni Aggiuntive: Alcune metriche per poter funzionare
hanno bisogno di informazioni in più rispetto ai soli valori del database. Alcuni esempi sono le lookup table ovvero tabelle che contengono
tutti i valori corretti di un determinato dominio (nomi, indirizzi, etc.),
oppure relazioni uguali a quelle che si sta analizzando, ma complete e
con valori accurati.
• Granularità: La granularità è il livello di dettaglio di applicazione
della metrica, ad esempio una metrica può essere applicata ad una
relazione, ad un attributo, ad una tupla o al singolo valore.
CAPITOLO 3. ANALISI DELLE METRICHE
3.2.1
32
Syntactic Accuracy
Nome
Definizione
Tipi di Dati
Syntactic Accuracy / Free of Error
Vicinanza tra il valore v con gli elementi del relativo dominio D
di definizione
Strutturati
Prima metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Funzioni di Distanza : valutano la distanza tra v e i valori di D
Diretta
Necessita di lookup table
Generale
Valore
Insiemi N+ , R+
Alcune delle possibili funzioni di distanza sono:
• Distanza di edit
• Distanza pesata
• Soundex
• Distanza pesata basata sulle frequenze
Le funzioni di distanza vengono approfondite attraverso una panoramica di
quelle esistenti nell’Appendice B.
Seconda metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Simple Ratio
Diretta
Necessita di lookup table
Generale
Basi di Dati, Relazioni, Attributi
Intervallo [0,1]
E’ definita come il rapporto tra il numero di valori accurati e il numero
di valori totali, sottratto a 1
CAPITOLO 3. ANALISI DELLE METRICHE
33
Terza metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Metriche per gli errori di accuratezza che influiscono sul confronto
tra tuple
Indiretta
Necessita di lookup table
Generale
Tuple
Intervallo [0,1]
Il confronto è basato sulle tuple della sorgente dati sotto esame rispetto
alle tuple di un altra sorgente che si suppone contenga le stesse ma corrette
tuple. In questo processo gli errori di accuratezza dei valori degli attributi
possono non influenzare il confronto tra tuple oppure possono influenzarlo in
maniera tale da non permetterlo. Consideriamo alcune metriche in questo
contesto.
Consideriamo uno schema relazionale R costituito da K attributi e un’istanza r di relazione composta da N tuple. Sia yij = (i = 1..K, J = 1..N )
una variabile booleana definita in corrispondenza dei valori qij delle celle
tale che yij è uguale a zero se qij è sintatticamente accurato, altrimenti è
uguale a uno.
Per identificare se gli errori di accuratezza influenzano o meno il confronto di una tabella relazionale r con una tabella di riferimento r’ contenente
i valori corretti introduciamo una variabile booleana sj che è uguale a zero se la tupla tj corrisponde a una tupla in r’, altrimenti è uguale a uno.
Introduciamo tre metriche.
La prima metrica è chiamata weak accuracy error ed è definita come:
j=N
X
j=1
V
β((qj > 0) (sj = 0))
N
dove β(·) è una variabile booleanaPuguale a uno se la condizione in parentesi
j=N
è vera, altrimenti zero, e qj =
j=1 qij . Tale metrica considera il caso
in cui per una tupla tj si verificano errori di accuratezza (qj > 0) ma non
influenzano l’identificazione (sj = 0).
La seconda metrica è chiamata strong accuracy error ed è definita come:
j=N
X
j=1
V
β((qj > 0) (sj = 1))
N
dove β(.) è una variabile booleana
uguale a uno se la condizione in parentesi
Pj=N
è vera, altrimenti zero, e qj = j=1
qij . Tale metrica considera il caso in cui
per una tupla tj si verificano errori di accuratezza (qj > 0) che influenzano
l’identificazione (sj = 1).
CAPITOLO 3. ANALISI DELLE METRICHE
34
La terza metrica determina la percentuale di tuple accurate rispetto alla
tabella di riferimento. E’ definita come:
j=N
X β((qj = 0) V(sj = 0))
N
j=1
considerando la frazione di accurate (qj = 0) e corrispondenti (sj = 0) tuple.
3.2.2
Semantic Accuracy
Nome
Definizione
Tipi di Dati
Semantic Accuracy / Correctness
Vicinanza tra il valore v e il valore v’ semanticamente corretto
corrispondente a v
Strutturati
La semantic accuracy è più complessa da misurare rispetto alla syntactic
accuracy. La complessità deriva dal fatto che il corrispondente valore v’ di v
semanticamente corretto deve essere conosciuto. Le metriche per la semantic
accuracy utilizzano una scala di risultati del tipo <corretto, non corretto>
Prima metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Sostituzione con syntactic accuracy
Indiretta
Necessita di lookup table
Generale
Valore
<corretto,non corretto>
Il problema di misurare la semantic accuracy viene sostituito molto spesso la misura della syntactic accuracy, soprattutto quando si conosce a priori
che il grado di errori dei valori presenti nella relazione è molto basso.
Seconda metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Funzioni di Distanza
Indiretta
Necessita di lookup table
Generale
Valore
<corretto,non corretto>
Con le funzioni di distanza si valuta il valore di una cella della relazione
con il valore della cella corrispondente di un’altra relazione (o più di una
relazione) identica e considerata semanticamente corretta. Questo tipo di
metrica richiede la soluzione all’ object identification problem ovvero il problema di capire se due tuple si riferiscono alla stessa entità del mondo reale
CAPITOLO 3. ANALISI DELLE METRICHE
35
oppure no.
Per fare questo bisogna risolvere altri due sottoproblemi:
• Identificazione: le tuple in relazioni diverse di solito hanno identificatori diversi e si deve effettuare un confronto tra chiavi per mettere
in corrispondenza le stesse tuple in differenti relazioni.
• Strategia di Decisione: dopo che le tuple sono state collegate si
verifica che corrispondano alla stessa entità oppure no.
Terza metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Simple Ratio
Diretta
Necessita di lookup table
Generale
Basi di Dati, Relazioni, Attributi
<corretto,non corretto>
Utilizzando la metrica per la misura della semantic accuracy sui singoli valori, si può calcolare un indice che esprima quanti valori sono semanticamente
corretti, rispetto al totale dei valori. Si effettua il rapporto tra il numero di
valori accurati rispetto al numero totale di valori, sottratto a 1.
3.2.3
Duplication
Nome
Definizione
Tipi di Dati
Duplication / Uniqueness Accuracy per insiemi di valori
Un entità del mondo reale è memorizzata due o più volte nella
base di dati
Strutturati
Metrica
Consideriamo l’ipotesi che sulla relazione non venga eseguito nel momento
del popolamento della tabella un controllo di consistenza sulla chiave primaria, nel caso contrario il problema della duplicazione non si verificherebbe.
Descrizione
Calcolo del numero di duplicati
Tipo
Diretta
Informazioni
Nessuna Informazione
Contesto
Generale
Granularità
Basi di Dati, Relazioni
Scala Risultati Insieme N+ oppure %
La metrica calcola il numero di duplicati presenti in una base di dati o
ancora meglio in una relazione, confrontando principalmente i valori della
chiave primaria che si suppone non siano consistenti.
CAPITOLO 3. ANALISI DELLE METRICHE
3.2.4
36
Completeness
Nome
Definizione
Tipi di Dati
Completeness
Grado in cui i valori previsti in uno schema sono presenti
nell’istanza dello schema
Strutturati e Semistrutturati
Prima metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Modello Completezza
Reference Relation
Diretta
Necessita di una Reference Relation
Generale
Relazione
Intervallo [0,1]
Modello senza valori nulli con assunzione OWA
Introduciamo il concetto di Refence Relation; data una relazione r la reference relation di r detta ref (r) è la relazione contenente tutte le tuple che
soddisfano lo schema relazionale di r. Ad esempio se ho una relazione DIP
che rappresenta gli impiegati di uno specifico dipartimento e un particolare
impiegato non è presente come una tupla di DIP, la tupla in questione è presente in ref (DIP) e quindi le due relazioni differisco esattamente per quella
tupla. Molte volte la reference relation non è disponibile, è più probabile
che sia presente la sua cardinalità. In base a queste considerazioni la completezza di una relazione r è misurata con il rapporto tra il numero di tuple
attualmente presenti nella relazione r e il numero di tuple della reference
relation di r. In formula:
|r|
C(r) =
|ref (r)|
Seconda metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Modello Completezza
Attribute Completeness - Simple Ratio
Diretta
Nessuna Informazione
Generale
Attributi
Intervallo [0,1] oppure %
Modello con valori nulli con assunzione CWA
La metrica misura la presenza di valori nulli per un particolare attributo
di una relazione. Si considera il rapporto tra il numero di tuple che hanno
per quell’attributo un valore nullo rispetto al numero totale di tuple presenti
nella relazione, sottratto a 1.
CAPITOLO 3. ANALISI DELLE METRICHE
37
Terza metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Modello Completezza
Tuple completeness - Simple Ratio
Diretta
Nessuna Informazione
Generale
Tuple
Intervallo [0,1] oppure %
Modello con valori nulli con assunzione CWA
La metrica misura la presenza di valori nulli per una particolare tupla di
una relazione. Si considera il rapporto tra il numero di valori nulli presenti
nella tupla ovvero il numero di attributi con valori nulli per la tupla rispetto
al numero totale di attributi della tupla stessa, sottratto a 1.
Quarta metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Modello Completezza
Relation completeness - Simple Ratio
Diretta
Nessuna Informazione
Generale
Relazione
Intervallo [0,1] oppure %
Modello con valori nulli con assunzione CWA
La metrica misura la presenza di valori nulli in una relazione. Si considera il rapporto tra il numero di valori nulli presenti nella relazione ovvero
il numero di celle con valori nulli rispetto al numero totale di celle della
relazione.
3.2.5
Currency
Nome
Definizione
Tipi di Dati
Currency
Grado di aggiornamento dei dati
Strutturati, Semistrutturati, non strutturati
Prima metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Differenza rispetto al metadato
Diretta
Necessita del metadato / frequenza di aggiornamento
Particolare
Attributo, Valore
<current,not current>
La metrica si basa sulla disponibilità del metadato che corrisponde all’ultima
CAPITOLO 3. ANALISI DELLE METRICHE
38
volta in cui è stato aggiornato lo specifico dato, ovvero l’ultimo aggiornamento effettuato.
• Se la frequenza di aggiornamento è nota, la currency per tali valori è
calcolabile in maniera esatta.
• Se è nota la frequenza di aggiornamento media si può calcolare una
currency media considerando un certo grado di errore.
Seconda metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Ritardo temporale
Diretta
Necessita del ritardo temporale
Particolare
Attributo, Valore
<current,not current>
La metrica calcola il ritardo temporale tra l’evento del mondo reale e la
sua registrazione nella base di dati; più precisamente è la differenza tra il
momento in cui i dati vengono memorizzati nel sistema e il momento in cui
i dati vengono modificati nel dominio reale. Ad esempio consideriamo le
dichiarazioni dei redditi e una base di dati che rappresenta le dichiarazioni;
se l’inserimento avviene 6 mesi dopo l’invio, allora la currency è uguale a 6.
Terza metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Somma di Age e tempo presenza nella base di dati
Diretta
Informazioni temporali
Particolare
Attributo, Valore
<current,not current>
La metrica è definita come :
Currency = Age + (DeliveryT ime − InputT ime)
dove Age è la differenza tra l’istante in cui è stato prodotto il dato e l’istante
in cui è stato ricevuto ovvero quanto datato è il dato quando ricevuto,
DeliveryTime indica il tempo in cui il dato prodotto è rilasciato al cliente,
InputTime indica quando il dato è ottenuto. Quindi è la somma di Age
e (DeliveryTime - InputTime) che misura da quanto il dato è nel sistema
informativo.
CAPITOLO 3. ANALISI DELLE METRICHE
3.2.6
39
Volatility
Nome
Definizione
Tipi di Dati
Volatility
Frequenza con la quale i dati variano nel tempo
Strutturati, Semistrutturati, non strutturati
Ricordiamo che la volatility di un dato è una proprietà intriseca del dato stesso ed è indipendente dal tempo relativo di memorizzazione nella base
di dati.
Metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Differenza tra aggiornamenti successivi
Diretta
Informazioni temporali
Particolare
Attributo, Valore
Intervallo [0,1]
La metrica propone la misura della volatility su una scala tra 0 e 1, dove 0 si riferisce ai dati non volatili ovvero che non cambiano nel tempo e 1 si
riferisce ai dati che sono in continuo cambiamento. Si utilizza una misura in
base al tempo, si calcola il tempo tra due aggiornamenti successivi e proprio
questo tempo è utilizzato per caratterizzare la volatility. Quindi è definita
come la lunghezza del periodo di tempo per il quale rimane valido; successivamente il valore dovrà essere normalizzato secondo una scala prefissata
per esprimere il valore nell’intervallo [0,1].
3.2.7
Timeliness
Nome
Definizione
Tipi di Dati
Timeliness
Grado con cui l’aggiornamento di un dato è appropriato per uno
specifico scopo
Strutturati, Semistrutturati, non strutturati
Metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Forma Funzionale - Min or Max Operation (DQA)
Indiretta
Valutazioni di altre dimensioni
Particolare
Attributo, Valore
Intervallo [0,1]
La misura della dimensione Timeliness implica il compito di verificare se
i dati sono aggiornati, ma anche se sono disponibili, al tempo giusto per un
CAPITOLO 3. ANALISI DELLE METRICHE
40
certo compito o scopo. La metrica quindi deve, misurare la currency e controllare che i dati siano disponibili prima del periodo di utilizzo pianificato.
E’ definita come:
currency
max 0, 1 −
volatility
La scala dei risultati in output va da 0 a 1, dove 0 significa una timeliness
non buona invece 1 una buona timeliness. La metrica definisce la timeliness in funzione della currency e della volatility , esiste una dipendenza
tra queste ultime due dimensioni nella definizione sopra ovvero i dati che
sono altamente volatili devono essere aggiornati invece la currency è meno
importante per quei dati con una bassa volatilità.
Un’ esponente può essere utilizzato come fattore di precisione : se il valore di timeliness ottenuto attraverso la metrica sopra indicata viene elevato
ad un esponente maggiore di uno, significa che i dati perdono tempestività
velocemente (più l’esponente è alto, più il valore di timeliness aumenta); se
il valore di timeliness ottenuto viene elevato ad un esponente minore di uno,
significa che i dati perdono tempestività con un basso tasso di velocità (più
l’esponente è basso, più il valore di timeliness diminuisce).
3.2.8
Consistency
Nome
Definizione
Tipi di Dati
Consistency
Grado in cui i valori degli attributi di una istanza di uno schema
soddisfano l’insieme di regole semantiche definite sullo schema
Strutturati
Prima metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Forma Funzionale - Simple Ratio (DQA)
Diretta
Vincoli di integrità
Particolare
Attributo
Intervallo [0,1]
La metrica misura la percentuale di violazioni di un vincolo o regola rispetto
al numero totale di controlli effettuati, sottratto a 1.
CAPITOLO 3. ANALISI DELLE METRICHE
41
Seconda metrica
Descrizione
Tipo
Informazioni
Contesto
Granularità
Scala Risultati
Conteggio violazioni
Diretta
Vincoli di integrità
Particolare
Tupla
Insieme N+
La metrica calcola il numero di record che non soddisfano i vincoli o le
regole definite su di essi.
3.2.9
Concise Representation
Nome
Definizione
Tipi di Dati
Concise representation
Grado con cui i dati sono rappresentati in modo conciso
Strutturati, Semistrutturati
Metrica
E’ possibile misurare questa dimensione con la forma funzionale, simple ratio
(DQA). La metrica misura il grado di concisione della rappresentazione di
un insieme di informazioni, ovvero la percentuale dei dati considerati concisi
rispetto al totale dei dati.
3.2.10
Relevancy
Nome
Definizione
Tipi di Dati
Relevancy
Grado in cui i dati sono adatti e utili per uno specifico scopo
Strutturati, Semistrutturati
Metrica
E’ possibile misurare questa dimensione con la forma funzionale, simple ratio
(DQA). La metrica misura la percentuale dei dati considerati pertinenti e
utili, rispetto al totale dei dati.
3.2.11
Ease of manipulation
Nome
Definizione
Tipi di Dati
Ease of manipulation
Grado in cui i dati sono facili da manovrare e da gestire e sono
adatti per differenti scopi
Strutturati, Semistrutturati
CAPITOLO 3. ANALISI DELLE METRICHE
42
Metrica
E’ possibile misurare questa dimensione con la forma funzionale, simple
ratio (DQA). La metrica misura la percentuale dei dati considerati facili da
manovrare rispetto alla totalità dei dati.
3.2.12
Believability
Nome
Definizione
Tipi di Dati
Believability
Grado con cui i dati sono considerati veri e credibili
Strutturati, Semistrutturati
Prima metrica
Una prima metrica è basata sulla forma funzionale, Min or Max Operation
(DQA). La dimensione può essere valutata in vari modi, ad esempio in base
ad un giudizio soggettivo, in base all’esperienza passata o in base ad uno
standard comunemente accettato. Una volta ottenute queste variabili, esse
vengono normalizzate tra 0 e 1 e il valore complessivo di believability è dato
dal valore minimo tra tutti quelli considerati.
Seconda metrica
Una seconda metrica è basata sulla forma funzionale, Weighted Average
(DQA). E’ adatta quando è possibile assegnare un determinato grado di
importanza ad ognuna delle variabili che concorrono alla misura complessiva
del valore di believability. Si effettua una media pesata dei valori delle
variabili.
3.2.13
Appropriate amount of data
Nome
Definizione
Tipi di Dati
Appropriate amount of data
Grado in cui la quantità dei dati è appropriata
Strutturati, Semistrutturati
Metrica
La metrica è basata sulla forma funzionale, Min or Max Operation (DQA).
Consiste nel considerare il minimo tra due valori frazionari: il numero di
unità presenti fratto il numero di unità necessarie e il numero di unità
necessarie fratto il numero di unità presenti.
CAPITOLO 3. ANALISI DELLE METRICHE
3.2.14
43
Accessibility
Nome
Definizione
Tipi di Dati
Accessibility
Grado della facilità di accesso ai dati o di ottenimento dei dati
Strutturati, Semistrutturati
Metrica
La metrica è basata sulla forma funzionale, Min or Max Operation (DQA).
Enfatizza l’aspetto temporale della dimensione, è definita come il massimo
tra due termini:
∆t(richiesta dato utente, consegna dato utente)
max 0, 1 −
∆t(richiesta dato utente, dati non utili)
0 e 1 meno l’intervallo di tempo tra la richiesta dell’utente e la consegna
del dato all’utente diviso l’intervallo di tempo tra la richiesta dell’utente
e il momento in cui i dati non sono più utili. E’ possibile utilizzare un
esponente come fattore di precisione: se il valore di accessibility ottenuto
attraverso la metrica sopra indicata viene elevato ad un esponente maggiore
di uno, significa che la facilità di ottenere i dati aumenta (più l’esponente
è alto, più il valore di accessibility aumenta); se il valore di accessibility
ottenuto viene elevato ad un esponente minore di uno, significa che che la
facilità di ottenere i dati diminuisce (più l’esponente è basso, più il valore di
accessibility diminuisce).
3.2.15
Objectivity
Nome
Definizione
Tipi di Dati
Objectivity
Grado in cui i dati sono imparziali e obiettivi
Strutturati, Semistrutturati
Metrica
E’ possibile valutare la dimensione objectivity effettuando un’indagine tra gli
utenti, sottoponendo loro un questionario. Tale questionario contiene alcune
voci che sono misurate con una scala che prevede 11 valori, dove 0 significa
“per niente” e 10 “completamente”. Le voci previste per la dimensione
objectivity sono:
• l’informazione in esame è stata raccolta in modo oggettivo;
• l’informazione in esame è basata sui fatti;
• l’informazione in esame è oggettiva;
• l’informazione in esame presenta un punto di vista imparziale.
CAPITOLO 3. ANALISI DELLE METRICHE
3.2.16
44
Reputation
Nome
Definizione
Tipi di Dati
Reputation
Grado in cui i dati sono considerati e giudicati in termini della
loro provenienza o contenuto
Strutturati, Semistrutturati
Metrica
E’ possibile valutare la dimensione objectivity effettuando un’indagine tra gli
utenti, sottoponendo loro un questionario. Tale questionario contiene alcune
voci che sono misurate con una scala che prevede 11 valori, dove 0 significa
“per niente” e 10 “completamente”. Le voci previste per la dimensione
objectivity sono:
• l’informazione in esame è stata raccolta in modo oggettivo;
• l’informazione in esame è basata sui fatti;
• l’informazione in esame è oggettiva;
• l’informazione in esame presenta un punto di vista imparziale.
3.2.17
Security
Nome
Definizione
Tipi di Dati
Security
Grado in cui l’accesso ai dati è appropriatamente limitato per
garantire la loro sicurezza
Strutturati, Semistrutturati
Metrica
Una possibile metrica per misurare la security di una base di dati valuta le
seguenti voci:
• livello di sicurezza (diritti di accesso) dello schema dei dati;
• livello di sicurezza (diritti di accesso) dei tipi di dati;
• presenza di limitazioni fisiche all’accesso sulla rete;
• capacità del data store di impedire accessi non autorizzati.
3.2.18
Ease of Understanding
Nome
Definizione
Tipi di Dati
Ease of Understanding
Grado in cui i dati sono chiari, senza ambiguità e facili da
comprendere
Strutturati, Semistrutturati
CAPITOLO 3. ANALISI DELLE METRICHE
45
Metrica
E’ possibile valutare la dimensione objectivity effettuando un’indagine tra gli
utenti, sottoponendo loro un questionario. Tale questionario contiene alcune
voci che sono misurate con una scala che prevede 11 valori, dove 0 significa
“per niente” e 10 “completamente”. Le voci previste per la dimensione
objectivity sono:
• l’informazione in esame è stata raccolta in modo oggettivo;
• l’informazione in esame è basata sui fatti;
• l’informazione in esame è oggettiva;
• l’informazione in esame presenta un punto di vista imparziale.
3.2.19
Variety of Data Sources
Nome
Definizione
Tipi di Dati
Variety of Data Sources
Grado in cui i dati sono disponibili da varie fonti diverse
Strutturati, Semistrutturati
Nessuna Metrica
3.2.20
Usefulness
Nome
Definizione
Tipi di Dati
Usefulness
Grado di utilità dell’informazione per gli utenti
Strutturati, Semistrutturati, Non Strutturati
Metrica
E’ possibile ricorrere al feedback degli utenti, sottoponendo loro sondaggi e
questionari.
Capitolo 4
Realizzazione del Framework
4.1
Obiettivi
Lo scopo del framework è quello di creare un ambiente software che permetta
l’assessment della qualità dei dati di uno specifico database. In letteratura [1], il numero di dimensioni di qualità è molto alto. Ne esistono tante,
che possono essere analizzate e valutate. Si differenziano in base al modo
con cui possono essere valutate, più precisamente la valutazione può essere qualitativa o quantitativa. Inoltre dipendono anche dal tipo di dato che
può essere strutturato, semistrutturato e non strutturato, come descritto nel
Capitolo 2.
Abbiamo focalizzato lo studio sulle dimensioni relative alla qualità dei
dati, valutabili in modo quantitativo e relative ai dati strutturati. In modo
particolare si è posta l’attenzione sulle quattro dimensioni più importanti
la cui valutazione quantitativa è possibile, grazie al numero consistente di
metriche presenti in letteratura, rispetto ad altre dimensioni. Infatti una
considerazione frutto dello studio delle metriche delle dimensioni di qualità
è che molte metriche sono esprimibili teoricamente ma nella pratica la loro
implementazione incontra molte difficoltà.
Le dimensioni prese in esame sono: la completezza, l’accuratezza sintattica, la currency (una delle tre dimensioni temporali) e la consistenza.
4.2
Strumenti Utilizzati
Il framework è stato realizzato utilizzando per la maggior parte tecnologie e
strumenti di sviluppo open source, in particolare, il linguaggio di programmazione Java [23] con l’ausilio di un’ambiente di sviluppo integrato (IDE)
quale Eclipse [20]; il Database management system (DBMS) relazionale
MySQL [19].
Inoltre, è stato utilizzato il linguaggio XML [21] per la gestione dei
metadati (vedi Appendice A) utilizzati dal framework.
46
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
47
Con il linguaggio Java è stato possibile utilizzare librerie esterne open
source che svolgono un ruolo importante, elenchiamole:
• Java Database Connectivity (JDBC) [24]: le API per la connessione indipendente ai database tra un programma in linguaggio Java e
una vasta gamma di database, tra cui MySQL. Forniscono API per
l’accesso tramite il linguaggio SQL. Nel framework è utilizzata per la
connessione al database MySQL e per tutti gli accessi e gestione dei
dati ricavati dal database.
• SimMetrics [25]: è una libreria Java open source per funzioni di similarità o distanza, ad esempio Levenshtein distance; tutte le funzioni forniscono un risultato compreso tra 0 e 1. Nel framework è utilizzata in
alcune metriche per fornire le funzioni di similarità utili all’assessment
della dimensione.
• JFreeChart [26]: è una libreria Java open source che fornisce classi
per lo sviluppo di diagrammi professionali; supporta molti tipi di diagrammi e di output tra cui componenti Swing, file immagine (PNG e
JPEG), file di grafica vettoriale (EPS, PDF e SVG). Nel framework
è utilizzata per la creazione di grafici a torta, per la visualizzazione
grafica dei risultati.
• BrowserLauncher2 [27]: è una libreria Java open source che facilita
l’apertura di un browser da un’applicazione Java, di solito il browser
di default dell’utente. Nel framework è utilizzata per la visualizzazione
dei report.
Oltre alla struttura base costituita dagli algoritmi utilizzati per la valutazione delle dimensioni, il framework offre una GUI (Graphic User Interface)
che si appoggia a SWT [22], un widget toolkit open source per Java di nuova
concezione che conferisce una straordinaria efficienza e rettività.
4.3
Funzioni e Struttura
In questo paragrafo forniamo una descrizione delle funzioni offerte e della
struttura, ovvero delle classi Java, del framework.
4.3.1
Funzioni
La prima funzione offerta è la connessione/disconnesione al/dal database sul quale deve essere effettuato l’assessment della qualità, in questo
momento sono supportati database MySQL, ma con le oppurtune classi sarà
possibile gestire database come Access o Oracle. Ad ogni database caricato
viene associato un documento XML, che chiamiamo metadati dimensione
(descritto nell’Appendice A) da cui si ricava un report parziale, tramite la
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
48
formattazione del documento XML con XSL, con il quale è possibile visualizzare le valutazioni man mano effettuate. Alla prima connessione di quel
particolare database viene chiesta la creazione del documento e la scelta del
path di sistema operativo in cui sarà creato, questo path viene memorizzato
in un file di log, associato ad una chiave composta da (user, password, host, port, namedatabase) in modo che ad una successiva connessione il path
viene recuperato da questo file.
Altre funzioni offerte sono, informazioni relative al database come
numero tabelle, attributi e tuple e informazioni relative alla singola
relazione come numero attributi, tuple e un dettaglio degli attributi che
specifica nome e tipo di dati memorizzati. Ancora un’altra funzione, è quella
che offre risultati grafici delle valutazioni per mezzo di grafici a torta.
Una ulteriore funzione, relativa al documento XML che chiamiamo metadati misurazione, detta gestione dei metadati misurazione (descritti
nell’Appendice A), permette la gestione dei dati relativi alla lookup table
per l’accuratezza sintattica, all’associazione tra relazioni per la consistenza e
la frequenza media di aggiornamento per la currency. Le operazioni possibili
sono il caricamento e la creazione del documento, ma soprattutto l’aggiunta
di nuovi metadati o l’aggiornamento di quelli esistenti.
Infine, la funzione per la creazione di report completi, che creano per
la dimensione scelta un documento XML formattato con XSL, in cui sono
memorizzate le valutazioni di tutti gli elementi del database (relazioni, attributi e tuple), relative a quel particolare istante; una funzione di help e una
funzione di visualizzazione per il report parziale e i metadati misurazione.
Ovviamente, sono presenti le funzioni per la valutazione delle dimensioni ai diversi livelli di granularità, che tratteremo in modo approfondito
nei paragrafi successivi.
4.3.2
Struttura
Il framework è organizzato in due livelli, un livello di front-end in cui è presente quello che vede l’utente, ovvero l’interfaccia grafica con la sua struttura
fatta di menu, bottoni, aree di visualizzazione testuale e grafiche e molto altro che permette di accedere in maniera intuitiva e facile alle funzionalità
offerte. A livello di back-end, è presente la struttura portante, quella che ha
il compito più difficile e che costituisce il framework vero e proprio, costituita dagli algoritmi e dai dati utilizzati da essi, ma anche dai metadati, che
sono descritti in modo approfondito nell’Appendice A. Nel seguito forniamo
una descrizione delle principali classi Java che compongono il framework:
• MainWindow.java: è una classe fondamentale e realizza la GUI principale del framework.
• JDBCApp.java: realizza la GUI per la connessione al database.
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
49
• AddMetadata.java: realizza la GUI per la creazione di nuovi metadati
lookup table o aggiornamento di quelli esistenti.
• AddMetadataCurrency.java: realizza la GUI per la creazione di nuovi
metadati frequenza media o aggiornamento di quelli esistenti.
• CreateMetadata.java: crea il documento xml per i metadati misurazione.
• CreateXmlInc.java: crea il documento xml per i metadati dimensione.
• OpenBrowser.java: realizza la funzione di apertura del browser di
default.
• SearchLutAtt.java: ricerca all’interno dei metadati misurazione, la
lookup table per l’attributo.
• SearchLutRel.java: ricerca all’interno dei metadati misurazione, la
lookup table per la relazione.
• SearchMetadatiCurrency.java: ricerca all’interno dei metadati misurazione, la frequenza media di aggiornamento.
• Completeness.java: classe per l’implementazione delle metriche della
dimensione completezza.
• Currency.java: classe per l’implementazione delle metriche della dimensione currency.
• FrequencySynAcc.java: classe per l’implementazione della metrica della dimensione accuratezza sintattica dell’attributo, basata sulla frequenza dei valori.
• SyntacticAccuracy.java: classe per l’implementazione della metrica
della dimensione accuratezza sintattica dell’attributo, basata sulla lookup table.
• ConfigRecordLinkage.java: classe per la creazione della GUI relativa
alla configurazione dell’accuratezza sintattica di tuple e relazione.
• RecordLinkage.java: classe per l’implementazione della metrica dell’accuratezza sintattica di tuple e relazione.
4.4
Analisi Metriche Implementate nel Framework
In questo paragrafo verranno esplorate le quattro dimensioni considerate nel
framework, più precisamente per ognuna, verranno analizzate le metriche
implementate tramite gli algoritmi, attraverso una descrizione dettagliata
dei passi computazionali.
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
50
Figura 4.1: GUI del framework.
4.4.1
Completezza
La dimensione completezza è calcolata nei seguenti livelli di granularità:
• Relazione
• Attributo
• Tupla
La metrica è basata sull’assunzione del modello a valori nulli e rispetta la
closed world assumption CWA, spiegata in dettaglio nel Capitolo 2. La
valutazione della completezza avviene utilizzando una delle tre forme funzionali [4] (Simple Ratio, Min or Max Operation, Weighted Average), più
precisamente la Simple Ratio.
L’algoritmo utilizzato nel framework si basa sulla combinazione del modello a valori nulli, dell’assunzione CWA e della forma simple ratio.
Simple Ratio
La simple ratio, ovvero il rapporto semplice misura il rapporto tra i risultati
desiderati e il numero totale di risultati (prima forma); tuttavia una forma migliore è il numero di risultati non desiderati diviso il numero totale,
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
51
sottratto a uno (seconda forma). Il simple ratio aderisce alla convenzione
che 1 rappresenta il risultato migliore e 0 quello peggiore.
Le due forme di simple ratio, risultati non desiderati e risulati desiderati,
danno le stesse informazioni ma nella pratica si preferisce un rapporto che
mostra i risultati positivi, quindi la seconda forma, poichè questa forma è
utile per confronti longitudinali che mostrano tendenze di miglioramento.
Molte metriche di qualità dei dati assumono questa forma come ad esempio le metriche per le dimensioni free-of-error, consistency e completeness.
Altre dimensioni possono essere valutate usando questa forma, come concise
representation, relevancy e easy of manipulation.
Per quanto riguarda la completezza, questa dimensione può essere vista
da diverse prospettive che implicano metriche diverse. Ad un livello di massima astrazione, si può definire il concetto di completezza dello schema che
esprime il grado con cui entità e attributi risultano presenti nello schema.
Al livello dei dati si può definire la completezza della colonna come funzione
dei valori mancanti in una colonna della tabella. Un terzo tipo di metrica
è chiamata completezza della popolazione. Se una colonna deve contenere
almeno un’occorrenza di tutti i 50 possibili stati (valori), per esempio, ma
contiene solo 43 stati, abbiamo che la popolazione è incompleta. Ciascuna
di queste tre metriche può essere misurata tramite il rapporto tra il numero
di oggetti incompleti e il numero totale e successivamente sottraendolo a
uno.
Completezza Attributo
Dopo aver selezionato l’attributo della relazione sul quale effettuare la misurazione, l’algoritmo inizia la ricerca dei valori nulli: inizializza a zero un
contatore, per ogni tupla della relazione controlla il corrispondente valore
dell’attributo, se risulta nullo, incrementa il contatore. Al termine della
ricerca il contatore conterrà il numero di valori nulli relativi all’attributo.
Successivamente viene applicato il simple ratio, riportandoci alla terminologia, i valori nulli rappresentano i risultati non desiderati, il numero di tuple
della relazione il totale dei risultati; viene effettuato il rapporto tra i valori
nulli e il numero di tuple e dopo sottratto a uno. Il risultato è un valore
compreso tra 0 e 1 che viene espresso in percentuale moltiplicandolo per 100.
Questo tipo di completezza è chiamata anche completezza verticale.
In formula:
Nvn
CA = 1 −
Nt
dove CA è la completezza dell’attributo, Nvn è il numero di valori nulli e Nt
è il numero di tuple.
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
52
Completezza Relazione
Effettuata la scelta della relazione, l’algoritmo anche in questo caso ricerca
i valori nulli, però riferendosi all’intera relazione, infatti per ogni attributo
viene conteggiato il numero di valori nulli e poi effettuata una somma totale
che rappresenta il numero di valori nulli dell’intera relazione. A questo punto
viene utilizzata la prima forma del simple ratio, il rapporto è tra i risultati
desiderati, numero valori non nulli (ricavato dalla differenza tra il totale dei
valori e il numero di nulli), e il totale dei risultati ovvero il numero massimo
di valori che una relazione potenzialmente può contenere che corrisponde
alla grandezza della relazione data dal prodotto tra il numero di attributi
per il numero di tuple.
Questo tipo di completezza è chiamata anche completezza orizzontale.
In formula:
Nvnn
CR =
N
dove CR è la completezza della relazione, Nvnn è il numero di valori non
nulli e N è il numero massimo di valori possibili per la relazione.
Completezza Tupla
L’algoritmo, scelta la relazione, restituisce per ogni tupla il valore di completezza con una singola misurazione. Vediamo come lavora in dettaglio.
Prendiamo in considerazione il caso di una singola tupla, visto che il calcolo
si ripete in modo uguale sulle altre; la completezza è misurata tramite la
seconda forma del simple ratio. Prima di tutto vengono analizzati i valori di
tutti i campi della tupla e calcolato il numero di valori nulli, dopo viene effettuato il rapporto tra questo numero e il totale di attributi della relazione,
il rapporto viene poi sottratto a uno.
Facciamo alcune considerazioni. La misurazione effettuata dall’algoritmo
può essere vista come una misura dell’informazione contenuta attualmente,
rispetto alla massima informazione che una tupla potenzialmente può contenere, questo implica che tutti i valori della tupla contribuiscono allo stesso
modo nel determinare il valore di completezza ovvero tutti gli attributi hanno lo stesso peso, questo è il nostro caso ma è possibile che gli attributi
abbiamo pesi differenti e contribuiscano in modo diverso al risultato finale,
questo perchè un valore nullo in un attributo è più importante che in un
altro.
In formula:
Nvn
CT = 1 −
Na
dove CT è la completezza della tupla, Nvn è il numero di valori nulli e Na
è il numero di attributi.
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
4.4.2
53
Accuratezza Sintattica
La dimensione accuratezza, come è possibile notare dalla letterarura presente, si divide in accuratezza semantica e accuratezza sintattica. L’accuratezza
semantica spesso non è direttamente valutabile in quanto necessità di un confronto diretto con il mondo reale. L’accuratezza sintattica al contrario è più
facilmente valutabile, anche se la sua valutazione non è proprio diretta, nel
senso che, riferendoci al modello relazione, il risultato non è ottenibile analizzando i soli valori della relazione ma necessità di informazioni aggiuntive
che assumono un ruolo importante nella valutazione, come vedremo in seguito nel dettaglio degli algoritmi. Si è cercato di trovare algoritmi in grado
di svincolare la valutazione da queste informazioni aggiuntive ma sono state
trovate poche soluzioni alternative, la consultazione di queste informazioni
durante il calcolo per alcune metriche è indispensabile.
Definiamo meglio il concetto, dalla definizione di accuratezza sintattica
si capisce come si rende necessaria la presenza di un dominio di definizione D
in modo da poter calcolare la vicinanza tra un valore v e gli elementi del corrispondente dominio D. Dal punto di vista implementativo, il dominio può
essere visto come una sorgente dati di riferimento che viene consultata durante la valutazione, chiameremo questo dominio, LookUp Table, in modo
da mettere in evidenza la sua implementazione tramite tabelle relazionali e
la sua funzione di consultazione (dall’inglese lookup, consultare).
Funzioni di Similarità
E’ noto che le metriche per l’accuratezza sintattica si basano sull’utilizzo di
funzioni di similarità che valutano la distanza tra un valore v e gli elementi del dominio. Esistono molte funzioni [13], ad esempio distanza di edit,
distanza pesata, soundex, distanza con peso basato sulla frequenza e molte
altre, approfondiremo le funzioni esistenti nell’Appendice B, in questo paragrafo ci concentremo su due in particolare che sono utilizzate negli algoritmi:
la Jaro e la Soundex.
• Jaro: Introduce una funzione di confronto tra stringhe che tiene conto
di inserimenti, cancellazioni e trasposizioni. L’algoritmo di Jaro cerca
il numero di caratteri comuni e il numero di caratteri trasposti nelle due
stringhe. Un carattere comune è un carattere che appare in entrambe
le stringhe con una distanza pari alla metà della lunghezza della stringa
più corta. Un carattere trasposto è un carattere comune che appare
in posizioni differenti. Come esempio consideriamo le stringhe Smith
e Simth, ci sono cinque caratteri comuni, due dei quali sono trasposti.
La scala di confronto tra le stringhe per Jaro è data da:
f (s1 , s2 ) =
Nc
lengthS1
+
Nc
lengthS2
3
Nt
+ 0.5 N
c
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
54
dove s1 e s2 sono stringhe di lunghezza lengthS1 e lengthS2 rispettivamente, Nc è il numero di caratteri comuni tra le due stringhe (dove
la distanza per caratteri comuni è la metà della lunghezza minima di
s1 e s2 e Nt è il numero di trasposizioni).
• Soundex: Lo scopo della funzione soundex è quello di raggruppare
nomi che hanno suoni simili. Produce un codice, detto codice soundex.
Per esempio il codice soundex di Hilbert e Heilbpr è simile. Un codice
soundex contiene di regola quattro caratteri. La prima lettera del nome
diventa il primo carattere del codice, i restanti tre caratteri sono dati
dall’ordine sequenziale del nome, consultando una tabella predefinita.
Per esempio il codice soundex di Hilbert e Heilbpr è H416. Una volta
che il limite di quattro caratteri è raggiunto, le restanti lettere vengono
ignorate.
La Dimensione Accuratezza Sintattica è calcolata nei seguenti livelli di
granularità:
• Relazione
• Attributo
• Tupla
Accuratezza Sintattica Attributo
Per l’accuratezza sintattica dell’attributo sono state implementate due metriche, la prima si basa sul concetto di lookup table e la seconda sul concetto
di frequenza dei valori.
Per quanto riguarda la prima metrica, si assume che esista la lookup
table relativa all’attributo che si vuole dare in input all’algoritmo. La lookup
table assume una forma particolare influenzata dalle tecnologie utilizzate per
implementare il framework, utilizzando MySQL essa è defnita come una relazione composta da due campi: un campo chiave numerico, e un campo
contenente i valori che rappresentano gli elementi del dominio. Un esempio
di lookup table relativa al dominio dei nomi può essere:
Chiave
1
2
3
4
5
Nome Persona
Luca
Marco
Paolo
Giacomo
John
Dopo queste informazioni preliminari, vediamo in dettaglio l’algoritmo.
La prima operazione che viene effettuata è quella di dividere i valori dell’
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
55
attributo accurati da quelli non accurati (secondo la prima analisi), che saranno poi sottoposti ad un ulteriore analisi; ogni valore v dell’attributo viene
confrontato con tutti i valori v’ della lookup table, se risulta v = v’ allora v
può considerarsi accurato in quanto presente nel dominio, se v non corrisponde a nessun v’ allora entra a far parte dell’insieme dei valori non accurati, da
analizzare nuovamente. Su questo insieme facciamo una considerazione, esso
contiene quei valori v che evidentemente dopo la prima analisi non risultano
nel dominio, tutto quello che si può fare e una seconda analisi di vicinanza
di questi v a quelli del dominio, con la speranza che il più vicino sia il valore
che v vuole rappresentare con l’eccezione che v ha al suo interno degli errori sintattici. Riprendendo la descrizione, viene inizializzato e incrementato
un contatore per i valori non accurati. A questo punto entra in gioco la
funzione di similarità Jaro, ogni valore non accurato viene confrontato con
tutti i valori della lookup table tramite la funzione, per ogni confronto viene
restituito un valore di similarità compreso tra 0 e 1, tra tutti viene preso
il massimo valore di similarità e contemporaneamente viene memorizzato il
valore della lookup table più vicino. Questo procedimento viene ripetuto
per ogni valore non accurato, come detto in precedenza. Ogni valore non
accurato avrà quindi associato un valore di similarità e il relativo valore del
dominio più vicino.
Questo è un primo risultato che l’algoritmo restituisce, ovvero un accuratezza sintattica relativa ad ogni valore dell’attributo. Un secondo risultato è
relativo all’accuratezza dell’attributo nel suo complesso che viene calcolato
con la seconda forma del simple ratio, il rapporto tra il totale di valori non
accurati e il numero di tuple della relazione, sottratto a uno.
La seconda metrica è basata sulla frequenza dei valori e svincola completamente la valutazione dalla presenza di una lookup table per l’attributo.
Tutto quello che viene fatto è un’analisi dei valori con l’utilizzo questa volta
di due funzioni di similarità. Il dominio di definizione Df viene costruito
dall’algoritmo; non è un dominio di possibili valori per l’attributo, come ad
esempio, il dominio dei nomi di persona, ma è un dominio di confronto, ovvero un insieme costruito dall’algoritmo e utilizzato per confrontare i valori.
Procediamo con la descrizione.
Si analizzano i valori dell’attributo e per ognuno si contano le occorrenze; si passa alla creazione del dominio Df: i valori con numero di occorrenze
maggiore o uguale a 2 entrano a far parte di Df, i valori con numero di
occorrenze pari a 1, vengono considerati valori a bassa frequenza che indichiamo con vlf (low frequency value) e vengono analizzati. Ogni vlf viene
confrontato con ogni elemento di Df tramite la funzione di similarità Jaro;
ogni operazione di confronto restituisce un risultato e tra tutti questi viene
preso il massimo che indichiamo con maxsv (max similatity value) e contemporaneamente il valore di Df più vicino che chiamiamo vcl (close value).
Si analizza maxsv e se risulta maggiore di una soglia posta a 0.8, vlf risulta
accurato sintatticamente e può esser considerato un valore di Df ammissibi-
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
56
le. Se invece maxsv è minore o uguale a 0.80, vlf viene analizzato tramite
la funzione di similarità Soundex che prende come secondo argomento vcl.
Facciamo una considerazione sui valori di soglia 2 e 0.8. Il valore 2 che
permette di creare il dominio Df, è stato scelto in quanto si è pensato al
fatto che un valore, presente come minimo due volte, può esser considerato
“corretto”, invece se presente una volta può darsi che sia un valore uguale
a quelli presenti ma con errori al suo interno oppure un valore “corretto”.
Il valore 0.8 è frutto di prove sperimentali sulla funzione di distanza Jaro.
Abbiamo notato che con similarità uguali o superiori a 0.8, due valori possono esser considerati simili con buona probabilità, invece con valori minori
di 0.8 si ha una scarsa probabilità.
La scelta della funzione soundex non è casuale, proprio per le sue caratteristiche di raggruppare nomi con suoni simili, a questo stadio della misurazione in cui abbiamo dopo una prima analisi dei valori considerati non
accurati ma con una piccola probabilità che essi siano dei valori del dominio
con almeno uno o più errori sintattici, permette di scoprire con un margine
di errore accettabile se due valori rappresentano o meno lo stesso oggetto
del mondo reale, nel caso dei nomi, ad esempio, permette di arrivare alla
conclusione che palo e paolo sono lo stesso nome di una persona con nome
proprio paolo e che palo è un nome con un evidente errore sintattico. Quindi, la funzione soundex permette di verificare se vlf è vcl a meno di qualche
errore di accuratezza, oppure se vlf non è vcl e quindi vlf è accurato ed
un valore ammissibile di Df. Al termine dell’applicazione di questa seconda
funzione si avrà un insieme di valori non sintatticamente corretti.
Infine si procede col determinare il valore dell’accuratezza sintattica dell’attributo tramite la seconda forma del simple ratio che effettua il rapporto
tra il numero di valori non accurati e il numero totale di valori, sottratto a
uno.
Accuratezza Sintattica Tuple
La misurazione dell’accuratezza sintattica a questo livello di dettaglio si
differenzia molto dal livello dell’attributo, la metrica implementata si ispira
in gran parte alla metodologia ISTAT per la qualità dei dati toponomastici
nella pubblica amministrazione.
Inizialmente, l’algoritmo era stato creato in modo da implementare in
una forma più semplice la descrizione riportata nella metodologia, ma ci si
è accorti che l’algoritmo era troppo legato al caso specifico dei dati toponomastici e quindi si è cercata una forma di astrazione migliore in modo da
poter applicare l’algoritmo a dati che rientravano in casi più generali. La
soluzione trovata prevede due fasi, una prima fase di configurazione della
misurazione e una seconda che coincide con la misurazione vera e propria.
L’algoritmo si ispira alla tecnica del Record Linkage.
Il problema del Record Linkage, conosciuto anche come record mat-
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
57
ching o meglio object identification problem, consiste nell’identificare se due
record o tuple che non corrispondono tra loro accuratamente, possono tuttavia riferirsi allo stesso oggetto del mondo reale.
Per fare questo e per capire se due record in due database sono tra loro
equivalenti, si deve definire una funzione che misura la distanza tra i due
record; un caso, che è quello adattato nel framework, è che il record con
cui fare il confronto si trovi in una sorgente dati (relazione) diversa, che si
suppone contenga le stesse tuple, ma corrette. La indicheremo sempre con
il nome lookup table.
Un tipico algoritmo di record linkage si sviluppa nei seguenti passi:
1. Normalizzazione dei formati: riorganizza i record e i valori secondo un
formato standard e comune;
2. Blocking con riduzione dello spazio di ricerca;
3. Scelta della formula di distanza;
4. Per un campione di record già accoppiati, calcola per ogni valore di
distanza la frequenza di matching e non matching;
5. Scelta, a partire dalla distribuzione di cui al punto 4 di due distanze
di soglia min e max.
Prima Fase: Configurazione della misurazione
Ispirandoci alla tecnica del record linkage, come detto in precedenza si rende necessaria una lookup table, di fondamentale importanza per effettuare
il confronto. Con riferimento all’algoritmo sopra riportato, questa fase potrebbe definirsi anche di normalizzazione dei formati.
Nella prima versione dell’algoritmo la lookup table doveva assolutamente assumere la forma di una relazione identica a quella da valutare e contenente
i valori corretti.
Una considerazione può essere fatta a questo punto. La parola identica
implica che la lookuptable oltre a contenere gli stessi valori, però corretti,
deve avere anche la stessa struttura ovvero lo stesso numero di attributi e
perfino nello stesso ordine. Per svincolare la valutazione dalle strutture delle relazioni si è resa necessaria questa fase di configurazione, in cui definire
sia per la relazione che per la lookup table, gli attributi che comporanno la
struttura, tutti o un sottoinsieme e anche l’ordine; in questo modo l’utente
non deve avere una lookup table identica ma simile e può adattare la struttura di una all’altra.
Facciamo un esempio, prendiamo in considerazione il caso degli indirizzi,
data la seguente relazione
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
ID
1
Tipo
Corso
Nome
Vittorio Emanuele
Città
Milano
58
Provincia
Mi
nel caso di lookup table identica, l’algoritmo per funzionare dovrebbe consultare una relazione come la seguente
Key
1
Dug
Corso
Name
Vittorio Emanuele
Comune
Milano
Provincia
Mi
notiamo che i vincoli per il corretto funzionamento sono: ugual numero
e stesso ordine di attributi. Il nome degli attributi è irrilevante. Altro vicolo
importante è che anche la chiave primaria delle relazioni deve essere la stessa
ovvero dello stesso tipo, ad esempio numerica (Integer), questo molto spesso
non è possibile.
Con la procedura di configurazione, la misurazione diventa più flessibile e
possono essere prese in considerazione diverse strutture di lookup table. Facciamo alcuni esempi
TipoNome
Corso Vittorio Emanuele
Città
Milano
Provincia
Mi
oppure
ID
3
Indirizzo
Corso Vittorio Emanuele Milano Mi
Inoltre, con la prima versione non era possibile scegliere un sottoinsieme
di attributi ma, bisognava considerare tutti gli attributi della relazione, inclusa la chiave primaria. Al contrario, con la seconda versione è possibile far
si che i campi che compongono la tupla non siano tutti, ma un sottoinsieme
scelto.
Seconda Fase: Misurazione
L’algoritmo, che è stato sviluppato per verificare il grado di vicinanza di una
tupla con la tupla corrispondente nella lookup table, si articola nei seguenti
passi:
1. si concatenano in un unico campo, dopo aver rimosso gli spazi vuoti,
tutti i valori degli attributi della tupla da valutare e si effettua la medesima operazione per la tupla della lookup table. La rimozione degli
spazi vuoti serve ad evitare eventuali problemi connessi ai differenti
formati di acquisizione delle informazioni in fase di inserimento, che
possono anche non prevedere la possibilità d’includere spazi;
2. si definisce una lunghezza prefissata, ad esempio 3, e si individuano
nella stringa (ottenuta al passo 1) della tupla della lookup table tutte
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
59
le sottostringhe di tale lunghezza costituite da sequenze consecutive
di caratteri. Tale operazione viene effettuata anche per la tupla da
valutare.
3. si pone pari a 0 uno specifico contatore. Si adotta un algoritmo di
tipo sequenziale. Si considera la prima delle sottostringhe (identificate al passo 2) della tupla della lookup table e la si confronta in
modo sequenziale con ciascuna delle sottostringhe della tupla da valutare. Ogni volta che si verifica l’uguaglianza delle sottostringhe si
incrementa di uno un contatore. La sequenza viene iterata per la seconda sottostringa della tupla della lookup table, fino a considerare
l’ultima sottostringa. Ad ogni iterazione viene aggiornato il valore del
contatore;
4. l’indicatore complessivo di accuratezza sintattica per la generica tupla
i è ottenuto come rapporto tra il valore del contatore, calcolato al
passo precedente, e il numero di sottostringhe della tupla della lookup
table identificate al passo (2).
Facciamo una considerazione sulla lunghezza delle sottostringhe, che nel
framework è uguale a 3. Ispirandosi alla metodologia ISTAT, questo valore
è uguale a quello utilizzato nella metodologia. Ma la lunghezza in questione è
quella ottimale nel caso di dati toponomastici, ricavata da una serie di analisi
empiriche. Nel nostro caso non è propriamente ottimale ma al contempo
non sottostima l’accuratezza effettiva (la definizione della lunghezza ottima
richiede uno studio lungo e approfondito), infatti in alcuni casi, vengono
assegnati punteggi elevati di accuratezza per alcune tuple, che superano il
100%; ma questo inconveniente è stato superato in fase di visualizzazione
e report dei risultati, considerando inaccurate le tuple con valori minori di
100%.
I passi precedentemente descritti vengono effettuati per ogni tupla della
relazione, che viene confrontata con ogni tupla della lookup table. Come
valore di accuratezza sintattica viene preso il massimo valore prodotto dalla
serie dei confronti e allo stesso tempo viene tenuta traccia della tupla della
lookup table che è più vicina. Al termine dell’esecuzione dell’algoritmo si
avrà un insieme di tuple sintatticamente accurate, con valore pari al 100%
e un insieme di tuple non accurate, dove ognuna avrà il proprio valore di
accuratezza e la relativa tupla della lookup table più vicina.
Accuratezza Sintattica Relazione
La valutazione dell’accuratezza sintattica a questo livello di granularità, è
identica alla misurazione per le tuple, con un calcolo aggiuntivo. La procedura per le tuple, abbiamo detto che restituisce un insieme di tuple non
accurate, si considera la cardinalità di tale insieme ovvero il numero di tuple
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
60
non accurate della relazione e lo si divide per il numero totale di tuple, sottraendo il tutto a uno. Quello appena descritto non è altro che la seconda
forma del simple ratio.
4.4.3
Currency
Ricordiamo la definizione di currency. Essa misura con quale tempestività i
dati sono aggiornati. La currency è una proprietà intrinseca di un dato.
Da uno studio della letteratura presente, è possibile notare che esistono
due metriche principali per valutare la dimensione. La prima si basa su metadati, dati che descrivono i dati veri e propri fornendo informazioni di tipo
temporale. La seconda metrica è basata su una relazione tra periodi temporali; quest’ultima è sicuramente molto più complessa, in quanto necessita
di molte informazioni temporali.
Concentriamoci sulla metrica basata sui metadati, in paritcolare sul last
update metadata che corrisponde all’ultima volta in cui lo specifico dato è
stato aggiornato. Una prima misura è il ritardo temporale tra l’evento del
mondo reale e la sua registrazione nel sistema informativo, molto complessa
e costosa in quanto spesso l’evento non è noto. Una seconda misura, più
semplice, è la differenza rispetto al last update metadata. In base al metadato
di ultimo aggiornamento è possibile distinguere due tipi di dati:
1. dati con periodicità di aggiornamento nota: per questi dati è nota
una data precisa di aggiornamento ed è quindi possibile calcolare la
currency in maniera esatta.
2. dati con periodicità di aggiornamento media: per questi dati è nota una
frequenza media di aggiornamento, ad esempio in giorni, e in questo
caso è possibile calcolare con errore una currency media.
Nel seguito considereremo, il secondo tipo di dati, in quanto per il primo tipo
conoscere l’esatta data di aggiornamento è molto difficile e per alcuni dati
impossibile, ad esempio per un campo indirizzi di una relazione impiegati
di un’azienda, che esprime l’indirizzo di residenza dell’i-esimo impiegato,
prevedere a priori l’esatta data in cui cambierà residenza e quindi indirizzo
è impossibile, invece si puo definire una frequenza media in base alla quale
gli indirizzi cambiano ogni 6 anni. La Dimensione Currency è calcolata al
solo livello di granularità:
• Attributo
Nell’implementazione delle metriche per la currency assumono un ruolo
importante i seguenti metadati:
1. last update metadata: implementato tramite un campo di tipo Timestamp in MySQL. Da una ricerca fatta sia sulle classi Java per
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
61
l’interfacciamento con i database e la gestione dei dati e metadati,
sia sulle istruzioni di MySQL, si è arrivati alla conclusione che l’unico
modo per creare, aggiornare e leggere il metadato relativo all’ultimo
aggiornamento di un valore è la presenza di un attributo di tipo Timestamp nella relazione del database MySQL. Infatti il Timestamp
di MySQL è un tipo di dato dedicato alla gestione delle date nel formato più completo e ha una caratteristica molto particolare: questo
tipo di dato è impiegato come una sorta di timbro temporale, nelle
applicazioni reali il contenuto del campo viene quasi sempre riempito
automaticamente con il valore dell’ “istante corrente”, ossia una data
completa di minuti e secondi che si riferisce ad:“adesso”, “ora”.
Questo permette di registrare un valore che fa riferimento al momento in cui è avvenuta la memorizzazione del record corrente oppure
un’aggiornamento del record stesso. Il valore del campo timestamp si
riferisce quindi alla tupla e dal punto di vista degli attributi questo
vuol dire che tutti hanno il medesimo valore timestamp e quindi lo
stesso last update. L’inconveniente è che se viene aggiornato il valore
di un attributo A per una tupla, il valore di timestamp cambierà e il
cambiamento si avrà anche per un altro attributo B della stessa tupla
sul quale però non sono state fatte modifiche sui valori.
2. metadato frequenza media aggiornamento: implementato registrando la coppia (nome attributo, valore frequenza media) nel documento xml, metadati misurazione.
Currency Attributo
Gli algoritmi realizzati restituiscono come output della misurazione un valore
che può essere current o not current, che esprime semplicemente se l’attributo su cui è stata effettuata la valutazione, può considerarsi aggiornato
oppure no.
Gli algoritmi implementano tre metriche, definite:
1. metrica basata su frequenza media metadati
2. metrica basata su frequenza media ricavata
3. metrica basata sull’ultimo aggiornamento
Un operazione comune ai tre algoritmi è la ricerca all’interno della relazione
di cui fa parte l’attributo sul quale valutare la currency, del campo di tipo
timestamp. Se quest’ultimo non è presente viene creato automaticamente
dall’algoritmo e i suoi valori aggiornati per ogni tupla all’istante corrente,
ovvero con la data e ora attuale; con l’evoluzione dei dati presenti nel database, quindi con le operazioni di modifica (inserimento, aggiornamento e
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
62
cancellazione) ai record della relazione, i valori del campo timestamp non saranno più tutti uguali, ma inizieranno a differenziarsi, assumendo dei valori
più adatti alla valutazione della currency.
Iniziamo con la descrizione della metrica basata su frequenza media
metadati. La prima operazione che viene effettuata è la ricerca dell’attributo timestamp, se trovato, vengono analizzati i suoi valori alla ricerca del
massimo che rappresenta l’ultimo aggiornamento dell’attributo. Successivamente viene effettuata una differenza tra il valore massimo e l’istante corrente in modo da determinare il periodo, in giorni, dell’ultimo aggiornamento
che indichiamo con period. Con una funzione di ricerca nel documento xml
metadati misurazione, viene estratta la frequenza media di aggiornamento
dell’attributo espressa in giorni che indichiamo con fm. A questo punto viene effettuato il confronto tra period e fm, se period è minore o uguale a fm
l’attributo può considerarsi current, invece se period è maggiore di fm l’attributo può considerarsi not current. Ad esempio, se fm=12 giorni, vuol dire
che l’attributo rimane current per 12 giorni, dopo i quali dovrebbe essere
aggiornato, quindi se controllando, risulta che non viene aggiornato da 13
giorni (period), è considerato not current; se invece risulta period 8 giorni,
ad esempio, è considerato current.
La metrica basata su frequenza media ricavata è simile alla precedente, con l’eccezione che il metadato relativo alla frequenza media di
aggiornamento non è memorizzato da nessuna parte, ma viene ricavato a
runtime con il seguente calcolo:
i valori del campo timestamp vengono ordinati utilizzando un algoritmo di
ordinamento, più precisamente il bubble sort. Successivamente viene effettuata una differenza a due a due in modo sequenziale in base all’ordinamento
stabilito, le differenze parziali vengono sommate tra loro. Al termine del ciclo di differenze viene effettuato il rapporto tra la somma e il numero totale
di valori del campo timestamp. Il quoziente esprime la frequenza media
dell’attributo. Ad esempio se per un attributo e-mail si hanno tre valori di
timestamp, già ordinati, ovvero:
...
e-mail
[email protected]
[email protected]
[email protected]
timestamp
31/12/2005
08/01/2006
20/01/2006
le differenze effettuate sono:
• (08/01/2006) − (31/12/2005) = 8 giorni
• (20/01/2006) − (08/01/2006) = 12 giorni
viene eseguita la somma 8 + 12 = 20 giorni, e successivamente il rapporto
20
3 = 6 giorni. Quindi la frequenza media di aggiornamento per l’attributo
e-mail è 6 giorni.
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
NumeroCorso
01
02
03
04
Docente
Rossi
Bianchi
Giorgi
Crispi
63
Corso
Chimica
Fisica
Analisi
Algoritmi
Tabella 4.1: Relazione corsi di studio.
NumeroEsame
01
02
03
04
Esame
Fisca
Chimica
Analisi
Algortmi
Data
24-09-2006
12-09-2006
05-09-2006
27-09-2006
Tabella 4.2: Relazione esami.
Infine, la metrica basata sull’ultimo aggiornamento consiste nell’effettuare una ricerca del massimo tra i valori del campo timestamp. Il
valore massimo rappresenta l’ultimo aggiornamento dell’attributo e viene
restituito dall’algoritmo come output.
4.4.4
Consistenza
La consistenza, tra le dimensioni analizzate, è quella per cui esiste un minor numero di metriche in letteratura. La valutazione della consistenza è
associata, spesso, al numero di violazioni di regole semantiche che nel modello relazionale si traduce con le violazioni dei vincoli di integrità. Nel
framework, viene implementata una metrica che riguarda la violazione dei
vincoli interrelazionali (vincoli su relazioni differenti), con il caso specifico
della violazione dei vincoli di integrità referenziale. La misura può essere
effettuata ad un livello di granularità che coincide con il livello dell’attributo, se si considera un singolo attributo, ma anche di tuple se vengono
presi in considerazione più attributi per mezzo della fase di configurazione.
Consideriamo il livello dell’attributo, l’idea è quella di confrontare i valori di
un attributo A con i valori di un altro attributo B che si suppone contenga
gli stessi valori di A, in quanto B rappresenta lo stesso concetto del mondo
reale di A. Ad esempio, consideriamo una relazione Corsi di studio e Esami
mostrate in tabella 4.1 e 4.2, rispettivamente. L’attributo Corso della relazione Corsi di studio e Esame della relazione Esami, dovrebbero contenere
gli stessi valori dal momento che rappresentano entrambi l’insieme dei corsi
di studio di una facoltà universitaria. Vediamo i passi eseguiti dall’algoritmo per raggiungere il risultato. Prima di tutto le relazioni vengono associate
l’una all’altra, inserendo le coordinate di connessione (user, password, host,
port, nomedatabase) della relazione non apparenente al database connesso,
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
64
nei metadati misurazione; dopo aver scelto l’attributo sia di una che dell’altra relazione, attraverso una finestra di configurazione come quella descritta
per l’accuratezza sintattica delle tuple e relazione, vengono confrontati i
valori degli attributi con lo stesso algoritmo dell’accuratezza delle tuple, ovvero per mezzo del record matching e visualizzati i valori incosistenti con
la relativa percentuale e valore corretto. Tornando all’esempio precedente,
supponendo sia connesso il database contenente la relazione Esami, ad essa
viene associata la relazione Corsi di studio e eseguito l’algoritmo sugli attributi Esame e Corso. Dopo l’esecuzione, i valori inconsistenti risulteranno
essere Fisca e Algortmi in quanto tra i valori dell’attributo Corso, non esiste
nessun corso che abbia questi due nomi e vengono forniti i valori più vicini
che nell’esempio sono Fisica e Algoritmi.
L’esempio riportato, è relativo ad attributi che non sono chiave (primaria
o esterna) delle relazioni. Se la valutazione viene effettuata tra due attributi
K e Kf di due relazioni A e B diverse (sulle quali è realizzato un vincolo di
integrità referenziale), che sono chiave primaria (K) di A e esterna (Kf) di
B, allora si sta valutando la consistenza sul vincolo di integrità referenziale,
caso particolare dei vincoli interrelazionali.
4.5
Localizzazione e Correzione di Errori
Nell’ambito delle attività e delle tecniche per la DQ, è presente un attività
in particolare, relativa alla localizzazione e correzione degli errori. Questa
attività si rende utile ogni volta che si ha un insieme di dati proveniente da
una fonte di cui non si è certi dell’affidabilità. Gli errori nei dati possono
essere espressi, l’abbiamo visto nel Capitolo 2, attraverso un gran numero di
dimensioni; per alcune sono state fornite delle metriche di valutazione, per
altre come la consistenza, sono stati presentati dei modelli formali che caratterizzano la dimensione. I metodi di localizzazione e correzione dipendono
dal tipo di dimensione che si vuole analizzare e valutare.
4.5.1
Il Framework: Attività di Localizzazione e Correzione
Il framework svolge principalmente un’attività di assessment della qualità,
la fase successiva alla valutazione corrisponde a quella di miglioramento
(improvement) attraverso la localizzazione e correzione degli errori che degradano la qualità dei dati. Il framework svolge un attività di localizzazione
e correzione degli errori per alcune dimensioni implementate, ovvero contemporaneamente alla misurazione vengono localizzati gli errori e le relative
correzioni; ad esempio nel misurare l’accuratezza sintattica dell’attributo,
viene restituito il valore di accuratezza in percentuale e allo stesso tempo
l’insieme di valori non accurati e i relativi valori del domino più vicini, con
i quali i valori inaccurati potrebbero essere corretti.
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
65
In particolare, vedremo in dettaglio il caso, (i) per l’accuratezza sintattica dell’attributo con la metrica basata sulla frequenza dei valori, (ii) per
l’accuratezza sintattica dell’attributo con la metrica che utilizza la lookup
table, (iii) per l’accuratezza sintattica delle tuple con la metrica che utilizza
la lookup table e (iv) per la consistenza. La correzione implementata è una
proposta di possibile miglioramento che viene visualizzata ma non eseguita
e quindi memorizzata. Nel seguito verranno descritte per ogni dimensione
le localizzazioni e le proposte di possibili correzioni attualmente presenti nel
framework.
Accuratezza Sintattica
Nella misurazione dell’ accuratezza sintattica dell’attributo con la metrica
basata sulla frequenza dei valori, per ogni valore dell’attributo con frequenza bassa (frequenza relativa minore di 2) che risulta non accurato, secondo
la prima metrica di similarità Jaro, viene proposto un valore del “dominio
ricavato” (insieme di valori dell’attributo con frequenza relativa maggiore o
uguale a 2) che è il più vicino, per la seconda funzione di similarità Soundex,
al valore inaccurato. Chiariamo con un esempio. Supponiamo di avere una
relazione Impiegati illustrata in tabella 4.3,
NumeroImpiegato
0100
0200
0300
0400
0500
0600
0700
Nome
Jack
Jack
Paolo
Paolo
Palo
Steve
Paolo
Cognome
Murphy
Bauer
Rossi
Bianchi
Bow
Barrow
Baggio
email
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Tabella 4.3: Relazione Impiegati
eseguiamo l’algoritmo sull’attributo Nome, il “dominio ricavato” è illustrato
in tabella 4.4, ed è l’insieme dei valori di Nome il cui numero di occorrenze
è maggiore o uguale a 2 (frequenza relativa maggiore o uguale a 2), ed è
utilizzato per il confronto tramite le funzioni di similarità; è differente dal
dominio dell’attributo Nome, insieme dei nomi, valori possibili che l’attributo può assumere.
Dominio Ricavato
Jack
Paolo
Frequenza Relativa
2
3
Frequenza Assoluta
2/7
3/7
Tabella 4.4: Dominio Ricavato dell’Attributo Nome
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
66
I valori dell’attributo con frequenza bassa sono Palo e Steve, ma solo Palo
risulta avere problemi di accuratezza, invece Steve è un valore possibile del
dominio. Appurato il problema di qualità l’algoritmo suggerisce che il valore
del dominio più vicino a Palo è Paolo e quindi una possibile correzione può
essere apportata. Una snapshot generica del framework è mostrata in figura
5.2.
Figura 4.2: Accuratezza sintattica attributo, metrica frequenza valori.
Nella misurazione dell’ accuratezza sintattica dell’attributo con la metrica
basata sull’utilizzo della lookup table, per ogni valore dell’attributo che non
appartiene al dominio dei possibili valori, rappresentato dalla lookup table,
quindi con probabili errori di accuratezza viene effettuato un confronto con
gli elementi del domino, tramite la funzione di similarità Jaro, per ricavare
il valore di accuratezza e il valore del dominio più vicino. Una snapshot del
framework è mostrata in figura 5.3.
Figura 4.3: Accuratezza sintattica attributo, metrica lookup table.
Nella misurazione dell’ accuratezza sintattica delle tuple con la metrica basata sull’utilizzo della lookup table, ogni tupla viene confrontata con le tuple
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
67
della lookup table e per tutte quelle non accurate viene fornito il valore
di accuratezza e la relativa tupla corretta. Una snapshot del framework è
mostrata in figura 5.4.
Figura 4.4: Accuratezza sintattica tuple.
CAPITOLO 4. REALIZZAZIONE DEL FRAMEWORK
68
Consistenza
Ricordiamo che la dimensione consistenza implementata nel framework, verifica la violazione di vincoli interrelazionali effettuando un confronto tra
valori per definire quelli consistenti e inconsistenti. Ad esempio, su due
attributi di relazioni diverse che si suppone debbano contenere ugual valori, viene eseguito il confronto tra i valori dell’uno con i valori dell’altro
e determinato un insieme di valori che non corrispondono tra loro, e per
ognuno viene fornito il valore di consistenza e il valore corretto. Una snapshot del framework è mostrata in figura 5.5, che mostra la misurazione su
due attributi e-mail, contenenti in teoria gli stessi valori, di relazioni diverse, riscontrando un valore inconsistente, fornendo la valutazione e il valore
corretto.
Figura 4.5: Consistenza
Capitolo 5
Caso di Studio
In questo capitolo, descriviamo l’attività di testing effettuata sul framework.
Per fare questo abbiamo bisogno di un database di dimensioni tali da poter
testare in modo soddisfacente il lavoro, quindi con un numero di relazioni, attributi e tuple sufficientemente ampio per la verifica, che permetta di
valutare tutte le metriche implementate in modo da costituire un caso di
studio per il framework. E’ stato scelto come DBMS di appoggio per la
memorizzazione del database, il DBMS MySQL [19].
Premettiamo che cercare un database da testare, in rete o da altre fonti è un compito molto difficile, ovviamente parliamo di database reali e di
dimensioni non banali; è raro che vengano creati e popolati grandi database con il solo scopo di esser testati (è un lavoro inutile e dispendioso), i
database sono popolati con dati reali e non fittizzi, frutto di eventi del mondo reale e contenengono dati sensibili che non possono essere resi pubblici.
Inoltre per i pochi database che sono disponibili sorge un altro problema,
ovvero i dati presenti sono “puliti” e questo implica che essi debbano essere
“sporcati” per poter analizzare e rilevare problemi di qualità. Proprio per
questo, per la valutazione di alcune dimensioni, i dati sono stati modificati
o sono stati creati i metadati utili alla misurazione. In particolare, per la
completezza non si è resa necessaria alcuna modifica, al contrario per l’accuratezza sintattica, per la currency e la consistenza, per le quali si sono
rese necessarie attività di alterazione dei dati e creazione dei metadati. Nel
seguito, analizzeremo in dettaglio le singole misurazioni.
Lo scopo del test del framework, non è quello di analizzare la performance del programma. Non importa la determinazione della capacità del
programma di svolgere più o meno velocemente, quel particolare compito
per cui è stato progettato. L’obiettivo è la valutazione dei risultati restituiti dal framework relativi ad una base di dati, in modo da analizzare la
correttezza dell’output e il funzionamento degli algoritmi.
Dopo molte ricerche in rete, abbiamo trovato una base di dati, che verrà
descritta nel seguito.
69
CAPITOLO 5. CASO DI STUDIO
5.1
70
Descrizione del Caso di Studio
Il database utilizzato è stato recuperato dal sito web di Eclipse-BIRT (Business Intelligence Reporting Tools) [18]. Il database rappresenta una compagnia fittizia: Classic Models Inc., la quale acquista, direttamente dai fornitori, modelli da collezione di automobili, treni, autobus e navi, e li vende
ai distributori di tutto il mondo. Il database contiene tipici dati di business come quelli relativi ai clienti, gli ordini, il singolo ordine e prodotti.
Il database è fornito sotto i termini di licenza di Eclipse.org Software User
Agreement.
Vediamo in dettaglio come è costituito. Si compone di otto relazioni:
1. Offices: rappresenta gli uffici di Classic Models Inc. L’azienda ha
sette uffici sparsi su tutto il globo (San Francisco, Boston, NYC, Paris,
Tokyo, Sydney, London), con il suo quartier generale a San Francisco in
California. In base alla posizione geografica, ciascun ufficio è assegnato
ad un territorio di vendita (APAC, NA, EMEA or JAPAN).
2. Employees: rappresenta tutti gli impiegati, inclusi gli addetti alle vendite che hanno relazioni con i customers. L’azienda ha 23 impiegati:
6 dirigenti esecutivi e 17 addetti alle vendite. Questi ultimi sono assegnati a un numero preciso di clienti (distributori) nelle loro rispettive
aree geografiche di vendita. I nuovi addetti alle vendite (ancora in
tirocinio) non hanno clienti assegnati. Ciascun addetto alle vendite
ha relazioni con il manager delle vendite della sua area. I dirigenti
esecutivi sono: Presidente, VP Sales, VP Marketing, Sales Manager
(JAPAN, APAC), Sales Manager (EMEA), Sales Manager (NA).
3. Customers: rappresenta i clienti. Classic Models Inc. ha 122 clienti
in tutto il mondo.
4. Orders: rappresenta gli ordini effettuati dai clienti. I clienti ordinano e attendono la ricezione approssimativamente in 6-10 giorni. Una
volta effettuato l’ordine, viene spedito in 1-6 giorni (7-8 per il Giappone). C’è un totale di 326 ordini, che coprono l’arco di tempo dal
1/1/2003 al 6/1/2005. Gli ordini possono essere in uno dei seguenti
stati: In lavorazione (lo stato iniziale per tutti gli ordini), Spedito, Annullato (usato per indicare che il cliente ha effettuato l’annullamento
subito dopo l’ordine e tipicamente prima che sia spedito), Non gradito
(usato per indicare che il cliente ha ricevuto l’ordine ma non lo gradisce), Bloccato (usato per indicare che l’ordine non sarà spedito prima
del pagamento perché il limite di accreditamento del cliente è stato
oltrepassato). Circa il 93% degli ordini sono in stato di spedito.
5. Order Details: rappresenta i dettagli relativi agli ordini.
CAPITOLO 5. CASO DI STUDIO
71
6. Payments: rappresenta i pagamenti effettuati dai clienti. In media, i pagamenti vengono effettuati 2-3 settimane dopo la ricezione
dell’ordine.
7. Products: rappresenta i prodotti venduti dall’azienda, ovvero i modelli
in scala. Ci sono 110 modelli, acquistati da 13 fornitori. I modelli
sono classificati in 7 linee distinte di prodotti: Classic Cars, Vintage
Cars, Motorcycles, Trucks and Buses, Planes, Ships, Trains. Inoltre,
i modelli sono classificati in base alla loro scala di dimensione, ad
esempio 1:18 o 1:72.
8. Product Lines: rappresenta i dettagli di ognuna delle 7 linee di prodotti. A ciascuna è associata una descrizione testuale, una in formato
html e un’immagine.
Il database è costituito da 8 relazioni, 59 attributi e 3864 tuple. Lo schema
Entità Relazione del database è mostrato in figura 5.1.
5.2
Analisi dei Risultati
In questo paragrafo analizzeremo i risultati ottenuti dall’esecuzione del framework sul database presentato, descrivendo le alterazioni effettuate per
“sporcare” i dati e commentando i risultati ottenuti.
Nella valutazione della dimensione completezza non si sono rese necessarie modifiche dei dati presenti nel database. Osservando le relazioni, abbiamo preso in considerazione quelle con un numero sufficiente di valori nulli,
per poter eseguire la misurazione. Partiamo dalla valutazione della completezza dell’attributo, più precisamente di state appartenente alla relazione
customers. Il valore ottenuto corrisponde al 40% di completezza, questo
vuol dire che i valori completi (non nulli) sono presenti con una percentuale
del 40%, invece quelli non completi (nulli) con una percentuale del 60%. Per
verificare il risultato, applichiamo la formula:
Nvn
CA = 1 −
Nt
dove CA è la completezza dell’attributo, Nvn è il numero di valori nulli e Nt
è il numero di tuple; osservando i valori dell’attributo otteniamo Nvn = 73 e
Nt = 122 e effettuando il calcolo risulta 0.40, in percentuale 40%. Il calcolo
effettuato manualmente, mostra come la metrica implementata restituisca
un valore esatto di completezza; quanto riportato è solo uno dei molteplici
test effettuati, sono stati considerati altri attributi di diverse relazioni e il
framework ha riposto sempre con risultati coerenti.
Per la completezza della relazione, più precisamente di customers,
il valore ottenuto corrisponde al 12%, questo vuol dire che i valori completi
CAPITOLO 5. CASO DI STUDIO
Figura 5.1: Schema Entità-Relazione Classic Models Inc.
72
CAPITOLO 5. CASO DI STUDIO
73
(non nulli) sono presenti con una percentuale del 88%, invece quelli non
completi (nulli) con una percentuale del 12%; questo perchè nella metrica
viene utilizzata la prima forma del simple ratio. Per verificare il risultato,
applichiamo la formula:
Nvnn
CR =
N
dove CR è la completezza della relazione, Nvnn è il numero di valori non nulli
e N è il numero di valori possibili per la relazione; osservando direttamente
i valori otteniamo Nvn = 202 e N = 1586 e effettuando il calcolo risulta
0.12, in percentuale 12%. Il calcolo effettuato manualmente, mostra come
la metrica implementata restituisca un valore esatto di completezza; quanto
riportato è solo uno dei molteplici test effettuati, sono state considerate altre
relazioni e il framework ha restituito sempre risultati coerenti.
Per la completezza della tuple, più precisamente della relazione offices, il valore di completezza è calcolato per ogni tupla della relazione, tramite
la formula:
Nvn
CT = 1 −
Na
dove CT è la completezza della tupla, Nvn è il numero di valori nulli e Na è il
numero di attributi. Non verifichiamo manualmente tutti i calcoli effettuati
dal framework. Comunque viene restituito un valore di completezza che
esprime la percentuale di tuple complete e non complete, in particolare il
57% di tuple non complete e il 43% di tuple complete. La snapshot della
misurazione effettuata è mostrata in figura 5.2.
Descriviamo di seguito, la misurazione dell’accuratezza sintattica ad ogni
livello di granularità. Per questa dimensione sono state effettuate modifiche
dei dati. Per l’accuratezza sintattica dell’attributo tramite la metrica basata sulla frequenza dei valori è stata eseguita la misurazione
sull’attributo contactFirstName di customers. L’attributo in questione, ha
come dominio di valori, quello dei nomi di persona che nel nostro caso sono
i nomi dei clienti della compagnia; sono stati modificati alcuni nomi in modo da poter effettuare la misurazione. Vediamoli in dettaglio. Per i valori
Juri, Jean, Steve sono stati introdotti i seguenti errori: Jurri, Jan, Stve,
l’inserimento di una r in Juri, la cancellazione di una e in Jean e ancora
l’eliminazione di una e in Steve. Il framework, come ci si aspettava, ha restituito l’insieme dei valori inaccurati dell’attributo e gli elementi di questo
insieme sono proprio quelli in cui sono stati inseriti errori di accuratezza,
ovvero Jurri, Jan, Stve. La percentuale di accuratezza ottenuta è del 97%,
quindi solo il 3% di valori sono inaccurati, infatti la cardinalità dell’insieme di valori non accurati è molto piccola, pari a 3. Una snapshot della
misurazione descritta è mostrata in figura 5.3.
Per l’accuratezza sintattica dell’attributo tramite la metrica basata sulla lookup table è stato misurato l’attributo city della relazione
offices. Per eseguire la valutazione è stata creata un lookup table di valori
CAPITOLO 5. CASO DI STUDIO
Figura 5.2: Completezza Tuple Relazione offices
Figura 5.3: Accuratezza Attributo contactFirstName
74
CAPITOLO 5. CASO DI STUDIO
75
corretti e sono state inserite le sue coordinate nei metadati misurazione. La
lookup table rappresenta il dominio dei nomi di città e sono stati modificati
i valori San Francisco, New York, Tokyo in Sa Francisco, NY, Tokio contenenti errori sintattici. Dalla misurazione, come atteso, questi tre valori
risultano inaccurati e per ognuno viene fornita la percentuale di accuratezza
e il valore più vicino della lookup table, possibile valore corretto. L’accuratezza sintattica dell’attributo è, 57% di valori accurati e 43% di valori
inaccurati. La snapshot è mostrata in figura 5.4.
Figura 5.4: Accuratezza Attributo city
Per l’accuratezza sintattica delle tuple tramite la metrica basata sul record linkage è stata valutata sulla relazione employees. E’
stata creata la lookup table relativa (e inserite le coordinate nei metadati
misurazione) ed è stato inserito un errore nella tupla con chiave (employeeNumber ) 1619. Dalla misurazione è risultato che l’unica tupla inaccurata
è quella con chiave 1619, con un’accuratezza del 97%. L’accuratezza totale
delle tuple è 95% di tuple accurate e 5% di tuple non accurate. Questo
test, ha utilizzato una lookup table con una struttura uguale alla relazione
employees e sono stati selezionati tutti gli attributi della singola tupla, eccetto la chiave primaria. Questo stesso esempio è stato utilizzato anche per
l’accuratezza sintattica della relazione tramite la metrica basata
sul record linkage, ottenendo un valore del 5% di record non accurati
CAPITOLO 5. CASO DI STUDIO
76
e 95% di record accurati. Per quanto riguarda le tuple è stato effettuato
un altro test, con una lookup table avente struttura diversa e selezionando
un sottoinsieme (grazie alla fase di configurazione dell’algoritmo). In particolare, gli attributi selezionati sono lastName, firstName della relazione
employees e l’attributo FirstLastName della lookup table, contenente in un
unico campo le due informazioni nome e cognome dell’impiegato. I risultati
ottenuti sono 5% di tuple inaccurate e 95% di tuple accurate. Una snapshot
dell’accuratezza sintattica delle tuple è mostrata in figura 5.5, ed è relativa
al caso con lookup table uguale e con la selezione di tutti gli attributi.
Figura 5.5: Accuratezza Tuple Relazione employees
Vediamo i test effettuati per la dimensione currency. Come detto nel
Capitolo 4, sono state implementate tre metriche (sono state testate le due
più importanti), per ognuna si rende necessario il campo timestamp sulla
relazione da valutare, per questo è stata scelta la relazione offices e di questa l’attributo phone ed è stato inserito un campo timestamp con dei valori
utili alla misurazione. Per la metrica basata sulla frequenza media
metadati è stato inserito nei metadati misurazione, per l’attributo scelto,
il valore 14 giorni che rappresenta la frequenza media di aggiornamento.
I risultati ottenuti sono: ultimo aggiornamento dell’attributo 24 giorni fa,
dal confronto risulta not current, in quanto l’attributo phone deve essere
aggiornato ogni 14 giorni (ovvero rimane current per 14 giorni), ma l’ulti-
CAPITOLO 5. CASO DI STUDIO
77
mo aggiornamento risale a 24 giorni fa (rispetto alla data di misurazione),
quindi con dieci giorni di ritardo rispetto alla sua frequenza media. Per
la metrica basata sulla frequenza media ricavata, i risultati ottenuti sono: ultimo aggiornamento dell’attributo 24 giorni fa, frequenza media
ricavata 12 giorni, dal confronto risulta not current per le stesse considerazioni del caso precedente. Una snapshot, relativa alla metrica basata sulla
frequenza media metadata, è mostrata in figura 5.6.
Figura 5.6: Currency Attributo phone
CAPITOLO 5. CASO DI STUDIO
78
Infine per la consistenza, è stato effettuato un test per verificare le
violazioni ai vincoli di integrità referenziale tra la relazione products e la
relazione orderdetails sull’attributo chiave primaria productCode della prima e l’attributo chiave esterna productCode della seconda. Nei metadati
misurazione sono state inserite le coordinate della relazione orderdetails e
nella relazione products sono stati inseriti dei valori di chiave non presenti
nel productCode di orderdetails. I risultati ottenuti sono coerenti a quanto ipotizzato, visto che i valori di chiave di products, S18 3233 e S85 3212
vengono considerati violazione al vincolo di chiave esterna, in quanto presentano dei codici prodotti che non compaiono nella relazione orderdetails.
Una snapshot della valutazione è mostrata in figura 5.7.
Figura 5.7: Consistenza Attributo productCode
Appendice A
Descrizione del Metamodello
In quest’appendice verrà descritta la struttura del metamodello utilizzato
dal framework. Per maggior chiarezzza e per evitare possibili confusioni
tra i concetti chiariamo prima di tutto la differenza tra dato e metadato,
successivamente il concetto di metamodello.
I dati, come riportato nel Capitolo 1, sono utili alla rappresentazione
dei concetti del mondo reale e sono elementi di informazione costituiti da
simboli che debbono essere elaborati per fornire informazioni. Ad esempio
consideriamo un libro, oggetto del mondo reale, le stringhe il vecchio e il
mare e Ernest Hemingway sono dati che interpretati nel contesto di un
libro danno informazioni circa il titolo e l’autore del libro.
Un metadato è un termine che viene utilizzato in svariati contesti come
il web o l’information retrieval, ed è definito in molti modi diversi. Dalla
letteratura presente [8]:
• un metadato è un dato che descrive un altro dato, ad esempio il dato
12345 senza un contesto non ha significato, se invece viene associato
un nome (metadato) significativo come Codice Postale, 12345 assume
un significato preciso.
• un metadato è un informazione circa un dato.
• un metadato è un informazione circa un informazione.
Continuando con l’esempio del libro, consideriamo la scheda di una biblioteca, del libro il vecchio e il mare, supponiamo contenga i dati area 5, scaffale
2 che danno informazioni circa la posizione e in prestito che fornisce informazioni circa lo stato del libro. I dati della scheda appena descritti sono in
relazione con i dati del libro per il fatto che i primi sono metadati dei secondi, ovvero sono dati riguardanti i dati che si riferiscono al libro, e forniscono
informazioni sullo stato e la posizione del libro il vecchio e il mare di Ernest
Hemingway.
79
APPENDICE A. DESCRIZIONE DEL METAMODELLO
80
Chiariti i concetti di dato e metadato, vediamo il concetto di metamodello. Il metamodello, da noi definito, è inteso come modello di metadati.
Per spiegare meglio, facciamo un’analogia con il modello dei dati.
Un modello dei dati [14] è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa risulti
comprensibile ad un elaboratore. Nella progettazione di basi di dati vengono
utilizzati due modelli di dati, il modello concettuale e il modello logico.
• Modello Concettuale: Descrive i concetti del modo reale piuttosto che
i dati utili a rappresentarli. Esso viene utilizzato nella fase preliminare
del processo di progettazione di basi di dati, per analizzare nel modo
migliore la realtà di interesse, senza “contaminazioni” di tipo realizzativo. Il modello concettuale per eccellenza è il modello Entità-Relazioni
(E/R).
• Modello Logico: Le strutture utilizzate da questo modello, pur essendo
astratte, riflettono una particolare organizzazione (ad albero, a grafi,
a tabelle o a oggetti). Esistono molti modelli logici tra cui modello gerarchico, modello reticolare, modello a oggetti, ma il più diffuso
è il modello relazionale. I modelli logici sono disponibili sui DBMS
commerciali.
Quindi, i dati rappresentanti un concetto del mondo reale vengono rappresentati prima con un modello concettuale, con i costrutti del modello E/R
e successivamente organizzati con il modello logico, con il costruttore relazione del modello relazionale. La relazione permette di organizzare i dati in
insiemi di record a struttura fissa ed è rappresentata per mezzo di una tabella, le cui righe rappresentano specifici record e le cui colonne corrispondono
ai campi del record. I dati, dunque, vengono rappresentati e organizzati per
mezzo di modelli.
I metadati, sono comunque dei dati (su altri dati), e anch’essi possono
esser rappresentati e organizzati utilizzando modelli, più precisamente metamodelli. Il metamodello concettuale per i metadati può essere ancora il
modello E/R, invece il metamodello logico può essere un documento XML.
Infatti un documento XML ha una struttura gerarchica ad albero che segue il cosiddetto DOM (Document Object Model). I metadati assumono un
organizzazione gerarchica.
In conclusione il metamodello (modello dei metadati) utilizzato nel framework, si articola in modello E/R, come modello concettuale e XML, come
modello logico. I modelli utilizzati per i dati e i modelli per i metadati sono
mostrati in figura A.1.
Nei paragrafi successivi vengono descritti i dati e metadati utilizzati nel
framework, viene introdotto il linguaggio XML e descritto in dettaglio il
metamodello del framework.
APPENDICE A. DESCRIZIONE DEL METAMODELLO
81
Figura A.1: Modelli dei dati e metadati
A.1
Descrizione dei Dati e Metadati
Vedendo il framework come una blackbox, in modo da notare le relazioni
esistenti tra i dati e gli algoritmi, si possono distinguere flussi di dati in
input e in output.
A.1.1
Dati-Metadati in Input
I dati, sono quelli strutturati presenti nelle tabelle del database relazionale
a cui ci si connette, sono questi i dati su cui viene misurata la qualità. I metadati sono utilizzati nelle misurazioni di alcune dimensioni e costituiscono
informazioni aggiuntive che vengono consultate. Vediamoli meglio. Per la
dimensione accuratezza sintattica a livello degli attributi sono necessari dei
metadati per portare a termine la misurazione, più precisamente le coordinate per raggiungere la lookup table, composte dalle tipiche informazioni
di connessione ad un database MySQL, considerato che la lookup table è
una relazione gestita da questo DBMS. Per l’accuratezza sintattica di tuple
e relazioni sono necessarie le stesse informazioni aggiuntive. Infine, un ultimo metadato presente è relativo alla dimensione currency di un attributo e
consiste nel valore di frequenza media di aggiornamento, espressa in giorni.
A questi metadati dati ci riferiremo con il termine metadati misurazione.
APPENDICE A. DESCRIZIONE DEL METAMODELLO
82
Figura A.2: Dati e Metadati del Framework
A.1.2
Dati-Metadati in Output
Il principale dato in output del framework è il risultato della misurazione,
valore della dimensione di qualità misurata ad un certo livello di granularità. Ad esempio misurando la completezza di un attributo, otteniamo il
40% di completezza, questo valore è il dato in output. I metadati danno
informazioni aggiuntive sulla misurazione effettuata. Ad esempio, nel caso
della completezza dell’attributo, i metadati sono il nome dell’attributo, la
data della misurazione, la metrica utilizzata e il valore risultante. A questi
metadati dati ci riferiremo con il termine metadati dimensione.
A.2
XML
Per l’insieme di metadati descritti in precedenza, come già detto, si è deciso di utilizzare il modello logico dei documenti XML, per rappresentarli e
organizzarli. Vediamo quindi il linguaggio di marcatura descrittiva XML.
A.2.1
Vantaggi Derivanti dall’Utilizzo di XML
Un primo vantaggio deriva dall’obiettivo di XML, il quale per definizione è
un linguaggio di markup utilizzato per descrivere i dati. Questo vuol dire
APPENDICE A. DESCRIZIONE DEL METAMODELLO
83
che dati normalmente non strutturati con XML possono essere strutturati
e assumere una forma più rigorosa. XML è il linguaggio principale per
rappresentare dati semi-strutturati.
XML è un insieme di regole (linee guida o convenzioni) per formulare
dei file in formato testo che permettano di strutturare i dati. XML rende
facile la generazione di dati tramite un computer, la lettura dei dati e il
controllo sulla struttura in modo che non sia ambigua. XML è estensibile,
indipendente dalla piattaforma e supporta i parametri internazionali e locali.
Inoltre è pienamente compatibile con Unicode.
E’ un linguaggio nato per sostituire in futuro il noto HTML, quindi molto
utile allo scambio e alla fruibilità dei dati sul web. Concludendo, XML è
utile alla gestione dei dati sia in ambiente web sia in altri ambienti che non
riguardano la rete.
A.2.2
Cenni ad XML
L’XML, acronimo di eXtensible Markup Language, è un linguaggio di markup descrittivo creato e gestito dal World Wide Web Consortium (W3C).
È una semplificazione e adattamento dell’SGML, da cui è nato nel 1998, e
permette di definire la grammatica di diversi linguaggi specifici derivati.
Può esser considerato il naturale successore di HTML come linguaggio
per il web, in quanto più espressivo e flessibile, complicato ma con la qualità di apportare molto più aiuto agli sviluppatori nel proprio lavoro. Non
sostituisce HTML in quanto hanno differenti obiettivi: XML è utile per
descrivere i dati e progettato per l’interscambio di essi; HTML invece è utilizzato per la visualizzazione dei dati e si concentra sulle informazioni di
layout. I due linguaggi sono complementari in quanto XML rappresenta il
contenuto, l’insieme di dati e HTML gli aspetti di presentazione dei dati e
navigazione tra essi.
Un documento XML, è costruito per mezzo di tag che non sono predefiniti dal linguaggio, definirli è compito dell’autore del documento, che decide
quindi la struttura utilizzando la DTD.
Un documento è costituito da:
• un prologo (opzionale) composto da:
– una dichiarazione XML
– una DTD
• un’istanza di documento, contenente
– testo libero
– elementi delimitati da etichette
– attributi associati ad elementi
APPENDICE A. DESCRIZIONE DEL METAMODELLO
84
– entità
– sezioni CDATA
– istruzioni di processamento
– commenti
DTD Document Type Definition
DTD è il linguaggio che specifica le caratteristiche del tipo di documento
attraverso una serie di regole grammaticali. In particolare definisce l’insieme
degli elementi del documento XML, le relazioni gerarchiche tra gli elementi,
l’ordine di apparizione nel documento e quali elementi e quali attributi sono
opzionali o meno. Una DTD descrive la struttura di un documento XML.
Accesso ad un documento XML
Il linguaggio XML non comprende nessuna istruzione di elaborazione (neanche di visualizzazione), necessita di un applicazione che elabori il documento.
Per questo è accessibile da qualsiasi linguaggio di programmazione Web (sia
lato server che lato client) o meno. Il fatto che questi dati saranno accessibili,
in una semplice struttura, a qualsiasi tipo di applicazione, locale o remota,
fanno dell’XML uno standard che si caratterizza per la sua portabilità.
L’accesso ad una struttura XML può avvenire attraverso diversi sistemi, il
più comune ma rudimentale è lo sfruttamento del filesystem del server su
cui gira il motore del linguaggio in uso. Ogni linguaggio ha poi dei suoi
componenti di tipo ActiveX oppure delle classi native per l’accesso ad una
struttura XML: Microsoft, ad esempio, mette a disposizione di ASP e di
Visual Basic l’oggetto XMLDOM (acronimo di XML Document Object Model) mentre altri come Java e PHP hanno, rispettivamente, delle classi e dei
packages dedicati allo scopo.
A.3
Metamodello del Framework
Il framework utilizza un insieme di documenti XML per rappresentare, strutturare e gestire i metadati descritti nel paragrafo A.1. Vediamo i dettagli
dei documenti relativi ai metadati misurazione e metadati dimensione.
A.3.1
Metadati Misurazione
Iniziamo dal documento dei metadati misurazione, che rappresenta i dati
delle lookup table per l’accuratezza sintattica e delle frequenze medie di
aggiornamento per la currency.
Riportiamo la DTD del documento xml:
APPENDICE A. DESCRIZIONE DEL METAMODELLO
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ATTLIST
rel CDATA
att CDATA
>
85
DATABASE (RELAZIONE?,CURRENCY?)>
RELAZIONE ( NOMEREL, LOOKUPTABLE?, ATTRIBUTO?)>
NOMEREL (#PCDATA)>
ATTRIBUTO (NOMEATT, LOOKUPTABLE? )>
NOMEATT (#PCDATA)>
LOOKUPTABLE (USER, PSW, HOST, DB, NOMELUT)>
USER (#PCDATA)>
PSW ANY>
HOST (#PCDATA)>
DB (#PCDATA)>
NOMELUT (#PCDATA)>
CURRENCY (VALORE)>
VALORE (#PCDATA)>
CURRENCY
#IMPLIED
#IMPLIED
Consideriamo un’istanza del documento XML e descriviamone la struttura.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE DATABASE SYSTEM "metadati.dtd">
<DATABASE>
<RELAZIONE>
<NOMEREL>movies</NOMEREL>
<LOOKUPTABLE>
<USER>root</USER>
<PSW></PSW>
<HOST>localhost</HOST>
<DB>lookuptable</DB>
<NOMELUT>movies_lut</NOMELUT>
</LOOKUPTABLE>
<ATTRIBUTO>
<NOMEATT>title</NOMEATT>
<LOOKUPTABLE>
<USER>root</USER>
<PSW></PSW>
<HOST>localhost</HOST>
<DB>lookuptable</DB>
<NOMELUT>title_lut</NOMELUT>
</LOOKUPTABLE>
</ATTRIBUTO>
</RELAZIONE>
<CURRENCY att="#remake" rel="movies">
<VALORE>200</VALORE>
APPENDICE A. DESCRIZIONE DEL METAMODELLO
86
</CURRENCY>
</DATABASE>
Tralasciando la dichiarazione XML e il collegamento alla DTD, sono presenti degli elementi che cerchiamo di approfondire sulla base di un esempio
di utilizzo del framework. Supponiamo che tramite l’opportuna funzione sia
stato connesso un database che contiene la relazione movies, supponiamo
anche che nello stesso database o in un qualunque altro ci sia la lookup table, realizzata in MySQL, di tale relazione. Si vuole misurare l’accuratezza
sintattica della relazione o delle tuple, il ponte di collegamento tra movies
e la sua lookuptable è costituito dai dati presenti nel documento XML. Infatti dalla lettura del documento si nota che a movies è associata la lookup
table le cui coordinate MySQL per connettersi e recuperarla sono date dagli
elementi USER, PSW, HOST, DB, NOMELUT. Supponiamo ancora che la
relazione movies contenga un attributo title di cui si vuole calcolare l’accuratezza sintattica ed ha un dominio associato, la lookup table che rappresenta
il dominio è raggiungibile con i dati degli elementi USER, PSW, HOST,
DB, NOMELUT associati a title. Infine, supponiamo si voglia calcolare la
currency, con l’opportuna metrica, dell’attributo #remake sempre appartenente alla relazione movies, i dati presenti nell’elemento CURRENCY più
precisamente il contenuto di VALORE rappresenta la frequenza media di
aggiornamento, in giorni, ed esprime il fatto che i valori di #remake variano con una frequenza media di 200 giorni; questo dato è utilizzato nel
determinare il valore della currency.
I dati presenti nel documento XML, vengono recuperati, dopo una fase
di accesso e ricerca con opportune classi create ad hoc, ed utilizzati dagli
algoritmi che implementano le metriche.
A.3.2
Metadati Dimensione
Vediamo come sono descritti attraverso il modello concettuale e come sono
organizzati tramite il modello logico, i metadati dimensione.
Modello Concettuale
Quando si presenta il compito di rappresentare problematiche di data quality, precisamente dimensioni relative ai valori dei dati, i modelli dei dati
tradizionali non sono più sufficienti e bisogna quindi estenderli per adattarli
a questo scopo.
Per quanto riguarda i dati strutturati, i modelli che vengono estesi sono
il modello Entità Relazione per la fase concettuale e il modello Relazionale
per la fase logica. D’altra parte per i dati semistrutturati [9], si utilizza
un modello per associare valori di qualità a dati rappresentati in documenti
XML.
APPENDICE A. DESCRIZIONE DEL METAMODELLO
87
Il modello chiamato Data and Data Quality model (D2 Q) è utilizzato
nel contesto di un cooperative information system (CIS). In tali sistemi le
organizzaioni cooperanti hanno bisogno di scambiarsi dati ed è quindi importante essere attenti alla qualità di tali dati. Le organizzazioni possono
utilizzare il (D2 Q) model per certificare la qualità dei loro dati in termini
di accuratezza, consistenza, completezza e currency. Il modello è semistrutturato e permette a ciascuna organizzazione di esportare la qualità dei loro
dati con un certo grado di flessiblità. I valori delle dimensioni di qualità
possono essere associati ai vari elementi del modello dati, da un singolo valore a un intera sorgente dati. Le principali caratteristiche del (D2 Q) model
sono:
• Un classe di dati e uno schema di dati: sono introdotte per rappresentare il dominio dei dati del (D2 Q) model.
• Una classe di qualità e uno schema di qualità: corrispondono alla
porzione di qualità del (D2 Q) model.
• Una funzione di associazione della qualità: che si riferisce ai nodi del
grafo relativo allo schema di dati e ai nodi del grafo relativo alla qualità
dello schema.
Il (D2 Q) model può essere facilmente tradotto in un modello dati XML.
Questo è importante per il requisito di interoperabilità dei sistemi cooperanti.
Quello appena descritto è un modello generale per associare valori di
qualità ai dati semistrutturati, ritornando al nostro caso, si è utilizzato come
modello per lo schema concettuale, il modello Entità-Relazioni. Lo schema
è mostrato in figura A.3:
Modello Logico
La DTD del documento XML è:
<!ELEMENT DATABASE (NOMEDB , NUMTAB ,(COMPLETEZZA)+ ,(ACCURATEZZA)+,
(CURRENCY)+, (CONSISTENZA)+ )>
<!ELEMENT NOMEDB (#PCDATA)>
<!ELEMENT NUMTAB (#PCDATA)>
<!ELEMENT COMPLETEZZA (DATA, METRICA,(RELAZIONE|ATTRIBUTO|TUPLE),
VALORE?)>
<!ELEMENT TUPLE ((TUPLA)+)>
<!ATTLIST TUPLE nomerel CDATA #IMPLIED>
<!ELEMENT TUPLA (ID ,VALORE)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT VALORE (#PCDATA)>
<!ELEMENT DATA (#PCDATA)>
APPENDICE A. DESCRIZIONE DEL METAMODELLO
88
Figura A.3: Schema Entità-Relazione Metadati Dimensione
<!ELEMENT METRICA (#PCDATA)>
<!ELEMENT RELAZIONE (#PCDATA)>
<!ATTLIST RELAZIONE nomerel CDATA #IMPLIED>
<!ELEMENT ATTRIBUTO (#PCDATA)>
<!ATTLIST ATTRIBUTO nomerel CDATA #IMPLIED>
<!ELEMENT ACCURATEZZA (DATA, METRICA,(RELAZIONE|ATTRIBUTO|TUPLE),
VALORE?,LOOKUPTABLE?)>
<!ELEMENT LOOKUPTABLE EMPTY>
<!ATTLIST LOOKUPTABLE
user CDATA #IMPLIED
password CDATA #IMPLIED
host CDATA #IMPLIED
db CDATA #IMPLIED
nomelut CDATA #IMPLIED
>
<!ELEMENT CURRENCY (DATA,METRICA,ATTRIBUTO,VALORE)>
<!ELEMENT CONSISTENZA (DATA, METRICA,TUPLE,LOOKUPTABLE?)>
Consideriamo un’istanza non completa del documento XML, per motivi di
lunghezza e chiarezza del documento.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE DATABASE SYSTEM "reportParziale.dtd">
<DATABASE>
APPENDICE A. DESCRIZIONE DEL METAMODELLO
89
<NOMEDB>basi</NOMEDB>
<NUMTAB>5</NUMTAB>
Nella prima parte del documento ci sono dati relativi al nome del database
a cui il modello logico si riferisce e al numero di relazioni appartenenti ad
esso. I frammenti del documento successivi, riguardano possibili misurazioni che possono essere effettuate nel utilizzare il framework. Quindi diamo
degli esempi per ognuna delle quattro dimensioni analizzate: completezza,
accuratezza sintattica, currency e consistenza.
<COMPLETEZZA>
<DATA>Mercoledi 10 Gennaio 2007 19:14:20</DATA>
<METRICA>CWA null value</METRICA>
<RELAZIONE nomerel="movies">movies</RELAZIONE>
<VALORE>12 %</VALORE>
</COMPLETEZZA>
<COMPLETEZZA>
<DATA>Mercoledi 10 Gennaio 2007 19:14:45</DATA>
<METRICA>CWA null value</METRICA>
<ATTRIBUTO nomerel="movies">Director</ATTRIBUTO>
<VALORE>75 %</VALORE>
</COMPLETEZZA>
Misurando la completezza di una relazione, di un attributo o delle tuple
vengono creati degli elementi con dei dati che danno informazioni sulla data
di esecuzione della misurazione, sulla metrica utilizzata, sul livello di granularità (relazione, attributo, tuple), sul nome della relazione o attributo e
infine sul valore risultato della valutazione.
<ACCURATEZZA>
<DATA>Mercoledi 10 Gennaio 2007 19:22:03</DATA>
<METRICA>LookUp Table</METRICA>
<RELAZIONE nomerel="indirizzi">indirizzi</RELAZIONE>
<VALORE>39 %</VALORE>
<LOOKUPTABLE db="Lut" host="localhost" nomelut="indirizziset"
password="" user="root"/>
</ACCURATEZZA>
Per l’accuratezza sintattica, come è possibile notare, vengono memorizzati
gli stessi dati come nel caso della completezza, ma con l’aggiunta dei dati
relativi alla lookup table utilizzata per eseguire la misurazione.
<CURRENCY>
<DATA>Giovedi 11 Gennaio 2007
17:23:45</DATA>
APPENDICE A. DESCRIZIONE DEL METAMODELLO
90
<METRICA>FREQUENZA MEDIA METADATI</METRICA>
<ATTRIBUTO nomerel="indirizzi_currency">citta</ATTRIBUTO>
<VALORE>Not Current</VALORE>
</CURRENCY>
Nel caso della currency, essa è misurata solo sugli attributi, è presente un’informazione definita nell’attributo XML nomerel che lega l’attributo alla propria relazione. Sono presenti i dati relativi alla data, metrica, nome attributo
e valore misurazione.
<CONSISTENZA>
<DATA>Giovedi 11 Gennaio 2007 18:33:51</DATA>
<METRICA>Integrita referenziale</METRICA>
<TUPLE nomerel="esami">
<TUPLA>
<ID>sistemi informativi</ID>
<VALORE>88 %</VALORE>
</TUPLA>
<TUPLA>
<ID>algoritmi</ID>
<VALORE>100 %</VALORE>
</TUPLA>
<TUPLA>
<ID>basi di dati</ID>
<VALORE>55 %</VALORE>
</TUPLA>
</TUPLE>
<LOOKUPTABLE db="Lut" host="localhost" nomelut="esami_lut"
password="" user="root"/>
</CONSISTENZA>
Infine la parte del modello dedicata alla consistenza, memorizza per ogni
valore esaminato il corrispondente risultato, ad esempio il valore sistemi informativi di un ipotetico attributo corso dal confronto è risultato essere non
del tutto consistente con l’altro valore presente in un attributo corso di studio, e quindi siccome i due attributi dovrebbero avere le stesse informazioni
si nota un evidente problema di consistenza.
Appendice B
Funzioni di Similarità
B.1
Principali Funzioni di Similarità
Le funzioni di similarità, specialmente quelle relative al confronto tra stringhe, vengono elencate nel seguito. Vediamo le principali. Alcune, precisamante la Jaro e la Soundex sono state approfondite nel Capitolo 4, in quanto
utilizzate nel framework.
• Distanza di Edit: La distanza di edit tra due stringhe A e B è il numero minimo di modifiche per trasformare una stringa A in B o viceversa.
Per una modifica si intende l’inserimento, la cancellazione o la sostituzione di un carattere. A ciascuna di queste modifiche è assegnato
un costo. Per esempio, assumiamo che i costi di inserimento e cancellazione siano pari ad 1, la distanza di edit tra due stringhe Smith e
Sitch è 2, in quanto Smith è ottenuta inserendo m e cancellando c da
Sitch.
• Distanza di Hamming: La distanza di Hamming conta il numero di
discrepanze tra due numeri. Per esempio, il codice di Hamming tra
00185 e 00155 è 1.
• Smith-Waterman: L’algoritmo di Smith-Waterman, date due sequenze, utilizza la programmazione dimamica per trovare il più basso costo
per convertire una stringa in un’altra. I costi per i singoli inserimenti
e cancellazioni sono i parametri dell’algoritmo.
• n-grams, bi-grams, q-grams: La funzione di distanza n-grams forma
l’insieme di tutte le sottostringhe di lunghezza n perp
ciascuna
strinP
′ − f ′′ |
ga. La distanza tra le due stringhe è definita come:
|f
s
∀x s
dove fs′ e fs′′ sono il numero di occorrenze delle sottostringhe x nelle
due stringhe s′ e s′′ , rispettivamente. La funzione Bi-grams (n=2) è
largamente utilizzato e è efficacie, con minori errori tipografici.
91
92
APPENDICE B. FUNZIONI DI SIMILARITÀ
I q-grams posizionali sono ottenuti slittando di una finestra di lunghezza q i caratteri di una stringa s.
• TF-IDF: Il Token Frequency-Inverse Document Frequency (TF-IDF)
o cosine similarity per il confronto di stringhe simili nei documenti.
L’idea di base è assegnare un peso alto ai token che appaiono frequentemente in un documento (TF weight), e assegnare un peso basso ai
token che appaiono frequentemente in un intero insieme di documenti
(IDF weight). Per un termine i in un documento j il peso wi,j è:
wi,j = (tf i, j) × log(
N
)
dfi
dove tf i, j è il numero di occorrenze di i in j, dfi è il numero di
documenti contenenti i e N è il numero totale di documenti. La similarità tra due documenti è dopo calcolata con il coseno tra i loro
rispettivi vettori con i termini di peso. Più precisamente, essendo
V = {w1 , ..., wn } e U = {w1 , ..., wn } i vettori con i pesi, la similarità è:
V ·U
|V | · |U |
Per completezza d’informazione, riportiamo nuovamente anche la Jaro e la
Soundex:
• Jaro: Introduce una funzione di confronto tra stringhe che tiene conto
di inserimenti, cancellazioni e trasposizioni. L’algoritmo di Jaro cerca
il numero di caratteri comuni e il numero di caratteri trasposti nelle due
stringhe. Un carattere comune è un carattere che appare in entrambe
le stringhe con una distanza pari alla metà della lunghezza della stringa
più corta. Un carattere trasposto è un carattere comune che appare
in posizioni differenti. Come esempio consideriamo le stringhe Smith
e Simth, ci sono cinque caratteri comuni, due dei quali sono trasposti.
La scala di confronto tra le stringhe per Jaro è data da:
f (s1 , s2 ) =
Nc
lengthS1
+
Nc
lengthS2
Nt
+ 0.5 N
c
3
dove s1 e s2 sono stringhe di lunghezza lengthS1 e lengthS2 rispettivamente, Nc è il numero di caratteri comuni tra le due stringhe (dove
la distanza per caratteri comuni è la metà della lunghezza minima di
s1 e s2 e Nt è il numero di trasposizioni).
• Soundex: Lo scopo della funzione soundex è quello di raggruppare
nomi che hanno suoni simili. Produce un codice, detto codice soundex.
Per esempio il codice soundex di Hilbert e Heilbpr è simile. Un codice
soundex contiene di regola quattro caratteri. La prima lettera del nome
APPENDICE B. FUNZIONI DI SIMILARITÀ
93
diventa il primo carattere del codice, i restanti tre caratteri sono dati
dall’ordine sequenziale del nome, consultando una tabella predefinita.
Per esempio il codice soundex di Hilbert e Heilbpr è H416. Una volta
che il limite di quattro caratteri è raggiunto, le restanti lettere vengono
ignorate.
Bibliografia
[1] Carlo Batini, Monica Scannapieco. Data Quality: Concepts, Methodologies and Techniques. Springer, 2006.
[2] Thomas C. Redman. Data Quality For The Information Age. Artech
House, 1996.
[3] Fellegi I.P., Sunter A.B. A Theory for Record Linkage. Journal of the
American Statistical Association, vol. 64, 1969.
[4] Pipino L.L., Lee Y.W., Wang R.Y. Data Quality Assessment.
Communications of the ACM, vol.45, no.4, 2002.
[5] Wang R.Y., Strong D.M. Beyond Accuracy: What Data Quality Means
to Data Consumers. Journal of Management Information System, vol.12,
no.4, 1996.
[6] Nielsen J. Usability Engineering. Academic Press, 1993.
[7] Dix A., Finley J., Abowd G., Beale R. Human-Computer Interaction.
Second Edition. Prentice Hall, 1998.
[8] William R. Durrell. Data Administration: A Practical Guide to Data
Administration. McGraw-Hill, 1985
[9] Storey V., Wang R. Extending the ER Model to Represent Data Quality Requirements. Data quality (R. Wang, M. Ziad, and W. Lee, eds.),
Kluver Academic Publishers, 2001.
[10] F. De Amicis, D. Barone, C. Batini. An Analytical Framework To
Analyze Dependencies Among Data Quality Dimension. ICIQ - 11th
International Conference on Information Quality, November 2006.
[11] Shankaranarayan G.R., Wang R.Y., Ziad M. Modeling the Manufacture
of an Information Product with IP-MAP. Conference on Information
Quality. Massachussets Institute of Technology, 2000.
[12] Ballou D.P., Wang R.Y, Pazer H., Tayi G.K. Modeling Information Manufacturing Systems to determine Information Product Quality.
Management Science, vol.44, no.4, 1998.
94
BIBLIOGRAFIA
95
[13] G. Navarro. A Guided Tour of Approximate String Matching. ACM
Computing Surveys 31 (2001), 31-88.
[14] Atzeni P., Ceri S., Paraboschi S., Torlone R. Basi di dati: Modelli e
linguaggi di interrogazione. McGraw-Hill, 2002.
[15] Wand Y., Wang, R.Y. Anchoring data quality dimensions in ontological
foundations. Communication of ACM, vol. 39, no. 11, 1996.
[16] Wang R.Y. A Product Perspective on Total Data Quality Management.
Communication of the ACM, vol. 41, no. 2, 1998.
[17] Diane M. String, Yang W. Lee, Richard Y. Wang. Data Quality in
Contex. Communication of the ACM, vol. 40, no. 5, 1997.
[18] Eclipse Birt, http://www.eclipse.org/birt/phoenix/.
[19] MySQL, http://www.mysql.com/.
[20] Eclipse, http://www.eclipse.org/.
[21] XML, http://www.w3.org/XML/.
[22] SWT: The Standard Widget Toolkit, http://www.eclipse.org/swt/.
[23] Java, http://java.sun.com/.
[24] JDBC, http://java.sun.com/javase/technologies/database/index.jsp.
[25] SimMetrics, http://www.dcs.shef.ac.uk/ sam/stringmetrics.html.
[26] JFreeChart, http://www.jfree.org/jfreechart/.
[27] BrowserLauncher2, http://sourceforge.net/projects/browserlaunch2/.
[28] Data Warehousing Institute, http://www.dw-institute.com/.
Scarica