Progettazione di basi di dati distribuite Marco Mangiacavalli Matricola: 779291 I miei commenti in rosso CB.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
LA PROGETTAZIONE LOGICA Seconda parte
Normalizzazione Forme Normali.
Unità D2 Archivi e file.
Biglietti e Ritardi: schema E/R
Data warehousing con SQL Server
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.
Basi di Dati - 3 Dati su più tabelle. Informatica 1 SCICOM - a.a. 2010/11 2 Separare i dati su più tabelle Quando è necessario? – Empiricamente, quando.
L’uso dei database in azienda
LA PROGETTAZIONE LOGICA
Progettare interventi di orientamento Linee guida e suggerimenti operativi.
Progettazione di una base di dati
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
DBMS ( Database Management System)
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
1 Informatica Grafica Daniele Marini. 2 Informazioni generali Corso in teledidattica: –Videoconferenza –Learning community Frequentare le lezioni! Cercare.
IL GIRO DEL MONDO IN LOW COST
Manipolazione dei dati
ARGONEXT Accesso Docente
Basi di Dati - 3 Dati su più tabelle Informatica 1 (SAM) - a.a. 2010/11.
Esercitazione di Basi di Dati
Basi di Dati Microsoft Office: Access OpenOffice: Base Informatica 1 (SAM) - a.a. 2010/11.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
PROGETTAZIONE DI UN DATA BASE TURCO MERY MAT CPA
Corso di Laurea in Informatica
Progettare un database
Sistemi di Elaborazione delle Informazioni Mod.I.
Basi di Dati e Sistemi Informativi
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
MP - Servizi al Cliente Evoluzione Back Office
EIPASS MODULO 5 Access 2007.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DB- Sistemi Informativi
Visual Lab Modulo di prenotazione Visual Prenot. Presentazione Il modulo di prenotazione Visual Prenot permette al Centro la gestione in formato elettronico.
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
Progettazione di basi di dati distribuite Marco Mangiacavalli Matricola:
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Progetto Finale Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Progettazione di Database
Microsoft Access Chiavi, struttura delle tabelle.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Data Base ACCESS EM 09.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Progettazione di una base di dati relazionale Terza forma normale.
Informatica e Informatica di Base
Sistemi di Elaborazione delle Informazioni
Moltiplicazioni a più cifre
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Le basi di dati.
Basi di Dati e Sistemi Informativi Esempi & Esercizi Il Modello Relazionale Home page del corso:
Dai diagrammi ER alle basi di dati.. Entita  tabelle Persona Nome e cognome Codice fiscale Indirizzo completo Codice fiscaleNome e CognomeIndirizzo completo.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
1 Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Progettazione di basi di dati distribuite.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
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.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Query Optimization nei DDBMS.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Transcript della presentazione:

Progettazione di basi di dati distribuite Marco Mangiacavalli Matricola: I miei commenti in rosso CB

Schema della metodologia MS proposta nel corso Operazione Nodo Frammento elementare 0. presso il 1. Visitato presso il 1. Contri- buisce a 2. alloc. non rid. 3. alloc. rid. 4. Schemi locali Schema locale

3 Caso di studio: sistema di prenotazione aerea Una compagnia aerea deve gestire le prenotazioni dei suoi aerei. La base dati è distribuita su tre siti degli Stati Uniti, ad es. – Denver con codice 1, localizzato nell’area ovest – New York, codice 2, localizzato nell’area nord – Atlanta, codice 3, localizzato nell’ area sud La base dati rappresenta gli aeroporti dove opera, gli orari dei voli, le disponibilità, e le prenotazioni. Ogni volo, per semplicità, è tra un aeroporto di partenza e un aeroporto di arrivo.

Struttura generale Rete 3. Sud = Atlanta 1. Ovest = Denver 2. Nord = New York

Passi da eseguire 1) Tradurre lo schema globale di pag. 19 della dispensa ME in uno schema globale relazionale, producendo anche per ogni relazione nel modello relazionale il numero di istanze. 2) Esprimere il carico applicativo nella modalità semplificata della metodologia MS. 3) Condurre la progettazione adottando la metodologia MS. 3.1) Progetto della frammentazione 3.2) Allocazione non ridondante 3.3) Allocazione ridondante 3.4) Ricostruzione degli schemi locali 4) Tradurre gli schemi locali Entità Relazione esito del passo 3 nel modello relazionale. 5) Nella ipotesi che le due metodologie arrivino a schemi relazionali diversi, cercare di ragionare sul perchè

