La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Progettazione di basi di dati distribuite.

Presentazioni simili


Presentazione sul tema: "1 Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Progettazione di basi di dati distribuite."— Transcript della presentazione:

1 1 Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Progettazione di basi di dati distribuite

2 2 Attenzione La metodologia descritta in questa dispensa e’ stata presentata in una forma semplificata a lezione.

3 3 Riferimenti Questa trasparenze

4 4 Progettazione DDBMS Progettazione concettuale Progettazione logica locale Progettazione fisica locale Analisi dei requisiti Progettazione della distribuzione

5 5 Progetto della distribuzione E’ diviso in 4 fasi + 1 preliminare: 0. Raccolta e analisi dei requisiti per la distribuzione 1. Progetto della frammentazione 2 Allocazione non ridondante 3. Allocazione ridondante 4. Ricostruzione degli schemi locali Vediamole separatamente

6 6 0. Raccolta dei requisiti e degli input

7 7 Tavole in input alla metodologia Tavola di frequenza –Indica il numero di attivazioni di ogni applicazione presso ogni sito Tavole di partizionamento –Indicano per ogni entita’ i potenziali criteri di partizionamento orizzontale, espressi tramite predicati.

8 8 Tipologie di partizionamento Partizionamento primario –Il partizionamento di una entita’ E e’ espresso usando predicati disgiunti sugli attributi di E

9 9 Partizionamento primario E E1 E2 E3 p1 p2 p3

10 10 Partizionamento derivato –Il partizionamento di una entita’ E1 e’ determinato da una relazione binaria tra E1 ed una seconda entita’ E2 che e’ gia’ partizionata. Siano E11 e E12 i frammenti di E1. Il partizionameno derivato di E2 e’ definito come: –E21 e’ l’insieme di ennuple il relazione con le ennuple di E11 –E22 e’ l’insieme di ennuple il relazione con le ennuple di E12 –E11 ed E12 sono vincolati a essere disgiunti –Quindi non tutte le relazioni possono essere candidate a derivare un partiizonamento

11 11 Esempio EF Partizionamento primario E1E2E3 Partizionamento secondario E1 E2 E3 F1 F2 F3

12 12 1. Progetto della frammentazione Applica frammentazioni orizzontali e verticali. Per scegliere i frammenti, si applica il criterio della uniformita’ di accesso da parte delle applicazioni eseguite sul sito. Una applicazione troppo stretta del criterio porta a frammentazioni molto granulari (un attributo, al limite una n-pla), con maggiori costi di gestione. C’e’ una soglia (individuata in modo euristico, approssimato) superata la quale la frammentazione non conviene piu’.

13 13 Esempio Milano e < 25 anni Milano e >= 25 anni Brescia e < 25 anni Brescia e >= 25 anni Persone di Milano e Brescia Cerca persone Con citta’ = x Cerca persone Con eta’ = 25

14 14 Fase 2. Allocazione non ridondante Tra le diverse copie di frammenti identici, selezionate nei vari siti, associa il frammento al sito dove viene piu’ usato. La frequenza d’uso e’ calcolata sulla base di un terzo tipo di tavole, le tavole di polarizzazione, come mostrato nella successiva trapsarenza.

15 15 Tavole di polarizzazione Indicano quantitativamente come le partizioni influenzano la localita’ delle elaborazioni effettuate dalle applicazioni. Un valore di polarizzazione Pijk indica la probabilita’ che un dato frammento k sia acceduto da una data applicazione i eseguita in un dato sito j.

16 16 Numero accessi ad un dato frammento a un dato sito Una misura quantitativa e’ data partendo dalle tavole di frequenza e dalla tavole di polarizzazione. Sia i la generica applicazione j il generico sito fij la frequenza della applicazione i dal sito j Pijk la polarizzazione del frammento k per la applicazione i eseguita al sito j Allora il numero di accessi al frammento k dal sito j e’ dato da n kj = Σ i: i usa k fij P ijk Percio’ il frammento k e’ allocato al sito j* tale che n kj* = max tutti i j n kj

