La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Tesina SIS Antonello Scarano Luigi Tullio. Compito Assegnato Svolgere sei compiti desame di basi di dati in modo autonomo. Svolgere sei compiti desame.

Presentazioni simili


Presentazione sul tema: "Tesina SIS Antonello Scarano Luigi Tullio. Compito Assegnato Svolgere sei compiti desame di basi di dati in modo autonomo. Svolgere sei compiti desame."— Transcript della presentazione:

1 Tesina SIS Antonello Scarano Luigi Tullio

2 Compito Assegnato Svolgere sei compiti desame di basi di dati in modo autonomo. Svolgere sei compiti desame di basi di dati in modo autonomo. Progettare lo schema globale insieme. Progettare lo schema globale insieme. Svolgere il lavoro di integrazione dei dati. Svolgere il lavoro di integrazione dei dati. Presentare il lavoro svolto ed eventuali osservazioni. Presentare il lavoro svolto ed eventuali osservazioni.

3 Prime Osservazioni Specifiche troppo dettagliate. Specifiche troppo dettagliate. Schemi da integrare troppo simili. Schemi da integrare troppo simili. Modifiche alla traccia iniziale. Modifiche alla traccia iniziale.

4 Mapping GAV Global as View: lo schema globale è definito in termini di viste sugli schemi sorgente (locali). Pregi e difetti Quando una sorgente cambia è necessario modificare il mapping o ripensare lo schema globale Quando una sorgente cambia è necessario modificare il mapping o ripensare lo schema globale Lelaborazione delle query in genere è molto semplice (unfolding) Lelaborazione delle query in genere è molto semplice (unfolding)

5 Mapping LAV Local as View: gli schemi locali sono definiti in termini di viste sullo schema globale. Pregi e difetti Consentono unalta modularità e riusabilità: se cambia una sorgente è necessario modificare solo la sua definizione Consentono unalta modularità e riusabilità: se cambia una sorgente è necessario modificare solo la sua definizione Facile estensibilità: aggiungere una sorgente al sistema di integrazione consiste solo nel definire una nuova vista Facile estensibilità: aggiungere una sorgente al sistema di integrazione consiste solo nel definire una nuova vista La valutazione delle query è difficile (è necessaria una riformulazione delle query a run-time) La valutazione delle query è difficile (è necessaria una riformulazione delle query a run-time)

6 Separazione Compiti Diversificazione punti di vista Diversificazione punti di vista Analisi e commenti indipendenti Analisi e commenti indipendenti Redazione tesina come punto dincontro Redazione tesina come punto dincontro

7 Il mio compito Focalizzare lattenzione su GAV Focalizzare lattenzione su GAV Aspetto critico sul lavoro compiuto Aspetto critico sul lavoro compiuto Carpire concetti e trarre conclusioni Carpire concetti e trarre conclusioni

8 Esercizio 1 (schema globale)

9 Esercizio 1 (Sorgente A)

10 Esercizio 1 (sorgente B)

11 Problema! Specifiche stringenti Specifiche stringenti Schemi speculari Schemi speculari Nessuna rilevanza mapping Nessuna rilevanza mapping GAV e LAV immediati GAV e LAV immediati La realtà è diversa!! La realtà è diversa!!

12 Mapping (banale!) [ Prototipo, Prototipo(X,Y,Z) :- PrototipoA(X,Y,Z) [ Prototipo, Prototipo(X,Y,Z) :- PrototipoA(X,Y,Z) Prototipo(X,Y,Z) :- PrototipoB(X,Y,Z) ] Prototipo(X,Y,Z) :- PrototipoB(X,Y,Z) ] [Collaudo, Collaudo(X,Y,Z,K) :- CollaudoA(X,Y,Z,K) [Collaudo, Collaudo(X,Y,Z,K) :- CollaudoA(X,Y,Z,K) Collaudo(X,Y,Z,K) :- CollaudoB(X,Y,Z,K) ] Collaudo(X,Y,Z,K) :- CollaudoB(X,Y,Z,K) ] [Pista, Pista (X,Y,Z,K,Q,W,H,J) :- Pista(X,Y,Z,K,Q,W,H,J) [Pista, Pista (X,Y,Z,K,Q,W,H,J) :- Pista(X,Y,Z,K,Q,W,H,J) Pista (X,Y,Z,K,Q,W,H,J) :- Pista(X,Y,Z,K,Q,W,H,J) ] Pista (X,Y,Z,K,Q,W,H,J) :- Pista(X,Y,Z,K,Q,W,H,J) ] [Banco, Banco(X,Y,Z,K,Q) :- BancoA(X,Y,Z,K,Q) [Banco, Banco(X,Y,Z,K,Q) :- BancoA(X,Y,Z,K,Q) Banco(X,Y,Z,K,Q) :- BancoB(X,Y,Z,K,Q) ] Banco(X,Y,Z,K,Q) :- BancoB(X,Y,Z,K,Q) ]………

