Antonello Scarano Luigi Tullio

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

Sistemi Informativi di Rete AA (IV) Progettazione di siti Web: un approccio per Entita e Relazioni.
ITIS “E. Divini” corso di formazione sul concept mapping
Modalità di applicazione del CL Group Investigazion Modalità di applicazione del CL Group Investigazion.
Metodologie di Programmazione = decomposizione basata su astrazioni
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Biglietti e Ritardi: schema E/R
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
COMPETENZE: CERTIFICAZIONE e...
Analisi delle Decisioni Funzioni di utilita’ e lotterie
Master MATITSistemi informativi - Es.3 Agenzia Viaggi 1 AGENZIA VIAGGI.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Archivio Necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
DIFFICOLTA’ DEL LINGUAGGIO
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
L’apprendimento trasformativo
Basi di dati Università Degli Studi Parthenope di Napoli
Basi di dati 2002 EER Vogliamo aumentare lespressività degli Entity Model EER: Entity Model Esteso.
Progettare interventi di orientamento Linee guida e suggerimenti operativi.
Esercitazione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Partizionamento/accorpamento di concetti
Basi di dati Claudia Raibulet
Esercitazione di Basi di Dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
COMPITO 2 CELESTE BONANNO MATR CDL: SDFA.
PROBLEMI E “PAROLACCE” Nucleo: Relazioni e Funzioni
Progettare un database
1 Le presentazioni didattiche Impressioni ed esperienze.
Presentazione Finale Team 2. Mapping La trasformazione da noi adottata in fase di mapping è stata di tipo Forward engineering. Si è partiti da un modello.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
Lavori di gruppo sulla Mesopotamia
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Lavorare con le query Federica Scarrione 18/05/2009 fonte:
Ingegneria dei Requisiti - e dei Sistemi - Giuseppe Berio DI-Unito 2007.
Scelta di un modello di processo: esempio
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche che tipicamente servono per portare a termine i compiti iniziali.
Modulo 5 Uso delle Basi di dati Paola Pupilli 2.
DB- Sistemi Informativi
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
La ricerca-azione nella ricerca psico-sociale Barbara Pojaghi Università di Macerata
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Progettazione di basi di dati distribuite Marco Mangiacavalli Matricola: I miei commenti in rosso CB.
IV D Mercurio DB Lezione 2
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Progettazione di una base di dati relazionale Terza forma normale.
Progettazione di basi di dati: metodologie e modelli
Istituto Comprensivo Rignano-Incisa Tirocinante TFA: G. Giuliani
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Teoria e metodi di programmazione e valutazione scolastica
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
La Matematica a tavola: concetto di misura
Cloud informatica V anno.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Le basi di dati.
LA RETTA NEL PIANO CARTESIANO
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Basi di dati - 09Marco Maggini1 Forme normali forme normali  Le forme normali verificano la qualità di uno schema di una base di dati relazionale  Presenza.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

Antonello Scarano Luigi Tullio Tesina SIS Antonello Scarano Luigi Tullio

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

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

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 L’elaborazione delle query in genere è molto semplice (unfolding)

Mapping LAV Local as View: gli schemi locali sono definiti in termini di viste sullo schema globale. Pregi e difetti Consentono un’alta 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 La valutazione delle query è difficile (è necessaria una riformulazione delle query a run-time)

Separazione Compiti Diversificazione punti di vista Analisi e commenti indipendenti Redazione tesina come punto d’incontro

Il mio compito Focalizzare l’attenzione su GAV Aspetto critico sul lavoro compiuto Carpire concetti e trarre conclusioni

Esercizio 1(schema globale)

Esercizio 1(Sorgente A)

Esercizio 1(sorgente B)

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

