Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Query Optimization nei DDBMS.

Slides:



Advertisements
Presentazioni simili
Gestione della Memoria
Advertisements

Politecnico di Torino Tesi di Laurea
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Analisi della complessità degli algoritmi
Analisi della complessità degli algoritmi
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
File System Cos’è un File System File e Directory
Biglietti e Ritardi: schema E/R
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
Pacchetti di lavoro, cronogrammi, matrici…..
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Scelte di consumo Chiara Mocenni Corso di laurea.
Scheduling della CPU Concetti di base Criteri di scheduling
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Stima ed algoritmi di consensus distribuito: considerazioni su IKF
Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.
LA PROGETTAZIONE LOGICA
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Il Linguaggio Macchina
Heap allocation e garbage collector di Oberon Algoritmo Quick Fit e garbage collector mark and sweep.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
memoria gestita staticamente:
Sistemi Operativi SCHEDULING DELLA CPU.
Algoritmo di Query Optimization
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Daniel Stoilov Tesi di Laurea
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Elementi di Informatica
La progettazione di un sistema informatico
Valutazione costi di una QUERY. A.1-Nome di tutti i fornitori che forniscono il prodotto P2 forpro fornitori CP=P2 Nome fornitori (CF, Nome, Citta) prodotti(CP,
Docente: Roberto Basili Fond Inf (a.a ) Introduzione alla Progettazione Concettuale R. Basili.
Basi di Dati e Sistemi Informativi
Algoritmi e Strutture Dati
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
10 azioni per lo scheduling su Grid Uno scheduler per Grid deve selezionare le risorse in un ambiente dove non ha il controllo diretto delle risorse locali,
Informatica 3 V anno.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Laboratorio Informatico
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
Basi di dati distribuite Prof. M.T. PAZIENZA a.a
Paolo Missier II Semestre, 2002 Basi di Dati - Complementi Basi di Dati Distribuite.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Analisi matematica Introduzione ai limiti
Il modello di Von Neumann
Esercizio Una tabella Pubblicazioni ha chiave primaria CodPubbl e come chiave candidata l'ISBN. La tabella contiene di tuple ed è memorizzata.
1 Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Progettazione di basi di dati distribuite.
Corso di Architetture C. Batini Architetture Distribuite DDBMS Query Processing, Controllo di concorrenza, Recovery management.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Proprieta’ e caratteristiche strutturali dei sistemi.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Query Optimization nei DDBMS

Basi di Dati distribuite – Carlo Batini Query processing

Basi di Dati distribuite – Carlo Batini Query processing  In un contesto di dati centralizzati, le strategie di esecuzione delle queries sono esprimibili tramite estensioni di algebra relazionale: i query trees  In un DDBMS, l’algebra relazionale non e’ piu’ sufficiente. Una strategia di esecuzione deve comprendere anche le operazioni e i costi relativi a: –trasferimento di frammenti tra nodi; –scelta del sito migliore dove processare i dati  Queste nuove variabili rendono ulterioriormente complessa l’ottimizzazione di query distribuite

Basi di Dati distribuite – Carlo Batini Esempio

Basi di Dati distribuite – Carlo Batini Distributed query processing – esempio Schema: Employee (eno, ename, title) AssiGN(eno, projectno, resp, dur), dove resp indica il tipo di responsabilita’ |EMP| = 400, |ASG| = 1000 Query: “trovare nomi dei dipendenti che sono manager di progetti” AR:  ename (EMP >< eno (  resp=“manager” (ASG))) Frammentazione orizzontale: ASG 1 =  eno  ‘E3’ (ASG)nodo 1 ASG 2 =  eno > ‘E3’ (ASG)nodo 2 EMP 1 =  eno  ‘E3’ (EMP)nodo 3 EMP 2 =  eno > ‘E3’ (EMP)nodo 4 Risultato nodo 5

Basi di Dati distribuite – Carlo Batini Allocazione dei frammenti EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG)  ename (EMP >< eno(  resp=“manager” (ASG)))