17 17 Fase 3. Allocazione ridondante Associa ulteriori siti ai frammenti precedentemente assegnati a un solo sito. Ad ogni passo, viene scelto il sito che piu’ beneficia della ulteriore allocazione di un frammento Il beneficio, in termini di maggiori accessi in locale dalle interrogazioni, e quindi minori trasferimenti, deve essere ampiamente controbilanciato dalle minori esigenze di aggiornamento di copie multiple. Si puo’ usare una formula che esprime la differenza per un frammento k al sito j: D kj = Σ i: i legge k fij P ijk - Σ i: i scrive k Σ h ≠j f ih P ihk

18 18 Fase 4: Ricostruzione degli schemi locali Ricostruisce gli schemi locali come unione di tutti i frammenti associati al corrispondente sito nei passi precedenti.

19 19 Esempio

20 20 Caso di studio: sistema di prenotazione aerea Una compagnia aerea deve gestire le prenotazioni dei suoi aerei. La base dati e’ 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 disponibilita’, e le prenotazioni. Ogni volo, per semplicita’, e’ tra un aeroporto di partenza e un aeroporto di arrivo.

21 21 Aree, Aeroporti, Rotte 2. Nord 1. Ovest 3. Sud Denver New York Atlanta

22 22 Schema della base di dati 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

23 23 Schema della base di dati Flight # Date Gate Delay Seats layout Seats available Airport ID City Area From To Passeggero Nome Telefono Prenotaz. Check in Numero posto Cod. Bagaglio Classe Leaves Arrives

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

25 25 Schemi globali delle operazioni Schema Prenotazione (a) Volo Data Posti disponibili (O,W) Aeroporto Identificatore (K) Da A Passeggero Nome Telefono Prenotaz. Classe (W) Ora Partenza (K) Ora Arrivo (K) 20.0001 1.000.0001 402 Indica il cammino di accesso Numero medio di istanze visitate Numero totale di istanze della entita’ Indica che viene scritto Indica che fa parte degli attributi in input Indica che viene letto (O) e scritto (W)

26 26 Schemi globali delle operazioni Schema Check-in (b) Volo Numero (K) Data (K) Mappa posti (O,W) Passeggero Nome (K) Prenotaz. Check in Numero posto (W) Cod. Bagaglio (W) Classe (O) 20.0001 1.000.0001

27 27 Schemi globali delle operazioni Schema Rapporto Partenze (c) Volo Numero (O) Data (K) Gate (O) Ritardo (O) Posti disponibili Aeroporto Identificatore (K) Citta’ / Area Da Aeroporto Identificatore (O) Citta’ (O) A Classe Ora Partenza (K,O) 20.00030 401 30

28 28 Fase 0. Raccolta dei requisiti e degli input In questo passo definiamo: 1. Le tavole degli accessi per le entita’, che per ogni operazione e per ogni attributo di una entita’ fornisce la tipologia di accesso: –K, dato in input –O, dato letto –W, dato scritto 2. Le tavole di frequenza 3. Le tavole di polarizzazione

29 29 Tavola degli accessi per la entita’ Volo AttributiOperazioni abc NumeroKO DataKKK Mappa dei postiO/W DataO RitardoO Posti disponibiliO/W RADa/APrenotazioneDa AN3130 Dice se sono utilizzate relazioni per l’accesso Numero totale di istanze visitate

30 30 Tavola delle frequenze per operazioni presso i siti Siti /Operazioni123 a 10.00020.00010.000 b 8.00012.0008.000 c 100120100

31 31 Fase 1: Progetto della frammentazione

32 32 Progetto della frammentazione Utilizzando le tavole di polarizzazione Per ogni entita’ (Aeroporto, Passeggero, Volo) –1. Costruiamo i gruppi di frammenti che possono essere scelti, sulla base delle tavole di frammentazione, individuando prima i partizionamenti primari e poi quelli derivati. –2. Tra i gruppi di frammenti individuati, scegliamo i gruppi che presentano un insieme di applicazioni favorite dalla frammentazione superiore all’insieme delle applicazioni che risultano sfavorite.

