Hash file. idea di base : il file è organizzato in B bucket, i record sono assegnati ai bucket in ragione del valore di chiave.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Hash file. idea di base : il file è organizzato in B bucket, i record sono assegnati ai bucket in ragione del valore di chiave."

Transcript

1 Hash file idea di base : il file è organizzato in B bucket, i record sono assegnati ai bucket in ragione del valore di chiave. hash(chiave) [0,B-1] è desiderabile una distribuzione uniforme sui bucket. gestione dell'overflow causato da collisioni Applicazioni dell'hashing interrogazioni su singolo valore di chiave algoritmi di join stima della cardinalità Svantaggi la struttura non si presta ad interrogazioni su range di valori di chiave richiede una accurata gestione dell'overflow comporta un'occupazione di memoria aggiuntiva non trascurabile (10%-50%) Fattore di caricamento Un'organizzazione hash statica implica che l'area di memoria primaria e l'area per i trabocchi sono predimensionate a priori. Sia: B: numero di bucket dell'area primaria, C : la capacità del bucket, N: numero di record da registrare Si definisce fattore di caricamento (densità di memorizzazione) il rapporto fra il numero di chiavi attive e la capacità massima di registrazione : d = N/(BxC) Il fattore di caricamento incide sul fenomeno dell'overflow. Al diminuire di d si riduce la percentuale di overflow. pag.1

2 Analisi di tipo probabilistico Ipotesi : a) ogni bucket ha probabilità 1/B di essere colpito da un record, b) archivio statico, c) area separata per overflow La probabilità che lo stesso indirizzo venga generato per X record è data dalla distribuzione binomiale : P(X) = N 1 X 1 1 N X X B B Il numero medio di overflow per bucket e il numero totale di overflow sono rispettivamente : n b = (X C)P(X) X > C n t = B n b C d 100(n t /N) pag.2

3 Esempi di funzioni hash Previo trasformazione di chiavi alfanumeriche in numeri, alcuni metodi usati per la funzione hash sono: 1. DIVISIONE:La chiave numerica viene divisa per un numero P e l'indirizzo e' ottenuto considerando il resto H(k) = k mod P. Per la scelta di P si hanno in genere le seguenti indicazioni pratiche: 1. P e' il piu' grande numero primo minore o uguale a B; 2. P è non primo, minore o uguale a B, con nessun fattore primo minore di 20. Se P < B si pone B:=P per non perdere la suriettività della funzione hash. 2. MID_SQUARE: La chiave è moltiplicata per se stessa, viene estratto un numero di cifre centrali pari a quelle di B - 1, e il numero ottenuto è normalizzato a B. 3. SHIFTING (FOLDING): La chiave è suddivisa in parti, ognuna costituita da un numero di cifre pari a quelle di B - 1. Si sommano le parti e si normalizza Test eseguiti su 8 files con caratteristiche molto diversificate. I risultati mostrano che, in generale, il metodo della divisione e' il piu' affidabile. 30 % di overflow Folding fattore di caricamento = Shifting MidSquare 5 Division C apacita' del bucket pag.3

4 Gestione dell'overflow Al crescere del fattore di caricamento d aumenta la percentuale di record in overflow. I metodi studiati per la gestione dell'overflow mirano a ridurre al minimo il numero di accessi a bucket necessari per reperire il record cercato. Per la gestione dell' overflow si distinguono: 1. metodi di concatenamento (chaining): usano puntatori per collegare i bucket oppure i record in overflow ; i record in overflow possono essere memorizzati in un'area di overflow separata oppure nella stessa area primaria. 2. metodi ad indirizzamento aperto (open addressing): non fanno uso di puntatori, ma una legge di scansione per determinare altri bucket in area primaria dove memorizzare i record in overflow Nei metodi che non fanno uso di un area di overflow separata, quando si deve gestire un numero di record N > B C, occorre necessariamente provvedere a una riorganizzazione completa. pag.4