1) Traduzione schema globale ER in Relazionale

7 Schema globale ER Volo Numero Data Gate Ritardo Mappa posti Posti disponibili Aeroporto Identificatore (Acronimo) Citta’ Area Da A Passeggero Nome Telefono Prenotaz. Check in Numero posto Cod. Bagaglio Classe Ora partenza Ora arrivo Pas Aer Volo

Schema globale relazionale Aer(idA, città, area) -> 40 istanze Volo(numV, dataV, gate, rit, mP, pDisp, idAP, oraP, idAA, oraA) -> istanze Pas(noP, tel, numV, dataV, classe, numPo, codB) -> istanze Nomi poco espressivi….. Si assume che un passeggero possa prenotare e fare check in per un solo volo

Schema globale relazionale: note Nello schema ho evidenziato in grassetto gli attributi che sono chiave primaria della relazione e in corsivo le chiavi esterne Nella traduzione ME->MS ho cercato di mantenere lo stesso numero di entità presenti nelle specifiche del caso ME, quindi ho ottenuto 3 relazioni; un’altra alternativa poteva essere quella di creare altre 2 relazioni “Prenotazione” e “Check-in” Ho assunto che ogni passeggero può fare il check-in solo se ha prenotato quel determinato volo I congiuntivi! Bello!!!

2) Carico applicativo semplificato

11 Qui avrei inserito la tavola delle frequenze per operazioni presso i siti Siti /Operazioni123 a b c

12 Operazioni visione per «operazioni» a. Prenota passeggero, effettua una prenotazione, transazione b. Check in passeggero, effettua il check in di un passeggero quando arriva all’aeroporto, transazione c. Partenze dei prossimi trenta voli, fornisce una report dei prossimi 30 voli che partono da un aeroporto, interrogazione

Operazione a: attributi utilizzati Input: Pas = noP, tel; Volo = dataV, idAP, oraP, idAA, oraA Letti: Volo = numV, dataV, pDisp Scritti: Volo = pDisp; Pas = classe, numV, dataV Dico nome e tel del passeggero che vuole prenotare il volo + data, ora di part/ar e aeroporto part/ar; verranno letti num e data del volo e, se ci sono abbastanza posti disponibili, allora aggiornerà il campo e assegnerà il volo al passeggero scrivendone anche la classe Nella visione “pre web” e’ l’operatore che invoca la transazione E quindi sa gia’ il codice dell’aeroporto, e non coinvolge la tabella aeroporto Risparmiando un join.

Operazione b : attributi utilizzati Input: Pas = noP, tel; Volo = numV, data Letti: Volo = mP; Pas = classe Scritti: Volo = mP; Pas = numPo, codB Dico nome e tel del passeggero che deve fare il check-in + num e data del volo da lui prenotato; verranno letti la classe del passeggero e la mappa dei posti e, in base a questi, gli verrà assegnato un posto e un codice del bagaglio

Operazione c: attributi utilizzati Input: Volo = dataV, idAP, oraP Letti: Volo = numV, dataV, gate, rit, oraP; Pas = noP, tel, numV, dataV, classe Dico data, ora e aeroporto di cui voglio il report; in output avrò numero, data, gate, ritardo e ora di partenza dei prossimi 30 voli + nome, tel e classe dei passeggieri che hanno prenotato quel volo + città e area dell’aeroporto di partenza

Carico applicativo NodoOperazioneFraquenza 1T1a. Pas prenota volo che parte da aer area T1b. Check-in pas in aer area Q1c. Report prossimi 30 voli che partono da aer area T2a. Pas prenota volo che parte da aer area T2b. Check-in pas in aer area Q2c. Report prossimi 30 voli che partono da aer area T3a. Pas prenota volo che parte da aer area T3b. Check-in pass in aer area Q3c. Report prossimi 30 voli che partono da aer area 3100 I punti. Per separare le migliaia…….

3) Progettazione

3.1) Progetto della frammentazione

Progetto della frammentazione Scopo del passo è quello di individuare i frammenti elemnetari da allocare in seguito nei diversi nodi della base di dati distribuita