33 33 Tavola dei frammenti primari Consideriamo i due casi di partizionamento degli aeroporti e dei passeggeri Aeroporti: scegliamo l’attributo Area (con dominio 1,2,3) come attributo di partizionamento Passeggeri: consideriamo il prefisso di telefono dello stato come attributo di partizionamento. Il prefisso corrisponde alle prime tre cifre. Partizioniamo i prefissi in tre gruppi.

34 34 Scelta dei frammenti primari Entita’Attributo di partizionamento Predicati Selettivita’ dei predicati AeroportoAreaArea = ‘1/O’ Area = ‘2/N’ Area = ‘3/S’ 30 45 25 PasseggeroTelefono (prime tre cifre) Telephone = ‘415*’ or ‘408*’ or… Telephone = ‘904*’ or ‘713*’ or… Telephone = ‘201*’ or ‘617*’ or… 35 30

35 35 Esempio per Aeroporto Aeroporto Aeroporto1 (Area 1) Aeroporto2 (Area 2) Aeroporto3 (Area 3)

36 36 Scelta dei frammenti derivati Consideriamo il caso del partizionamento primario su Aeroporto. Sono possibili 4 casi: –L’entita’ Volo puo’ essere partizionata in due modi, basati sulle relazioni Da e A e il partizionamento di Aeroporto in aree (vedi primi due casi  )

37 37 Schema della base di dati 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

38 38 Tavola dei frammenti derivati Entita’Relazione per la derivazione Entita’ baseNome della partizione Selettivita’ del predicato VoloDaAeroportoAreaLa stessa VoloAAeroportoAreaLa stessa

39 39 Scelta dei frammenti derivati Consideriamo il caso del partizionamento primario su Aeroporto. Sono possibili 4 casi: –L’entita’ Passeggero. In questo caso il partizionamento e’ in due passi, da Aeroporto a Volo e da Volo a Passeggero.

40 40 Schema della base di dati Volo Numero Data Gate Ritardo Mappa posti Posti disponibili Aeroporto Identificatore (Acronimo) Citta’ Da A Passeggero Nome Telefono Prenotaz. Check in Numero posto Cod. Bagaglio Classe Ora partenza Ora arrivo

41 41 Scelta dei frammenti derivati Consideriamo il caso del partizionamento primario su Aeroporto. Sono possibili 4 casi: –L’entita’ Passeggero. In questo caso il partizionamento e’ in due passi, da Aeroporto a Volo e da Volo a Passeggero. 1. da Aeroporto a Volo. In questo caso i passeggeri sono partizionati sulla base del volo in cui hanno fatto la prima prenotazione (FIRST RESERVATION LOCATION) 2. da Volo a Passeggero. In questo caso i passeggeri sono partizionati sulla base di tutte le prenotazioni che hanno. In questo caso sono possibili 7 casi, a seconda che i passeggeri abbiano prenotato nelle aree A, B, C, AB, BC, AC, ABC.

42 42 Tavola dei frammenti derivati Entita’Associazione per la derivazione Entita’ baseNome della partizione Selettivita’ del predicato VoloDaAeroportoAreaSame VoloAAeroportoAreaSame PasseggeroPrenotazioneVoloFirst Reservation Location Same PasseggeroPrenotazioneVoloFlight Departure Area Note 

43 43 Tavola dei frammenti derivati Entita’Associazione per la derivazione Entita’ baseNome della partizione Selettivita’ del predicato VoloDaAeroportoAreaSame VoloAAeroportoAreaSame PasseggeroPrenotazioneVoloFirst Reservation Location Same PasseggeroPrenotazioneVoloFlight Departure Area Note 

44 44 Predicati per il caso 4 Note: Flight departure is based on 7 predicates Predicate selectivity P1: Tutti i voli prenotati dai passeggeri che partono dall’area 1 20 P2: Tutti i voli prenotati dal passeggeri che partono dall’area 2 20 P3: Tutti i voli prenotati dal passeggeri che partono dall’area 3 20 P4: Tutti i voli prenotati dai passeggeri che partono dalle aree 1 e 2 10 P5: Tutti i voli prenotati dai passeggeri che partono dalle aree 1 e 3 10 P6: Tutti i voli prenotati dai passeggeri che partono dalle aree 2 e 3 10 P7: Tutti i voli prenotati dal passeggeri che partono da tutte le aree 10