5 Metodi di Concatenamento in area primaria Liste confluenti (coalesced chaining) Se il bucket i va in overflow, il record viene inserito nel primo bucket non pieno, i + h. Si attiva un collegamento da i a i + h. Se anche i + h va in overflow, allora i nuovi record si inseriscono nel bucket i + j A causa degli overflow le liste possono fondersi i k1 k2 k1 k2 t1) H(k1) = H(k2) = H(k3) = i i+h k3 k3 k4 i+j k5 k6 t2) H(k4) = i + h t1 t2 H(k5) = i H(k6) = i + h Liste separate (separate chaining) Tutti i record che collidono vengono collegati a lista (inclusi quelli non in overflow). Ogni record deve quindi includere un campo puntatore al record successivo della catena Si complica la gestione dei puntatori, ma si migliorano complessivamente le prestazioni in area separata Gli overflow sono memorizzati in un'area di memoria distinta da quella primaria, non indirizzata dalla funzione hash. Lo schema generale è: per ogni n home bucket dell area primaria si prevede un bucket di overflow. Se n=b si ha un area di overflow comune a tutti gli home bucket. È possibile sia una gestione a liste di bucket sia a liste di record. pag.5

6 Open Addressing Schema generale per l'inserimento di un record R con chiave k Set H0(k) = H(k); { bucket iniziale } Set i = 0; While FULL(Hi(k)) { bucket pieno } do Set i = i + 1; Set Hi(k) = STEP(Hi-1(k)); { bucket successivo } INSERT(Hi(k),R); La funzione STEP(.) determina il criterio di scansione dei bucket Ricerca di record: Se si cerca un record, la ricerca ha termine: - con successo, se lo si trova - con insuccesso, se si trova una posizione libera (FULL=false) Cancellazione di record: Nel metodo open addressing occorre prestare particolare attenzione al caso in cui si operano delle cancellazioni. Se si cancella un record, non si può rendere vuota la sua posizione: la posizione viene marcata come non occupata, e la sua posizione può essere recuperata ( occupata ) in seguito a nuovi inserimenti. Scansione lineare (linear probing): STEP(Hi-1(k)) = (Hi-1(k) + s) mod B (i>0) Se s (s 1) non ha divisori in comune con B, i primi B indirizzi generati sono tutti i possibili indirizzi dell'area primaria. pag.6

7 Fenomeno di clustering primario: i record tendono ad addensarsi in alcuni bucket, a causa della linearità ddella funzione STEP(.) Esempio: Sia H(ki) = ki mod 31; s = 3. Le chiavi 1234 e 245 generano, rispettivamente, le sequenze: (25, 28, 0, 3, 6, 9, 12,...) (28, 0, 3, 6, 9, 12, 15,...) Se il bucket 25 va in overflow, aumenta la probabilità che vada in overflow il 28, poi il bucket 0, ecc. Fenomeno di clustering secondario: le chiavi che hanno lo stesso indirizzo iniziale producono sempre la stessa sequenza. Double hashing: mira a eliminare i problemi dovuti al clustering primario e secondario facendo uso di due funzioni hash, H e H. H0(k) = H (k) STEP(Hi-1(k)) = (Hi-1(k) + H (k)) mod B ( i > 0 ) Due chiavi generano ora la stessa sequenza di indirizzi se e solo se collidono sia con H sia con H. Scansione random (random probing): la tecnica di double hashing approssima abbastanza bene il caso ideale di scansione random, in cui ogni indirizzo ha la stessa probabilità di essere generato al passo i-esimo. H0(k) = H (k) STEP(Hi-1(k)) = (Hi-1(k) + si) mod B ( i > 0 ) dove si è un elemento di una sequenza di numeri casuali diversi nell intervallo [0,B-1] generati prendendo come seme la chiave k. pag.7

8 Confronto tra i vari metodi Per i costi medi di ricerca con successo, analiticamente si ricava: 4 Access costs Linear probing 3 C=1 Random probing 2 Coalesced chaining 1 Separate chaining d 1 Per i costi medi di ricerca con insuccesso le prestazioni peggiorano notevolmente per i metodi open addressing: 4 Access costs Linear probing Random probing C = 1 Coalesced chaining Separate chaining d pag.8

Organizzazioni hash. Corso di Basi di Dati e Sistemi Informativi

Organizzazioni hash. Corso di Basi di Dati e Sistemi Informativi Organizzazioni hash Corso di Basi di Dati e Sistemi Informativi 1 Hashing index-based data organizations: relazione tra chiave e indirizzo esplicita tramite puntatori. hash-based organizations: relazione