Individuazione frammenti visitati da Q e T: T1a AerArea1 = aeroporti area 1 VoliDaAerArea1 = voli che partono da aeroporto area 1 Pas = tutti passeggeri possono prenotare un volo PasVoliDaAerArea1AerArea1 ? ?

Individuazione frammenti visitati da Q e T: T1a AerArea1 = POP + PV(idA, area) VoliDaAerArea1 = POS + PV(numV, dataV, pDisp, idAP, oraP, idAA, oraA) Pas = PV(noP, tel, numV, dataV, classe)

Individuazione frammenti visitati da Q e T: T1b AerArea1 = aeroporti area 1 VoliDaAerArea1 = voli che partono da aeroporto area 1 PasDaAerArea1 = passeggeri che partono da aeroporto area 1 PasDaAerArea1VoliDaAerArea1AerArea1

Individuazione frammenti visitati da Q e T: T1b AerArea1 = POP + PV(idA, area) VoliDaAerArea1 = POS + PV(numV, dataV, mP, idAP, oraP) PasDaAerArea1 = POS

Individuazione frammenti visitati da Q e T: Q1c AerArea1 = aeroporti area 1 VoliDaAerArea1 = voli che partono da aeroporto area 1 PasDaAerArea1 = passeggeri che partono da aeroporto area 1 PasDaAerArea1VoliDaAerArea1AerArea1 Nei requisiti si parlava solo dei voli, non dei passeggeri …

Individuazione frammenti visitati da Q e T: Q1c AerArea1 = POP VoliDaAerArea1 = POS + PV(numV, dataV, gate, rit, idAP, oraP) PasDaAerArea1 = POS + PV(noP, tel, numV, dataV, classe)

Individuazione frammenti visitati da Q e T: T2a AerArea2 = aeroporti area 2 VoliDaAerArea2 = voli che partono da aeroporto area 2 Pas = tutti passeggeri possono prenotare un volo PasVoliDaAerArea2AerArea2

Individuazione frammenti visitati da Q e T: T2a AerArea2 = POP + PV(idA, area) VoliDaAerArea2 = POS + PV(numV, dataV, pDisp, idAP, oraP, idAA, oraA) Pas = PV(noP, tel, numV, dataV, classe)

Individuazione frammenti visitati da Q e T: T2b AerArea2 = aeroporti area 2 VoliDaAerArea1 = voli che partono da aeroporto area 2 PasDaAerArea2 = passeggeri che partono da aeroporto area 2 PasDaAerArea2VoliDaAerArea2AerArea2

Individuazione frammenti visitati da Q e T: T2b AerArea2 = POP + PV(idA, area) VoliDaAerArea2 = POS + PV(numV, dataV, mP, idAP, oraP) PasDaAerArea2 = POS

Individuazione frammenti visitati da Q e T: Q2c AerArea2 = aeroporti area 2 VoliDaAerArea2 = voli che partono da aeroporto area 2 PasDaAerArea2 = passeggeri che partono da aeroporto area 2 PasDaAerArea2VoliDaAerArea2AerArea2 Perche’ anche passeggeri? Si chiedeva solo dei voli…

Individuazione frammenti visitati da Q e T: Q2c AerArea2 = POP VoliDaAerArea2 = POS + PV(numV, dataV, gate, rit, idAP, oraP) PasDaAerArea2 = POS + PV(noP, tel, numV, dataV, classe)

Individuazione frammenti visitati da Q e T: T3a AerArea3 = aeroporti area 3 VoliDaAerArea3 = voli che partono da aeroporto area 3 Pas = tutti passeggeri possono prenotare un volo PasVoliDaAerArea3AerArea3 ? ?

Individuazione frammenti visitati da Q e T: T3a AerArea3 = POP + PV(idA, area) VoliDaAerArea3 = POS + PV(numV, dataV, pDisp, idAP, oraP, idAA, oraA) Pas = PV(noP, tel, numV, dataV, classe)

Individuazione frammenti visitati da Q e T: T3b AerArea3 = aeroporti area 3 VoliDaAerArea3 = voli che partono da aeroporto area 3 PasDaAerArea3 = passeggeri che partono da aeroporto area 3 PasDaAerArea3VoliDaAerArea3AerArea3

