Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoGennaro Viola Modificato 8 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.