Basi di Dati distribuite – Carlo Batini Esecuzione della query: Strategia A EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG) ASG’1   resp=“manager’(ASG1) ASG’2   resp= “manager’(ASG2) EMP’1  EMP1 ><eno ASG’1 EMP’2  EMP2 ><eno ASG’2 ASG’1 ASG’2 = EMP >< eno(  resp=“manager”(ASG)))  EMP’ 1 EMP’ 2 Result = EMP’1  EMP’2 =  ename EMP >< eno(  resp=“manager”(ASG)))

Basi di Dati distribuite – Carlo Batini Esecuzione della query: Strategia B EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG) Tutte le tabelle vengono inviate al nodo 5 Dove viene calcolato il risultato

Basi di Dati distribuite – Carlo Batini Rappresentazione della strategia A come operazioni + trasmissioni ASG’ 1 =  resp=“manager’ (ASG 1 ) ASG’ 2 =  resp=“manager’ (ASG 2 ) Sito 1 Sito 2 EMP’ 1 = EMP 1 >< eno ASG’ 1 EMP’ 2 = EMP 2 >< eno ASG’ 2 ASG’ 1 ASG’ 2 Sito 3 Sito 4 Result = EMP’ 1  EMP’ 2 Sito 5 EMP’ 1 EMP’ 2

Basi di Dati distribuite – Carlo Batini Strategia B - Rappresentazione come operazioni + trasmissioni Risultato = (EMP 1  EMP 2 ) >< ENO  resp=“manager’ (ASG 1  ASG 2 ) Sito 5 ASG 1 ASG 2 EMP 1 EMP 2 Sito 1Sito 2Sito 3Sito 4 ASG 1 ASG 2 EMP 2 EMP 1

Basi di Dati distribuite – Carlo Batini Confronto di costi tra le due strategie  Modelli di costo (semplificato): –Costo accesso a un record: 1 –Costo trasferimento di un record: 10 –|EMP| = 400, |ASG| = 1000, |  resp=“manager’ (ASG 1 )| = |  resp=“manager’ (ASG 2 )| = 10 –Accesso diretto a EMP via ENO, ASG via RESP Costo strategia A: 1.Calcolo ASG’ 1 e ASG’ 2  per accesso diretto 2.Trasferimento ASG’ 1 e ASG’ 2  20 x 10 = Calcolo EMP’ 1 ed EMP’ 2 : join (single-loop)  ( ) x 2 4.Trasferimento EMP’ 1, EMP’ 2 : 20 x 10 = 200  Totale: 460 (400 trasferimento e 60 calcolo)

Basi di Dati distribuite – Carlo Batini Confronto di costi tra le due strategie  Modelli di costo (semplificato): –Accesso a un record: 1 –Trasferimento di un record: 10 –|EMP| = 400, |ASG| = 1000, |  resp=“manager’ (ASG 1 )| = |  resp=“manager’ (ASG 2 )| = 10 –Accesso diretto a EMP via ENO, ASG via RESP Costo strategia B (non si trasferiscono gli indici!): 1.Trasferimento EMP 1, EMP 2 sul nodo 5: 400 x 10 = Trasferimento ASG 1, ASG 2 sul nodo 5: 1000 x 10 = Calcolo ASG’ (selezione): (no indice) 4.Join ASG’, EMP: 20 x 400 = (non ricostruisce gli indici  nested loop)  Totale: ( trasferimento e calcolo)

Basi di Dati distribuite – Carlo Batini Obiettivi del query processing distribuito: parametri utilizzati  Costo totale = somma dei costi delle operazioni (I/O e CPU) + costi di comunicazione (trasmissione)  Response time = somma dei costi tenendo conto del parallelismo

Basi di Dati distribuite – Carlo Batini Costo Rispetto al caso centralizzato, in cui i costi piu’ rilevanti sono quelli di trasferimento dei blocchi da memoria secondaria a principale, consideriamo qui i soli costi di comunicazione e trasuriamo i costi di I/O. Costo comunicazione = C MSG * #msgs + C TR * #bytes C MSG = costo fisso di spedizione/ricezione messaggio (setup) C TR = costo (fisso rispetto alla topologia!) di trasmissione dati

Basi di Dati distribuite – Carlo Batini Tempo di risposta Nel tempo di risposta, a differenza del costo di trasmissione, i costi delle operazioni in parallelo non si sommano Tempo di risposta (solo comunicazione) = C MSG * seq_#msgs + C TR * seq_#bytes dove seq_#msgs e’ il massimo numero di messaggi che devono essere comunicati in modo sequenziale.

