0. Introduzione alla esecuzione delle interrogazioni
|
|
- Ladislao Caputo
- 7 anni fa
- Visualizzazioni
Transcript
1 Fonti di riferimento Basi di Dati Complementi 2. Tecnologie per DBMS -2.3 Esecuzione e ottimizzazione delle interrogazioni Carlo Batini Queste trasparenze parte 2.6 Basi di Dati Vol. 2 (Atzeni, Ceri Paraboschi, Torlone) cap. 1.5, 1.6 Elmasri/Navathe, Fundamentals of Database Systems Garcia Molina, Ullman, Widom, Database Systems the complete book, Prentice Hall, 2002 Componenti del DBMS interessati Utente/Applicazione Queries Aggiornamenti Transazioni Amministratore della BD Comandi DDL 0. Introduzione alla esecuzione delle interrogazioni Query compiler Gestore di Interrogazioni e aggiornamenti DDL Compiler Gestore delle transazioni Gestore dei metodi d accesso Gestore del buffer Gestore della concorrenza Gestore della affidabilità Gestore della memoria secondaria Memoria secondaria Approcci alla compilazione di queries Compila e memorizza: la query è compilata una volta ed eseguita piu volte Il codice interno e memorizzato nel DB, insieme alle dipendenze del codice da particolari versioni delle tabelle e degli indici In presenza di cambiamenti, la compilazione della interrogazione è invalidata e ripetuta Compila ed esegui: esecuzione immediata, nessuna memorizzazione Passi di elaborazione: parsing Data Catalog Usa informazioni sullo schema logico Query (SQL) Scanning, Parsing Query tree (intermediate) Effettua una analisi lessicale, sintattica e semantica, usando il dizionario e traduzione in algebra relazionale, corrispondente a un qeury tree 1
2 Passi di elaborazione: costruzione query plan logico e sua ottimizzazione Data Catalog Query (SQL) Scanning, Parsing Calcolo del query plan logico E sua Ottimizzazione Query tree astratto Query plan logico Trasforma il query tree in un query plan logico contenente operazioni di algebra relazionale sulle tabelle logiche dello schema, e lo ottimizza rispetto al costo Query plan logico La query viene rappresentata come un albero nel quale: Le foglie corrispondono alle strutture dati logiche (tabelle) e I nodi intermedi rappresentano operazioni algebriche: Selezione Proiezione Join Prodotto cartesiano Operazioni insiemistiche Esempio: query sul seguente schema Employee [Ename, lname, ssn (social security number), bdate (birthdate), address] Department [Dname, dnumber, mgrssn (manager ssn)] [Pname, pnumber, plocation, dnum] Works-on [Essn (Employee ssn), pno (pnumber), hours] Trovare Progetti localizzati a Stafford e loro Manager, con mome, indirizzo, e data nascita Parte (gialla) dello schema coinvolta Employee [Ename, lname, ssn (social security number), bdate (birthdate), address] Department [Dname, dnumber, mgrssn (manager ssn)] [Pname, pnumber, plocation, dnum] Works-on [Essn (Employee ssn), pno (pnumber), hours] Trovare Progetti localizzati a Stafford e loro Manager, con mome, indirizzo, e data nascita Query in SQL Employee [Ename, lname, ssn (social security number), bdate (birthdate), address] Department [Dname, dnumber, mgrssn (manager ssn)] [Pname, pnumber, plocation, dnum] Corrispondente query plan logico R1 = (σ plocation= stafford (project)) join dnum=dnumber dept R = (π Pnumber, dnum, lname, address, bdate (R1 join mgrssn=ssn emp)) π Pnumber, dnum, lname, address, bdate Trovare Progetti localizzati a Stafford e loro Manager SELECT Pnumber, Dnum, Lname, Address, Bdate FROM P, Dept D, Emp E Where P.dnum=D.dnumber and E.ssn = D.mgrssn and P.location = Stafford join mgrssn=ssn SELECT Pnumber, Dnum, Lname, Address, Bdate FROM P, Dept D, Emp E join Where P.dnum=D.dnumber dnum=dnumber and E.ssn = D.mgrssn and P.location = Stafford σ plocation= stafford Dept Emp 2
3 Ottimizzazione del query plan logico - 1 A una interrogazione SQL possono corrispondere diverse espressioni in algebra relazionale e quindi diversi query plan logici. Nel precedente esempio posso esprimere nell algebra le clausole della Where P.dnum=D.dnumber and E.ssn = D.mgrssn and P.location = Stafford secondo diversi ordini possibili Ottimizzazione del query plan logico 2 In questa fase viene scelto, tra tutti i piani logici equivalenti, il query plan logico che ottimizza il costo di esecuzione Ad esempio, in genere conviene che le selezioni siano anticipate rispetto ai join, perche in questo modo i join operano su tabelle di minore dimensione. Ottimizzazione del query plan logico - 3 Rappresentazione iniziale del query plan Data Catalog Query (SQL) Scanning, Parsing Ottimizzazione del query plan logico Query tree (intermediate) Query plan logico π Pnumber, dnum, lname, address, bdate join mgrssn=ssn join dnum=dnumber Emp Operazioni dell algebra relazionale Tabelle Ottimizzazione algebrica: Trasformazione delle espressioni di Algebra relazionale rappresentate dal query plan logico in altre equivalenti, ma piu efficienti σ plocation= stafford Dept Passi di elaborazione: query plan fisico e sua ottimizzazione Traduzioni da operazioni dell algebra in operazioni elementari Usa statistiche sulla storia delle esecuzioni delle interrogazioni Data Catalog Query (SQL) Scanning, Parsing Calcolo del qplan logico E sua ottimizzazione Query tree (intermediate) Query plan logico Select,, Join scan sequenziali, ricerca binaria, ordinamenti, accessi con indice, vari tipi di join (vedi in seguito) Statistics Calcolo query plan fisico e ottimizzazione Query plan fisico Trasformazione delle tabelle logiche in strutture fisiche e metodi di accesso alla memoria Trasformazione delle operazioni algebriche nelle loro implementazioni sulle strutture fisiche Dalle operazioni logiche alla loro implementazione sui dati fisici 3
4 Esempio di query plan fisico R1 = (σ plocation= stafford (project)) join dnum=dnumber dept R = (π Pnumber, dnum, lname, address, bdate (R1 join mgrssn=ssn emp)) π Pnumber, dnum, lname, address, bdate join dnum=dnumber σ plocation= stafford join mgrssn=ssn Dept Emp Scelta delle Operazioni elementari Scelta delle Rappresentazioni Fisiche delle tabelle Ottimizzazione del query plan fisico basata sui costi La trasformazione e effettuata mediante una strategia che prevede di utilizzare: 1. proprieta algebriche; 2. una stima dei costi delle operazioni fondamentali per diversi metodi di accesso; In generale, il problema di ottimizzare la query ha complessita esponenziale In pratica, si introducono delle approssimazioni ragionevoli in base a euristiche Statistics Passi di elaborazione: esecuzione del query plan Data Catalog Query (SQL) Scanning, Parsing Calcola query plan logico E sua ottimizzazione Calcolo query plan Fisico e sua ottimizzazione Query tree (intermediate) Query plan logico Query plan fisico Riassumendo, il problema generale e.. Interrogazioni SQL Carico di Lavoro Ottimizzazione delle Interrogazioni Piano ottimo logico/fisico di esecuzione delle operazioni Scelta ottima rappr. fisica delle tabelle Codifica ed esecuzione del query plan DATI Interrogazione SQL Carico di Lavoro Rappr. fisica delle tabelle Noi nel seguito affronteremo il problema Ottimizzazione delle Interrogazioni Piano ottimo Logico/fisico di esecuzione delle operazioni Piano di lavoro Preliminare 1: Buffer Management Preliminare 2: Modelli per la valutazione dei costi Seguiremo un percorso bottom up: 1. Rappresentazione fisica delle tabelle: metodi di accesso ai dati 2. Ottimizzazione del piano di esecuzione fisico: implementazione delle operazioni dell algebra 3. Ottimizzazione del piano di esecuzione logico: ottimizzazione algebrica 4. Piano di esecuzione logico/fisico: ottimizzazione basata sui costi 4
5 Preliminare 1: buffer management Accesso ai dati tramite buffer Assumeremo che l implementazione degli operatori relazionali e i metodi di accesso ai dati dispongano di un numero M sufficiente di blocchi (pagine) in memoria principale Ogni pagina corrisponde a un blocco in memoria secondaria Le pagine sono allocate e gestite nel buffer, zona di memoria non persistente pre-allocata al DBM Scan Sequenziale Gestore B-Trees Gestore Ordinamenti Gestore Tabelle Hash Read/ Writes Buffer Richieste Buffer Manager Memoria persistente Buffer caratteristiche principali Organizzato in pagine: Dimensioni multiple di quelle dei blocchi di I/O usati dal file system Tipiche: 2K -> 4K -> 8k fino a 64k (Tempo di accesso file system) / (tempo di accesso buffer) 10 6 Il buffer e gestito da un buffer manager In maniera simile a quanto avviene per la gestione di gerarchie di memoria nei file systems Operazioniprimitive di gestionedeiblocchiin cache Principio di localita dei dati e strategie di sostituizione dei blocchi Euristica: 80% delle applicazioni accede al 20% delle pagine Valutazione dell hit ratio come per i Sistemi Operativi Funzioni del buffer manager - 1 Il buffer manager media tutte le richieste di lettura/scrittura dei blocchi da parte degli operatori Traduce indirizzi su disco in indirizzi su blocchi di memoria buffer e viceversa Pagina buffer pagina fisica (file, blocco) Gli indirizzi logici dei records nei blocchi diventano indirizzi fisici in memoria Ritorna indirizzi fisici all operazione che sta accedendo ai dati Funzioni del buffer manager- 2 Quando tratteremo le transazioni, descriveremo altre richieste al Buffer Manager oltre a read/write Configurazione dei buffer Il numero M di pagine disponibili al Buffer Manager e di solito un parametro di configurazione del DB, detto buffer pool Definito in fase di creazione e non modificabile 5
6 Tipologie dei costi - 1 I costi ricadono in due categorie: Preliminare 2: Valutazione dei costi Tempi di esecuzione Spazio occupato Tipologie dei costi 2 Tipologie di costi Tempo 1. Costi di accesso a memoria secondaria Costi per acquisire i dati in m. centrale Costi per memorizzare i risultati 2. Costi di memorizzazione di files intermedi Costi di elaborazione sul canale 3. Costi di elaborazione in memoria centrale Spazio Costi di utilizzo della memoria principale Scelte nella valutazione dei costi Il fattore di costo piu importante e il primo, Costi di accesso a memoria secondaria misurato con: Il numero di blocchi caricati nel buffer durante il calcolo dellee operazioni Nel valutarlo si trascurano i costi di memorizzazione dei risultati su memoria secondaria (blocchi caricati su disco) Percio nel seguito Tipologie di costi Tempo Costi di accesso a memoria secondaria Costi per acquisire i dati in m. centrale Costi per memorizzare i risultati Costi di memorizzazione di files intermedi Costi di utilizzo del canale Costi di elaborazione in memoria centrale Spazio Costi di utilizzo della memoria principale Valutazione dei costi conclusioni Il costo dominante che studiamo e il numero di operazioni di I/O trasferimenti di blocchi da disco nel buffer L obiettivo e di minimizzare l I/O sfruttando al meglio gli M buffer/pagine disponibili 6
7 Metodi di accesso ai dati 1. Rappresentazione fisica delle tabelle Riguardano tre aspetti: scansione/scan ordinamenti accesso con indice Scansione Realizza un accesso sequenziale a tutti i record di una tabella, eseguendo diverse operazioni: 1. Proiezione su un insieme di attributi senza eliminazione dei duplicati 2. Selezione su un predicato semplice, di tipo A i = v 3. Inserimenti, cancellazione e aggiornamento delle tuple accedute durante lo scan Ordinamenti Vari metodi per ordinare i dati in memoria principale DBMSs usualmente non possono caricare tutta la BD nel buffer; percio, ordinano separatamente e poi effettuano il merge di tabelle, usando lo spazio disponibile nel buffer Accesso diretto Può essere eseguito solo se le strutture fisiche lo permettono: Indici Strutture hash 2. Piano di esecuzione fisico: implementazione delle operazioni dell algebra: selezione, join 7
8 Implementazione della selezione tipologie dei predicati Selezione 1. Predicati di selezione semplici Es. σ dno=5 (employee) 2. Predicati con congiunzione di condizioni Es. σ dno=5 and salary>30000 and sex=f (employee) 3. Predicati con disgiunzione di condizioni Es. σ dno=5 or salary>30000 or sex=f (employee) Selezioni semplici calcolo costi Metodi di accesso disponibili A. Scan lineare n. blocchi = dimensione del file/ dimensione del blocco B. Ricerca binaria, per files ordinati sulla stessa chiave del predicato n. blocchi = log (dimensione del file/ dimensione del blocco) C. Accesso a indice n. blocchi = n. blocchi struttura a indice (profondita dell albero) Congiunzione di condizioni/predicati Strategie - premessa In questocaso(e nelsuccessivo) entranoin gioco: la valutabilita di un predicato, cioe il fatto che il predicato coinvolge attributi su cui e definito un indice, che permettono un accesso piu efficiente e la selettivita di un predicato Esempio per la valutabilita : Es. Cerca le persone con piu di 100 anni e nati a Milano I predicati potrebbero essere: Eta predicato non valutabile e Nascita predicato valutabile Selettivita dei predicati definizione e proprieta La selettivita di un predicato e definita come il rapporto trailnumerodi record chesoddisfanoilpredicato e il numero di record totale del file (relazione) Assumendo uniformita di distribuzione dei valori di un attributo, e pari alla probabilita che un record soddisfi la condizione su un attributo Selettivita del predicato semplice A i =v su una relazione R: sel(a i =v, R) quando A i e chiave: 1/ R quando sono presenti n valori distinti per A i : 1/n Il DBMS stima la selettivita in base a statistiche raccolte durante l esecuzione di query precedenti L attributo piu selettivo e quello per cui min i (sel(a i =v, R)) Predicati con congiunzione di condizioni Strategie Il DBMS sceglie il predicato valutabile piu selettivo per l accesso primario e valuta gli altri predicati in ordine di selettivita 8
9 Congiunzione di predicati Strategie - esempio Es: trova tutte le persone con piu di 100 anni e gli occhi neri Se sel (piu di 100 anni) = 2% e Sel (colore occhi = neri ) = 50% chiaramente e preferibile partire dal primo Considerazione sulla congiunzione di predicati Poiche il DBMS sceglie il predicato valutabile piu selettivo per l accesso primario e valuta gli altri predicati nel buffer, normalmente e sufficiente per l ottimizzazione scegliere solo il primo predicato. Disgiunzione di predicati - Strategie Es.: trova tutte le persone con meno di 100 anni o gli occhi neri 1. Se qualche predicato non e valutabile e necessario uno scan in cui su ogni n-pla si valuta tutta la selezione disgiuntiva 2. Se tutti i predicati sono valutabili, due metodi: A. si possono utilizzare gli indici (ma allora occorre eliminare i duplicati che si ottengono dalle varie selezioni) B. si utilizza uno scan, in cui su ogni n-pla si valuta tutta la selezione disgiuntiva Disgiunzione di predicati - Strategie Confronto qualitativo tra i due metodi Conviene uno scan quando la interrogazione e poco selettiva, perche in questo caso e inefficiente la eliminazione dei duplicati Es1: trova tutte le persone con meno di 100 anni o gli occhi neri molto poco selettiva Es2: trova tutte le persone con piu di 100 anni o gli occhi neri poco selettiva Es3: trova tutte le persone con piu di 100 anni o gli occhi azzurri selettiva, utilizzare gli indici Metodi per il calcolo del join Join nel seguito consideriamo il caso di join binari di tipo equijoin I join sono le operazioni piu costose (e spesso piu frequenti) per un DBMS Esistono vari metodi per il calcolo di join, tra essi vedremo: A. nested-loop B. single loop C. merge-scan D. hash Tali metodi sono basati su uso combinato di metodi di accesso ai dati visti sopra: Scan, indici, Hash, Sort 9
10 Il problema, dato R join S, diventa R S Strutture accesso Strutture accesso A. Nested loop Buffer Minimo numero di blocchi trasferiti Nested loop join R A=B S: algoritmo Per ogni record in r in R (tabella esterna) Per ogni record s in S (tabella interna, scan lineare) Verifica se r(a) = s(b) Realizzato sempre con scan sequenziale sui due files R Tabella esterna Scansione esterna Scansione interna S Tabella interna Efficienza di nested-loop join Conviene usare il file piu piccolo per il ciclo esterno Intuitivamente: Ottimizza l uso dei blocchi di buffer e quindi il numero di caricamenti di blocchi Vediamolo numericamente applichiamo il metodo di valutazione dei costi con un esempio Esempio relativo allo schema Employee Ename, lname, ssn (social security number), bdate (birthdate), address, dno (department number) Department Dname, dnumber, mgrssn (manager ssn) Nested-loop: Quanti blocchi vengono caricati? Esempio: EMP join dno=dnumber DEPT Assunzioni: DEPT occupa b D = 10 blocchi e EMP occupa b E = blocchi n B = 6 blocchi di buffer disponibili A. Assumiamo di usare EMP (la tabella piu grande) per il ciclo esterno Ogni blocco in EMP viene letto una volta L intero file DEPT viene letto ogni volta che viene caricato un nuovo insieme di blocchi di EMP - Strategia di allocazione dei blocchi: -Usiamon B 1 blocchi per EMP, 1 blocco per DEPT, perche cosi minimizziamo il numero di volte che carichiamo blocchi di DEPT - Numero totale di blocchi caricati: -EMP: b E -DEPT: b D * b E / (n B 1) dove esprime la parte intera superiore Totale = *(2.000/5) = blocchi 10
11 Nested-loop: Quanti blocchi vengono caricati? Esempio: EMP join dno=dnumber DEPT Assunzioni: DEPT occupa b D = 10 blocchi e EMP occupa b E = blocchi n B = 6 blocchi di buffer disponibili B. Usiamo DEPT (la tabella piu piccola) per il ciclo esterno - Strategia di allocazione dei blocchi: -Usiamo n B 1 blocchi per DEPT, 1 blocco per EMP - Numero totale di blocchi caricati: -DEPT: b D - EMP: b E * b D / (n B 1) Totale = * 10/5 = blocchi Nested-loop: Quanti blocchi vengono caricati? Esempio: EMP join dno=dnumber DEPT B. Usiamo DEPT (la tabella piu piccola) per il ciclo esterno - Strategia di allocazione dei blocchi: -Usiamo n B 1 blocchi per DEPT, 1 blocco per EMP - Numero totale di blocchi caricati: - DEPT: b D -EMP: b E * b D / (n B 1) Totale = * 10/5 = blocchi Esercizio Provare formalmente la proprieta per cui conviene sempre la tabella piu piccola nel loop piu esterno B. Single loop Single loop join R A=B S: algoritmo Variante al nested loop se esiste una struttura di accesso diretto su B di S Per ogni record r in R Cerca con accesso diretto i record s in S tali che s(b) = r(a) Single loop join R A=B S: idea Per ogni record r in R Cerca con accesso diretto i record s in S tali che s(b) = r(a) In questo caso e possibile sfruttare l accesso con indice per accedere ai record della tabella interna, invece che lo scan sequenziale R Tabella esterna Scansione esterna S Tabella interna R Tabella esterna Scansione esterna S Tabella interna Accesso con indice Accesso con indice 11
12 Single-loop: Fattori che influenzano il costo Il numero di blocchi trasferiti e influenzato da: 1. b D num. di blocchi di DEPT, b E num. di blocchi di EMP 2. Join selection factor (JSF) di una relazione nel join, cioe la percentuale di record che sono messi in join con l altra relazione 3. IL (Index level), il numero di livelli della struttura a indici che deve essere visitata Assumiamo che sia di tipo B tree, e quindi si visiti un blocco per ogni livello 4. La Cardinalita R e S delle relazioni Esempio relativo allo schema Employee Ename, lname, ssn (social security number), bdate (birthdate), address, dno (department number) Department Dname, dnumber, mgrssn (manager ssn) Un manager per dipartimento Con Employee = 5.000, Department = 50 Esempio di calcolo del JSF Consideriamo il join: EMP join ssn = mgrssn DEPT ogni dipartimento con il proprio manager Nell esempio JSF (DEPT) = 1 (perche ogni dipartimento ha un manager) JSF (EMP) = 50/5000 = 0,01 (perche solo gli impiegati che sono manager partecipano al join) Assunzioni Assumiamo che siano definiti indici secondari su: SSN con IL(SSN) = 4 MGRSSN con IL(MGRSSN) = 2 Assumiamo DEPT = 50, EMP = 5000 Single loop calcolo costi - 1 A. Single loop su EMP Numero di blocchi = # blocchi di E + #record di E * # accessi su DEPT per ogni record di E = b E + ( EMP *(IL(DEPT) + 1)) = (5.000*3)= Single loop calcolo costi - 2 B. Single loop su DEPT Numero di blocchi = b D + ( DEPT *(IL(EMP) + 1)) = 10 + (50 * 5)= 260 In altre parole: - dato d in DEPT: la probabilita di trovare e in EMP tale che d.mgrssn = e.ssn e pari ad 1 (nessuno spreco di accessi) - dato e in EMP: la probabilita di trovare d in DEPT tale che d.mgrssn = e.ssn = 50/5000 (carico inutilmente 4950 records di EMP!!) Conviene usare DEPT (cioe la relazione con selection factor piu alto) nel ciclo esterno, EMP nel ciclo interno con indice secondario su EMP.SSN 12
13 Esercizio Effettuare le valutazioni di costi per Nested loop per la query EMP join ssn = mgrssn DEPT Single loop per la query EMP join dno=dnumber DEPT C. Merge scan Merge scan join - precondizione Assume le tabelle ordinate in base agli attributi di join Merge-scan join Inizia dalle prime tuple r e s delle due relazioni Verifica se r e s sono in join Passa alternativamente alla successiva di r e s Finche le tuple non sono concluse R S Costo del merge scan join Richiede lo scan lineare, una sola volta, di ciascun file -unico passaggio su ciascun file -# blocchi caricati = -#blocchi R + #blocchi S -Richiede pero l ordinamento sugli attributi di join! D. Hash join 13
14 Hash join Assunzione: le tabelle sono implementate mediante hash sugli attributi di join. Inoltre usano la stessa funzione hash h Osservazione: Dati r in R e s in S, se r[a]= s[b], allora h(r[a]) = h(s[b]): r e s appartengono allo stesso blocco Quindi, e sufficiente effettuare join limitati ad ogni blocco R S Hash-join su R join R.A=S.B S algoritmo Passo a): I record di R e S sono memorizzati in una tabella hash: Usando come chiavi R.A e S.B e la stessa hash function h per R.A e S.B Calcola h(r[a]) per ogni r in R,e h(s[b]) per ogni s in S. Richiede uno scan di R e S Passo b): Per ogni blocco indotto dalla funzione h( ), effettua il join dei record all interno del blocco Il join globale e l unione dei join di ogni blocco Costo dell hash-join -unico passaggio su ciascun file -non richiede ordinamento -Non approfondiamo la formula 3. Ottimizzazione algebrica Query trees e ottimizzazione algebrica Strategia Query plan logico Osservazione: l algebra relazionale e caratterizzata da molte regole di trasformazione di equivalenza (gia viste nel corso di Elementi di BD) Strategia approssimata (euristica): si applicano all albero trasformazioni equivalenti che riducono il costo di esecuzione Query tree Trasformazioni di equivalenza Query plan logico Query tree equivalente ottimo Non giustificheremo formalmente le regole 14
15 Regole di trasformazione di equivalenza nell algebra relazionale: alcuni esempi 1 Trasformazioni di equivalenza 1. ATOMIZZAZIONE σ Una selezione congiuntiva puo essere sostituita da una sequenza di operazioni di selezione individuali σc1 AND c2 AND.. cn (R) equivalente σc1 (σc2( σcn(r)..)) Esempio SEL Eta > 30 AND Stipendio < 50 (Impiegati) Equivalente a SEL Eta > 30 (SEL Stipendio < 50 (Impiegati)) Regole di trasformazione di equivalenza nell algebra relazionale: alcuni esempi 2 2. COMM σ Commutativita della selezione σc1 (σc2(r)) equivalente σc2 (σc1( R )) 3. COMM σ X Commutativita di selezione e prodotto cartesiano σ c (R X S) equivalente (σ c (R)) X S (se fa riferimento solo ad attributi di R) Regole di trasformazione di equivalenza nell algebra relazionale: alcuni esempi 3 4. COMM σ πcommutativita di selezione e proiezione σ c (π (R)) equivalente π(σ c (R)) 5. EQIUV X σ e Join Equivalenza di prodotto cartesiano e selezione con Join σ c (E1 X E2) equivalente E1 JOIN c E2 6. COMM π e Join Commutativita di proiezione e join La piu importante 7. ANTICIPAZIONE DELLA SELEZIONE RISPETTO AL JOIN σ c (E1 JOIN E2) EQUIV E1 JOIN σ c (E2) se c fa riferimento solo ad attributi in E2 Vale anche sotto opportune condizioni la ANTICIPAZIONE DELLA PROIEZIONE RISPETTO AL JOIN Euristiche per scegliere le trasformazioni di equivalenza - 1 Osservazione Il costo di join e proporzionale alle dimensioni dei files, perche consideriamoilnumerodi blocchi caricati nel buffer Selezioni e proiezioni riducono le dimensioni dei files migliorano la performance del join Euristica 1: Applicare selezione e proiezione prima possibile e in ogni caso prima di calcolare i join Euristica 2 Tra le selezioni, applicareprima quellecon predicati piu selettivi 15
16 Esempio: riconsideriamo lo schema Employee Ename, lname, ssn (social security number), bdate (birthdate), address Department Dname, dnumber, mgrssn (manager ssn) Pname, pnumber, plocation, dnum Works-on Essn, pno, hours Esempio di query Seleziona gli impiegati che lavorano nel progetto x e sono nati a partire dall anno 1958 SELECT lname FROM emp, works_on, project WHERE pname = x AND pnumber = pno AND essn=ssn AND bdate > dec Esempio di trasformazione algebrica 1 albero iniziale (nessuna ottimizzazione) π lname σ pname= x and pnumber = pno and essn = ssn and BDATE> dec X 2 Le selezioni vengono spinte in basso lungo l albero π lname σ ESSN=SSN X Regola adottata 3. COMM σ X Employee Works_on X Employee Lname, ssn, bdate (birthdate),... Pname, pnumber, plocation,... Works-on Essn, pno, hours σ BDATE> dec Employee Employee Lname, ssn, bdate (birthdate),... Pname, pnumber, plocation,... Works-on Essn, pno, hours σ Pnumber= pno X σpname= x Works_on 3 Le selezioni vengono invertite spostando all inizio le piu efficienti Pname e chiave selettivita ottima 1 σ pnumber = PNO π lname σ ESSN=SSN m X m σ BDATE> dec Regola adottata 2. COMM σ 4 Il Prodotto cartesiano + la selezione sono sostituiti da join join pnumber = PNO π lname join ESSN=SSN Regola adottata 5. EQIUV X σ e Join σ BDATE> dec σ pname= x m nxm X n Works_on Emp Employee Lname, ssn, bdate (birthdate),... Pname, pnumber, plocation,... Works-on Essn, pno, hours σ pname= x Works_on Emp Employee Lname, ssn, bdate (birthdate),... Pname, pnumber, plocation,... Works-on Essn, pno, hours 16
17 5- Le proiezioni vengono spinte in basso π ESSN π lname join ESSN=SSN Regola adottata 6. COMM π e Join π SSN, lname 4. Ottimizzazione basata sui costi join pnumber = PNO σ BDATE> dec π pnumber π ESSN, PNO Emp σ pname= x Works_on Employee Lname, ssn, bdate (birthdate),... Pname, pnumber, plocation,... Works-on Essn, pno, hours Ottimizzazione basata sui costi Un problema di ottimizzazione, i cui parametri sono (quelli gia visti): La scelta dei metodi di accesso ai dati (e.g., scan vs accesso a indice) L algoritmo, ad es nel caso di join l algoritmo di join scelto tra quelli visti L ordine delle operazioni (e.g., l ordine dei join elementari in un multi-join) Approccio per la ottimizzazione Calcolo dei profili dimensionali delle relazioni (vedi tra poco) e di formule di costo approssimate per il calcolo delle relazioni risultati intermedi del calcolo 2. Costruzione di un albero di decisione (vedi tra poco), in cui ogni nodo corrisponde a una scelta e ogni foglia corrisponde a un piano di esecuzione Esempio di albero di decisione Ordine delle op. Algoritmo Profili dimensionali delle relazioni Elementi presenti nei profili 1. CARD(T): numero di record nella tabella T 2.SIZE(T): dimensione in byte di un record di T (fissa, media) 3.SIZE(A j,t): dimensione in byte di T.A j 4.VAL(A j,t): numero di valori distinti di T.A j 5.MIN(A j,t), MAX(A j,t), valori minimo e max di A j 6.Bfr (numero di blocchi) = # records / record in blocco in T L amministratore periodicamente calcola i valori dei profili (primitiva update statistics) 17
18 Obiettivo (intermedio) della valutazione basata sui costi Formulare ipotesi sulla dimensione dei risultati intermedi prodotti dalla valutazione di operazioni algebriche con un approccio statistico Quindi, data T, o T1 e T2, vogliamo calcolare il profilo di T = σ Ai=v (T) T = π A1,An (T) T = T 1 join A=B T 2 Approssimazioni nelle formule Uniforme distribuzione dei dati nelle tabelle Assenza di correlazione tra le varie condizioni presenti nella interrogazione (es. Eta vs colore dei capelli) Assenza di informazione ulteriore sui domini di valori Profilo per selezione T = σ Ai=v (T) CARD(T ) = (1/ VAL(A i, T)) * CARD(T) SIZE(T ) = SIZE(T) VAL(A i, T ) = 1 (unico valore selezionato ) VAL(A j, T ) j i: colori(card(t), VAL(A j, T), CARD(T )) (vedi testo, facoltativo) MAX(A i, T ) = MIN(A i, T ) = v (ovvio) MAX(A j, T ) e MIN(A j, T ) j i : stessi valori di MAX(A j, T) e MIN(A j, T) ( non ci sono abbastanza informazioni) Profilo per proiezione T = π A1,An (T) facoltativo CARD(T ) = MIN( CARD(T), Π j=1.,n VAL(A j, T)) SIZE(T ) = Σ i=1.,n SIZE(A j, T) Gli altri parametri mantengono gli stessi valori Profilo per equijoin T = T 1 join A=B T 2 facolatativo CARD(T ) = ( 1/ VAL(A, T 1 )) * CARD(T 1 ) * CARD(T 2 ) SIZE(T ) = SIZE(T 1 ) + SIZE(T 2 ) Gli altri parametri mantengono gli stessi valori Approccio per la ottimizzazione Calcolo dei possibili piani di esecuzione 2. Assegnazione a ogni piano di esecuzione di un costo, secondo i modelli visti in precedenza 3. Scelta del piano di esecuzione con il costo piu basso, con tecniche di ricerca operativa (branch and bound) Si ottengono in genere soluzioni subottime 18
19 Altre tecniche 1. Realizzazione ad hoc di strutture temporanee 2. Pipelining, cioe possibilita di eseguire l intero albero delle operazioni per una parte delle tuple estratte, invece che realizzare interamente ogni operazione 3. Parallelismo, cioe possibilita di eseguire parti delle query indipendentemente con diversi processori (lo vedremo nella parte 3) Progettazione fisica di basi di dati cenni Talvolta e necessario riscrivere i risultati in memoria secondaria, cio aumenta i costi Riassumendo, il problema generale e.. Progettazione fisica di basi di dati Schema logico: relazioni Interrogazioni SQL (e transazioni) Carico di Lavoro Progettazione fisica Scelta ottima rappr. fisica delle tabelle Progettazione fisica Carico applicativo Schema fisico: relazioni + strutture di accesso La fase finale del processo di progettazione di basi di dati Input lo schema logico e informazioni sul carico applicativo Output schema fisico, costituito dalle definizione delle relazioni con le relative strutture fisiche (e molti parametri, spesso legati allo specifico DBMS) Progettazione fisica nel modello relazionale La caratteristica comune dei DBMS relazionali è la disponibilità degli indici: la progettazione fisica spesso coincide con la scelta degli indici (oltre ai parametri strettamente dipendenti dal DBMS) Le chiavi (primarie) delle relazioni sono di solito coinvolte in selezioni e join: molti sistemi prevedono (oppure suggeriscono) di definire indici sulle chiavi primarie Altri indici vengono definiti con riferimento ad altre selezioni o join "importanti" Se le prestazioni sono insoddisfacenti, si "tara" il sistema aggiungendo o eliminando indici È utile verificare se e come gli indici sono utilizzati con il comando SQL show plan 19
Scelte nella valutazione dei costi
Passi di elaborazione: esecuzione del query plan Basi di Dati Complementi Esercizi del Ottobre 2007 Esercitazione su ottimizzazione di interrogazioni Data Catalog Query (QL) canning, Parsing Calcola query
DettagliLa gestione delle interrogazioni
La gestione delle interrogazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Esecuzione e ottimizzazione delle query Un modulo del DBMS Query processor
DettagliPag Politecnico di Torino 1
Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G D B M G2 Organizzazione fisica dei dati All interno di un DBMS relazionale,
DettagliCasi di studio per il tuning delle strutture fisiche (Shasha)
Casi di studio per il tuning delle strutture fisiche (Shasha) Employee (SSN, Name, Dept, Manager, Salary) Student(SSN, Name, Course, Grade, Stipend,WrittenEvaluation) dal testo: D. Shasha. Database Tuning:
DettagliMemorizzazione di una relazione
Heap file File ordinati Indici o Hash o B+-tree Costo delle operazioni algebriche Simboli: NP: numero di pagine NR: numero record LP: lunghezza pagina LR: lunghezza record Memorizzazione di una relazione
DettagliOttimizzazione e organizzazione fisica
Parte VIII Organizzazione fisica Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 1 Ottimizzazione e organizzazione fisica L Ottimizzatore genera i piani esecutivi delle interrogazioni Un piano
DettagliData Management. Query evaluation. Maurizio Lenzerini, Riccardo Rosati
Data Management Query evaluation Maurizio Lenzerini, Riccardo Rosati Dipartimento di Ingegneria informatica, automatica e gestionale Sapienza Università di Roma Corso di laurea magistrale in ingegneria
Dettagliuna chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano di accesso diverso!!
RIASSUNTO Devo controllare la clausola WHERE e decidere se sto lavorando su : una chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano
DettagliCognome Nome Matricola Ordin.
Basi di dati II, primo modulo Tecnologia delle basi di dati Prova parziale 27 marzo 2009 Compito A Scrivere il nome su questo foglio e su quello protocollo. Rispondere su questo foglio, eventualmente con
DettagliOrganizzazione Fisica dei Dati (Parte II)
Modello Fisico dei Dati Basi di Dati / Complementi di Basi di Dati 1 Organizzazione Fisica dei Dati (Parte II) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Modello Fisico
DettagliEquivalenza di Espressioni Algebriche
Equivalenza di Espressioni Algebriche Basi di dati e sistemi informativi 1 Equivalenza di Espressioni Algebriche Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Equivalenza
DettagliStrutture fisiche e strutture di accesso ai dati
Strutture fisiche e strutture di accesso ai dati 1 A L B E R T O B E L U S S I P R I M A P A R T E A N N O A C C A D E M I C O 2 0 1 2-2 0 1 3 Gestore dei metodi di accesso 2 E il modulo del DBMS che esegue
DettagliIntroduzione alla valutazione delle interrogazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1
Introduzione alla valutazione delle interrogazioni Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Introduzione alla valutazione delle interrogazioni v Piano: albero composto da operatori
DettagliBasi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale
Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore
DettagliDr. C. d'amat LA PROGETTAZIONE FISICA
LA PROGETTAZIONE FISICA Progettazione fisica Progettazione fisica fase finale del processo di progettazione di basi di dati Input: schema logico informazioni sul carico applicativo Output: schema fisico,
DettagliInterrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor
Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è
DettagliOttimizzazione delle interrogazioni (parte I)
Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di
DettagliINDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
DettagliLezione 6. Algebra e Calcolo Relazionale
Lezione 6 Algebra e Calcolo Relazionale 1 Sommario Esempio di Applicazione con Database (AZIENDA) Algebra Relazionale Operazioni Relazionali Unarie Operazioni dell Algebra Relazionale dalla teoria degli
DettagliSQL Avanzato. Interrogazioni e il valore NULL. Interrogazioni complesse, trigger, viste e modifiche dello schema. Giorgio Giacinto 2015
SQL Avanzato Interrogazioni complesse, trigger, viste e modifiche dello schema 2 Interrogazioni e il valore NULL Il valore NULL Logica a tre valori 3 Significato del valore NULL Valore sconosciuto Valore
DettagliL architettura di un DBMS
L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze
DettagliSQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:
SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i
DettagliInterrogazioni$e$il$valore$NULL$
SQL$Avanzato$ Interrogazioni+complesse,+trigger,+viste+e+modifiche+dello+schema+! 2 Interrogazioni$e$il$valore$NULL$! Il valore NULL Logica a tre valori 3! Significato del valore NULL! Valore sconosciuto!
DettagliMODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati MODELLI DEI DATI Prof. Alberto Postiglione
DettagliBasi di dati. Selezione, proiezione e join. Linguaggi di interrogazione. Selezione, proiezione e join. Equivalenza di espressioni
elezione, proiezione e join Basi di dati Linguaggi di interrogazione quali professori hanno esaminato Antonio? Nome Città CDip Carlo Carlo Bologna Bologna Antonio oma Log Cod Corso 1 2 3 Data Voto 7997
DettagliParte 6 Esercitazione sull accesso ai file
Gestione dei dati Parte 6 Esercitazione sull accesso ai file Maurizio Lenzerini, Riccardo Rosati Facoltà di Ingegneria Sapienza Università di Roma Anno Accademico 2012/2013 http://www.dis.uniroma1.it/~rosati/gd/
DettagliAPPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio
APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio INTRODUZIONE L algebra relazionale è l algebra su cui si basa il linguaggio
DettagliProcesso di ottimizzazione. Ottimizzatore di Oracle. Execution plan. Esempio. Albero di esecuzione. Ottimizzatore di Oracle Dicembre 2002
Processo di ottimizzazione Ottimizzatore di Oracle Silvia Chiusano Politecnico di Torino chiusano@polito.it Scelta della esecuzione più efficiente per uno statement SQL Influenzato da: Metodi di accesso
DettagliInformatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati Prof. Alberto Postiglione Università degli
DettagliIndice. Prefazione. Capitolo 1 Introduzione al data warehousing 1
Indice Prefazione XI Capitolo 1 Introduzione al data warehousing 1 1.1 I sistemi di supporto alle decisioni 2 1.2 Il data warehousing 3 1.3 Architetture per il data warehousing 6 1.3.1 Architettura a un
DettagliStrutture di accesso ai dati: B + -tree
Strutture di accesso ai dati: B + -tree A L B E R T O B E L U S S I S E C O N D A P A R T E A N N O A C C A D E M I C O 2 0 0 9-2 0 0 Osservazione Quando l indice aumenta di dimensioni, non può risiedere
DettagliAlgebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
Algebra Relazionale 1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale supporta LI semplici
DettagliCONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI
CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di
DettagliMinimizzazione a più livelli di reti combinatorie Cristina Silvano
Minimizzazione a più livelli di reti combinatorie Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione Milano (Italy) Sommario Modello booleano e modello algebrico
DettagliRequisiti della base di dati. Schema concettuale
Requisiti della base di dati Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Progettazione concettuale Schema concettuale Progettazione
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
DettagliProgettazione logica: criteri di ottimizzazione
Progettazione logica: criteri di ottimizzazione Sistemi Informativi T Versione elettronica: 08.2.progLogica.ottimizzazione.pdf Criteri di ottimizzazione Per confrontare tra loro diverse alternative di
DettagliSommario. Introduzione... 13
Sommario Introduzione... 13 1. Database pro e contro... 19 A cosa serve conoscere i database?...19 Le alternative alla gestione manuale...22 Quando non serve un database?...24 Domande ed esercizi...26
DettagliFILE E INDICI Architettura DBMS
FILE E INDICI Architettura DBMS Giorgio Giacinto 2010 Database 2 Dati su dispositivi di memorizzazione esterni! Dischi! si può leggere qualunque pagina a costo medio fisso! Nastri! si possono leggere le
DettagliIntroduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1
ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com
DettagliIl file È un insieme di informazioni: programmi. Il File System. Il file system
Il File System Il file È un insieme di informazioni: programmi d a t i testi rappresentati come insieme di record logici (bit, byte, linee, record, etc.) Ogni file è individuato da (almeno) un nome simbolico
DettagliBasi di dati (database)
Basi di dati (database) 1 Scopo Gestione dell informazione Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione in diversi tipi di attività Esempi: aziende, banche, anagrafi,
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione
2.1c: MODELLI DEI DATI MODELLI DEI DATI Atzeni, cap. 1.3 DBMS: Modelli dei Dati 10 ott 2011 Dia 3 Modelli Logici e Modelli Concettuali Modelli Logici (disponibili sui DBMS commerciali) E un insieme di
DettagliAtzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, 1996-2002 Capitolo 8: Progettazione logica 17/10/2002 Progettazione concettuale Requisiti della base di dati Schema concettuale Progettazione
DettagliLezione 22 La Memoria Interna (1)
Lezione 22 La Memoria Interna (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Dove siamo e dove stiamo andando La gerarchia
DettagliI DATI E LA LORO INTEGRAZIONE 63 4/001.0
I DATI E LA LORO INTEGRAZIONE 63 4/001.0 L INTEGRAZIONE DEI DATI INTEGRAZIONE DEI DATI SIGNIFICA LA CONDIVISIONE DEGLI ARCHIVI DA PARTE DI PIÙ AREE FUNZIONALI, PROCESSI E PROCEDURE AUTOMATIZZATE NELL AMBITO
DettagliSQL aspetti essenziali
SQL aspetti essenziali Sommario 2 Definizioni di dati e tipi di dato in SQL Specifica di vincoli in SQL Interrogazioni di base in SQL Istruzioni INSERT, DELETE, e UPDATE Funzionalità aggiuntive SQL 3 SQL
DettagliComponenti di un DBMS
Componenti di un DBMS Come fa un DBMS a garantire le proprietà ACIDe di una transazione? Vediamo i componenti principali dal più interno a quello di più alto livello: Controllore di Concorrenza Gestore
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML
DettagliDizionari Liste invertite e Trie
Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi
DettagliStructured Query Language
IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione
INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno 2.3b: SQL (2) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze
DettagliCALCOLO DEL COSTO DI JOIN. costo di join 1
CALCOLO DEL COSTO DI JOIN costo di join 1 scopo: scopo della lezione valutare quale sia la migliore strategia di accesso per interrogazioni SQL nel caso di join i criteri di valutazione servono anche a
DettagliTabelle esempio: Impiegato/Dipartimento
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (3) Insiemistiche e Nidificate Prof. Alberto Postiglione
DettagliBasi di dati II 30 gennaio 2015
Tempo a disposizione: due ore. Cognome Nome Matricola Domanda 1 (20%) Una tecnica per il controllo di concorrenza diversa da quelle viste nel corso va sotto il nome di concorrenza basata sulla validazione
DettagliAlgebra relazionale: operazioni
Dipartimento di Elettronica ed ormazione Politecnico di Milano ormatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Algebra relazionale: operazioni Le presenti slide sono tratte dalle slide
DettagliIntroduzione alle Basi di Dati
Introduzione alle Basi di Dati Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 1 Appunti dalle lezioni SQL
DettagliInformatica e Bioinformatica: Basi di Dati
Informatica e Bioinformatica: Date TBD Bioinformatica I costi di sequenziamento e di hardware descrescono vertiginosamente si hanno a disposizione sempre più dati e hardware sempre più potente e meno costoso...
DettagliSISTEMI INFORMATIVI E DATABASE
SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,
DettagliInformatica per le Scienze Umane. Introduzione al corso: programma dettagliato
Informatica per le Scienze Umane Introduzione al corso: programma dettagliato 1 Obiettivi del corso Fornire le conoscenze e le competenze necessarie alla rappresentazione e al trattamento consapevole delle
DettagliInformatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 010/011 Basi di dati Le presenti slide sono tratte dalle slide del libro di
Dettagli<Nome Tabella>.<attributo>
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto
DettagliInformatica per le Scienze Umane. Introduzione al corso: programma
Informatica per le Scienze Umane Introduzione al corso: programma 1 Obiettivi del corso Fornire le conoscenze e le competenze necessarie alla rappresentazione e al trattamento consapevole delle informazioni
DettagliMODULO 2. Query normali e parametriche Query di:
MODULO 2 TITOLO DBMS e SQL In questo Modulo si affronta lo studio dei DBMS Access e MySQL. In particolare per Access, si descrive come progettare, impostare e modificare gli strumenti di lavoro (tabelle,
DettagliBasi di dati. Elena Baralis Politecnico di Torino
Libri di testo Atzeni, Ceri, Paraboschi, Torlone, Basi di dati, 2 a ed., McGraw Hill, 1999. Baralis, Belussi, Psaila, Basi di dati: temi d esame svolti, Esculapio, 2000. Introduzione - 2 Introduzione Sistema
DettagliOttimizzazione delle query. Stima dell IO: Per generare i piani si considera: --> Generare e confrontare i piani Query
Ottimizzazione delle query Ottimizzazione delle query --> Generare e confrontare i piani Genera Query Piani Leggere il capitolo 15 del Garcia-Molina et al. Lucidi derivati da quelli di Hector Garcia-Molina
DettagliBasi di Dati. Concetti e Principi Generali. Maria Mirto
Basi di Dati Concetti e Principi Generali Maria Mirto Organizzazione dei Dati Archivi o file Procedure di accesso in qualunque linguaggio di programmazione Duplicazione dati: ridondanza incoerenza formati
DettagliElena Baralis 2007 Politecnico di Torino 1
Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,
DettagliProgettazione logica: criteri di ottimizzazione
Progettazione logica: criteri di ottimizzazione Sistemi Informativi T Versione elettronica: 08.2.progogica.ottimizzazione.pdf Criteri di ottimizzazione Per confrontare tra loro diverse alternative di traduzione
DettagliCorso di Basi di Dati
Corso di Basi di Dati Progettazione Logica Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ Analisi dei requisiti e progettazione in dettaglio Studio/analisi dei requisiti Risultati SCHEMA CONCETTUALE
DettagliLaboratorio di Algoritmi e Strutture Dati. Code con Priorità
Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso
DettagliINFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017
INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017 Francesca Levi Dipartimento di Informatica E-mail: francesca.levi@unipi.it levifran@di.unipi.it Francesca Levi Dipartimento di Informatica Informatica per
DettagliBasi di dati Modelli e linguaggi di interrogazione
Paolo Atzeni Stefano Ceri Stefano Paraboschi Riccardo Torlone Basi di dati Modelli e linguaggi di interrogazione web site McGraw-Hill IUAV - VENEZIA H 9882 BIBLIOTECA CENTRALE Paolo Atzeni Stefano Ceri
DettagliAlgebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.
Algebra relazionale Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join Outer join Unione e intersezione Differenza e antijoin Divisione
DettagliPROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI
LEZIONE DEL 11/11/2008 di BASI DI DATI Prof. Bochicchio PROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI Nelle lezioni precedenti abbiamo accennato
DettagliOrganizzazione del Corso: Corso di Basi di Dati 1. Obbiettivi (2): Propedeuticità. Orari. Testi Consigliati
Organizzazione del Corso: Corso di Basi di Dati 1 (a.a. 2001-2002) Roberto Basili Introduzione ai concetti di base dei Sistemi di gestione delle Basi di Dati (DBMS). Uso dei DBMS per la progettazione di
DettagliIntroduzione all Architettura del DBMS
Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo
DettagliINTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI
INTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI Roberto Basili Corso di Basi di Dati a.a. 2013/14 Dati su dispositivi di memorizzazione esterni Dischi: si può leggere qualunque pagina a costo
DettagliIntoduzione alle transazioni e alle proprieta ACID delle transazioni
Basi di Dati Complementi Parte 2: Tecnologie per MS Parte 2.4: Introduzione alle transazioni e Intoduzione alle transazioni e alle proprieta ACID delle transazioni @ Carlo Batini 2006 1 @ Carlo Batini
DettagliBasi di Dati Concetti Introduttivi
Università Magna Graecia di Catanzaro Informatica Basi di Dati Concetti Introduttivi Docente : Alfredo Cuzzocrea e-mail : cuzzocrea@si.deis.unical.it Tel. : 0984 831730 Lucidi tratti da: Atzeni, Ceri,
DettagliTrigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi
Basi di dati attive : regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi Oggi fanno parte dello standard SLQ-99 In passato ogni DBMS li implementava seguendo
DettagliInformatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia
Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 22 Introduzione ai database Prima dei DBMS, le organizzazioni utilizzavano semplici file per
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili in formato
DettagliINFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016
INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016 Francesca Levi Dipartimento di Informatica E-mail: francesca.levi@unipi.it levifran@di.unipi.it Francesca Levi Dipartimento di Informatica Informatica per
DettagliInformatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno
Informatica 3 LEZIONE 20: Ordinamento esterno Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Informatica 3 Lezione 20 - Modulo 1 Organizzazione della memoria Introduzione Dati in
DettagliINDICI, IMPLEMENTAZIONE DI OPERATORI ALGEBRICI E QUERY PROCESSING
INDICI, IMPLEMENTAZIONE DI OPERATORI ALGEBRICI E QUERY PROCESSING 1 PREMESSA... 2 2 OCCUPAZIONE DI MEMORIA DI UNA RELAZIONE... 2 3 ORGANIZZAZIONI SERIALE E SEQUENZIALE... 2 3.1 Organizzazione seriale (heap)...
DettagliBasi di Dati. Corso di Informatica. Memorizzazione dei Dati. Accesso ai Dati. Corso di Laurea in Conservazione e Restauro dei Beni Culturali
Corso di Laurea in Conservazione e Restauro dei Beni Culturali Corso di Informatica Gianluca Torta Dipartimento di Informatica Tel: 011 670 6782 Mail: torta@di.unito.it Basi di Dati lo scopo delle Basi
DettagliAtzeni, Ceri, Paraboschi, Torlone Basi di dati. Progettazione logica. Attenzione
Atzeni, Ceri, Paraboschi, Torlone Basi di dati Capitolo 7: Progettazione logica Attenzione Nel seguito, come gia detto nella descrizione del modello E-R, con la dizione Relationship si intende la relazione
DettagliOgni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori.
Tecnologia delle Basi Dati Analisi del dbms Postgresql. Luigi Cestoni Prima Parte Descrizione del Database Abbiamo realizzato un database costituito da quattro tabelle: 1. dipendente( id,nome,cognome,eta,telefono,idufficio)
DettagliBASI DATI: algebra relazionale
BASI DATI: algebra relazionale BIOINGEGNERIA ED INFORMATICA MEDICA 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono per manipolare relazioni (tabelle).
DettagliGestione di basi di dati in Access. SUISM Docente: Ugo de Liguoro a.a Asti
Gestione di basi di dati in Access SUISM Docente: Ugo de Liguoro a.a. 2003-2004 Asti Indice 1. Un primo esempio: la rubrica telefonica 2. Progettazione di un DB 3. Popolamento 4. Interrogazioni (Queries)
DettagliBasi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13
Basi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2012/13 Informazioni generali sull organizzazione Insegnamento annuale su due semestri Orario I Semestre Lunedì 11.30 13.30
DettagliLibrerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML
Librerie digitali Uso di XML per memorizzare i metadati Descrizione generale Ad ogni dato associo un file XML che descrive il contenuto del dato stesso Memorizzo su file system sia il dato sia il file
DettagliTipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:
lgebra relazionale Il linguaggio per interrogare ed aggiornare la base di dati fa parte del modello di questi ultimi. Un operazione di aggiornamento può essere vista come una funzione che, data un istanza
DettagliLe basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza
Definizione 1 Lezione 2 Le basi di dati Gli archivi di dati Organizzato in modo integrato attraverso tecniche di modellazione di dati Gestiti su memorie di massa Con l obiettivo Efficienza trattamento
DettagliBasi di Dati 2. Corso del Prof. Stefano Ceri. Politecnico di Milano Anno Accademico 2010/2011. Stefano Invernizzi
Politecnico di Milano Anno Accademico 2010/2011 Basi di Dati 2 Corso del Prof. Stefano Ceri Stefano Invernizzi Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria Informatica
DettagliEsercizio 10.1 Soluzione
Esercizio 10.1 Calcolare il fattore di blocco e il numero di blocchi occupati da una relazione con T = 1000000) di tuple di lunghezza fissa pari a L = 200 byte in un sistema con blocchi di dimensione pari
DettagliIndici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2
INDICI MULTILIVELLO DINAMICI Indici multilivello dinamici (B-alberi e B + -alberi) Gli indici multilivello dinamici (B-alberi e B + -alberi) sono casi speciali di strutture ad albero. Un albero è formato
DettagliLinguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
DettagliProblemi di ordinamento
Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata
Dettagli