13 Uno spunto A partire dalla definizione dei mapping sia GAV che LAV forse abbiamo lopportunita di comprendere meglio quello che si nasconde dietro la struttura dei dati stessi. A partire dalla definizione dei mapping sia GAV che LAV forse abbiamo lopportunita di comprendere meglio quello che si nasconde dietro la struttura dei dati stessi. Esempio troppo chiaro in questo caso con lentità Autorizzazione della sorgente A. Esempio troppo chiaro in questo caso con lentità Autorizzazione della sorgente A.

14 Esercizio 2 (schema globale)

15 Esercizio 2 (sorgente A)

16 Esercizio 2 (sorgente B)

17 Mapping GAV Progettazione mirata (schema globale dettagliato) Progettazione mirata (schema globale dettagliato) Come si comporta il mapping? Come si comporta il mapping? GAV immediato GAV immediato Granularità non un problema Granularità non un problema Difficoltà: dispersione dellinformazione o mancanza Difficoltà: dispersione dellinformazione o mancanza

18 Mapping GAV/2 [Prenotazione, Prenotazione(X,Y) :- PrenotazioneA(X,Y,Z,K) [Prenotazione, Prenotazione(X,Y) :- PrenotazioneA(X,Y,Z,K) Prenotazione(X,Y) :- PrenotazioneB(X,Y,Z,K) ] Prenotazione(X,Y) :- PrenotazioneB(X,Y,Z,K) ] [Effettua, Effettua(X,Z,Y) :- PrenotazioneA(X,A,Y,Z) [Effettua, Effettua(X,Z,Y) :- PrenotazioneA(X,A,Y,Z) Effettua(X,Z,Y) :- PrenotazioneB(X,A,Y,Z)] Effettua(X,Z,Y) :- PrenotazioneB(X,A,Y,Z)] [Collettiva, Collettiva(X,Z,Y,K) :- CollettivaA(X,Y,Z,K,A) [Collettiva, Collettiva(X,Z,Y,K) :- CollettivaA(X,Y,Z,K,A) Collettiva(X,Z,Y,K) :- CollettivaB(X,Y,Z,K,A)] Collettiva(X,Z,Y,K) :- CollettivaB(X,Y,Z,K,A)] [Singola, Singola(X) :- SingolaA(X,Y,Z,K,A,B) [Singola, Singola(X) :- SingolaA(X,Y,Z,K,A,B) Singola(X) :- SingolaB(X,Y,Z,K,A,B)] Singola(X) :- SingolaB(X,Y,Z,K,A,B)]………

19 Mapping LAV [PrenotazioneA, PrenotazioneA(X,Y,Z,K) :- Prenotazione(X,Y),Effettua(X,Z,K) ] [PrenotazioneA, PrenotazioneA(X,Y,Z,K) :- Prenotazione(X,Y),Effettua(X,Z,K) ] [CollettivaA, CollettivaA(X,Y,Z,K,A) :- Collettiva(X,Z,Y,K),Quale(X,A) ] [CollettivaA, CollettivaA(X,Y,Z,K,A) :- Collettiva(X,Z,Y,K),Quale(X,A) ] [SingolaA, SingolaA(X,Y,Z,K,A,B) :- PSP(K,Z,A,Y,X), [SingolaA, SingolaA(X,Y,Z,K,A,B) :- PSP(K,Z,A,Y,X), Per(X,B)] Per(X,B)]………

20 Ossevazioni sul LAV Opposto al GAV Opposto al GAV Semplici join sui dati Semplici join sui dati Ancora: il problema è la dispersione dei dati Ancora: il problema è la dispersione dei dati