Dettagli

Informatica 3. Informatica 3. LEZIONE 22: Politiche di risoluzione delle collisioni. Lezione 23 - Modulo 1. Politiche di risoluzione delle collisioni

Informatica 3. Informatica 3. LEZIONE 22: Politiche di risoluzione delle collisioni. Lezione 23 - Modulo 1. Politiche di risoluzione delle collisioni Informatica 3 Informatica 3 LEZIONE 22: Politiche di risoluzione delle collisioni Lezione 23 - Modulo 1 Modulo 1: Open e closed hashing Modulo 2: Sequenze di probe Modulo 3: Analisi del closed hashing

Dettagli

Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Le tabelle di hash Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Tabelle di hash Finora gli algoritmi di ricerca si erano basati sul confronto. Eccezione: tabelle

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

METODI DI ACCESSO (HASH)

METODI DI ACCESSO (HASH) METODI DI ACCESSO (HASH) hash 1 Nelle lezioni precedenti Avete visto: le caratteristiche delle principali unità di memoria permanente la struttura dei files il loro ordinamento Presenteremo: In questa

Dettagli

Tabelle Hash. Implementazioni Dizionario. Implementazione. Tabelle ad accesso diretto. Tempo richiesto dall operazione più costosa:

Tabelle Hash. Implementazioni Dizionario. Implementazione. Tabelle ad accesso diretto. Tempo richiesto dall operazione più costosa: Algoritmi e Strutture Dati Implementazioni Dizionario Tempo richiesto dall operazione più costosa: Tabelle Hash - Liste - Alberi di ricerca non bilanciati - Alberi di ricerca bilanciati -Tabelle hash O(n)

Dettagli

Esercizi Capitolo 7 - Hash

Esercizi 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

Dettagli

INTRODUZIONE INTRODUZIONE TABELLE HASH FUNZIONE HASH

INTRODUZIONE 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

Dettagli

Massimo Benerecetti Tabelle Hash: gestione delle collisioni

Massimo Benerecetti Tabelle Hash: gestione delle collisioni Massimo Benerecetti Tabelle Hash: gestione delle collisioni # Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Algoritmi e Strutture Dati I Email Docente: bene@na.infn.it A.A. 2009-2010

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

Dettagli

Tabelle Hash! Presentare le tabelle hash e la nozione di funzione di hashing Discutere la complessità di questa realizzazione per le Tavole

Tabelle Hash! Presentare le tabelle hash e la nozione di funzione di hashing Discutere la complessità di questa realizzazione per le Tavole Tabelle Hash! n Obiettivi: Presentare le tabelle hash e la nozione di funzione di hashing Discutere la complessità di questa realizzazione per le Tavole 1 Tavole! n Una tavola è un tipo di dato astratto

Dettagli

Tavole (o tabelle) hash

Tavole (o tabelle) hash Alcune possibili implementazioni dell ADT Dizionario Tavole (o tabelle) hash Una rapida panoramica (vedere anche [Deme] cap. 7) Parte 23 del Corso Algoritmi e Laboratorio a.a. 2006-07 Tempo richiesto dall

Dettagli

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash Funzioni Hash Sommario Tabelle ad indirizzamento diretto e hash Funzioni Hash Requisiti Metodo della divisione Metodo della moltiplicazione Funzione Hash Universale La ricerca Talvolta si richiede che

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Tabelle di hash Fabio Patrizi 1 Implementazioni Dizionario Tempo richiesto dall operazione più costosa: - Liste - Alberi di ricerca non bilanciati - Alberi di ricerca bilanciati

Dettagli

TABELLE AD INDIRIZZAMENTO DIRETTO

TABELLE AD INDIRIZZAMENTO DIRETTO Tabelle Servono per implementare dizioniari in modo efficiente. dizionari insiemi di coppie (chiave, valore). Esempio: in un compilatore di un linguaggio di programmazione viene creata una tabella dei

Dettagli

Tavole hash. Alcune possibili implementazioni dell ADT Dizionario. Tavole ad accesso diretto. Tempo richiesto dall operazione più costosa:

Tavole hash. Alcune possibili implementazioni dell ADT Dizionario. Tavole ad accesso diretto. Tempo richiesto dall operazione più costosa: Tavole hash Una rapida panoramica Alcune possibili implementazioni dell ADT Dizionario Tempo richiesto dall operazione più costosa: Liste Alberi di ricerca non bilanciati Alberi di ricerca bilanciati Tavole

Dettagli

argomenti Hashing Funzioni hash per file Tabelle hash Funzioni hash e metodi per generarle Inserimento e risoluzione delle collisioni Eliminazione

argomenti Hashing Funzioni hash per file Tabelle hash Funzioni hash e metodi per generarle Inserimento e risoluzione delle collisioni Eliminazione Hashing argomenti Hashing Tabelle hash Funzioni hash e metodi per generarle Inserimento e risoluzione delle collisioni Eliminazione Funzioni hash per file Hashing estendibile Hashing lineare Hashing 2

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Tabelle di hash Domenico Fabio Savo 1 Implementazioni Dizionario Tempo richiesto dall operazione più costosa: - Liste - Alberi di ricerca non bilanciati - Alberi di ricerca bilanciati

Dettagli

Risoluzione delle collisioni con indirizzamento aperto

Risoluzione delle collisioni con indirizzamento aperto Risoluzione delle collisioni con indirizzamento aperto Con la tecnica di indirizzamento aperto tutti gli elementi stanno nella tavola. La funzione hash non individua una singola cella ma un ordine in cui

Dettagli

Look up table, caso generale

Look up table, caso generale Tabelle hash 1 Vittorio Maniezzo - Università di Bologna Look up table, caso generale Anche memoria associativa, associative array, map, symboltable, dictionary: collezione di elementi nella forma coppia

Dettagli

Hash Tables. Ilaria Castelli A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Hash Tables. Ilaria Castelli A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Hash Tables Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Hash Tables, A.A. 2009/2010 1/42 Hash Tables Indirizzamento

Dettagli

Heap scenario. Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero);

Heap scenario. Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero); Heap Heap scenario Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero); Voglio poter: inserire: nuovi elementi, ciascuno con una data priorità

Dettagli

Implementazione di dizionari

Implementazione di dizionari Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri campi in cui sono memorizzati i dati associati alla

Dettagli

Tecnica HASH. Corso di Linguaggi di Programmazione. Stefano Ferilli. Pasquale Lops.

Tecnica HASH. Corso di Linguaggi di Programmazione. Stefano Ferilli. Pasquale Lops. Tecnica HASH Corso di Linguaggi di Programmazione Stefano Ferilli ferilli@di.uniba.it Pasquale Lops lops@di.uniba.it Università degli Studi di Bari A.A. 2003/2004 Linguaggi di Programmazione 1 Obiettivo

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 E1 Organizzazione hash 1 Prerequisiti È necessario conoscere: concetto matematico di funzione distribuzione uniforme 2 1 Informazioni generali In questa Unità si introduce

Dettagli

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca:

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca: Informatica 3 Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su

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

INFORMATICA 3 Prof.ssa Sara Comai