45 45 Esempio per Volo Volo Aeroporto Da Volo1 Aeroporto1 Da Volo2 Aeroporto2 Da Volo3 Aeroporto3 Da

46 46 Tavola di polarizzazione Nelle pagine successive e’ mostrata la tavola di poliarizzazione. Ogni riga e’ associata a un predicato di partizionamento, cioe’ a un frammento. Il predicato e’ specificato a due livelli.

47 47 Tavola di polarizzazione Nelle pagine successive e’ mostrata la tavola di polarizzazione. Ogni riga e’ associata a un predicato di partizionamento, cioe’ a un frammento. Il predicato e’ specificato a due livelli. Ogni colonna e’ associata a una esecuzione di una applicazione (a,b,c) presso un sito (1,2,3) Alcune aree (denotate da croce) sono irrilevanti, perche’ l’applicazione non visita la entita’

48 48 Tavola di polarizzazione - prima parte a. Prenotaz.b. Check inc. Partenze 123123123 Aeroporto per Area P1Non si applica P2 P3 Passeggero per telefono P1Non si applica P2 P3 Passeggero per Aeroporto di prima prenotazione P1Non si applica P2 P3

49 49 Schemi globali delle operazioni Schema Prenotazione (a) Volo Data Posti disponibili (O,W) Aeroporto Identificatore (K) Da A Passeggero Nome Telefono Prenotaz. Classe (W) Ora Partenza (K) Ora Arrivo (K) 20.0001 1.000.0001 402

50 50 Schemi globali delle operazioni Schema Check-in (b) Volo Numero (K) Data (K) Mappa posti (O,W) Passeggero Nome (K) Prenotaz. Check in Numero posto (W) Cod. Bagaglio (W) Classe (O) 20.0001 1.000.0001

51 51 Schemi globali delle operazioni Schema Rapporto Partenze (c) Volo Numero (O) Data (K) Gate (O) Ritardo (O) Posti disponibili Aeroporto Identificatore (K) Citta’ / Area Da Aeroporto Identificatore (O) Citta’ (O) A Classe Ora Partenza (K,O) 20.00030 401 30

52 52 Tavola di polarizzazione Nelle pagine successive e’ mostrata la tavola di poliarizzazione. Ogni riga e’ associata a un predicato di partizionamento, cioe’ a un frammento. Il predicato e’ specificato a due livelli. Ogni colonna e’ associata a una esecuzione di una applicazione (a,b,c) presso un sito (1,2,3). Alcune aree (denotate da croce) sono irrilevanti, perche’ l’applicazione non visita la entita’ Ogni cella specifica la percentuale degli accessi a un frammento nel caso di scelta del corrispondente predicato. Se non e’ specificato niente, il valore corrisponde a distribuzione uniforme sui valori non specificati.

53 53 Tavola di polarizzazione - prima parte a. Prenotaz.b. Check inc. Partenze 123123123 Aeroporto per Area P1 80 100 P2 75 100 P3 80 100 Passeggero per telefono P1 60 P2 65 P3 6065 Passeggero per Aeroporto di prima prenotazione P1 100 70 P2 100 75 P3 100 70 Perche’ i passeggeri che fanno due o piu’ tratte possono prenotare solo in una Perche’ i report si fanno solo dall’aeroporto cui si riferiscono

54 54 Tavola di polarizzazione – seconda parte a. Prenotaz.b. Check inc. Partenze 123123123 Passeggero per area partenza P140 P240 P330 P43020 P510301030 P620102010 P720 Volo per partenza (Da)P17010080 P27510080 P37010080 Volo per arrivo (A)P11007060 P21007560 P31007060