Basi di Dati distribuite – Carlo Batini Rapporto tra costo di comunicazione e costo di I/O  Nelle grandi reti geografiche costo di comunicazione >> costo di I/O (fattore 1 a 10)  Nelle reti locali costo di comunicazione e costo di I/O sono paragonabili  Tendenza il costo di comunicazione e’ ancora il fattore critico, ma si stanno avvicinando Possiamo,in alternativa a trascurare i costi di I/O, utilizzare pesi nelle formule di costo

Basi di Dati distribuite – Carlo Batini Esempio  Costo di trasferimento di x unita’ da 1 a 3 e di y unita’ da 2 a 3:  Costo comunicazione = 2 C MSG + C TR * (x + y)  Tempo di risposta = max(C MSG + C TR * x, C MSG + C TR * y) dato che x e y vengono trasferiti in parallelo Nodo 1 Nodo 2 Nodo 3 X unita’ Y unita’ Risultato al nodo 3

Basi di Dati distribuite – Carlo Batini Rapporto tra tempo di risposta e costo Possiamo essere interessati a: * Minimizzazione tempo di risposta: piu’ parallelismo  puo’ portare ad aumento del costo totale (maggiore numero di trasmissioni e processing locale) * Minimizzazione costo totale = somma dei costi senza tener conto del parallelismo: utilizza meglio le risorse  aumento del throughput (con peggioramento del response time in generale)

Basi di Dati distribuite – Carlo Batini Nel nostro esempio ASG’ 1 =  resp=“manager’ (ASG 1 ) ASG’ 2 =  resp=“manager’ (ASG 2 ) Sito 1 Sito 2 EMP’ 1 = EMP 1 >< eno ASG’ 1 EMP’ 2 = EMP 2 >< eno ASG’ 2 ASG’ 1 ASG’ 2 Sito 3 Sito 4 Result = EMP’ 1  EMP’ 2 Sito 5 EMP’ 1 EMP’ 2 Risultato = (EMP 1  EMP 2 ) >< ENO  resp=“manager’ (ASG 1  ASG 2 ) Sito 5 ASG 1 ASG 2 EMP 1 EMP 2 Sito 1Sito 2Sito 3Sito 4 ASG 1 ASG 2 EMP 2 EMP 1 Strategia AStrategia B Operazioni e trasmissioni eseguibili in parallelo Ottimizza il costo Parallelizza di piu’ ma, in questo caso, non minimizza il tempo di riposta

Basi di Dati distribuite – Carlo Batini Strategie di Query processing nei DDBMS

Basi di Dati distribuite – Carlo Batini Fasi del query processing nei DDBMS  1. Query decomposition  2. Data localization  3. Global query optimization  4. Local optimization  Vediamole in dettaglio, insieme agli input alla fase

Basi di Dati distribuite – Carlo Batini Fasi del query processor - 1  1. Query decomposition  Global schema –Opera sullo schema logico globale –Non considera la distribuzione –Usa tecniche di ottimizzazione algebrica analoghe a quelle centralizzate –Output: un query tree – non ottimizzato rispetto ai costi di comunicazione

Basi di Dati distribuite – Carlo Batini Fasi del query processor - 1  2. Data localization  Fragment schema –Considera la distribuzione dei frammenti –Ottimizza le operazioni rispetto alla frammentazione, con tecniche di riduzione –Output: una query che opera in modo efficiente sui frammenti – non ottimizzata

Basi di Dati distribuite – Carlo Batini Esempio  Es.  eno = ‘E20’ EMP   Supponiamo che EMP sia rappresentata nei nodi 1, 2, e 3.  La query puo’ essere inizialmente frammentata nella   eno = ‘E20’ EMP1   eno = ‘E20’ EMP2   eno = ‘E20’ EMP3  Applichiamo una tecnica di riduzione (supponiamo che E20 sia solo in EMP2)   eno = ‘E20’ EMP2

