0. Introduzione alla esecuzione delle interrogazioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "0. Introduzione alla esecuzione delle interrogazioni"

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

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

Dettagli

La gestione delle interrogazioni

La 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

Dettagli

Pag Politecnico di Torino 1

Pag 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,

Dettagli

Casi di studio per il tuning delle strutture fisiche (Shasha)

Casi 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:

Dettagli

Memorizzazione di una relazione

Memorizzazione 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

Dettagli

Ottimizzazione e organizzazione fisica

Ottimizzazione 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

Dettagli

Data Management. Query evaluation. Maurizio Lenzerini, Riccardo Rosati

Data 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

Dettagli

una chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano di accesso diverso!!

una 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

Dettagli

Cognome Nome Matricola Ordin.

Cognome 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

Dettagli

Organizzazione Fisica dei Dati (Parte II)

Organizzazione 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

Dettagli

Equivalenza di Espressioni Algebriche

Equivalenza 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

Dettagli

Strutture fisiche e strutture di accesso ai dati

Strutture 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

Dettagli

Introduzione 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 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Introduzione alla valutazione delle interrogazioni v Piano: albero composto da operatori

Dettagli

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi 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

Dettagli

Dr. C. d'amat LA PROGETTAZIONE FISICA

Dr. 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,

Dettagli

Interrogare 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 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 è

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione 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

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI 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

Dettagli

Lezione 6. Algebra e Calcolo Relazionale

Lezione 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

Dettagli

SQL Avanzato. Interrogazioni e il valore NULL. Interrogazioni complesse, trigger, viste e modifiche dello schema. Giorgio Giacinto 2015

SQL 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

Dettagli

L architettura di un DBMS

L 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

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL 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

Dettagli

Interrogazioni$e$il$valore$NULL$

Interrogazioni$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!

Dettagli

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

MODELLI 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

Dettagli

Basi di dati. Selezione, proiezione e join. Linguaggi di interrogazione. Selezione, proiezione e join. Equivalenza di espressioni

Basi 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

Dettagli

Parte 6 Esercitazione sull accesso ai file

Parte 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/

Dettagli

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

Dettagli

Processo di ottimizzazione. Ottimizzatore di Oracle. Execution plan. Esempio. Albero di esecuzione. Ottimizzatore di Oracle Dicembre 2002

Processo 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

Dettagli

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

Dettagli

Indice. Prefazione. Capitolo 1 Introduzione al data warehousing 1

Indice. 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

Dettagli

Strutture di accesso ai dati: B + -tree

Strutture 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

Dettagli

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Algebra 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

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI 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

Dettagli

Minimizzazione a più livelli di reti combinatorie Cristina Silvano

Minimizzazione 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

Dettagli

Requisiti della base di dati. Schema concettuale

Requisiti 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

Dettagli

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il 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

Dettagli

Progettazione logica: criteri di ottimizzazione

Progettazione 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

Dettagli

Sommario. Introduzione... 13

Sommario. 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

Dettagli

FILE E INDICI Architettura DBMS

FILE 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

Dettagli

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Introduzione 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

Dettagli

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Il 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

Dettagli

Basi di dati (database)

Basi 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,

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

INFORMATICA 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

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Atzeni, 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

Dettagli

Lezione 22 La Memoria Interna (1)

Lezione 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

Dettagli

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

I 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

Dettagli

SQL aspetti essenziali

SQL 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

Dettagli

Componenti di un DBMS

Componenti 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

Dettagli

Basi di Dati: Corso di laboratorio

Basi 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

Dettagli

Dizionari Liste invertite e Trie

Dizionari 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

Dettagli

Structured Query Language

Structured 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

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

INFORMATICA 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

Dettagli

CALCOLO DEL COSTO DI JOIN. costo di join 1

CALCOLO 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

Dettagli

Tabelle esempio: Impiegato/Dipartimento

Tabelle 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

Dettagli

Basi di dati II 30 gennaio 2015

Basi 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

Dettagli

Algebra relazionale: operazioni

Algebra 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

Dettagli

Introduzione alle Basi di Dati

Introduzione 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

Dettagli

Informatica e Bioinformatica: Basi di Dati

Informatica 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...

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI 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,

Dettagli

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Informatica 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

Dettagli

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

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

<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

Dettagli

Informatica per le Scienze Umane. Introduzione al corso: programma

Informatica 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

Dettagli

MODULO 2. Query normali e parametriche Query di:

MODULO 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,

Dettagli

Basi di dati. Elena Baralis Politecnico di Torino

Basi 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

Dettagli

Ottimizzazione delle query. Stima dell IO: Per generare i piani si considera: --> Generare e confrontare i piani Query

Ottimizzazione 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

Dettagli

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Basi 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

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena 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,

Dettagli

Progettazione logica: criteri di ottimizzazione

Progettazione 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

Dettagli

Corso di Basi di Dati

Corso 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

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità

Laboratorio 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

Dettagli

INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017

INFORMATICA 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

Dettagli

Basi di dati Modelli e linguaggi di interrogazione

Basi 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

Dettagli

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

Algebra 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

Dettagli

PROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI

PROGETTAZIONE 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

Dettagli

Organizzazione del Corso: Corso di Basi di Dati 1. Obbiettivi (2): Propedeuticità. Orari. Testi Consigliati

Organizzazione 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

Dettagli

Introduzione all Architettura del DBMS

Introduzione 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

Dettagli

INTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI

INTRODUZIONE 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

Dettagli

Intoduzione alle transazioni e alle proprieta ACID delle transazioni

Intoduzione 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

Dettagli

Basi di Dati Concetti Introduttivi

Basi 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,

Dettagli

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi

Trigger. 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

Dettagli

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Informatica. 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

Dettagli

Architettura degli Elaboratori

Architettura 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

Dettagli

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016

INFORMATICA 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

Dettagli

Informatica 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: Ordinamento esterno Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Informatica 3 Lezione 20 - Modulo 1 Organizzazione della memoria Introduzione Dati in

Dettagli

INDICI, IMPLEMENTAZIONE DI OPERATORI ALGEBRICI E QUERY PROCESSING

INDICI, 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)...

Dettagli

Basi di Dati. Corso di Informatica. Memorizzazione dei Dati. Accesso ai Dati. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Basi 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

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati. Progettazione logica. Attenzione

Atzeni, 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

Dettagli

Ogni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori.

Ogni 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)

Dettagli

BASI DATI: algebra relazionale

BASI 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).

Dettagli

Gestione 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 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)

Dettagli

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

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

Dettagli

Librerie 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. 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

Dettagli

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Tipi 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

Dettagli

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Le 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

Dettagli

Basi di Dati 2. Corso del Prof. Stefano Ceri. Politecnico di Milano Anno Accademico 2010/2011. Stefano Invernizzi

Basi 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

Dettagli

Esercizio 10.1 Soluzione

Esercizio 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

Dettagli

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Indici 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

Dettagli

Linguaggi e Ambienti di Programmazione

Linguaggi 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

Dettagli

Problemi di ordinamento

Problemi 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