55 55 Progetto della frammentazione Passo 2 Per ogni entita’, –Per ogni gruppo di frammenti individuati, 1. Allochiamo tentativamente il gruppo nei nodi sulla base della percentuale massima degli accessi, per i diversi nodi, nelle tavole di polarizzazione, 2. A questo punto, calcoliamo per ogni gruppo di frammenti, in termini di accessi, quali siano le applicazioni favorite dalla frammentazione e quali siano quelle sfavorite, scegliendo il valore positivo migliore.

56 56 Cosa si intende per favorite e sfavorite? Favorite  Σ Numero di Accessi in locale (poco costosi) Sfavorite  Σ Numero di Accessi in remoto (molto costosi) Partendo dall’ insieme di frammenti allocato, calcoliamo: Σ accessi in locale – Σ accessi in remoto

57 57 Ricordiamo la Tavola delle frequenze per operazioni presso i siti Siti /Operazioni123 a 10.00020.00010.000 b 8.00012.0008.000 c 100120100

58 58 Numero accessi ad un dato frammento da un dato sito Il numero di accessi al frammento k dal sito j e’ dato da: n kj = Σ i: i usa k fij P ijk

59 59 Scelta per Aeroporto a. Prenotaz.b. Check inc. Partenze 123123123 Aeroporto per Area P1 80 100 P2 75 100 P3 80 100

60 60 Scelta per Aeroporto a. Prenotaz.b. Check inc. Partenze 123123123 Aeroporto per Area P1 80 100 P2 75 100 P3 80 100

61 61 Sviluppiamo il caso di Passeggero

62 62 Scelta per passeggero – tre possibilita’ a. Prenotaz.b. Check inc. Partenze 123123123 1. Passeggero per telefono P1 6017206017 P2 206520 6518 P3 201860201865 2. Passeggero per Aeroporto di prima prenotazione P1 10000 701215 P2 01000 157515 P3 00100 151370

63 63 Scelta per passeggero – tre possibilita’ a. Prenotaz.b. Check inc. Partenze 123123123 3. Passeggero per area partenza P14000 00 P204000 0 P3003000 P43020030200 P51003010030 P60201002010 P720

64 64 Passo 1. Allocazioni “tentative”

65 65 Scelta per passeggero – allocazione dei frammenti a. Prenotaz.b. Check inc. Partenze 123123123 1. Passeggero per telefono P1 6017206017 P2 206520 6518 P3 201860201865 2. Passeggero per Aeroporto di prima prenotazione P1 10000 701215 P2 01000 157515 P3 00100 151370 Allocato al nodo  Accessi in locale Non allocato  Accessi in remoto

66 66 Scelta per passeggero – allocazione dei frammenti a. Prenotaz.b. Check inc. Partenze 123123123 3. Passeggero per area partenza P14000 00 P204000 0 P3003000 P43020030200 P51003010030 P60201002010 P720

67 67 2. Calcolo del Δ = Σ accessi in locale – Σ accessi in remoto

68 68 Confrontiamo (per brevita’) solo i due casi di: 1. Passeggero per aeroporto di prima destinazione e 2. Passeggero per area partenza

69 69 Scelta per passeggero – allocazione dei frammenti a. Prenotaz.b. Check inc. Partenze 123123123 2. Passeggero per Aeroporto di prima prenotazione P1 10000 701215 P2 01000 157515 P3 00100 151370 Accessi in locale Accessi in remoto

70 70 Scelta per passeggero – calcolo accessi a. Prenotaz.b. Check inc. Partenze 123123123 2. Passeggero per Aeroporto di prima prenotazione P1 +100 *10 -0* 20 0* 10 +70 *8 -12 *12 15 *8 P2 -0* 10 +100 *20 0* 10 -15 *8 +75 *12 -15 *8 P3 00+100 -15 *8 -13 *12 70* 8 Accessi in locale Accessi in remoto N.B. accessi espressi in decine (es. P1 al nodo 1 sarebbe 10.000*1)

