INDICI, IMPLEMENTAZIONE DI OPERATORI ALGEBRICI E QUERY PROCESSING
|
|
- Mario Galli
- 7 anni fa
- Visualizzazioni
Transcript
1 INDICI, IMPLEMENTAZIONE DI OPERATORI ALGEBRICI E QUERY PROCESSING 1 PREMESSA OCCUPAZIONE DI MEMORIA DI UNA RELAZIONE ORGANIZZAZIONI SERIALE E SEQUENZIALE Organizzazione seriale (heap) Organizzazione sequenziale INDICI Indice calcolato - Funzione Hash (statico) Indice Tabellato B+-tree IMPLEMENTAZIONE OPERATORI RELAZIONALI CON GLI INDICI Selezione con B+Tree Primario Selezione con B+Tree Secondario Selezioni composte Join Nested loop Index Join Sort-merge Hash Join (Classic) PIANI DI ESECUZIONE
2 1 Premessa Retrieval time from external memory (e.g. disk) is thousands of times greater than high-speed memory. The goal of physical database optimization is to minimize the number of disk accesses, since disk access takes longer than computations. When a record on external memory is to be accessed, an entire page (or block) of data is transferred at once in main memory. By fetching a disk page that contains many records, we take advantage of the locality of reference -- if a record is being retrieved and we have organized the records based on how they are accessed, then it is likely that the records that are in the fetched block will be retrieved next. 2 Occupazione di memoria di una relazione Data una relazione R formata da Ntuple tuple di lunghezza Ltuple e memorizzata su pagine di lunghezza Lpag, l occupazione di memoria di R è Num tuple per pagina: #TuPag = Lpag/ Ltuple Occupazione memoria: Npag = Ntuple / #TuPag Esempio: Si consideri una relazione R con Ntuple= , ognuna di lunghezza Ltuple=100 byte, memorizzate su pagine di lunghezza Lpag=1024 byte. Le tuple sono indivisibili. Pertanto, il numero di tuple per pagina è 10, ed il numero di pagine necessario per memorizzare R è pari a Npag= /10 = Nella seguente tabella sono riportati i simboli utilizzati in questo documento. Simbolo Npag Lpag Ltuple Ntuple #TuPag significato numero di pagine lunghezza di una pagina lunghezza di una tuple Numero di tuple Numero di tuple per pagina 3 Organizzazioni seriale e sequenziale 3.1 Organizzazione seriale (heap) Un heap è un file non ordinato Costi: Costo medio ricerca per chiave σ A=a (R): C= Npag/2, oppure C= Npag, se la chiave non è presente Costo ricerca per intervallo: σ k1 k k2 (R) = Npag 2
3 3.2 Organizzazione sequenziale In tal caso il file è ordinato. Assumiamo che K sia l attributo di ordinamento. Costi: Costo medio ricerca sequenziale per chiave σ K=k (R): C = Npag/2 (sempre) Costo massimo ricerca binaria per chiave σ K=k (R): C = log(npag) (caso peggiore) 1 Costo ricerca per intervallo σ k1 K k2 (R): C = log(npag) + sel(k1 K k2 )* Npag - 1 dove sel(k1 K k2 ) è la frazione di tuple che soddisfano la condizione di selezione; in particolare, se K è numerico e si assume una distribuzione uniforme, allora sel(k1 K k2 )= (k1-k2)/(kmax-kmin) Esempio: Una ricerca binaria sulla relazione di cui all esempio precedente costa log2(30.000) = 15 accessi a pagine (nel caso peggiore). Siano Kmax=10.000, Kmin=1000, K1=300, K2=500. Il costo della ricerca per intervallo è 15+0,02*30.000= 615 pagine 4 INDICI Un indice è una struttura dati (ausiliaria) che velocizza le ricerche per chiave (di ricerca). Esso può essere calcolato (funzioni hash) o tabellato. In quest ultimo caso, esso è un insieme di coppie (k,p), dove k è un valore della chiave e p è il puntatore alla pagina che contiene il record (o i record) con chiave k. Un indice può essere: primario: l attributo di indicizzazione è chiave (o superchiave) secondario: l attributo di indicizzazione non contiene una chiave (quindi, in generale, ammette duplicati) 4.1 Indice calcolato - Funzione Hash (statico) È una tecnica di ricerca e/o memorizzazione. La funzione tipica è la seguente h(k) = k mod n dove k: codifica numerica della chiave n: numero di pagine del file Sinonimi: chiavi assegnate alla stessa pagina gestione dell overflow 4.2 Indice Tabellato B+- tree Un B+-tree di ordine m 3 è un albero ad m vie definito induttivamente come segue: Base: un nodo N con 1 k m-1 chiavi e k puntatori è un B+-tree ad un livello (h=1); le chiavi sono ordinate in ordine crescente; i puntatori puntano alle pagine della relazione indicizzata (si noti che N è un nodo foglia, oltre che radice) Induzione: siano dati 1) un nodo ordinato N = (p 0, k 1, p 1,, k n, p n ), con 1 n < m, e 2) n+1 B+-tree B 0,, B n di profondità h-1, tali che o tutte le chiavi C(Bi) in Bi sono tali che k i < C(Bi) k i+1 (0 < i < n), C(B 0 ) k 1 e C(B n ) > k n o ogni chiave in N appare in una foglia di un sottoalbero 1 Deve essere supportato l accesso diretto alle pagine; ciò richiede che siano memorizzate sequenzialmente 3
4 o ogni nodo non foglia in Bi (0 i n) ha un numero di puntatori m/2 p m o ogni nodo foglia in Bi (0 i n) ha un numero di puntatori m/2 m-1 allora l albero che ha radice N e sottoalberi B 0,, B n è un B+tree di profondità h Proprietà di un B+-tree di ordine m: 1. è bilanciato (le foglie sono tutte allo stesso livello) 2. i valori all interno di ogni nodo sono ordinati 3. La radice o è una foglia o ha almeno 2 figli 4. ogni nodo non foglia, tranne la radice, ha un numero di figli m/2 f m 5. se un nodo non foglia ha j figli, ha j-1 valori della chiave 6. ogni foglia ha un numero di coppie (valore, puntatore al record) m/2 m-1, un puntatore alla foglia successiva ed uno a quella precedente; 7. Ogni chiave appare in una foglia 8. Ogni nodo è memorizzato in una pagina NOTA: la struttura dell albero dipende dall ordine di caricamento delle chiavi. L ordine dell albero dipende dalla dimensione delle pagine (in genere tra 1 e16 K), dalle lunghezze delle chiavi e dei puntatori. ESEMPIO. Si supponga che l attributo di indicizzazione sia lungo 9 byte e che il puntatore alle pagine sia lungo 6 byte. Se indichiamo con m l ordine dell albero, ogni nodo interno può contenere al massimo (m-1) chiavi e m puntatori. Pertanto, nell ipotesi che una pagina sia lunga 2K byte, il valore di m si ottiene come segue: (m-1)*9 + m* m 2057 m= 137. Un B+-tree può essere un indice di ordinamento (clustered) o no (unclustered): o ordinamento (clustered): la relazione è ordinata sull attributo di indicizzazione; ogni chiave in un nodo foglia punta alla pagina che contiene la prima tupla con un dato valore dell attributo o non di ordinamento (unclustered): la relazione non è ordinata sull attributo di indicizzazione. Siccome in generale esistono valori duplicati (più tuple con lo stesso valore della chiave), ogni puntatore delle foglie punta ad un blocco di indici che contiene i puntatori a tutte le tuple con un dato valore della chiave. L altezza (o profondità) di un B+-tree è pari al numero di nodi che si incontrano in un qualsiasi percorso dalla radice ad una foglia. Altezza Minima di un B+-tree. Tutti i nodi contengono m-1 chiavi. Siccome ogni nodo non foglia ha m figli, allora al livello h ci sono 2 Nodi(h) = m h-1 Punt(h)= m* m h-1 = m h (nodi non foglia) 2 Il livello 1 è quello della radice 4
5 Pertanto, se il B+-tree ha profondità h, allora il numero di chiavi nelle foglie è K max (h) = (m-1)* m h-1 = m h m h-1 m h (quando m è grande) Se la relazione da indicizzare contiene K valori della chiave di indicizzazione, allora sarà necessario un albero di profondità (minima) h, dove h è il più piccolo valore tale che m h K h min (m,k) = log m K Altezza Massima di un B+-tree. Tutti i nodi contengono m/2-1 chiavi (e m/2 puntatori), tranne la radice che contiene una chiave e 2 puntatori. Pertanto, Nodi(h=1) = 1 Punt(h=1) = 2 Nodi(h=2) = 2 Punt(h=2)= 2 m/2 (nodi non foglia) Nodi(h>2) = 2 m/2 h-2 Ne deriva che, se l albero ha profondità h, allora il numero di chiavi nelle foglie è K min (h) = 2 m/2 h-2 * ( m/2-1) = 2 m/2 h-1-2 m/2 h-2 2 m/2 h-1 Se la relazione da indicizzare contiene K valori della chiave di indicizzazione, allora sarà necessario un albero di profondità (massima) h, dove h è il più piccolo valore tale che 2 m/2 h-1 K h max (m,k) = log m/2 K/2 + 1 In conclusione, per indicizzare K chiavi attraverso un albero di ordine m, la profondità h(m,k) dell albero sarà tale che h min (m,k) h(m,k) h max (m,k) ESEMPIO. Assumendo m=137 e K = h min (m,k) = log m K = log = 3 h max (m,k) = log m/2 K/2 + 1 = log = 5 5 Implementazione Operatori Relazionali con gli indici Gli operatori dell algebra relazionale possono essere implementati in modi diversi, a seconda del tipo di organizzazione fisica delle relazioni coinvolte. 5
6 5.1 Selezione con B+Tree Primario Ipotesi: Sulla chiave primaria della relazione è definito B+-tree di profondità h. Ricerca per chiave: seleziona tutte le tuple con valore k=a della chiave. Il costo C della ricerca è C = h+1 Ricerca per intervallo: seleziona tutte le tuple con valore k della chiave tale che v1 k v2. Sia sel(v1 k v2) il fattore di selettività della condizione di selezione (frazione di tuple che soddisfano la condizione): 1) Indice di ordinamento: C = h + sel(v1 k v2)*npag 2) Indice non di ordinamento: C = h + sel(v1 k v2)*nfoglie 1 +sel(v1 k v2)*ntuple Nel primo caso, la ricerca attraverso l indice è conveniente rispetto alla ricerca binaria se h + sel((v1 k v2))*npag < log 2 Npag+ sel(v1 k v2)*npag/2 Nel secondo caso, la ricerca attraverso l indice è conveniente rispetto alla scansione sequenziale se h + sel(v1 k v2)*nfoglie 1 + sel(v1 k v2)*ntuple < Npag ESEMPIO. La ricerca σ K=k in una relazione tuple di una chiave primaria, attraverso un albero di ordine m=137, costa 4 accessi nel caso migliore, e 6 nel peggiore. Se si facesse una ricerca binaria, nell ipotesi di Ltuple=100 e Lpag=1024, il costo sarebbe pari a 17 pagine (caso peggiore). NOTA. Se il B+-tree è un indice primario, le foglie possono memorizzare le tuple intere (e non solo la chiave). 5.2 Selezione con B+Tree Secondario Ipotesi: un B+-tree di profondità h è definito su un attributo non chiave primaria della relazione. Ricerca per chiave: seleziona le tuple con valore k=a della chiave. Sia sel(k=a) la selettività della condizione k=a: Indice di ordinamento: C = h + sel(k=a)*npag Indice non di ordinamento: C = h sel(k=a)*ntuple Ricerca per intervallo: seleziona tutte le tuple con valore k della chiave tale che v1 k v2. Sia sel(v1 k v2) il fattore di selettività della condizione di selezione: 1) Indice di ordinamento: C = h + sel(v1 k v2)*npag 2) Indice non di ordinamento: C = h + sel(v1 k v2)*nfoglie 1 + sel(v1 k v2)*ntuple*(1+sel(k=a)*ntuple) 6
7 dove sel(v1 k v2)*nfoglie 1 è il costo di scansione delle foglie, e sel(v1 k v2)*ntuple*(1+sel(k=a)*ntuple) è il costo di accesso ad ogni singola tupla che soddisfa il predicato di selezione (v1 k v2). 5.3 Selezioni composte. Esempio 1: σ (A=a and B=b) (R). Si supponga che su A sia definito un B+tree clustered di profondità h. Una possibile strategia è la seguente: 1) si usa l indice su A per selezionare tutte le tuple tali che A=a; 2) per ogni tupla selezionata, si verifica se anche la condizione B=b è soddisfatta C = C A = h + sel(a=a)*npag Ovviamente, l approccio è vantaggioso rispetto ad una scansione sequenziale se h + sel(a=a)*npag < Npag(R). Esempio 2: σ (A=a or B=b) (R). Si supponga che su A sia definito un B+tree. In tal caso, l indice non è utile, ed il costo è quello della scansione sequenziale. 5.4 Join Ricordiamo che l operatore di join R S è commutativo Nested loop Algoritmo NestedLoop (R è relazione esterna) for each page r of R transfer r in main memory for each page s of S transfer s in main memory join the tuples in r with those in s Costo = NPag(R)+NPag(R)*NPag(S) con R relazione esterna Costo = NPag(S)+NPag(R)*NPag(S) con S relazione esterna Confrontando le due equazioni, si evince facilmente che, nel caso del nested loop, conviene usare come relazione esterna quella più piccola (cioè, memorizzata su un numero minore di pagine) Index Join Assumiamo che la condizione di join sia R.A = S.B e che su B sia definito un qualsiasi indice (hash, B+-tree, ecc.). In tal cso, R funge da relazione esterna. Quindi, per ogni tupla di R, si accede alle tuple di S che hanno quel valore sfruttando l indice. 7
8 Algoritmo Index join for each page r of R transfer r in main memory for each tuple t in r let t.a be the value of the join attribute X = index_lookup(s,s.b=t.a) //X is the set of pages containing tuples of S s.t. S.B=t.a for each page p in X for each tuple t in p oin t and t A titolo d esempio, supponiamo che l indice sia un B+-tree. I costi del join sono: a. B+-tree primario sull attributo di giunzione B di S (cioè, B è chiave primaria di S): C= NPag(R) + Ntuple(R) * (h+1) b. B+-tree secondario di ordinamento sull attributo di giunzione B di S: C= NPag (R) + Ntuple(R) * (h+ sel(b=r.a) * Npag(S) ) c. B+-tree secondario NON di ordinamento sull attributo di giunzione B di S: C= NPag (R) + Ntuple(R) * (h+1 + sel(b=r.a) * Ntuple(S) ) Sort- merge R e S sono ordinate rispetto agli attributi di giunzione A e B (la condizione di join è R.A = S.B) Algoritmo SortMerge i <- 1; j <- 1; While (i <= R ) AND (j <= S ) do if R[i].C = S[j].C then outputtuples else if R[i].C > S[j].C then j <- j+1 else if R[i].C < S[j].C then i <- i+1 Procedure outputtuples While (R[i].C = S[j].C) AND (i <= R ) do k <- j; While (R[i].C = S[k].C) AND (k <= S ) do output R[i], S[k] pair; k <- k + 1; i <- i + 1; Il costo è C= NPag (R)+ NPag (S) Hash Join (Classico) Viene creata una hash table in memoria centrale in cui è memorizzata la relazione più piccola (assumiamo che sia R) usando l attributo di join A di R. Algoritmo HashJoin 1. For each tuple r in the R 1. Add r to the in-memory hash table at the address h(r.a) 2. If the size of the hash table equals the maximum in-memory size: 8
9 Scan the S and add matching join tuples to the output relation Reset the hash table 2. Do a final scan of S and add the resulting join tuples to the output relation Nel caso migliore, la relazione R è interamente contenuta in memoria centrale. In tal caso, quindi, il costo del join è C = Npag(R) + Npag(S) (caso migliore) ESEMPIO. La relazione R ha 1000 tuple memorizzate su 100 pagine. La relazione S è memorizzata su pagine ed ha una funzione hash sulla chiave primaria Ks. Il costo del join tra R e S, a cui S partecipa con Ks, nei vari casi è il seguente: 1) Nested loop con R ext: C1 = Npag(R) + Npag(R)*Npag(S) = pag 2) Nested loop con S ext: C2 = Npag(S) + Npag(R)*Npag(S) = pag 3) Index join: C3 = Npag(R) + Ntuple(R) = = 1100 pag (usa la funzione hash) 4) Hash join: C4 = Npag(R) + Npag(S) (caso migliore) = pag NOTA: l index join (che sfrutta l indice hash) è circa 1000 volte più veloce del nested loop. ESEMPIO. La relazione IMP ha un indice secondario B+-tree sull attributo Dip. La relazione DIP ha un indice primario hash sull attributo Codice. IMP ha tuple memorizzate su pagine. DIP ha 125 tuple memorizzate su 13 pagine. Il B+-tree ha 3 livelli. Ogni DIP ha in media /125=800 IMP. IMP non è ordinato su Dip. Quindi il B+-tree non è di ordinamento ed ha un ulteriore livello che contiene i blocchi di puntatori Costi del join: 1) nested loop con IMP ext à C = 2000+(13*20.000) = pagine 2) nested loop con DIP ext, à C = 13+(13*20.000) = pagine 3) index join: uso hash su DIP con IMP esterno à C = Npag(Imp)+Ntuple(imp) = = pagine 4) Uso B+tree su IMP con DIP esterno à C = Npag(Dip)+Ntuple(Dip)*(h+1+800) = ( ) = pag 6 PIANI DI ESECUZIONE Segue un esempio di esecuzione di query con calcolo del relativo costo. Esempio. Si consideri la seguente interrogazione Q in Algebra Relazionale: π codcalc (σ città=milano (HA-GIOCATO SQUADRA)) -- π codcalc (σ città=roma HA-GIOCATO SQUADRA) definita sulla seguente base di dati: CALCIATORE(codCalc, nome, cognome, età) SQUADRA(codSquadra, nome, città) HA-GIOCATO(codCalc, codsquadra) Scegliere un piano di esecuzione di Q e calcolarne il costo. A tal fine, si assumano i seguenti dati: 9
10 a. Ogni città ha un unica squadra b. CALCIATORE: tuple c. HA-GIOCATO: tuple; le chiavi codcalc e codsquadra sono entrambe lunghe 10 byte d. SQUADRA: 500 tuple, ognuna lunga 50 byte e. Ogni pagina è lunga 1024 byte e contiene un numero intero di tuple. Pertanto #tupag(h) = 1024/20 = 51 NPag(H) = /51 = 1961 pages #tupag(s) = 1024/50 = 20 bytes NPag(S)= 500/20 = 25 pages 1) Ottimizzazione logica: anticipazione della selezione rispetto al join π codcalc (HA-GIOCATO σ città=milano SQUADRA) -- π codcalc (HA-GIOCATO σ città=roma SQUADRA) _ π π j j H σ H σ S S Albero di esecuzione 2) Valutazione bottom up del piano di esecuzione a) selezione: (σ città=roma (S): in assenza di indici su città, si esegue una scansione sequenziale C1 = costo(σ città=roma (S)) = 25 pagine (scansione sequenziale) size(s =σ città=roma (S)) = 1 tupla (ipotesi a) b) join: S H: assumendo che ci sia un B-+tree clustered a 3 livelli su codsquadra di H, si valutano due alternative: nested loop e join con indice b.1) nested loop S inner C2 = costo(s H) = 1+1*2000= 2001 pages b.2) Join con indice 10
11 C2 = costo(s H) = h + fs*npag(h) = 3 + 1/500*2000 = = 7 pages Viene quindi eseguito il secondo join, in quanto più efficiente. La relazione risultante H ha la seguente dimensione (si noti che le tuple di H sono di 60 bytes): size(h = S H) = /500 = 200 tuples * 60/1024 = 12 pages c) proiezione: π codcalc H C3= costo(π codcalc H ) = 12 pages Siccome la lunghezza delle tuple di H è pari a 10 byte size (H ) = 200 tuple * 10/1024 = 2 pages Considerato che la query è simmetrica (rispetto all operatore di sottrazione), l esecuzione dell altro sottoalbero ha lo stesso costo e produce una relazione H delle stesse dimensioni di H. Pertanto, il costo della differenza H e H è il seguente d) differenza: H H C4= costo(h -H ) = Npag(H ) + Npag(H )*Npag(H ) = 2 + 2*2= 6 pages Infine, il costo totale di esecuzione è la somma dei singoli costi parziali costototale = C4 + 2*( C1+C2+C3) = 94 pages 11
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
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
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
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
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
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/
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
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
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,
DettagliI B+ Alberi. Sommario
I B+ Alberi R. Basili (Basi di Dati, a.a. 2002-3) Sommario Indici organizzati secondo B + -alberi Motivazioni ed Esempio Definizione Ricerca in un B + -albero Esempio Vantaggi Inserimento/Cancellazione
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
DettagliOrganizzazione fisica dei dati: Gli Indici
Organizzazione fisica dei dati: Gli Indici Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Indici Struttura ausiliaria per l'accesso ai record di un
DettagliStrutture fisiche di accesso
Strutture fisiche di accesso Esercitazioni - Basi di dati (complementi) Autore: Dr. Simone Grega Esercizio 1 Siano date le seguenti informazioni: B=4096 bytes la dimensione di un blocco H=12 bytes la dimensione
DettagliAlgoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
DettagliAlgoritmi e Strutture Dati. HeapSort
Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene
DettagliFile e Indici. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
File e Indici 1 File Dati di un DBMS memorizzati come record Un file è una collezione di record Organizzazione del file: metodo per registrare un file su un dispositivo di memorizzazione esterno Un record
DettagliOrganizzazione fisica dei dati. L. Vigliano
Organizzazione fisica dei dati 2 punti di vista Come costruire un DB? Flusso di progetto, schemi logici livello logico Come memorizzare i dati? Struttura dei dati livello fisico DBMS : Architettura a livelli
Dettagli5. Strutture di indici per file
5. Strutture di indici per file I file hanno un'organizzazione primaria, ossia possono essere organizzati su disco in maniera ordinata, non ordinata, oppure a hash. Per velocizzare le operazioni di reperimento
DettagliAlberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
DettagliORDINE DI INSERIMENTO DELLE CHIAVI <35 >35
LIBRERIA WEB Alberi binari 3. Alberi binari e tecniche di hashing per la gestione delle chiavi Gli indici di un file possono essere trattati in modo efficiente con tecniche che si basano sull uso di alberi
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliCompito DA e BD. Tempo concesso: 90 minuti 21 gennaio 04 Nome: Cognome: Matricola: Esercizio 1
Compito DA e BD. Tempo concesso: 90 minuti 21 gennaio 04 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione della base di dati della prossima edizione
DettagliSi definisca il relativo schema E/R (nella metodologia proposta a lezione) e si evidenzino eventuali vincoli inespressi e attributi derivati.
20 Giugno 2014 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione delle iscrizioni a strutture scolastiche.
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
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
DettagliAlgoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1
Algoritmi (9 CFU) (A.A. 2009-10) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Overview Definiamo la struttura dati heap Operazioni di costruzione e gestione di un heap Algoritmo Heapsort Code
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
DettagliHeap e code di priorità
Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010
DettagliAlgoritmi e strutture dati
Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 4 Implementazioni delle partizioni Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio 2016.
DettagliCompito Basi di Dati. Tempo concesso: 2 ore 18 Febbraio 2013 Nome: Cognome: Matricola:
Compito Basi di Dati. Tempo concesso: 2 ore 18 Febbraio 2013 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione della base dati a supporto di un applicativo
DettagliIndici ad albero. Albero Binario di Ricerca
Indici ad albero Ogni nodo contiene una sequenza di valori ed un insieme di puntatori ai nodi successivi. I valori sono le chiavi di ricerca dell indice N.B. In strutture fisiche ogni nodo corrisponde
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliEsercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
DettagliEsempio: rappresentare gli insiemi
Esempio: rappresentare gli insiemi Problema: rappresentare gli insiemi Vedremo che la scelta della rappresentazione per implementarli non è così ovvia come era stato per i numeri razionali In realtà ci
DettagliIl tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
DettagliPROVETTE D ESAME. Algoritmi e Strutture Dati
PROVETTE D ESAME Algoritmi e Strutture Dati ESERCIZIO 1 Si ottengano limiti superiori e inferiori per la seguente ricorrenza ESERCIZIO 1 ESERCIZIO 2 Dato un albero binario T, il grado di sbilanciamento
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
DettagliParte 5 Gestione dell accesso ai file e valutazione delle query
Gestione dei dati Parte 5 Gestione dell accesso ai file e valutazione delle query Maurizio Lenzerini, Riccardo Rosati Facoltà di Ingegneria Sapienza Università di Roma Anno Accademico 2012/2013 http://www.dis.uniroma1.it/~rosati/gd/
DettagliIntroduzione. Heap-binomiali: un heap binomiale è un insieme di alberi binomiali.
Heap binomiali 1 Introduzione Heap-binomiali: un heap binomiale è un insieme di alberi binomiali. Alberi-binomiali: un albero binomiale è un albero ordinato definito ricorsivamente. 2 Proprietà degli alberi
DettagliAlberi. Se x è il genitore di y, allora y è un figlio di x. Un albero binario è un albero in cui ogni nodo ha al massimo due figli.
Alberi Un albero è un insieme di oggetti, chiamati nodi, su cui è definita una relazione binaria G(x, y) che leggiamo x è genitore di y tale che: 1. esiste un unico nodo, chiamato radice, che non ha genitori;
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
DettagliIndici. Sistemi Informativi L-B. Home Page del corso: Versione elettronica: Indici.pdf
Indici Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: Indici.pdf Sistemi Informativi L-B Perché gli indici Le organizzazioni dei file viste
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
DettagliOrdinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
DettagliEsercizi Capitolo 7 - Hash
Esercizi Capitolo 7 - Hash Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive
DettagliParte III. L algebra relazionale
Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2014-2015 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano
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
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Algoritmi su gli alberi binari: visite Dato un puntatore alla radice di un albero vogliamo scandire in modo sistematico tutti i nodi di tale albero In una lista abbiamo una unica
DettagliGrafi (non orientati e connessi): minimo albero ricoprente
.. Grafi (non orientati e connessi): minimo albero ricoprente Una presentazione alternativa (con ulteriori dettagli) Problema: calcolo del minimo albero di copertura (M.S.T.) Dato un grafo pesato non orientato
DettagliProgettazione Fisica FILE
Progettazione Fisica Organizzazione dei files Organizzazione indici FILE Insieme di record lunghezza fissa (R) lunghezza variabile Record Header BH RH record1 RH record2 RH record2 RH record3 Block Header
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
DettagliLaboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L
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
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
DettagliLE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
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
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
DettagliCORSO ACCESS PARTE IV
Creazione di un database / gestione tabelle Per creare un nuovo database Menu File Selezionare Nuovo Scegliere Database vuoto nella scheda Generale e confermare con Ok Impostare il nome e il percorso nella
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)
DettagliUniversità degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati
Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica Modulo di Laboratorio di Algoritmi e Strutture Dati Alberi binari Giovanna Melideo melideo@di.univaq.it 1 Alberi
DettagliAlberi ( GT. 7 ) In informatica, un albero è un modello astratto con cui viene rappresentata una struttura gerarchica
Alberi ( GT. 7 ) Albero definizioni Albero ADT (Abstract Data Type) Algoritmi di base su alberi Alberi binari Strutture dati per rappresentare alberi Implementazione AlberoBinario 1 Alberi (GT. 7) In informatica,
DettagliB a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a
Matricola Cognome Nome B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a Durata: 2 ore e 15 minuti Avvertenze: è severamente vietato consultare libri e appunti. DOMANDE PRELIMINARI
DettagliADT Coda con priorità
Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio di BD forniture prodotti Istruzione SELECT: esempio
DettagliIntroduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
DettagliSQL - Structured Query Language
SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente
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
Dettagli0. Introduzione alla esecuzione delle interrogazioni
Fonti di riferimento Basi di Dati Complementi 2. Tecnologie per DBMS -2.3 Esecuzione e ottimizzazione delle interrogazioni Carlo Batini 2005-2006 Queste trasparenze parte 2.6 Basi di Dati Vol. 2 (Atzeni,
DettagliFondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
DettagliAlberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliADT Dizionario. Ordered search table. Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D:
Ordered search table Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D: possiamo memorizzare le entrate di D in un array list S in ordine non decrescente di chiavi:
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliIn questa lezione Alberi binari di ricerca: la cancellazione
In questa leione Alberi binari di ricerca: la cancellaione 1 L algoritmo di Hibbard per cancellare (1962) Sia il nodo da cancellare: 1) è una foglia: si rimuove 2) ha un solo figlio x: si rende x figlio
DettagliALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Puntatori e Alberi, ABR StudentiDIA
DettagliTipici tempi di esecuzione. Martedì 7 ottobre 2014
Tipici tempi di esecuzione Martedì 7 ottobre 2014 Punto della situazione Abbiamo definito il tempo di esecuzione di un algoritmo Scelto l analisi asintotica Abbiamo definito le notazioni asintotiche che
DettagliSOLUZIONI: Memoria virtuale
SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi
DettagliAllocazione dinamica della memoria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Tipi di memoria dati Nella macchina astratta C esistono tre tipi di memoria per allocare
DettagliEsame Informatica Generale 13/04/2016 Tema A
Esame Informatica Generale 13/04/2016 Tema A! 1/! Quesito 1 (punteggio 2) Si considerino le seguenti istruzioni del linguaggio c/c++. int x[100]; void fz(int[], double[], double*); // puntatori void fz(int[],
DettagliCaratteristiche dei linguaggi per Database
IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;
DettagliIl sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.
PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,
DettagliInformatica 3. Informatica 3. LEZIONE 17: Alberi generici. Lezione 17 - Modulo 1. Introduzione. ADT dell albero generico.
Informatica 3 Informatica 3 LEZIONE 17: lberi generici Lezione 17 - Modulo 1 Modulo 1: Definizione e DT Modulo 2: Implementazione Modulo 3: lberi e classi di equivalenza Definizione e DT Politecnico di
DettagliIn questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114
In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi
DettagliQuery. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi
Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Query (Interrogazioni) SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il
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
DettagliB-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:
B-Tree Prof. Rudolf Bayer Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in: Filesystem: btrfs, NTFS, ReiserFS, NSS, XFS, JFS
DettagliAlberi ed Alberi Binari
Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,
Dettagli4.1 Modelli di calcolo analisi asintotica e ricorrenze
4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più
DettagliALGEBRA RELAZIONALE. L algebra relazionale
ALGEBRA RELAZIONALE 2 L algebra relazionale L insieme principale di operazioni per il modello relazionale è l algebra relazionale. Le operazioni dell algebra relazionale consentono all utente di specificare
DettagliSchema Del DB Operazionale TELEFONATE
Schema Del DB Operazionale TELEFONATE Costruire lo Schema di Fatto per analizzare le chiamate considerando come dimensioni TelefonoDA e TelefonoA, Data e Fascia, intesa come FasciaOraria della chiamata
DettagliINTRODUZIONE INTRODUZIONE TABELLE HASH FUNZIONE HASH
INTRODUZIONE INTRODUZIONE Una tabella hash è una struttura dati che permette operazioni di ricerca e inserimento molto veloci: in pratica si ha un costo computazionale costante O(1). Si ricorda che la
DettagliCALCOLO DEL COSTO DI ACCESSO AI DATI
CALCOLO DEL COSTO DI ACCESSO AI DATI costo di accesso 1 Nelle lezioni precedenti Avete visto: i le basi di dati relazionali ed il linguaggio SQL la struttura dei files gli indici B + tree questa è dedicata
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 10 novembre 2010 1 La bandiera nazionale (problema 4.7 del libro di testo). Il problema della bandiera
DettagliDati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno
DettagliSQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative
SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono
DettagliUniversità degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica
Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di
DettagliAlbero di Riscorsione
Albero di Riscorsione Albero di ricorsione Un albero di ricorsione è un modo di visualizzare cosa accade in un algoritmo divide et impera L etichetta della radice rappresenta il costo non ricorsivo della
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 7 Tabelle hash Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Implementazioni Dizionario Tempo richiesto dall operazione più costosa: -Liste - Alberi di ricerca
DettagliALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~ orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 HEAP SORT StudentiDIA Forum
Dettagli