Basi di Dati distribuite – Carlo Batini Fasi del query processor - 3  3. Global query optimization  statistiche sui frammenti –Strategia di esecuzione: nel query tree agli operatori di Algebra relazionale vengono aggiunti gli operatori di comunicazione (send/receive tra nodi) –Obiettivo: trovare l’ordinamento “migliore” delle operazioni definite dalla fragment query –Utilizza modelli di costo che tengono conto dei costi di comunicazione –Output: le decisioni piu’ rilevanti riguardano i join:  1. L’ordine dei join n-ari   2. La scelta tra join e semijoin 

Basi di Dati distribuite – Carlo Batini Esempio -Strategia A EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG) ASG’1   resp=“manager’(ASG1) ASG’2   resp= “manager’(ASG2) EMP’1  EMP1 ><eno ASG’1 EMP’2  EMP2 ><eno ASG’2 ASG’1 ASG’2 = EMP >< eno(  resp=“manager”(ASG)))  EMP’ 1 EMP’ 2 Result = EMP’1  EMP’2 =  ename EMP >< eno(  resp=“manager”(ASG)))

Basi di Dati distribuite – Carlo Batini Prima della fase 4: Local optimization trattiamo percio’ i join in ambiente distribuito

Basi di Dati distribuite – Carlo Batini Strategie di ordinamento dei join

Basi di Dati distribuite – Carlo Batini Strategie di ordinamento dei join  Problema: dato un join n-ario tra n frammenti distribuiti:  A Join B Join C … Join N  in quale ordine conviene eseguirlo?  Caso di n=2 frammenti: ovviamente conviene trasferire il frammento piu’ piccolo –Occorre stimare le dimensioni dei frammenti –Def.: per un frammento F j : size(Fj) = card(F j ) x length(F j )  Cosa accade nel caso n>2? –E’ necessario stimare le dimensioni dei risultati intermedi  usando la selettivita’ di ciascun join –Il problema e’ combinatorio R S Se size(R) < size(S) Se size(R) > size(S)

Basi di Dati distribuite – Carlo Batini Caso n > 2: partiamo da un esempio Emp proJ asG eno pno Nodo 1 Nodo 2 Nodo 3 Schema dell’esempio Employee (eno, ename, title) ASsiGn(eno, pno, resp, dur) Proj (pno, pname, budget, localization) Costruiamo il join graph, struttura che descrive i legami tra chiavi e le allocazioni nei nodi Emp E AssiGn G Proj P

Basi di Dati distribuite – Carlo Batini Caso n > 2 Esempio: ordinamenti alternativi dei joins Emp proJ asG eno pno Nodo 1 Nodo 2 Nodo 3 1.E  nodo 22 calcola E’ = E join G E’  nodo 33 calcola R = E’ join J 2.G  nodo 11 calcola E’ = E join G E’  nodo 33 calcola R = E’ join J 3.G  nodo 33 calcola G’ = G join J G’  nodo 11 calcola R = G’ join E 4.J  nodo 22 calcola J’ = J join G J’  nodo 11 calcola R = J’ join E 5.E  nodo 2 J  nodo 22 calcola R = E join J join G Info necessarie per la scelta della strategia: - size(EMP), size(ASG), size(PROj) - size(EMP join ASG), size( ASG join PROJ) - Inoltre, alcuni trasferimenti possono avvenire in parallelo Approssimazione Assumendo il prodotto delle cardinalita’ come size dei join, si puo’ usare per la strategie l’ordinamento delle relazioni in base alle loro cardinalita’ Query: Emp Join eno asG Join pno proJ

Basi di Dati distribuite – Carlo Batini Ordinamenti banali  Sono quelli in cui si eseguono prodotti cartesiani, perche’ le relazioni non hanno chiavi in comune  Nel nostro caso, ad esempio, una sequenza che inizi con  E  Nodo 3  E’ banale perche’ porta al massimo di inefficienza (calcolo del prodotto cartesiano)

Basi di Dati distribuite – Carlo Batini Join e semijoin

Basi di Dati distribuite – Carlo Batini Situazione di partenza R Nodo 1 S Nodo 2