71 71 Scelta per passeggero – analogo per passeggero per area di partenza (non sviluppato) a. Prenotaz.b. Check inc. Partenze 123123123 3. Passeggero per area partenza P14000 00 P204000 0 P3003000 P43020030200 P51003010030 P60201002010 P720 Accessi in locale Accessi in remoto (Somme e moltiplicazioni analoghe)

72 72 Risultato Δ Passeggero per area di partenza > Δ Passeggero per aeroporto di prima prenotazione Cosi’ pure per il secondo confronto (Passeggero per area di partenza vs Passeggero per telefono)

73 73 Scelta per passeggero a. Prenotaz.b. Check inc. Partenze 123123123 Passeggero per area partenza P140 P240 P330 P43020 P510301030 P620102010 P720

74 74 Scelta per volo - 1 a. Prenotaz.b. Check inc. Partenze 123123123 Volo per partenza (Da)P17010080 P27510080 P37010080 Volo per Arrivo (A)P11007060 P21007560 P31007060

75 75 Scelta per volo - 2 a. Prenotaz.b. Check inc. Partenze 123123123 Volo per partenza (Da)P17010080 P27510080 P37010080 Volo per Arrivo (A)P11007060 P21007560 P31007060

76 76 Esito della fase 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 Fram- menti

77 77 Fase 2: Allocazione non ridondante

78 78 Allocazione non ridondante - 1 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 Fram- menti

79 79 Allocazione non ridondante - scelte In alcuni casi segue in modo diretto dalle scelte effettuate nella fase precedente: Aeroporto i, Volo i, e Passeggero i, sono allocati ai siti i= 1,2,3.

80 80 Allocazione non ridondante - 1 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 Fram- menti

81 81 Allocazione non ridondante - 2 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 Fram- menti

82 82 Allocazione non ridondante - 3 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 Fram- menti

83 83 Allocazione non ridondante - 4 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 Fram- menti

84 84 Allocazione non ridondante - scelte Per gli altri frammenti della entita’ Passeggero (P4, P5, P6 e P7), selezioniamo il sito che usa di piu’ il frammento, applicando le formule gia’ viste nella metodologia basate su tavole di polarizzazione e tavole di frequenza. Numero di accessi al frammento k dal sito j e’ dato da n kj = Σ i: i usa k fij P ijk

85 85 Predicati per il caso 4 Note: Flight departure is based on 7 predicates Predicate selectivity P1: Tutti i voli prenotati dai passeggeri che partono dall’area 1 20 P2: Tutti i voli prenotati dal passeggeri che partono dall’area 2 20 P3: Tutti i voli prenotati dal passeggeri che partono dall’area 3 20 P4: Tutti i voli prenotati dai passeggeri che partono dalle aree 1 e 2 10 P5: Tutti i voli prenotati dai passeggeri che partono dalle aree 1 e 3 10 P6: Tutti i voli prenotati dai passeggeri che partono dalle aree 2 e 3 10 P7: Tutti i voli prenotati dal passeggeri che partono da tutte le aree 10

86 86 Tavola delle frequenze per operazioni presso i siti Siti /Operazioni123 a. Prenotaz. 10.00020.00010.000 b. Check in 8.00012.0008.000 c. Partenze 100120100

87 87 Scelta per passeggero a. Prenotaz.b. Check inc. Partenze 123123123 Passeggero per area partenza P140 P240 P330 P43020 P510301030 P620102010 P720 Es. accessi al frammento P4 Dal nodo 1 = 0,30*10.000 = 3.000 Dal nodo 2 = 0,20*20.000 = 4.000 Scegliamo il nodo 2

88 88 Allocazione non ridondante - scelte Percio’ allochiamo Passeggero4, Passeggero6, e Passeggero7 al sito 2, Passeggero 5 al sito 3.

89 89 Allocazione non ridondante - 4 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 Fram- menti

90 90 Allocazione non ridondante – 5 per gli altri frammenti selezioniamo il sito che li usa di piu’, utilizzando le formule gia’ introdotte per il passo 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3

91 91 Fase 3: Allocazione ridondante