INFORMATICA 3 Prof.ssa Sara Comai INFORMATICA 3 Prof.ssa Sara Comai ESERCIZI SESSIONE LIVE Ricerca e indicizzazione Ing. Paola Spoletini 1. Hashing Data una tabella hash di lunghezza m=11, si supponga di dover inserire (in ordine) le chiavi:

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

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet francesc

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet  francesc Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Tabelle hash Una tabella hash (in inglese hash

Dettagli

Dizionario. Marina Zanella Algoritmi e strutture dati Tabelle hash 1

Dizionario. Marina Zanella Algoritmi e strutture dati Tabelle hash 1 Dizionario Insieme dinamico che offre solo le seguenti operazioni: inserimento di un elemento dato cancellazione di un elemento dato ricerca di un elemento dato (verifica dell appartenenza di un elemento

Dettagli

Algoritmi 2 - Dr. Simone Faro - Esercizi sulle Tabelle Hash 1

Algoritmi 2 - Dr. Simone Faro - Esercizi sulle Tabelle Hash 1 Algoritmi 2 - Dr. Simone Faro - Esercizi sulle Tabelle Hash 1 1. Supponete di effettuare una ricerca in una lista concatenata di lunghezza n, dove ogni elemento contiene una chiave k ed un valore hash

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

Ordinamenti per confronto: albero di decisione

Ordinamenti 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

Dettagli

Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 7, 2016 Liste trabocco (Separate Chaining) Esercizio 1 [Libro 7.5] Un dizionario è realizzato con liste di trabocco.

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

ORDINE DI INSERIMENTO DELLE CHIAVI <35 >35

ORDINE 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

Dettagli

Il TDA Map. Tabelle hash

Il TDA Map. Tabelle hash Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale

Dettagli

Definizione informale. Il TDA Map memorizza coppie formate da una chiave k e da un valore v. La coppia è chiamata entry. Ogni chiave deve essere unica

Definizione informale. Il TDA Map memorizza coppie formate da una chiave k e da un valore v. La coppia è chiamata entry. Ogni chiave deve essere unica Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale

Dettagli

Il TDA Map. Definizione informale. I metodi del TDA Map 2. I metodi del TDA Map 1. Interfaccia Map 1 NO_SUCH_KEY. Tabelle hash

Il TDA Map. Definizione informale. I metodi del TDA Map 2. I metodi del TDA Map 1. Interfaccia Map 1 NO_SUCH_KEY. Tabelle hash Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale

Dettagli

determinare una funzione di accesso non biunivoca ma che riduca al massimo la possibilità di collisioni (funzione hash),

determinare una funzione di accesso non biunivoca ma che riduca al massimo la possibilità di collisioni (funzione hash), Tabelle Hash Per accedere agli elementi di una tabella è possibile utilizzare metodi di accesso diretto ai dati (detti anche metodi di accesso calcolato) che sono basati sulla possibilità di associare

Dettagli

Hashing e indici multidimensionali

Hashing e indici multidimensionali Hashing e indici multidimensionali Leggere Cap 6 Riguzzi et al. Sistemi Informativi Lucidi derivati da quelli di Hector Garcia-Molina 1 Hashing chiave h(chiave) . Buckets 2 File hash chiave h(chiave)..

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

L Aritmetica del Calcolatore

L Aritmetica del Calcolatore L Aritmetica del Calcolatore Luca Gemignani luca.gemignani@unipi.it 23 febbraio 2018 Indice Lezione 1: Rappresentazione in Base e Numeri di Macchina. 1 Lezione 2: Aritmetica di Macchina. 3 Lezione 1: Rappresentazione

Dettagli

Università degli Studi G.d Annunzio Chieti Pescara Corso di Laurea in Economia Informatica

Università degli Studi G.d Annunzio Chieti Pescara Corso di Laurea in Economia Informatica Dott. Massimo Franceschet Prof.ssa Maria Chiara Meo Introduzione alle tabelle hash di Enrico Zimuel (enrico@zimuel.it) revisione del 22/3/2003 Sommario L idea delle tabelle hash Tabelle ad indirizzamento

Dettagli

Dizionari Specifiche, rappresentazione e confronto tra realizzazioni alternative.

Dizionari Specifiche, rappresentazione e confronto tra realizzazioni alternative. Dizionari Specifiche, rappresentazione e confronto tra realizzazioni alternative. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Introduzione

Dettagli

Massimo Benerecetti Tabelle Hash

Massimo Benerecetti Tabelle Hash Massimo Benerecetti Tabelle Hash # Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Algoritmi e Strutture Dati I Email Docente: bene@na.infn.it A.A. 2009-2010 Rappresentazione di insiemi

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Tabelle Tabelle Hash Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Tabelle Tabelle Una tabella è una sequenza di elementi E

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

Altro di ADT. Dominio. Funzioni. Dominio. Funzioni. Costanti - Collezioni

Altro di ADT. Dominio. Funzioni. Dominio. Funzioni. Costanti - Collezioni di astratto Abstract Data Type Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova definizione di un indipendente dalla sua rappresentazione interna e dalla effettiva implementazione

Dettagli

Organizzazione fisica dei dati: Gli Indici

Organizzazione 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

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

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

D 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

Dettagli

Strutture fisiche di accesso

Strutture 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

Dettagli

Informatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione:

Informatica 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

Dettagli

05EIP. Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino

05EIP. Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino Tabelle di Hash Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino ADT Dizionario In molte applicazioni è necessario un ADT Dizionario che supporti le seguenti operazioni:

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Tabelle Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Tabelle Tabelle Una tabella è una sequenza di elementi E i ciascuno dei

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 2 Implementazione dei dizionari: tabelle hash Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio

Dettagli

Liste concatenate. Violetta Lonati

Liste 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

Dettagli

5. Analisi dei dati di input

5. Analisi dei dati di input Anno accademico 2007/08 Analisi e scelta dei dati di input Per l esecuzione di una simulazione è necessario disporre di dati di input che siano una adeguata rappresentazione di ciò che accadrà in realtà

Dettagli

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto Argomenti della lezione Introduzione agli Algoritmi e alle Strutture Dati Operazioni su Liste Dr. Emanuela Merelli Tipi di Dato Astratto Lista Lineare Pila Coda Concetto di Struttura dati dinamiche Lista

Dettagli

Tabelle Hash. Massimo Benerecetti. Informatica. Lezione n. Parole chiave: Inserire testo. Corso di Laurea:

Tabelle Hash. Massimo Benerecetti. Informatica. Lezione n. Parole chiave: Inserire testo. Corso di Laurea: Massimo Benerecetti Tabelle Hash Lezione n. Parole chiave: Inserire testo Corso di Laurea: Informatica Insegnamento: Algoritmi e Strutture Dati I Email Docente: bene@na.infn.it A.A. 2009-2010 Rappresentazione

Dettagli

Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo

Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo Laboratorio di Calcolo I Applicazioni : Metodo Monte Carlo 1 Monte Carlo Il metodo di Monte Carlo è un metodo per la risoluzione numerica di problemi matematici che utilizza numeri casuali. Si applica

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 7 - Tabelle hash Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy

Dettagli

ADT Mappa. Le chiavi (il mezzo per accedere agli elementi) hanno lo scopo di rendere efficiente la ricerca. Strutture Dati

ADT Mappa. Le chiavi (il mezzo per accedere agli elementi) hanno lo scopo di rendere efficiente la ricerca. Strutture Dati ADT Mappa Una mappa è un contenitore di elementi del tipo (k,v) dove k è la chiave e v è il suo corrispondente valore ogni elemento (k,v) viene detto entrata (entry) della mappa entrate multiple con la

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 16 Giovedì 29-11-2018 Organizzazione dello spazio virtuale con modello

Dettagli

Progettazione Fisica FILE

Progettazione 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

Dettagli

Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4

Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Dizionari e tabelle hash @ G. Gini 2013 dizionari Molte applicazioni richiedono solo di accedere a informazioni dinamiche per le operazioni

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Tabelle Hash Tabelle Hash Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Tabelle Hash Tabelle Hash Una tabella hash è una struttura dati efficiente

Dettagli

Elaborato di Algoritmi e Strutture Dati. Traficante Nicola

Elaborato di Algoritmi e Strutture Dati. Traficante Nicola Elaborato di Algoritmi e Strutture Dati Traficante Nicola 11 Febbraio 2010 Sommario Sommario...3 Indice degli algoritmi...4 Indice dei Codici...5 Indice delle Figure...6 Randomized Select...7 1.1 Pseudocodice

Dettagli

Strutture fisiche di accesso

Strutture 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

Dettagli

Che cosa c è nella lezione. Questa lezione si occupa di strutture dati:

Che cosa c è nella lezione. Questa lezione si occupa di strutture dati: Algoritmi e Programmazione Avanzata - teoria / Che cosa c è nella lezione Questa lezione si occupa di strutture dati: tipi di dato astratto le pile le code le liste gli alberi binari di ricerca le tabelle

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio

Dettagli

Strutture Dati. Parte I: pile, code, liste, tabelle hash

Strutture Dati. Parte I: pile, code, liste, tabelle hash Strutture Dati Parte I: pile, code, liste, tabelle hash Scopo delle strutture dati Le strutture dati sono usate per contenere oggetti Rappresentano collezioni di oggetti Spesso (ma non sempre) gli oggetti

Dettagli

COGNOME E NOME (IN STAMPATELLO) MATRICOLA

COGNOME E NOME (IN STAMPATELLO) MATRICOLA Politecnico di Milano Facoltà di Ingegneria dell Informazione Informatica 3 Proff. Campi, Ghezzi, Matera e Morzenti Seconda prova in itinere 4 Luglio 2006 COGNOME E NOME (IN STAMPATELLO) MATRICOLA Risolvere

Dettagli

Metodi di Join. Corso di Basi di Dati e Sistemi Informativi

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

Dettagli

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste 4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1

Dettagli

I B+ Alberi. Sommario

I 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

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

Organizzazione fisica dei dati: Introduzione

Organizzazione fisica dei dati: Introduzione Organizzazione fisica dei dati: Introduzione Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Memoria principale e secondaria I programmi possono fare

Dettagli

Probabilità e Statistica

Probabilità e Statistica Probabilità e Statistica Non faremo una trattazione sistematica di probabilità e statistica (si veda in proposito il corso di Esperimentazioni III) Richiameremo alcuni argomenti che avete già visto quando

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

POLITECNICO DI MILANO ESAME DI INFORMATICA 3 Prof.ssa Sara Comai Laurea On Line Anno Accademico 2003/2004 II Prova in itinere

POLITECNICO DI MILANO ESAME DI INFORMATICA 3 Prof.ssa Sara Comai Laurea On Line Anno Accademico 2003/2004 II Prova in itinere POLITECNICO DI MILANO ESAME DI INFORMATICA Prof.ssa Sara Comai Laurea On Line Anno Accademico 00/00 II Prova in itinere È sconsigliato l uso di libri e appunti. Salvare il file con nome: COGNOME.cpp, dove

Dettagli

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache Esercizio 3 Memoria Cache Prima parte - memoria di 1 Giga parole da 16 bit (indirizzata a livello di parola) - cache di 1 Mega parole da 16 bit (indirizzata a livello di parola) - ogni della cache contiene

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

Dettagli

Esercizi proposti a lezione cap. 1 rev. ott da Atzeni e altri - Basi di dati vol. 2 ed/ ORGANIZZAZIONE FISICA

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

Dettagli

Struttura del Micro Filesystem (µfs)

Struttura del Micro Filesystem (µfs) Laboratorio di Sistemi Operativi I Anno Accademico 2007-2008 Micro Filesystem (ufs): specifiche per il progetto d esame/esonero n.2 Struttura del Micro Filesystem (µfs) ATTENZIONE: le specifiche evidenziate

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 A3 Accesso 1 Prerequisiti Tipi di organizzazione 2 1 Introduzione L importanza degli archivi sta sia nel consentire di memorizzare grandi quantità di dati, sia nell offrire

Dettagli

Ulteriori Conoscenze di Informatica e Statistica

Ulteriori Conoscenze di Informatica e Statistica Ulteriori Conoscenze di Informatica e Statistica Carlo Meneghini Dip. di fisica via della Vasca Navale 84, st. 83 (I piano) tel.: 06 55 17 72 17 meneghini@fis.uniroma3.it Indici di forma Descrivono le

Dettagli

T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008

T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008 A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Risolvere con almeno due metodi diversi la seguente relazione di ricorrenza T = T n = T n n log n A.A. 00 0 Esame di Algoritmi

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti 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

Dettagli

Esercitazione E3 File System

Esercitazione E3 File System Esercitazione E3 File System Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E3-1 Indici ISAM Si consideri un file di 60.000 record di 80 byte ciascuno, con un campo chiave di 16 byte, sul quale

Dettagli

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. 006-007 Definizione di Algoritmo Def.: Per Algoritmo si intende un elenco di istruzioni che specificano una serie

Dettagli

Generazione di numeri random. Distribuzioni uniformi

Generazione di numeri random. Distribuzioni uniformi Generazione di numeri random Distribuzioni uniformi I numeri random Per numero random (o numero casuale) si intende una variabile aleatoria distribuita in modo uniforme tra 0 e 1. Le proprietà statistiche

Dettagli

Il linguaggio Assembly

Il linguaggio Assembly Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly

Dettagli

Indirizzamento Aperto

Indirizzamento Aperto Indirizzamento Aperto Sommario Metodo di indirizzamento aperto Scansione lineare Scansione quadratica Hashing doppio Metodo di indirizzamento aperto L idea è di memorizzare tutti gli elementi nella tabella

Dettagli