Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees
|
|
- Leo Caruso
- 5 anni fa
- Visualizzazioni
Transcript
1 Databases Architettura di un DBMS: Struttura ad indice per i files, B + -Trees
2 Indici Un indice consiste di coppie <K=chiave,etichetta> e supporta l efficiente recupero di tutte le etichette con chiave K. Un indice contiene informazioni ausiliarie che aiutano a localizzare in modo veloce i dati contenuti in un file. Le ricerche avvengono relativamente ai valori di alcuni attributi, che formano la chiave di ricerca. Si faccia attenzione alla differenza tra chiave e chiave di ricerca: una chiave di ricerca può contenere valori duplicati. In assenza di ambiguità, utilizzeremo il solo termine chiave. Valore K Indice Blocchi contenenti i record Record richiesti 2
3 Rappresentare le etichette (1) Le etichette possono essere: 1. I dati stessi. 2. RID (record identifier) di uno dei record con chiave K. 3. Lista con i RID dei record con chiave K. L alternativa è indipendente dalla tecnica utilizzata per recuperare le coppie chiave-etichetta. 10 Marco Rossi Marco Verdi Marco Rossi Marco Verdi Marco Rossi Marco Verdi
4 Rappresentare le etichette (2) Con la prima alternativa: Si può avere al più un indice su una data collezione di dati. Se i record di dati sono grandi, l informazione ausiliaria nell indice può impiegare molto spazio. La terza alternativa: È più compatta della seconda, ma le etichette sono di lunghezza variabile. In genere si adotta la seconda alternativa (v. Elmasri, Chapter 17) 4
5 Creazione di indici a livello di schema in SQL CREATE [UNIQUE] INDEX NomeIndice ON NomeTabella(ListaAttributi) DROP INDEX NomeIndice CREATE INDEX ImpPK ON Impiegato(Cognome, Nome) DROP INDEX ImpPK N.B. non è SQL standard, ma è la sintassi più diffusa. Ad ogni attributo possiamo associare anche l ordine l ordinamento prescelto. 5
6 Esempio: Indice su file sequenziale Una chiave di ricerca k dell Index File e associata a un puntatore al record del Data File che ha chiave di ricerca k Index File Sequential File = 6 Tuple ordinante secondo primary key
7 Classificazione degli indici Un indice è primario se la chiave di ricerca contiene direttamente i dati, ad esempio la chiave primaria, (o se son organizzati su dati ordinati sugli stessi campi su cui e definito l indice stesso) altrimenti è detto secondario. Un indice è denso se contiene almeno un etichetta per ogni valore della chiave di ricerca nel record dei dati, altrimenti è detto sparso. Un indice è clustered se l ordine dei record dei dati è uguale o simile all ordine delle etichette, altrimenti è detto unclustered. 7
8 Esempio di ricerca in Indice Denso Immaginiamo di avere una relazione di di tuple che occupano blocchi da 96 byte per 10 record, lo spazio totale richiesto per memorizzare queste tuple e piu di 0 MB, un po troppo forse per essere mantenuto in memoria centrale per essere acceduto in maniera efficiente. Supponiamo ora che il campo chiave e di 30 byte e un puntatore di 8 byte, piu un po di spazio per gli header, possiamo dire che 100 coppie chiave puntatore occupano un blocco di 96 byte Un indice denso occuperebbe quindi blocchi o anche MB Su un indice denso si puo usare la ricerca binaria, quindi per trovare una chiave sull indice del nostro esempio potrebbe essere necessario l accesso a 13 o 14 blocchi, ottenuto da log Se I blocchi piu importanti sono mantenuti in memoria centrale, possiamo trovare il record con meno di 14 disk I/O 8
9 Indice denso e clustered 9
10 Indice sparso e clustered Lo spazio utilizzato dall indice è inferiore rispetto al caso denso, dove devono essere impiegate tutti i valori delle Primary Key Un indice sparso può essere utilizzato per ridurre il numero di blocchi necessario per contenere informazioni sulla posizione dei record. 10
11 Indice secondario (denso) e unclustered Index File Data File Gli indici unclustered possono determinare accessi meno efficienti: ad esempio i tre record con il valore 20 sono mantenuti in tre blocchi distanti. 11
12 Primary Index File Indice secondario Data File A D D B C D A E C C A A B C D E Secondary Index File Gli indici secondari forniscono un ulteriore metodo per accedere ai dati per i quali esiste già una via privilegiata d accesso (Primary Index File) Si possono ridurre i tempi d accesso usando modificando la soluzione Lista di RID mantenendo un tempo d accesso costante! C C D D 12
13 Indice secondario (Blocchi di puntatori) 13
14 Dato un singolo file, quale delle seguenti affermazioni è falsa? A) Un indice denso può essere secondario. B) Un indice sparso può essere clustered. C) Un indice sparso può essere unclustered. D) Un indice secondario può essere clustered. 14
15 Dato un singolo file, quale delle seguenti affermazioni è vera? A) Vi può essere al più un indice che utilizza l alternativa record di dati per la rappresentazione delle etichette. B) Non vi possono essere più indici che utilizzano l alternativa RID per la rappresentazione delle etichette. C) L alternativa RID è più compatta dell alternativa Lista di RID. D) L alternativa record di dati è tanto più utile quanto maggiori sono le dimensioni dei record dati rispetto alla chiave di ricerca. 15
16 Più livelli di indicizzazione Data File Index File
17 Più livelli di indicizzazione Un indice sparso può essere utilizzato per ridurre il numero di blocchi necessario per contenere informazioni sulla posizione dei record. Si possono utilizzare indici su indici Data File Index File
18 B+Tree L utilizzo di più livelli di indicizzazione permette l esecuzione di ricerche effettuando un accesso per ogni livello dell albero (più gli accessi necessari a recuperare la lista dei RID). I sistemi commerciali utilizzano indici ad albero dinamici, che variano il numero di livelli di indicizzazione (altezza dell albero) a seconda delle dimensioni dei file. I B-Tree memorizzano ogni nodo in un blocco, sono auto-bilancianti e mantengono i nodi pieni almeno per metà (a eccezione della radice). Ogni B-Tree è caratterizzato da un parametro n. Ogni blocco ha spazio per n chiavi e n+1 puntatori. Vedremo la variante più diffusa dei B-Tree, detti B+Tree. 18
19 Quanto vale n? Dimensione di un blocco: 96 B. Dimensioni di una chiave: 4 B. Dimensioni di un puntatore: 8 B. Si assume non vi sia header nei blocchi. A) 3 B) 96 C) 48 D) 8 Soluzione: MAX(n) tale che 4n + 8(n+1) 96 n = 3 19
20 Caratteristiche di un B+Tree Le chiavi nelle foglie sono copie delle chiavi nei dati, e sono distribuite ordinatamente da sinistra a destra. Nella radice vi sono almeno due puntatori utilizzati (nel caso di almeno due chiavi distinte nei dati). L ultimo puntatore di ogni foglia punta al nodo foglia successivo. Dei rimanenti puntatori, almeno (n+1)/2 (intero inferiore) sono utilizzati e puntano ai record dati. Nei nodi interni, tutti i puntatori utilizzati puntano a blocchi al livello inferiore, e almeno (n+1)/2 (intero superiore) devono essere utilizzati. 20
21 B+Tree: nodi intermedi e nodi foglia Nodo Intermedio Record con chiave K<57 Record con 57 K < 81 Record con 81 K < 95 Record con chiave K Foglia successiva Nodo Foglia Record con chiave 57 Record con chiave 81 Record con chiave 95 21
22 Un B+Tree Record dati 22
23 Equality search con B+Tree (K=)
24 Equality search con B+Tree (K=)
25 Equality search con B+Tree (K=) <
26 Equality search con B+Tree (K=) < Non trovato! 26
27 Range search con B+Tree (K>)
28 Range search con B+Tree (K>)
29 Range search con B+Tree (K>) <
30 Range search con B+Tree (K>) <
31 Inserimenti e cancellazioni: Crescita in altezza dei B+Tree
32 Inserimenti e cancellazioni: Crescita in altezza dei B+Tree Inserimento 11 32
33 Inserimenti e cancellazioni: Crescita in altezza dei B+Tree Cancellazione Inserimento 11 33
34 Inserimenti in B+Tree Lookup: Cerchiamo la foglia in cui la chiave va inserita, e se c è spazio la inseriamo Split: Altrimenti, dividiamo il nodo in due e dividiamo le chiavi tra essi. In questo ultimo caso, al livello superiore deve essere inserita una nuova chiave per indicizzare il nuovo nodo creato. Propagazione: Quando si divide un nodo interno, la chiave centrale non viene inserita in uno dei nuovi nodi, ma solamente propagata verso l alto. Se occorre dividere la radice, essa viene spezzata in due e una nuova radice viene creata al livello superiore, con una chiave e due puntatori. 34
35 Inserimento della chiave (look up) Cerchiamo la foglia in cui la chiave va inserita, <
36 Inserimento della chiave (split) dividiamo il nodo in due e dividiamo le chiavi tra essi. In questo ultimo caso, al livello superiore deve essere inserita una nuova chiave per indicizzare il nuovo nodo creato ?
37 Inserimento della chiave (propagazione) Quando si divide un nodo interno, la chiave centrale non viene inserita in uno dei nuovi nodi, ma solamente propagata verso l alto
38 Inserimento della chiave (propagazione) ?
39 Inserimento della chiave (propagazione) Quando si divide un nodo interno, la chiave centrale non viene inserita in uno dei nuovi nodi, ma solamente propagata verso l alto
40 Inserimento della chiave (split) C è spazio nella radice per inserire
41 Cancellazione in B+Tree Cerchiamo il record e se presente lo cancelliamo dalla foglia (senza bisogno di cancellarlo dai nodi intermedi). Se il nodo non soddisfa più i requisiti di riempimento minimo: Se uno dei nodi adiacenti ha chiavi a sufficienza, si recupera una chiave da esso aggiornando la chiave anche nel nodo padre. In caso contrario, i due nodi adiacenti contengono complessivamente non più di n chiavi. Possiamo dunque compattarli in un unico nodo. In quest ultimo caso, occorre cancellare una chiave dal padre (per esempio ponendola uguale al più piccolo valore della foglia di sx.), e ripetere ricorsivamente l algoritmo se necessario. Nel caso di riequilibrio in un nodo interno, i puntatori vanno aggiornati come nell esempio seguente. 41
42 Cancellazione di 7 (look up) Cerchiamo il record e se presente lo cancelliamo dalla foglia <
43 Cancellazione di 7 (riequilibrio) Se il nodo non soddisfa più i requisiti di riempimento minimo: Se uno dei nodi adiacenti ha chiavi a sufficienza, si recupera una chiave da esso
44 Cancellazione di 7 (riequilibrio) Se il nodo non soddisfa più i requisiti di riempimento minimo: aggiornando la chiave anche nel nodo padre
45 Cancellazione di 11 (lookup) Cerchiamo il record e se presente lo cancelliamo dalla foglia <
46 Cancellazione di 11 (lookup) Se il nodo non soddisfa più i requisiti di riempimento minimo: Se uno dei nodi adiacenti non ha chiavi a sufficienza, i due nodi adiacenti contengono complessivamente non più di n chiavi. Possiamo dunque compattarli in un unico nodo. 13?
47 Cancellazione di 11 (lookup) Nel caso di riequilibrio in un nodo interno, i puntatori vanno aggiornati arco
48 Complessità della ricerca con B+Tree (1) Dipende dall altezza (numero di livelli) dell albero. Assumiamo di avere N nodi foglia, e n+1 puntatori per nodo (nel caso medio, n/2). Come varia l altezza? Al primo livello abbiamo la radice (1 nodo). Al secondo livello abbiamo n+1 nodi. Al terzo livello abbiamo (n+1) 2 nodi. Al livello L abbiamo (n+1) L-1 nodi. Se (n+1) L-1 N (n+1) L allora L-1 log (n+1) N e L log (n+1) N. log (n+1) N L log (n+1) N
49 Complessità della ricerca con B+Tree (2) Nell esempio precedente, avevamo 3 coppie chiave-puntatore per nodo. Ogni nodo (ad eccezione della radice) contiene tra le 170 e le 3 chiavi. Assumiamo che ne contenga in media 255. Consideriamo un B+tree di 3 livelli, con una radice, 255 figli e 255*255 = foglie indicizziamo più di 16 milioni di record. I primi due livelli occupano *255 = 1MB. Mantenendoli in memoria, ci basta un accesso per recuperare il RID del record ricercato. 49
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
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 1 1-2 0 1 2 Osservazione Quando l indice aumenta di dimensioni, non può risiedere
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
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
DettagliInformatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione:
Informatica 3 Informatica 3 LEZIONE 23: Indicizzazione Lezione 23 - Modulo 1 Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Indicizzazione lineare, ISAM e
DettagliMemorizzazione di una relazione
Heap file File ordinati Indici o Hash o B+-tree Costo delle operazioni algebriche Simboli: NP: numero di pagine NR: numero record LP: lunghezza pagina LR: lunghezza record Memorizzazione di una relazione
DettagliMETODI DI ACCESSO. (INDICI B + -Tree) indici 2
METODI DI ACCESSO (INDICI B + -Tree) indici 2 organizzazioni con indice IDEA DI BASE : associare ad un file una tabella nella quale l'entrata i-esima memorizza una coppia del tipo (k i,p i ) dove : k i
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
DettagliStrutture fisiche e strutture di accesso ai dati
Strutture fisiche e strutture di accesso ai dati 1 A L B E R T O B E L U S S I P R I M A P A R T E A N N O A C C A D E M I C O 2 0 1 2-2 0 1 3 Gestore dei metodi di accesso 2 E il modulo del DBMS che esegue
DettagliTipi di indice. Indici. Leggere sezioni 13.1, 13.2 e 13.3 di Garcia- Molina et al. Tipi di strutture ad indice. ISAM: Indici primari
Tipi di indice Indici Leggere sezioni 13.1, 13.2 e 13.3 di Garcia- Molina et al. indice primario: Indice su un campo in base al quale e ordinato il file Sono anche detti indici clustered o clustering indice
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,
DettagliD B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica
Linguaggio SQL: costrutti avanzati D B M G Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica D B M G 2 Pag. 1 2007 Politecnico di Torino 1 D B M G Organizzazione
DettagliOrganizzazione Fisica dei Dati (Parte II)
Modello Fisico dei Dati Basi di Dati / Complementi di Basi di Dati 1 Organizzazione Fisica dei Dati (Parte II) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Modello Fisico
Dettagliuna chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano di accesso diverso!!
RIASSUNTO Devo controllare la clausola WHERE e decidere se sto lavorando su : una chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano
DettagliMETODI DI ACCESSO (INDICI) indici 1
METODI DI ACCESSO (INDICI) indici 1 METODI DI ACCESSO (INDICI B + -Tree) indici 2 Nelle lezioni precedenti Avete visto: le caratteristiche delle principali unità di memoria permanente la struttura dei
DettagliAlberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati
Alberi CORDA Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati Albero - definizione Albero Figli, fratelli, nodi, foglie Grado, livello, altezza,
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 fisiche di accesso
Organizzazione dei file e indici Strutture fisiche di accesso Organizzazione dei file e indici Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza
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
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
DettagliSistemi Informativi L-B. Home Page del corso: Versione elettronica: Indici.pdf. Sistemi Informativi L-B
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
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 ed Alberi Binari di Ricerca
Alberi ed Alberi Binari di Ricerca 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
DettagliAlberi binari e alberi binari di ricerca
Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Alberi Un albero è una collezione non vuota di: nodi con nome e informazioni
DettagliAlberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica giovedì 9
DettagliARCHITETTURA DI UN B.D.M.S. Parte IV I Metodi di Accesso ai Dati
ARCHITETTURA DI UN B.D.M.S. Parte IV I Metodi di Accesso ai Dati Michele de Nittis Generalità Si consideri nuovamente la struttura astratta di un DBMS: OTTIMIZZATORE FILE ACCESS MANAGER Scan merge Hash
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
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
DettagliArray e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
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
DettagliK-d-tree A L B E R T O B E L U S S I A N N O A C C A D E M I C O
K-d-tree A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2-2 0 1 3 Caratteristiche di base Il k-d-tree (K-dimensional tree) è un albero binario di ricerca multi-dimensionale in cui ogni nodo
DettagliDipartimento di Elettronica, Informazione e Bioingegneria API 2013/4
Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Bilanciamento negli alberi di ricerca @ G. Gini 2013 Dizionari Dizionario Insieme dinamico che implementa le seguenti funzionalità Cerca
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
DettagliProgettazione Fisica
Progettazione Fisica Progettazione Fisica Ingresso: Schema logico della base di dati Caratteristiche del sistema scelto Previsioni sul carico applicativo (queries) Uscita: Strutture fisiche utilizzate
DettagliListe concatenate. Violetta Lonati
Liste concatenate Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 2 novembre 2017 Violetta Lonati Liste
DettagliK-d-tree ALBERTO BELUSSI ANNO ACCADEMICO Caratteristiche di base
K-d-tree ALBERTO BELUSSI ANNO ACCADEMICO 2009-2010 Caratteristiche di base Il k-d-tree (K-dimensional tree) è un albero binario di ricerca multi-dimensionale in cui ogni nodo indicizza un punto in k dimensioni.
DettagliProgettazione Fisica - 1. Concetti di Base - 1. Indici. Progettazione di Basi di Dati. Assunzioni Fondamentali
Università degli Studi di Trieste Progettazione Fisica - 1 Corso di Laurea in Informatica - Basi di Dati Progettazione di Basi di Dati Progettazione Fisica: gli D. Gubiani maggio 2008 Lo schema ottenuto
DettagliAlgoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari
Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.
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
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
DettagliAlgoritmi, Strutture Dati e Programmi. UD 3.d: Strutture Dati Dinamiche Alberi
Algoritmi, Strutture Dati e Programmi : Strutture Dati Dinamiche Alberi Prof. Alberto Postiglione AA 2007-2008 ALBERO BINARIO DI RICERCA Dispense, cap. 3.3.3 1 Albero Binario di Ricerca Struttura bidimensionale.
DettagliFondamenti teorici e programmazione
Fondamenti teorici e programmazione FTP(A) - modb Lezione 9 di ricerca binaria F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 liberi Un albero libero è un
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
DettagliMulti-way search trees
Multi-way search trees GT. 10.4 1 Argomenti Multi-way search trees Multi-way searching 9 (2,4) Trees 2 5 7 10 14 2 1 Alberi Binari di Ricerca Bilanciati n numero di chiavi (entry(key,elem)) AVL tree log(
DettagliAlgoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari
lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.
DettagliGianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino. Prestazioni dei BST
Gli alberi bilanciati Gianpiero abodi e Paolo amurati Dip. utomatica e nformatica Politecnico di Torino Prestazioni dei BT Prestazioni variabili da: logaritmiche: caso migliore, albero bilanciato lineari:
DettagliSi può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?"
Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?" SOL Se è permesso che i nomi dei file abbiano lunghezza arbitraria, basta associare al nome
DettagliInformatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann
Informatica 3 LEZIONE 16: Heap - Codifica di Huffmann Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 Lezione 16 - Modulo 1 Heap e code di priorità Introduzione
DettagliAlberi binari di ricerca
Alberi binari di ricerca Gli alberi binari di ricerca sono ottime strutture dati per memorizzare coppie di elementi (k, e) chiave elemento di un dizionario. Un albero binario di ricerca T è un albero binario
DettagliEsercizi proposti a lezione cap. 1 rev. ott da Atzeni e altri - Basi di dati vol. 2 ed/ ORGANIZZAZIONE FISICA
ORGANIZZAZIONE FISICA Esercizio n.1 Si consideri una base di dati gestita tramite hashing, il cui campo chiave contenga i seguenti nominativi: Green, Lovano, Osby, Peterson, Pullen, Scofield, Allen, Haden,
Dettagliricerca di un elemento, verifica dell appartenenza di un elemento
Alberi Binari di Ricerca Gli alberi binari di ricerca (o, alberi di ricerca binaria) sono strutture dati che consentono, su un insieme di elementi con un ordine totale le operazioni di: ricerca di un elemento,
DettagliEsercizio Per quali valori di t l albero in figura è un B-Albero legale?
Esercizi di Algoritmi e strutture dati II: B-Alberi. A cura di: Teresa E. NARDIELLO Esercizio 19.1-2 Per quali valori di t l albero in figura è un B-Albero legale? M D H Q T X B C F G J K L N P R S V W
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
Dettaglid. Cancellazione del valore 5 e. Inserimento del valore 1
Esercizio1 Si consideri un albero binario non vuoto in cui a ciascun nodo v è associato un numero reale v.val. Scrivere un algoritmo che, dato in input l'albero T e un numero reale x, restituisce true
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
DettagliORGANIZZAZIONE FISICA DEI DATI
ORGANIZZAZIONE FISICA DEI DATI Un requisito fondamentale di un sistema di gestione di basi di dati è l efficienza, cioè la capacità di rispondere alle richieste dell utente il più rapidamente possibile
DettagliIn questa lezione Alberi binari di ricerca
In questa lezione Alberi binari di ricerca!1 Dizionari Un dizionario è una struttura dati costituita da un insieme con le operazioni di inserimento, cancellazione e verifica di appartenenza di un elemento.
DettagliCode a priorità. Progettazione di Algoritmi Matricole congrue a 1. Docente: Annalisa De Bonis
Code a priorità Progettazione di Algoritmi 2018-19 Matricole congrue a 1 Docente: Annalisa De Bonis 26 Coda a priorità Una coda a priorità è un collezione di elementi a ciascuno dei quali è assegnata una
DettagliAlgoritmi e Strutture Dati. Capitolo 6 Il problema del dizionario
Algoritmi e Strutture Dati Capitolo 6 Il problema del dizionario Il tipo dato Dizionario Suppongo sempre che mi venga dato un riferimento diretto all elemento da cancellare Applicazioni: gestione archivi
DettagliAlberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
DettagliOrganizzazione fisica dei dati
Organizzazione fisica dei dati Appunti dalle lezioni SQL come DDL Sistemi informativi e basi di dati La Progettazione Concettuale SQL come DML Il modello relazionale La Progettazione Logica SQL come DCL
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
DettagliIndici con gli alberi
Indici con gli alberi Alberi perfettamente bilanciati per indici su memorie di massa: B-alberi Indici su memorie secondarie Spesso i dati da ordinare sono in quantità tale da richiedere dispositivi di
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
DettagliEsercitazione 6. Alberi binari di ricerca
Esercitazione 6 Alberi binari di ricerca Struttura base Rappresentabile attraverso una struttura dati concatenata in cui ogni nodo è un oggetto di tipo struttura Ogni nodo contiene: campo chiave (key)
DettagliOttimizzazione e organizzazione fisica
Parte VIII Organizzazione fisica Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 1 Ottimizzazione e organizzazione fisica L Ottimizzatore genera i piani esecutivi delle interrogazioni Un piano
DettagliAlgoritmo di ordinamento sul posto che ha tempo di esecuzione :
QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : O(n2 ) nel caso peggiore O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior algoritmo
DettagliIl file È un insieme di informazioni: programmi. Il File System. Il file system
Il File System Il file È un insieme di informazioni: programmi d a t i testi rappresentati come insieme di record logici (bit, byte, linee, record, etc.) Ogni file è individuato da (almeno) un nome simbolico
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,
DettagliLaboratorio di Python
Alberi, Esercizi su alberi Università di Bologna 15 e 17 maggio 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 Esercizi Correzione esercizi Definire una funzione che preso un dizionario di studenti
DettagliAnalisi dei Dati. Lezione 9 - Preprocessing dei dati
Analisi dei Dati Lezione 9 - Preprocessing dei dati Motivazioni I dati nel mondo reale sono sporchi incompleti: mancano valori per gli attributi, mancano attributi importanti, solo valori aggregati rumorosi:
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System 1 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
DettagliIl file system. Il File System. Il file È un insieme di informazioni: programmi dati testi
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. Il File System Realizza i concetti
DettagliImplementazione della ricerca dell informazione in documenti non strutturati
Parte 5 Implementazione della ricerca dell informazione in documenti non strutturati M. Diligenti Sistemi Gestione Documentale 1 Vector-Space o modello booleano?! Modello vector-space permette il ranking
DettagliInformatica 3. LEZIONE 17: Alberi generici. Modulo 1: Definizione e ADT Modulo 2: Implementazione Modulo 3: Alberi e classi di equivalenza
Informatica 3 LEZIONE 17: Alberi generici Modulo 1: Definizione e ADT Modulo 2: Implementazione Modulo 3: Alberi e classi di equivalenza Informatica 3 Lezione 17 - Modulo 1 Definizione e ADT Introduzione
Dettagli23/10/2016. gli alberi. alcune definizioni. un esempio. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica.
gli alberi Un albero è una struttura dati NON LINEARE organizzata gerarchicamente. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica È costituito da un insieme di nodi collegati tra di loro:
DettagliAlgoritmi e strutture dati
Algoritmi e Strutture Dati Alberi di ricerca Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario 2 Alberi binari di ricerca (BST = binary search tree)
DettagliINTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI
INTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI Roberto Basili Corso di Basi di Dati a.a. 2013/14 Dati su dispositivi di memorizzazione esterni Dischi: si può leggere qualunque pagina a costo
DettagliEsercitazione 5 Alberi Binari di Ricerca
Esercitazione 5 Alberi Binari di Ricerca Corso di Fondamenti di Informatica II Algoritmi e strutture dati A.A. 2015/2016 11 Maggio 2016 Sommario Scopo di questa esercitazione è realizzare una struttura
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
DettagliStrutture Dati Efficienti per la Ricerca della Similarità
Strutture Dati Efficienti per la Ricerca della Similarità Introduzione Alberi B e B+ Clustering Alberi B+ Multidimensionali Alberi K-d Grid Files R Tree Introduzione er un insieme di oggetti multimediali,
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
DettagliParte VIII Organizzazione fisica
Parte VIII Organizzazione fisica Basi di dati - prof. Silvio Salza - a.a. 2017-2018 VIII - 1 Ottimizzazione e organizzazione fisica L Ottimizzatore genera i piani esecutivi delle interrogazioni Un piano
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
DettagliProblemi di ordinamento
Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata
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 e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
DettagliLe liste. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132
Le liste Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 Le Liste Le liste non sequenziali (concatenate) sono costituite da elementi che vengono memorizzati in memoria centrale non uno
DettagliSimpleFS - un semplice filesystem. Prova finale di Algoritmi e Principi dell Informatica. DEIB, Politecnico di Milano. Anno accademico
SimpleFS - un semplice filesystem Prova finale di Algoritmi e Principi dell Informatica DEIB, Politecnico di Milano Anno accademico 2016-17 Sommario L obiettivo è l implementazione di un semplice filesystem
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto
DettagliAlgoritmi e Strutture Dati
Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto
DettagliMetodi di Join. Corso di Basi di Dati e Sistemi Informativi
Metodi di Join Corso di Basi di Dati e Sistemi Informativi 1 Preliminari L operazione di join si usa nel modello relazionale per combinare tuple di diverse tabelle sulla base di certe condizioni. In seguito,
DettagliLaboratorio di algoritmi e strutture dati
Laboratorio di algoritmi e strutture dati Docente: Violetta Lonati mercoledì 25 novemb009 L esercitazione di oggi prevede di utilizzare gli alberi binari e in particolare gli alberi binari di ricerca.
DettagliAlgoritmi e Strutture Dati
Alberi Rosso-Neri (RB-Trees) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Alberi Rosso-Neri: definizione Un albero rosso-nero
DettagliStrutture Dati per Inserimento Ordinato
Strutture Dati per Inserimento Luca Abeni Informatica Luca Abeni 1 / 28 Esempio: Ordinamento di Numeri A che servono i tipi strutturati? Non bastano gli scalari? Capiamolo con un esempio... Problema: dato
DettagliEsercizi su ABR. Prof. E. Fachini - Intr. Alg.!1
Esercizi su ABR Confronto proprietà ABR e Max-Heap. Proprietà del cammino radice-foglia individuato da una ricerca. Fusione di due ABR. Il successivo calcolato dalla radice Costruzione di un ABR bilanciato
Dettagli