Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSeveriano Villa Modificato 11 anni fa
1
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso di Laurea in Ingegneria Informatica Elaborazione di interrogazioni in un sistema a mediatore: Fusione dei dati Con Risoluzione di conflitti Tesi di Laurea di Marco Mattioli Controrelatore Prof. Ing. Paolo Tiberio Relatore Chiar.mo Prof. Sonia Bergamaschi Correlatore Prof. Ing. Domenico Beneventano
2
Sommario Il modello a mediatore La qualità dei dati e la risoluzione dei conflitti - Funzione di risoluzione Linterrogazione di database autonomi - Full Disjunction - Algoritmi risolutivi
3
Il Modello a Mediatore Informazioni FIAT pagine web FIAT Informazioni Volkswagen pagine web Volkswagen... Motore di ricerca Altre Pagine MEDIATORE MOMIS query Lista di auto dai cataloghi FIAT e Wolkswagen rispondenti alla richiesta Approccio MOMISUsando un motore di ricerca internet Voglio comprare unauto con il motore tra i 1600 e i 2000cc, con un costo minore di 18000
4
Il Modello a Mediatore Lutente esegue le richieste su uno SCHEMA GLOBALE Il mediatore seleziona le fonti locali e traduce, la richiesta per renderla comprensibile dalle fonti locali (MAPPING TABLE) Ogni richiesta tradotta viene spedita alla rispettiva fonte locale ed eseguita I risultati vengono raccolti e tradotti per lo schema globale Approccio GAV: ogni attributo della classe globale è mappato in almeno una classe locale. Le classi locali sono autonome: i dati potrebbero contenere delle inconsistenze.
5
I Conflitti nei Dati Genericamente: quando una entità presenta aspetti inconsistenti o contrastanti. In ambito relazionale: quando i valori di uno o più attributi comuni di tuple che vanno fuse hanno valori discordanti. Esempio: Carta Identità NomeIndirizzo 22222M. RossiVia Indipendenza 26 55555L. VerdiViale Vittorio Veneto 30 Comune Carta Identità NomeIndirizzo 22222M. RossiVia F.lli Rosselli 35 55555L. VerdiViale Vittorio Veneto 30 USL Conflitto su Indirizzo nella prima tupla. Come comportarsi?
6
I Conflitti nei Dati Non fornire in uscita le informazioni conflittuali (L. Bertossi, J. Chomicki 2003) Fornire in uscita un solo valore per ogni conflitto (F. Naumann 2000) (risoluzione dei conflitti) Fornire in uscita anche tutti i valori conflittuali (D. Lembo, M. Lenzerini 2002) Carta identitàNomeIndirizzo 55555L. VerdiViale Vittorio Veneto 30 Carta identitàNomeIndirizzo 22222M. RossiVia Indipendenza 26, Via F.lli Rosselli 35 55555L. VerdiViale Vittorio Veneto 30 Carta identitàNomeIndirizzo 22222M. Rossi f (Via Indipendenza 26, Via F.lli Rosselli 35) 55555L. VerdiViale Vittorio Veneto 30
7
La Qualità nei Dati Utile per la selezione delle fonti (F. Naumann 1998) Utile per risolvere i conflitti (H. J. Lenz, F. Naumann, M. Neiling 2003) Concetto non ben definito - Numerosi parametri (>60) e metodi per calcolarla. - Limportanza dei parametri varia in base allapplicazione ed allutente Esempi: *Tempo di risposta *Consistenza *Completezza *Accuratezza *Aggiornamento Fonte più affidabileDato probabilmente corretto
8
La Funzione di Risoluzione Dati: R 1, …,R n : insieme di relazioni X 1, …,X n : valori assunti da R 1 …R n per lattributo A D + : D. Dove D è il dominio di A Allora si definisce funzione di risoluzione la funzione: f rA = f rA ( X1,…,Xn) : D + n D + f rA = se i X i = X i se ! i |X i g (X 1, …,X n ) altrimenti Dove g (X 1, …,X n ) : D + n D +
9
La Funzione di Risoluzione g (X1…Xn) preposta a risolvere i conflitti. - deve essere commutativa - Si possono identificare tre categorie, a seconda del tipo di attributo *Funzioni per attributi numerici (media, mediana, somma) *Funzioni per attributi non numerici (concatena, più corto, più lungo) *Funzioni per ogni tipo di attributo (max qualità, random, fonte stabilita) Si possono distinguere due tipi di funzione di risoluzione: -Funzione di risoluzione standard risolve i conflitti utilizzando i valori dellattributo da risolvere -Funzione di risoluzione generalizzata si serve anche dei valori di altri attributi dello schema Es.: attributo prezzo utilizza attributo data
10
Grafi ed Ipergrafi Grafi secondo Galindo-Legaria - i nodi rappresentano le relazioni - gli archi rappresentano i join tra le relazioni Ipergrafi secondo Fagin - i nodi rappresentano gli attributi - gli iperarchi rappresentano le relazioni Un iperarco può congiungere un numero qualsiasi di nodi Esempio di ipergrafo Esempio di grafo
11
Full Disjunction Operatore in grado di calcolare louterjoin di n relazioni Preserva tutte le possibili connessioni tra i fatti Esempio: BC 20200 30300 AB 110 220 AC 1100 3300 L1L2L3 select * from (L1 full outer join L2 on L1.B=L2.B) full outer join L3 on (L2.C=L3.C or L1.A=L3.A) Metodo basato sullOR L1.AL1.BL2.BL2.CL3.AL3.C 110 1100 220 200 303003
12
Gli Algoritmi SOJO e PSOJ Calcolano la full disjunction Utilizzano il natural outerjoin come unico operatore Fanno lipotesi di omogeneità semantica SOJO (Sound Ordering of OuterJoin) ideato da Ullman PSOJ (Pseudo Sequence of OuterJoin) da utilizzare in ambito MOMIS Principali differenze SOJO (Ullman 1996) a.basato su ipergrafi b.funziona correttamente solo per ipergrafi -aciclici c.ogni relazione compare una ed una sola volta nella sequenza di join d.necessita di un ordinamento per le relazioni PSOJ a.basato su grafi b.funziona correttamente per ogni tipo di grafo/ipergrafo c.ogni relazione può comparire più volte nella sequenza di join d.non necessita di ordinamento
13
Il Natural Outerjoin Funzionamento simile al full outerjoin Proietta il risultato sullunione degli schemi Computa lequijoin su tutti gli attributi comuni Esempio: AC 37 49 BC 57 68 RS ABC 357 4 9 68 R.AR.CS.BS.C 3757 49 68 Natural OuterjoinFull Outerjoin
14
Le Modifiche al PSOJ Rimozione del vincolo di omogeneità semantica - Funzione di risoluzione - Necessità di un ordinamento - Fallimento in alcuni casi E necessario che gli attributi di join siano compattati Natural Outerjoin (non standard SQL92) Full Outerjoin + Funzione di risoluzione sugli attributi di join
15
LAlgoritmo PSOJ Modificato Input: - R = {R 1, …, R n } su S ( G ) - JM = {F ij : i<j, i = 1,…,n-1 ; j = 2,…,n} - F = { f r1,…, f rm } Output: - Full Disjunction Operatore di join: full outerjoin
16
Procedimento: Poni F 0 = JM, R o = R, NR= n. relazioni for (i=0; i< NR;i++) seleziona R i R i R i+1 = {R i = f = R i : R i R i, R i R i, f = OJC i (R i, R i ) null} calcola tutti i join in R i+1 R R i+1 tupla di R attributo di join j della tupla applica la funzione di risoluzione f rj (associativa) tupla della relazione attributo j della tupla applica la funzione di risoluzione f rj Restituisci R NP
17
Esempio di applicazione dellalgoritmo PSOJ
18
[(R 3 R 2 ) (R 4 R 2 )] [(R 1 R 2 ) (R 4 R 2 )] F 2,3 F 3,4 F 2,4 F 1,3 F 1,2 F 1,4 F 2,4
19
Conclusioni Come procedere al calcolo della full disjunction?
20
Gradi di Ciclicità degli Ipergrafi Per i grafi la nozione di ciclicità è standard: Un grafo è ciclico se esiste un percorso che ha inizio e termine sullo stesso nodo Per gli ipergrafi sono stati introdotti vari gradi di ciclicità: -ciclicità Berge-ciclicità Si ha che: Berge-aciclicità -aciclicità -aciclicità -aciclicità Per la nostra trattazione sono importanti i concetti di -ciclicità e -ciclicità
21
-ciclicità e -ciclicità Schema -ciclico
22
I Limiti dellAlgoritmo Il limite dellalgoritmo sono gli ipergrafi -ciclici e -aciclici, ma utilizzando il full outerjoin invece che il natural outerjoin la situazione è diversa. Gli ipergrafi sono progettati per loperatore di natural outerjoin e quindi su join basati su tutti gli attributi comuni alle relazioni. I -cicli portano al fallimento dellalgoritmo solo se sono formati da attributi di join; quindi alcuni ipergrafi -ciclici possono essere affrontati dallalgoritmo, a seconda delle condizioni di join. Riefinendo gli ipergrafi usando come nodi solo gli attributi di join e come iperarchi solo gli attributi di join delle relazioni quanto detto finora vale anche per il full outerjoin.
23
La Motivazione dellOrdinamento Lalgoritmo si basa sul concetto che: FD(Li,Lj) = Li= Fij=Lj Essendo la full disjunction una relazione: FD(FD(Li,Lj),FD(Li,Lk)) = FD(Li,Lj)= Fjk=FD(Li,Lk) Queste uguaglianze valgono se e solo se: Li= Fij=Lj = Li FijLj Li Lj che vale se e solo se Li ed Lj non hanno tuple sussunte. Lipotesi di consistenza dei join assicura la validità della proprietà per le relazioni base, ma non viene assicurato niente per i passaggi successivi. Perché ciò avvenga è necessario preservare tale ipotesi attraverso un ordinamento.
24
LOrdinamento da Utilizzare Dato un grafo G=(V,E) con V={R1,…,Rn} e E={(Ri,Rj) | Ri,Rj V, Fij NULL} si definisce nodo ammissibile un nodo Ri V se, essendo RJ=Rj1,…,Rjn linsieme di tutti i nodi collegati direttamente a Ri, esiste un percorso di G =(V,E ) con V =V - {Ri} e E ={(Ri,Rj) | Ri,Rj V, Fij NULL} che colleghi tutti i componenti di RJ tra loro. Si definisce G linsieme di tutti i nodi ammissibili del grafo G. Dato un grafo G=(V,E) con V={R1,…,Rn} e E={(Ri,Rj) | Ri,Rj V, Fij NULL} e dato linsieme di tutti i nodi ammissibili di G, si definisce funzione di ricerca fric(G) una funzione che, dato G, restituisce linsieme V V tale che: V ={Ri G | (Ri,Rj) E, Rj | (Rj,Rk) E, Fjk ((S(Ri) S(Rj)) - (S(Ri) S(Rj)))= } con Ri Rj Rk V
25
LOrdinamento da Utilizzare E necessario cercare un ordinamento ununica volta, dati gli schemi delle relazioni e le condizioni di join. Non esiste sempre un ordinamento, ma se esiste va ricercato prima tra i nodi che ad ogni passo hanno join che coinvolgono il maggior numero di attributi. Grafo risolubileGrafo non risolubile Esempio:
26
Le Modifiche dellAlgoritmo Nei grafi non totalmente connessi per evitare la disconnessione si prendono per primi i nodi con un numero minore di connessioni FALSO esempio: Soluzione: Si può usare un nodo se e solo se dopo la sua eliminazione esiste un percorso che congiunga tutti i nodi a cui questo è direttamente connesso. Dato un grafo G ed un nodo Li G, lutilizzo del nodo Li non disconnette G se e solo se Lj Fij NULL Lk Fjk NULL, Fik NULL con i j k dove Fij indica la condizione di join tra le fonti Li e Lj.
27
Le Modifiche dellAlgoritmo La condizione di join False viene vista come un qualsiasi join ed affrontata con loperatore di outerjoin. ERRATO False indica che linsieme degli oggetti contenuti nelle due classi è disgiunto. Un join produrrebbe un prodotto cartesiano, creando congiunzioni che non devono esistere. Soluzione Trattare le condizioni di join False come assenti oppure Utilizzare loperatore di outerunion
28
Le Modifiche dellAlgoritmo Nel caso di grafi completamente connessi non è necessario un ordinamento. ERRATO Esempio:
29
La Riscrittura della Query Query globale: Q Query locale per la classe L: QL 1.Normalizzazione della query Q Si riscrive Q nella forma Q d =C1 Cn dove Ci=P1 Pn con Pi predicati atomici 2.Scrittura della condizione where per QL: Tutti i fattori di Qd che possono essere ricercati in L 3.Scrittura della condizione residua di Q Tutti i fattori non compresi in tutte le condizione where locali 4.Scrittura della select list di QL Per ogni classe locale L gli attributi: della select list di Q + di join per L + della condizione residua Tutti gli attributi devono essere tradotti tramite la mapping table. La query globale viene riformulata tramite la full disjunction basata sulla join table e tramite la condizione residua
30
La Riscrittura e la Funzione di Risoluzione Generalizzata prezzodatacodice 409/211111 431/122222 prezzodatacodice 5010/211111 4210/122222 select * from G where prezzo 1/2 L1 L2 select * from Li where prezzo 1/2 tuple risultanti da L1tuple risultanti da L2 prezzodatacodice 409/211111 prezzodatacodice Non ci sono conflitti: la tupla di L1 costituisce il risultato restituito
31
La Riscrittura e la Funzione di Risoluzione Generalizzata select * from G select * from Li prezzodatacodice 409/211111 431/122222 prezzodatacodice 5010/211111 4210/133333 tuple restituite da L1tuple restituite da L2 Conflitto di prezzo su 11111. Si sceglie il valore più aggiornato. Conflitto di data su 11111. Si sceglie il valore più elevato. prezzodatacodice 5010/211111 431/122222 4210/133333 tuple restituite da G
32
La Riscrittura e la Funzione di Risoluzione Generalizzata select * from G where prezzo 1/2 prezzodatacodice 409/211111 tuple restituite da G select * from G tuple restituite da G prezzodatacodice 5010/211111 431/122222 4210/133333 I risultati della prima esecuzione non sono un sottoinsieme dei risultati della seconda e quindi sono errati. Le condizioni di selezione poste su attributi che usano funzioni di risoluzione generalizzate devono fare parte esclusivamente della clausola residua, senza considerare che siano o meno mappate su tutte le classi locali, e non devono essere spedite alla classi locali.
33
La Riscrittura e la Funzione di Risoluzione Generalizzata select * from G where prezzo 1/2 select * from Li where Data>1/2 prezzodatacodice 409/211111 tuple restituite da L1 prezzodatacodice 5010/211111 tuple restituite da L2 prezzodatacodice 5010/211111 G prezzodatacodice tuple restituite da G prezzo<45
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.