21 GAV e LAV assieme Si intuisce che analizzando i mapping possiamo ricavare informazioni su quello che si sta cercando di mappare. Si intuisce che analizzando i mapping possiamo ricavare informazioni su quello che si sta cercando di mappare.Esempio PostoAssegnato non mappato in nessuno dei due schemi. PostoAssegnato non mappato in nessuno dei due schemi. Informazione spalmata su troppe tabelle Informazione spalmata su troppe tabelle

22 Illustrazione esercizio 3 Specifiche molto vaghe (solo alcune linee guida) Specifiche molto vaghe (solo alcune linee guida) Risultato: basi dati differenti Risultato: basi dati differenti Attenzione sul GAV Attenzione sul GAV Schema globale molto dettagliato (contiene tutte le informazione di entrambe le sorgenti) Schema globale molto dettagliato (contiene tutte le informazione di entrambe le sorgenti) Politica del reperimento per forza di tutti i dati Politica del reperimento per forza di tutti i dati Assunzione iniziale: inserimenti leciti delle basi Assunzione iniziale: inserimenti leciti delle basi

23 Esercizio 3 (schema globale)

24 Esercizio 3 (sorgente A)

25 Esercizio 3 (sorgente B)

26 Il mapping GAV 1. Mapping diretto. Oss: chiavi differenti! Partita(DataOra, Stadio, Città,SquadraA, SquadraB, CFArbitro) GLOB Partita(DataOra, SquadraA, SquadraB, CFArbitro, Luogo, Citta) SORG A Partita(DataOra, Stadio, Città,SquadraA, SquadraB, NomeArbitro, CognomeArbitro) SORG B Possiamo reperire il CFArbitro anche per la sorgente B Possiamo reperire il CFArbitro anche per la sorgente B con meccanismo chiarito in seguito con meccanismo chiarito in seguito 2. Entità coinvolte identiche Squadra(X, Y, Z, A, B) :- SquadraA(X, Y, Z, A, B) Squadra(X, Y, Z, A, B) :- SquadraB(X, Y, Z, A, B)]

27 Il mapping GAV/2 3. Ricerca attraverso query specifiche dellinformazione sui gol marcati: Risultato(DataOraPartita, StadioPartita, CittàPartita, NGolA, NGolB)GLOB Partita(DataOra, SquadraA, SquadraB, Arbitro, Luogo, Citta) SORG A Marcatura(DataOra, SquadraA, SquadraB, Minuto, CFGiocatore) SORG A [NumeroGolA: F = Count(Marcatura(X, Y, Z, M, A), Partita(X, Y, Z, N, O, P),Giocatore(A, Y) )] [NumeroGolB: G = Count(Marcatura(X, Y, Z, M, A), Partita(X, Y, Z, N, O, P),Giocatore(A, Z))] Il mapping con la sorgente B è immadiato Il mapping con la sorgente B è immadiato Oss: le chiavi differenti non sono un problema; assunzione inserimenti leciti!!

28 Il mapping GAV/3 4. Mapping immediato con la sorgente A Problema sorgente B:differenza chiavi.Generazione di un valore fittizio univoco per non perdere informazione. Problema sorgente B:differenza chiavi.Generazione di un valore fittizio univoco per non perdere informazione. Conseguenza: non stiamo inserendo linformazione reale desiderata, ma meglio che perdere dati. Conseguenza: non stiamo inserendo linformazione reale desiderata, ma meglio che perdere dati. Persona(CF, Nome, Cognome, Età) GLOB Giocatore(NMaglia, NomeSquadra, Nome, Cognome, Ruolo, Eta) SORG B Arbitro(Nome, Cognome, Partite, Città) SORG B Oss: i dati per popolare lentità Persona del globale, le andiamo a reperire dalle tabelle Arbitro e Giocatore della sorgente B: è chiaro che noi siamo a conoscenza del significato logico del contenuto delle tabelle.

29 Il mapping GAV/4 5. Vale anche qui il ragionamento fatto al punto 4. Chiaramente si riusano gli identificativi generati al passaggio precedente. Chiaramente si riusano gli identificativi generati al passaggio precedente. Nel mapping con la sorgente A mancanza informazione: ignorare inserimenti su quei campi, oppure sporcare il GAV con un GLAV (forzando a NULL gli inserimenti sui dati mancanti) Nel mapping con la sorgente A mancanza informazione: ignorare inserimenti su quei campi, oppure sporcare il GAV con un GLAV (forzando a NULL gli inserimenti sui dati mancanti) Giocatore(CF, NMaglia, Ruolo, NomeSquadra) GLOB Giocatore(CF, NomeSquadra) SORG A Giocatore(NMaglia, NomeSquadra, Nome, Cognome, Ruolo, Eta) SORG B