Mapping (banale!) [ Prototipo, Prototipo(X,Y,Z) :- PrototipoA(X,Y,Z) Prototipo(X,Y,Z) :- PrototipoB(X,Y,Z) ] [Collaudo, Collaudo(X,Y,Z,K) :- CollaudoA(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 (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(X,Y,Z,K,Q) :- BancoB(X,Y,Z,K,Q) ] ………

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

Esercizio 2(schema globale)

Esercizio 2(sorgente A)

Esercizio 2(sorgente B)

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

Mapping GAV/2 [Prenotazione, Prenotazione(X,Y) :- PrenotazioneA(X,Y,Z,K) Prenotazione(X,Y) :- PrenotazioneB(X,Y,Z,K) ] [Effettua, Effettua(X,Z,Y) :- PrenotazioneA(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(X,Z,Y,K) :- CollettivaB(X,Y,Z,K,A)] [Singola, Singola(X) :- SingolaA(X,Y,Z,K,A,B) Singola(X) :- SingolaB(X,Y,Z,K,A,B)] ………

Mapping LAV [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) ] [SingolaA, SingolaA(X,Y,Z,K,A,B) :- PSP(K,Z,A,Y,X), Per(X,B)] ………

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

GAV e LAV assieme 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. Informazione spalmata su troppe tabelle

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

Esercizio 3(schema globale)

Esercizio 3(sorgente A)

Esercizio 3(sorgente B)

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 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)]

Il mapping GAV/2 3. Ricerca attraverso query specifiche dell’informazione 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 Oss: le chiavi differenti non sono un problema; assunzione inserimenti leciti!!

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. Conseguenza: non stiamo inserendo l’informazione 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 l’entità 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.

Il mapping GAV/4 5. Vale anche qui il ragionamento fatto al punto 4. 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) Giocatore(CF, NMaglia, Ruolo, NomeSquadra) GLOB Giocatore(CF, NomeSquadra) SORG A Giocatore(NMaglia, NomeSquadra, Nome, Cognome, Ruolo, Eta) SORG B

Il mapping GAV/5 6. Stesso ragionamento utilizzato per i punti 4e5. 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)]

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 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

Il mapping LAV Controllare se “Partita” ha un “Risultato” Partite “nonGiocate” come differenza tra “Partite” e “Giocate” Il campo “Allenatore” inteso come nome e cognome dell’allentare. Sufficiente un join per reperire l’informazione Perdita informazione (irreperibile all’interno del globale)

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

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

DB 3 – “Invenzioni” Globale Sorgente A GAV LAV InvenzioneUtile(Unicod, NBrevetto, NomeNazione, Finanziamento, CFVaglia, IstScolastico) InvenzioneUtile(Cod.Univoco.IU, NBrevetto, NomeNazione, Finanziamento, CF, CodiceIstScolastico) Sorgente A [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

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) Sorgente A [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)] GAV

DB 5 – Differenze A Globale Sorgente A

DB 5 – Differenze B Globale Sorgente B

Informazione Mancante + Chiave Diversa 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.

Informazione su più relazioni 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 l’asserzione 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.

GAV – 2b 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) [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) 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.

Relazione da un’attributo GAV – 3 Relazione da un’attributo 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 l’informazione su una compagnia non è mantenuta in una relazione ma in un campo della relazione Prenotazione, quindi l’informazione sul nome della compagnia può essere ricavato da questo campo. Per le compagnie provenienti dalla sorgente B non è possibile ottenere l’informazione 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.

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 l’alloggio in un’albergo. Quindi per questa relazione il mapping estrae le informazione sola dalla sorgente B che contiene questi dati.

Informazione su più relazioni 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.

Sorgente con un sottoinsieme dei dati del globale 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 l’informazione 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.

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 l’informazione sul codice fiscale non esiste. A complicare le cose c’è il fatto che questi campi appartengolo alle chiavi delle rispettive relazioni.

[PerChi, PerChi(A, B), Cliente(N, C, D, B) :- PerChi(A, N, C, D) ] 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. L’asserzione è 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.

Entità differenti ma associabili 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 l’asserzione 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)