92 92 Allocazione ridondante – in questo passo, duplichiamo i frammenti quando i benefici negli accessi superano di molto i costi degli aggiornamenti multipli; questo non e’ il caso di Aeroporto e Volo. Invece per Passeggero possiamo introdurre una limitata ridondanza. 2. Nord 1. Ovest 3. Sud Denver New York Atlanta A1 A2 A3 P1 P2 P3 P4 P5 P6 P7 V1 V2 V3 In particolare, possiamo duplicare i frammenti di Passeggero relativi a due o piu’ aree, in cui sia inclusa la 1 (P4, P5, e P7) P4 P5 P6 P7

93 93 Fase 4: Ricostruzione degli schemi

94 94 Risultato del progetto della distri- buzione: schemi locali per i siti Sito 1 Sito 3 Sito 2

95 95 Risultato del progetto della distri- buzione: schemi locali per i siti Sito 1 Sito 2 Sito 3 Passeggero 1u Passeggero 4u Passeggero 5u Passeggero 7 Passeggero 2u Passeggero 4u Passeggero 6u Passeggero 7 Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 1.Aggiunta delle Entita’ selezionate in Precedenza – Passeggero

96 96 Risultato del progetto della distri- buzione: schemi locali per i siti Volo1 Aeroporto1 Volo2 Aeroporto2 Volo3 Aeroporto3 Sito 1 Sito 2 Sito 3 Passeggero 1u Passeggero 4u Passeggero 5u Passeggero 7 Passeggero 2u Passeggero 4u Passeggero 6u Passeggero 7 Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 1.Aggiunta delle Entita’ selezionate in Precedenza – Passeggero

97 97 Risultato del progetto della distri- buzione: schemi locali per i siti Volo1 Aeroporto1 Volo2 Aeroporto2 Volo3 Aeroporto3 Sito 1 Sito 2 Sito 3 Passeggero 1u Passeggero 4u Passeggero 5u Passeggero 7 Passeggero 2u Passeggero 4u Passeggero 6u Passeggero 7 Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 2.Aggiunta delle Relazioni Prenotazione e Check-in Nei siti dove sono allocate le istanze corrispondenti

98 98 Risultato del progetto della distri- buzione: schemi locali per i siti 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 Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 2.Aggiunta delle Relazioni Prenotazione e Check-in Nei siti dove sono allocate le istanze corrispondenti

99 99 Risultato del progetto della distri- buzione: schemi locali per i siti 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 Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 3. Aggiunta della relazione Da, allocata in modo naturale nei vari siti a seguito del partizionamento orizzontale di Aeroporto e Volo proprio sulla base della relazione Da

100 100 Risultato del progetto della distri- buzione: schemi locali per i siti 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 Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 3. Aggiunta della relazione Da, allocata in modo naturale nei vari siti a seguito del partizionamento orizzontale di Aeroporto e Volo proprio sulla base della relazione Da

101 101 Risultato del progetto della distribuzione: schemi locali per i siti 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 Passeggero 3u Passeggero 5u Passeggero 6u Passeggero 7 to 4. L’ aggiunta della relazione A puo’ essere fatta in Vari modi, perche’ Collega istanze di entita’ che possono essere allocate in siti diversi. Adottiamo la Soluzione che Alloca le istanze Di A nello stesso Sito delle corris- pondenti istanze di Volo

102 102 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 Risultato del progetto della distribuzione: schemi locali per i siti 4. L’ aggiunta della relazione A puo’ essere fatta in Vari modi, perche’ Collega istanze di entita’ che possono essere allocate in siti diversi. Adottiamo la Soluzione che Alloca le istanze Di A nello stesso Sito delle corris- pondenti istanze di Volo

103 103 Conclusioni L’aspetto piu’ rilevante delle scelte fatte e’ che le richieste relative ai voli (prenotazione e check in) possono essere soddisfatte accedendo a dati che sono tutti nell’aeroporto di partenza. Come aspetto negativo, le informazioni sui passeggeri sono duplicate, e cio’ richiede una piu’ complessa gestione rispetto al caso di allocazione non ridondante


Scaricare ppt "1 Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Progettazione di basi di dati distribuite."

Presentazioni simili


Annunci Google