30 Il mapping GAV/5 6. Stesso ragionamento utilizzato per i punti 4e5. Mapping diretto con la fonte A Mapping diretto con la fonte A Arbitro(X, Y) :- ArbitroB(A, C, Y, D) 7. Mapping possibile solo sulla fonte A: (differenza sostanziale dai punti precedenti) Allenatore (X) :- AllenatoreA(X) 8. Mapping diretto Stadio(X, Y) :- LuogoA(X, Y) Stadio(X, Y) :- CentroSportivoB(X, Y)]

31 Il mapping GAV/6 9. Mapping diretto Città(X) :- Città A(X) Città(X) :- Città B(X) 10. Mapping su A con semplice join. Mapping su B a patto di rispettare vincolo di chiave esterna sui Mapping su B a patto di rispettare vincolo di chiave esterna sui codici auto-generati dal sistema. codici auto-generati dal sistema. Marcatura(DataOraPartita, StadioPartita, CittàPartita, CFMarcatore,Minuto)GLOB Partita(DataOra, SquadraA, SquadraB, Arbitro, Luogo, Città) SORG A Marcatura(DataOra, SquadraA, SquadraB, Minuto, CFGiocatore) SORG A Marcatura(DataOraPartita, StadioPartita, CittàPartita, NMagliaMarcatore, NomeSquadraMarcatore, Minuto) SORG B

32 Il mapping LAV 1. Controllare se Partita ha un Risultato 2. Partite nonGiocate come differenza tra Partite e Giocate 3. Il campo Allenatore inteso come nome e cognome dellallentare. Sufficiente un join per reperire linformazione 4. Perdita informazione (irreperibile allinterno del globale)

33 Conclusioni GAV e LAV non sempre bastano GAV e LAV non sempre bastano GAV sfacciato: globale come vista sulle sorgenti (difficile) GAV sfacciato: globale come vista sulle sorgenti (difficile) LAV più modesto: sorgenti viste sul globale LAV più modesto: sorgenti viste sul globale Buono strumento di analisi Buono strumento di analisi E necessario derivare le relazioni interschema tra le varie sorgenti (GAV). E necessario derivare le relazioni interschema tra le varie sorgenti (GAV). Le relazioni interschema tra le sorgenti possono essere dedotte dai mapping (LAV). Le relazioni interschema tra le sorgenti possono essere dedotte dai mapping (LAV). Impossibilità a volte di soluzione per alcuni problemi Impossibilità a volte di soluzione per alcuni problemi Analizzare bene la tecnica da usare Analizzare bene la tecnica da usare Difficoltà di automatizzare: bisogna conoscere il rapporto con la realtà di quanto si vuole manipolare Difficoltà di automatizzare: bisogna conoscere il rapporto con la realtà di quanto si vuole manipolare

34 Presentazione Luigi Tullio DB 3 Invenzioni: DB 3 Invenzioni: Specifica dettagliata Schemi Simili Specifica dettagliata Schemi Simili Caso in cui si usa una chiave differente Caso in cui si usa una chiave differente DB 4 Ordini: DB 4 Ordini: Specifica dettagliata Schemi Simili Specifica dettagliata Schemi Simili Caso in cui una relazione viene ricostruita da altre Caso in cui una relazione viene ricostruita da altre DB 5 Prenotazioni: DB 5 Prenotazioni: Specifiche generiche Schemi differenti Specifiche generiche Schemi differenti Schema globale con alcune informazioni più dettagliate Gav più complesso. Schema globale con alcune informazioni più dettagliate Gav più complesso. Schema gobale con alcune informazioni mancanti Lav più complesso Schema gobale con alcune informazioni mancanti Lav più complesso 4 casi di Gav e 4 casi di Lav 4 casi di Gav e 4 casi di Lav