Basi di Dati distribuite – Carlo Batini Join e semijoin - 1  In un DBMS distribuito l’operazione di semijoin puo’ essere in alcune circostanze una alternativa piu’ efficiente alla operazione di join.  Definizione : R semijoin A S   R* ( R join A S)  Dove R* e’ l’insieme degli gli attributi di R  Il semijoin R semijoin A S percio’ e’ la proiezione sugli attributi di R della operazione di join  Attenzione: il semijoin e’ non comutativo!

Basi di Dati distribuite – Carlo Batini Join e semijoin - 2 Osservazione 1 : dalla definizione di semijoin  R semijoin  S   R* ( R join A S) il calcolo di (R semijoin A S) richiede la presenza del solo attributo S.A da parte di S, cioe’ solo di  A (S) R Nodo 1 S Nodo 2  A (S)

Basi di Dati distribuite – Carlo Batini Join e semijoin - 3 Osservazione 1: se R, S sono allocate su nodi diversi, allora R join A S puo’ essere calcolato tramite operazioni di semijoin piuttosto che di join. Valgono infatti le seguenti equivalenze (vedi ad es. [Ozsu-Vald. sec.9.3.2]) tra join e semijoin: 1. R join  S  (R semijoin  S) join  S 2. R join  S  R join  (S semijoin  R) 3.R join  S  (R semijoin  S) join  (S semijoin  R) Ognuna da’ luogo ad una diversa strategia. La scelta tra le strategie richiede la stima dei loro costi

Basi di Dati distribuite – Carlo Batini Esempio – formula 1 R join A S  (R semijoin A S) join A S 2. R’  R semijoin A S’ 4. Ris  R’ join A S 1. S’   A (S) 3. R’ Nodo 1 Nodo 2 RS

Basi di Dati distribuite – Carlo Batini Confronto costo join e semijoin In generale: L’uso del semijoin e’ conveniente se il costo del suo calcolo e del trasferimento del risultato e’ inferiore al costo del trasferimento dell’intera relazione e del costo del join intero Vediamo quando questo accade

Basi di Dati distribuite – Carlo Batini Confronto costo join e semijoin  Calcoliamo i costi di trasmissione nei due casi:  R join A S vs (R semijoin A S) join A S assumendo: size(R) < size(S), R su nodo 1, S su nodo 2 R Nodo 1 S Nodo 2

Basi di Dati distribuite – Carlo Batini Costi del semijoin e del join Operazioni necessarie nel caso di semijoin: 1.  A (S)  nodo 1 2.Nodo 1 calcola R’ = R semijoin A S -- usando solo  A (S)! 3.R’  nodo 2 4.Nodo 2 calcola R’ join S Costo del semijoin = C TR * size(  A (S)) + C TR * size(R semijoin A S) Costo join = C TR * size(R)

Basi di Dati distribuite – Carlo Batini Confronto Quindi il semijoin conviene se size(  A (S)) + size(R semijoin A S) < size(R) Cioe’ quando il fattore di selezione JSF(R,S, R.A=S.A)) = |R join A S| / |R| e’ piccolo

Basi di Dati distribuite – Carlo Batini R join jno J = (R semijoin jno J) join jno J =  R.*(R join jno (  jno (E))) join jno J R R = G join eno E = (G semijoin eno E) join eno E =  G.* ( G join eno (  eno ( E))) join eno E Esempio con tre relazioni EG J1: join 3:join 2:G 1:E 2: semijoin 1: join 1:  ENO 1:E 1:semijoin 3:join 3:J 3:  JNO 3:J E join G join J

Basi di Dati distribuite – Carlo Batini Fasi del query processor - 4  4. Local query optimization  local schemas –Ogni nodo riceve una fragment query e la ottimizza in modo indipendente –Vengono utilizzate tecniche analoghe a quelli dei sistemi centralizzati

Basi di Dati distribuite – Carlo Batini Tornando al peso dei costi di comunicazione Per DDBMS in rete geografica, conviene  1 Global query optimization con obiettivo: ridurre i costi di comunicazione  2 Seguita da local optimization Per DDBMS in rete locale, conviene 1 Global query optimization con obiettivo: aumentare il parallelismo 2 Seguita da local optimization

Basi di Dati distribuite – Carlo Batini Progettazione di basi di dati distribuite  Passare a questo punto all’altro insieme di slildes