Individuazione frammenti visitati da Q e T: T3b AerArea3 = POP + PV(idA, area) VoliDaAerArea3 = POS + PV(numV, dataV, mP, idAP, oraP) PasDaAerArea3 = POS

Individuazione frammenti visitati da Q e T: Q3c AerArea3 = aeroporti area 3 VoliDaAerArea3 = voli che partono da aeroporto area 3 PasDaAerArea3 = passeggeri che partono da aeroporto area 3 PasDaAerArea1VoliDaAerArea1AerArea1

Individuazione frammenti visitati da Q e T: Q3c AerArea3 = POP VoliDaAerArea3 = POS + PV(numV, dataV, gate, rit, idAP, oraP) PasDaAerArea3 = POS + PV(noP, tel, numV, dataV, classe)

Tabella frammenti elementari visione per operazioni & frammenti NodoOp./FreqTipo framRel coinvolteFram coinvolti 1T1a/10000OP + OS + VAer, Volo, PasAerArea1, VoliDaAerArea1, Pas 1T1b/8000OP + OS + VAer, Volo, PasAerArea1, VoliDaAerArea1, PasDaAerArea1 1Q1c/100OP + OS + VAer, Volo, PasAerArea1, VoliDaAerArea1, PasDaAerArea1 2T2a/20000OP + OS + VAer, Volo, PasAerArea2, VoliDaAerArea2, Pas 2T2b/12000OP + OS + VAer, Volo, PasAerArea2, VoliDaAerArea2, PasDaAerArea2 2Q2c/120OP + OS + VAer, Volo, PasAerArea2, VoliDaAerArea2, PasDaAerArea2 3T3a/10000OP + OS + VAer, Volo, PasAerArea3, VoliDaAerArea3, Pas 3T3b/8000OP + OS + VAer, Volo, PasAerArea3, VoliDaAerArea3, PasDaAerArea3 3Q3c/100OP + OS + VAer, Volo, PasAerArea3, VoliDaAerArea3, PasDaAerArea3 Frammentazioni un po’ ridondanti!

Frammenti individuati 1.AerArea1 2.VoliDaAerArea1 3.PasDaAerArea1 4.AerArea1 5.VoliDaAerArea1 6.PasDaAerArea1 7.AerArea1 8.VoliDaAerArea1 9.PasDaAerArea1 Non c’e’ P “intera” corretto!

3.2) Allocazione non ridondante

Allocazione non ridondante Lo scopo di questa fase è associare ad ogni nodo i frammenti in modo non ridondante, basandomi sul carico applicativo I frammenti elementari individuati dovranno essere assegnati al nodo che lo utilizza più spesso In questo mono verranno minimizzati i trasferimenti tra nodi dovuti a interrogazioni o transazioni

Assegnazione frammenti ai nodi qui la «visione» e’ per frammenti FrOpNodiFN1FN2FN3As AerArea1T1a, T1b, Q1c VoliDaAerArea1T1a, T1b, Q1c PasDaAerArea1T1a, T1b, Q1c, T2a, T3a1, 2, AerArea2T2a, T2b, Q2c VoliDaAerArea2T2a, T2b, Q2c PasDaAerArea2T2a, T2b, Q2c, T1a, T3a1, 2, AerArea3T3a, T3b, Q3c VoliDaAerArea3T3a, T3b, Q3c PasDaAerArea3T3a, T3b, Q3c, T1a, T2a1, 2, Frequenze su passeggero dovute alla scelta precedente di permettere a tutti I passeggeri di fare prenotazioni da tutti e tre I nodi NB scelta molto web oriented

Assegnazione frammenti ai nodi Rete 3. Sud = Atlanta 1. Ovest = Denver 2. Nord = New York AerArea1 VoliDaAerArea1 AerArea2 AerArea3 VoliDaAerArea2 VoliDaAerArea3 PasDaAerArea1 PasDaAerArea2 PasDaAerArea3 PasDaAerArea2 PasDaAerArea1 Riportati anche I potenziali da Ridondare: bene!

3.3) Allocazione ridondante

Allocazione ridondante Lo scopo di questo passo è di duplicare i frammenti, attualmente presenti in un solo nodo, anche in altri nodi La duplicazione va eseguita solo quando i risparmi superano i maggiori costi Seleziono il nodo i per cui è massima la differenza: risparmi(i) - costi(i)