35 DB 3 – Invenzioni Globale Sorgente A InvenzioneUtile(Unicod, NBrevetto, NomeNazione, Finanziamento, CFVaglia, IstScolastico) InvenzioneUtile(Cod.Univoco.IU, NBrevetto, NomeNazione, Finanziamento, CF, CodiceIstScolastico) [InvenzioneUtile, InvenzioneUtile(X, Y, Z, K, A, B) :- InvenzioneUtileA(X, Y, Z, K, A, B) InvenzioneUtile(X, Y, Z, K, A, B) :- InvenzioneUtileB(X, Y, Z, K, A, B) ] GAV [InvenzioneUtile, InvenzioneUtile(X, Y, Z, K, A, B) :- InvenzioneUtile(X, Y, Z, K, A, B) ] LAV

36 DB 4 – Ordini Globale Sorgente A GAV ConsegnaPer(NomeC, DataNC, Data, Ora, NomeCorriere) Cliente(Nome, DataNascita, Reddito, AnniDaCliente) Processato(DataOrd, OraOrd, NomeCli, DataNasCli, DataCon, OraCon, NomeCorr) [ConsegnaPer, ConsegnaPer(Z, K, A, B, C) :- ProcessatoA(X, Y, Z, K, A, B, C), OrdineA(X, Y, Z, K, D) ConsegnaPer(X, Y, Z, K, A) :- PerB(X, Y, Z, K, A)]

37 DB 5 – Differenze A GlobaleSorgente A

38 DB 5 – Differenze B GlobaleSorgente B

39 GAV – 1 Informazione Mancante + Chiave Diversa Globale: Cliente(Nome, Cognome, DataNascita, Tel) Sorgente A:Cliente(Nome, Cognome, DataNascita, CF) Sorgente B:Cliente(Nome, Cognome, DataNascita, Tel) [Cliente, Cliente(X, Y, Z, NULL) :- ClienteA(X, Y, Z, A), Cliente(X, Y, Z, K) :- ClienteB(X, Y, Z, K) ] Il NULL sul campo Tel è stato necessario perchè nella sorgente A questa informazione non è presente. I vincoli di chiave sul globale vengono rispettati dai dati della sorgente B dato che fa uso della stessa chiave, per quelli provenienti dalla sorgene A teoricamente non è garantati che gli elementi abbiano i campi nome, cognome e data di nascita univoci.

40 GAV – 2a Informazione su più relazioni Globale Prenotazione(Codice, DataOraPrenotazione, DataOraPartenza, DataOraArrivo, Costo, NomeLuogoPartenza, CittàPartenza, NomeLuogoArrivo, CittàArrivo, NomeCompagnia, NomeChiCompra, CognomeChiCompra, DataNascitaChiCompra) Sorgente A Cliente(Nome, Cognome, DataNascita, CF) Biglietto(Codice, Prezzo, Sconto, CFChiCompra, IdViaggio) Viaggio(IdViaggio, NomeLuogoPartenza, NomeCittàPartenza, NomeLuogoDestinazione, NomeCittàDestinazione, NomeCompagnia, DataOraPartenza) [Prenotazione, Prenotazione(A, NULL, B, NULL, E, F, G, H, I, L, M, N, O) :- BigliettoA(A, E, Y, CF, D), ClienteA(M, N, O, CF), ViaggioA(D, F, G, H, I, L, B) Prenotazione(A, B, C, D, E, F, G, H, I, L, M, N, O) :- PrenotazioneB(A, B, L, E, M, N, O), PreAereaB(A, C, F, G, D, H, I) Prenotazione(A, B, C, D, E, F, G, H, I, L, M, N,O) :- PrenotazioneB(A, B, L, E, M, N, O), PreNavaleB(A, C, F, G, D, H, I) Prenotazione(A, B, C, D, E, F, G, H, I, L, M, N,O) :- PrenotazioneB(A, B, L, E, M, N, O), PreFerroviariaB(A, C, F, G, D, H, I) ] Nella sorgente A le informazioni per la relazione Prenotazioni del globale sono distribuite su tre relazioni Biglietto, Cliente e Viaggio quindi lasserzione deve essere composta dalle tre relazioni. Inoltre abbiamo assunto che il codice del biglietto della sorgente A viene usato come codice della prenotazione dello schema globale.

41 GAV – 2b [Prenotazione, Prenotazione(A, NULL, B, NULL, E, F, G, H, I, L, M, N, O) :- BigliettoA(A, E, Y, CF, D), ClienteA(M, N, O, CF), ViaggioA(D, F, G, H, I, L, B) Prenotazione(A, B, C, D, E, F, G, H, I, L, M, N, O) :- PrenotazioneB(A, B, L, E, M, N, O), PreAereaB(A, C, F, G, D, H, I) Prenotazione(A, B, C, D, E, F, G, H, I, L, M, N,O) :- PrenotazioneB(A, B, L, E, M, N, O), PreNavaleB(A, C, F, G, D, H, I) Prenotazione(A, B, C, D, E, F, G, H, I, L, M, N,O) :- PrenotazioneB(A, B, L, E, M, N, O), PreFerroviariaB(A, C, F, G, D, H, I) ] Per quanto riguarda la sorgente B sono in parte presenti nella relazione Prenotazione e in parte presenti nelle relazioni PreAerea, PreNavale e PreFerroviaria. Globale Prenotazione(Codice, DataOraPrenotazione, DataOraPartenza, DataOraArrivo, Costo, NomeLuogoPartenza, CittàPartenza, NomeLuogoArrivo, CittàArrivo, NomeCompagnia, NomeChiCompra, CognomeChiCompra, DataNascitaChiCompra) Sorgente B Prenotazione(Codice, DataOraPrenotazione, NomeCompagnia, Prezzo, NomeChiCompra, CognomeChiCompra, DataNascitaChiCompra) PreAerea(CodPrenotazione, DataOraPartenza, NomeAereoportoPartenza, NomeCittàPartenza, DataOraArrivo, NomeAereoportoArrivo, NomeCittàArrivo) PreNavale(CodPrenotazione, DataOraPartenza, NomePortoPartenza, NomeCittàPartenza, DataOraArrivo, NomePortoArrivo, NomeCittàArrivo) PreFerroviaria(CodPrenotazione, DataOraPartenza, NomeStazionePartenza, NomeCittàPartenza, DataOraArrivo, NomeStazioneArrivo, NomeCittàArrivo)

42 GAV – 3 Relazione da unattributo Globale: Compagnia(Nome, Telefono) Sorgente A: Compagnia(Nome, Telefono) Sorgente B: Prenotazione(Codice, DataOraPrenotazione, NomeCompagnia, Prezzo, NomeChiCompra,CognomeChiCompra, DataNascitaChiCompra) [Compagnia, Compagnia(X, Y) :- CompagniaA(X, Y) Compagnia(X, NULL) :- PrenotazioneB(A, B, X, C, D, E, F) ] Nella sorgente B linformazione su una compagnia non è mantenuta in una relazione ma in un campo della relazione Prenotazione, quindi linformazione sul nome della compagnia può essere ricavato da questo campo. Per le compagnie provenienti dalla sorgente B non è possibile ottenere linformazione sul numero di telefono. Per preservare il vincolo di chiave sulla relazione del globale bisogna prevedere di non considerare una stessa compagnia che è presente in entrambe le sorgenti.

43 GAV – 4 Entità non presente Globale : Pacchetto(CodicePrenotazione, Data, Durata, Albergo, CittàAlbergo) Sorgente A: Sorgente B: Pacchetto(CodicePrenotazione, Data, Durata, NomeAlbergo, CittàAlbergo) [Pacchetto, Pacchetto(X, Y, Z, K, A) :- PacchettoB(X, Y, Z, K, A) ] Qui ci troviamo nel caso in cui la sorgente A non contiene per niente un concetto, infatti nel globale è presente la relazione Pacchetto che rappresenta un viaggio con incluso lalloggio in unalbergo. Quindi per questa relazione il mapping estrae le informazione sola dalla sorgente B che contiene questi dati.

44 LAV – 1 Informazione su più relazioni Globale: Prenotazione(Codice, DataOraPrenotazione, DataOraPartenza, DataOraArrivo, Costo, NomeLuogoPartenza, CittàPartenza, NomeLuogoArrivo, CittàArrivo, NomeCompagnia, NomeChiCompra, CognomeChiCompra, DataNascitaChiCompra) Aerea(Nome, Nazione) Sorgente B: PreAerea(CodPrenotazione, DataOraPartenza, NomeAereoportoPartenza, NomeCittàPartenza, DataOraArrivo, NomeAereoportoArrivo, NomeCittàArrivo) [PreAereaB, PreAereaB(A, B, C, D, E, F, G) :- Prenotazione(A, M, B, E, N, C, D, F, G, O, P, Q, R), Aerea(O, S) ] La relazione PreAerea rappresenta le prenotazioni aeree. Questa informazioni possono essere prese dalle relazioni del globale Prenotazione e Aerea.