Costi - benefici Frammenti che potrebbero essere allocati in modo ridondante: PasDaAerArea1, PasDaAerArea2, PasDaAerArea3 sui nodi 1 e 3 Noto che le transazioni sono molte di più rispetto alle interrogazioni quindi si può dedurre che i costi di aggiornamento delle varie tabelle distribuite, se si decidesse di duplicare, sarebbero troppo elevati se si decidesse di duplicare i dati. Di conseguenza non conviene replicare i frammenti Preferirei non dedurre ma calcolare……anche perche’ trasferire (Interrogazioni) costa di piu’ che aggiornare

Schema finale Rete 3. Sud = Atlanta 1. Ovest = Denver 2. Nord = New York AerArea1 VoliDaAerArea1 AerArea2 AerArea3 VoliDaAerArea2 VoliDaAerArea3 PasDaAerArea1 PasDaAerArea2 PasDaAerArea3

3.4) Ricostruzione degli schemi locali

Ricostruzione degli schemi locali Come ultimo passo bisogna ricostruire gli schemi locali come unione di tutti i frammenti associati al corrispondente sito ottenuti nei passi precedenti

50 VoliDaAerArea1 AerArea1 Prenotaz. Check in VoliDaAerArea1 AerArea2 Prenotaz. Check in VoliDaAerArea3 AerArea3 Prenotaz. Check in Nodo1 Nodo 2 Nodo 3 PasDaAerArea1 PasDaAerArea2 PasDaAerArea3 Da A A A A A A3

Schema relazionale AerArea1(idA, città, area) AerArea2(idA, città, area) AerArea3(idA, città, area) VoliDaAerArea1(numV, dataV, gate, rit, mP, pDisp, idAP, oraP, idAA, oraA) VoliDaAerArea2(numV, dataV, gate, rit, mP, pDisp, idAP, oraP, idAA, oraA) VoliDaAerArea3(numV, dataV, gate, rit, mP, pDisp, idAP, oraP, idAA, oraA) Pas(noP, tel, numV, dataV, classe, numPo, codB)

Risultato Nello schema ottenuto abbiamo che: 1)Gli aeroporti sono allocati nei 3 nodi in base all’area in cui si trovano 2)I voli sono distribuiti in base all’area in cui si trova l’aeroporto di partenza 3)I passeggeri sono tutti allocati nel nodo di New York I primi 2 punti rispettano il principio di località, mentre il terzo no. Con questa soluzione le operazioni dei nodi 1 e 3 sui passeggeri risulteranno meno efficienti, ma se avessi scelto di duplicare la tabella Passeggeri anche negli altri 2 nodi avrei avuto notevoli problemi di allineamento dei dati

4) Traduzione schemi locali ER nel modello relazionale

54 Volo1 Aeroporto1 Prenotaz. Check in Volo2 Aeroporto2 Prenotaz. Check in Volo3 Aeroporto3 Prenotaz. Check in Sito 1 Sito 2 Sito 3 Passeggero 1u Passeggero 4u Passeggero 5u Passeggero 7 Passeggero 2u Passeggero 4u Passeggero 6u Passeggero 7 Da A A A Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 A A A3

Schema relazionale Aeroporto1(idA, città, area) Aeroporto2(idA, città, area) Aeroporto3(idA, città, area) Volo1(numV, dataV, gate, rit, mP, pDisp, idAP, oraP, idAA, oraA) Volo2(numV, dataV, gate, rit, mP, pDisp, idAP, oraP, idAA, oraA) Volo3(numV, dataV, gate, rit, mP, pDisp, idAP, oraP, idAA, oraA) Passeggero1(noP, tel, numV, dataV, classe, numPo, codB) Passeggero2(noP, tel, numV, dataV, classe, numPo, codB) Passeggero3(noP, tel, numV, dataV, classe, numPo, codB) Passeggero4(noP, tel, numV, dataV, classe, numPo, codB) Passeggero5(noP, tel, numV, dataV, classe, numPo, codB) Passeggero6(noP, tel, numV, dataV, classe, numPo, codB) Passeggero7(noP, tel, numV, dataV, classe, numPo, codB)