45 LAV – 2 Sorgente con un sottoinsieme dei dati del globale Globale: Prenotazione(Codice, DataOraPrenotazione, DataOraPartenza, DataOraArrivo, Costo, NomeLuogoPartenza, CittàPartenza, NomeLuogoArrivo, CittàArrivo, NomeCompagnia, NomeChiCompra, CognomeChiCompra, DataNascitaChiCompra) PerChi(CodicePrenotazione, Nome, Cognome, DataNascita) Aerea(Nome, Nazione) Sorgente B: PerChi(CodicePrenotazioneAereo, Nome, Cognome, DataNascita) [PerChiB, PerChiB(A, R, Q, P) :- PerChi(A, R, Q, P), Prenotazione(A, M, B, E, N, C, D, F, G, O, P, Q, R), Aerea(O, S) ] Nella sorgente B linformazione che indica a chi è rivolta una prenotazione è mantenuta solo per le prenotazioni aeree. Dato che nel globale questa relazione mantiene i riferimenti per qualsiasi tipo di viaggio bisogna estrarre solo le prenotazioni che afferiscono ad una compagnia aerea.

46 LAV – 3a Chiavi differenti Globale: PerChi(CodicePrenotazione, Nome, Cognome, DataNascita) Sorgente A:PerChi(CodiceBiglietto, CF) Cliente(Nome, Cognome, DataNascita, CF) [PerChi, PerChi(A, B) :- PerChi(A, C, D, E) ] La relazione PerChi permette di associare dei clienti alla prenotazione o al biglietto. In entrambi gli schemi abbiamo questo concetto rappresenato ma con una differenza, nello schema globale la chiave di un cliente è il nome, cognome e data di nascita invece nella sorgente è dato dal suo codice fiscale. Inoltre nel globale linformazione sul codice fiscale non esiste. A complicare le cose cè il fatto che questi campi appartengolo alle chiavi delle rispettive relazioni.

47 LAV – 3b Per avere un mapping più adeguato abbiamo bisogno di un metodologia mista gioè GLAV. Con questa metodologia si possono realizzare asserzioni su viste di etrambe gli schemi. Nel nostro caso si può estrarre dalla relazione Cliente della sorgente anche il nome, cognome e data di nascita che possono essere associati ai relativi campi dello schema del globale. Lasserzione è la seguente: [PerChi, PerChi(A, B), Cliente(N, C, D, B) :- PerChi(A, N, C, D) ] Da questo caso è evidene come il mapping GLAV permetta una più facile costruzione dello stesso mapping a discapito di una più difficile fase di riformulazione delle query.

48 LAV – 4 Entità differenti ma associabili Globale: Prenotazione(Codice, DataOraPrenotazione, DataOraPartenza, DataOraArrivo, Costo, NomeLuogoPartenza, CittàPartenza, NomeLuogoArrivo, CittàArrivo, NomeCompagnia, NomeChiCompra, CognomeChiCompra, DataNascitaChiCompra) Sorgente A: Biglietto(Codice, Prezzo, Sconto, CFChiCompra, IdViaggio) Cliente(Nome, Cognome, DataNascita, CF) [Biglietto, Biglietto(A, B, C, D, E) :- Prenotazione(A, F, J, H, B, I, L, M, N, O, P, E, F) ] Dato che il codice della relazione Prenotazione è stato associato al codice della relazione Biglietto, questo fa si che lasserzione sia semplice. Come il precedente caso, nella sorgente abbiamo il CF del cliente che compra invece nel globale il Nome, Cognome e Data di nascita. Anche qui un mapping più efficace si può ottenere non GLAV. La vista necessaria sul locale deve essere: Biglietto(A, B, C, D, E), Cliente(P, E, F, D)


Scaricare ppt "Tesina SIS Antonello Scarano Luigi Tullio. Compito Assegnato Svolgere sei compiti desame di basi di dati in modo autonomo. Svolgere sei compiti desame."

Presentazioni simili


Annunci Google