B+Trees. Introduzione



Documenti analoghi
Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Sistemi Operativi. 5 Gestione della memoria

Alberi binari di ricerca

Registratori di Cassa

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Laboratorio di Informatica di Base Archivi e Basi di Dati

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

Amministrazione gruppi (all interno della Scuola)

INVIO SMS

Algoritmi e strutture dati. Codici di Huffman

Amministrazione gruppi (Comunità)

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Indici ad albero. Albero Binario di Ricerca

Altri metodi di indicizzazione

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Guida all uso di Java Diagrammi ER

Amministrazione classi

CIRCOLARE RILEVA WEB del 19/05/2009

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Appunti sulla Macchina di Turing. Macchina di Turing

La struttura dati ad albero binario

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

LE FUNZIONI A DUE VARIABILI

Assegnazione dei centri di costo ai numeri di riferimento delle fatture e ai numeri di licenza di affrancatura Guida al servizio online «Gestore di

Olga Scotti. Basi di Informatica. File e cartelle

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

ISTRUZIONI PER LA GESTIONE BUDGET

Entrare nel sistema. Clicca su Entra per entrare nel sistema. PAGINA 1

Gestione della memoria centrale

Esercizi Capitolo 6 - Alberi binari di ricerca

A tal fine il presente documento si compone di tre distinte sezioni:

Lezione 8. La macchina universale

B alberi. dizionari in memoria secondaria

MANUALE PARCELLA FACILE PLUS INDICE

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

MANUALE ESSE3 Gestione Registro delle lezioni

Il presente supporto consente la gestione delle gare Giovanili. Premere il pulsante Immissione Dati Gara

Manuale Terminal Manager 2.0

Omnia Web Timesheet. Manuale utente

FPf per Windows 3.1. Guida all uso

Coordinazione Distribuita

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

A tal fine il presente documento si compone di tre distinte sezioni:

7. Layer e proprietà degli oggetti

Costruzione del layout in gino cms

M.U.T. Modulo Unico Telematico

4 3 4 = 4 x x x 10 0 aaa

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

5.2.1 RELAZIONI TRA TABELLE Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

CONTENT MANAGEMENT SY STEM

Gestore Comunicazioni Obbligatorie - VARDATORI - Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura VARDATORI

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

RECUPERO DATI LIFO DA ARCHIVI ESTERNI

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Manuale Utente Amministrazione Trasparente GA

CMS ERMES INFORMATICA

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Come modificare la propria Home Page e gli elementi correlati

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Introduzione. Preparazione. 4) Ordina i titoli azionari di ogni Compagnia in una pila separata vicino alla plancia di gioco.

File system II. Sistemi Operativi Lez. 20

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Guida alla. Gestione del Catalogo. per le Imprese

FIRESHOP.NET. Gestione del taglia e colore.

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

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

MANUALE UTENTE. P.I.S.A. Progetto Informatico Sindaci Asl

GUIDA ALLE SOLUZIONI

FtpZone Guida all uso Versione 2.1

MANUALE RAPIDO INSERIMENTO CHIAMATE ASSISTENZA PORTALE SELF-SERVICE (IWEB)

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Capitolo Silberschatz

Manuale Utente Albo Pretorio GA

NAVIGAZIONE DEL SI-ERC: UTENTE PROGETTISTA

ENTRARE NEL SISTEMA. Clicca su Entra per entrare nel sistema. PAGINA 1

Il calendario di Windows Vista

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Università per Stranieri di Siena

Progetto INCOME. Manuale Utente Operatore Installazione

Note su quicksort per ASD (DRAFT)

Classificazione: DI PUBBLICO DOMINIO. LOMBARDIA INFORMATICA S.p.A.

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI)

Traduzione e adattamento a cura di Gylas per Giochi Rari

Manuale d uso Albo Online per le Scuole

Transcript:

B+Trees Introduzione

B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle foglie. I nodi interni ospitano solo delle chiavi per le operazioni di ricerca I B+Trees non avendo dati nei nodi interni sono particolarmente indicati per l uso nei DataBase Configurazione ideale: tutti i nodi interni matenuti in memoria centrale e foglie su memoria di massa In realta si riescono a mantenere in memoria centrale solo i primi livelli dei nodi interni

B+Trees: alcune proprieta Un B+Tree di ordine m e un albero in cui ogni nodo interno puo avere al massimo m figli e in cui si possono memorizzare al massimo m-1 key value I nodi foglia si trovano tutti allo stesso livello I nodi interni memorizzano solo i valori delle chiavi necessari per guidare le ricerche Le informazioni (chiave piu contenuto del record oppure chiave piu puntatore al contenuto del record) sono memorizzate solo nelle foglie

Nodo: proprieta Un nodo di un B+Tree di ordine m: E o un nodo interno o una foglia La radice e o una foglia o ha almeno 2 figli Ogni nodo, ad eccezione della radice e delle foglie, deve essere half full cioe deve avere un numero di figli compreso tra m/2 ed m. Le foglie occupano tutte lo stesso livello

Radice: proprieta E una foglia quando e l unico nodo dell albero, in questo caso deve contenere almeno un record di informazioni (o un puntatore a record di informazioni) Quando e un nodo interno invece deve avere almeno due figli

Nodi interni: proprieta Un nodo interno di un B+Tree di ordine m: Puo ospitare fino a m puntatori a nodi figli e fino a m-1 key Deve essere sempre mezzo pieno (half full) Deve avere almeno m/2 figli Se m=5, m/2 vale 2 o 3? R: a libera scelta, purche dentro lo stesso albero si rimanga coerenti. Nella pratica si cerca di mantenere i nodi piu pieni possibile. Unica eccezione all half full requirement: i figli del nodo radice. Prende il sopravvento la regola che dice che la radice deve avere almeno due figli. I figli della radice possono sparire se e solo se le chiavi sono talmente poche che possono essere ospitate tutte nella radice, facendola diventare una foglia

Nodi interni: proprieta 2 P0 Ka P1 Kb P2 K Pm-1 Ogni chiave ha associato un puntatore (alla sua destra) ad un nodo figlio Nell esempio, la chiave Kb indica che nel sottoalbero puntato da P2, tutte le chiavi contenute hanno valori maggiori o uguali a Kb P0, chiamato anche extra pointer, indica che nel sottoalbero da lui puntato, tutte le chiavi hanno valori strettamente inferiori alla chiave piu piccola del nodo (nell esempio Ka)

Foglie: proprieta Una foglia contiene delle entries costituite da una delle seguenti coppie (nello foglie di uno stesso albero si opta per una sola possibilita ): key e puntatore all area di allocazione del record key e record dei dati vero e proprio Le foglie hanno spazio per ospitare un numero di chiavi che non e necessariamente m-1 (puo essere maggiore o minore) Un nodo foglia e salvato in un blocco fisico del disco. Il numero di key (e record) contenute in un nodo foglia dipende quanti record possono essere ospitati in un blocco fisico Le foglie sono collegata l una all altra da una doppia lista (puntatore alla precedente e alla successiva)

Un esempio di B+Tree di ordine 5 Che percorso compio durante la ricerca di 45?

Inserimento e cancellazione L inserimento o la cancellazione di una key spesso interessano solo le foglie: 3 + 1 2 7 1 2 3 7 1 2 3 7 1 3 7

Inserimento e cancellazione 2 Pero capita che l inserimento o la cancellazione di key richiedano delle modifiche anche ai nodi interni. 9 + 1 2 3 7? 1 2 Half full requirement violato Vediamo piu in dettaglio gli algoritmi di inserimento e cancellazione:

Algoritmo di inserimento Si ricerca la foglia che dovrebbe contenere la key da inserire Se nella foglia c e spazio, viene inserita la key Altrimenti: bisogna effettuare uno split (il nodo viene diviso in due)

Split di una foglia 19 1 2 11 18 19 27 28 30 14 11 19 1 2 11 14 18 19 27 28 30

Split di una foglia 2 La key piu piccola (11) della seconda nuova foglia (quella che contiene le key piu elevate) viene inserita nel nodo padre Come sono ripartiti le key del vecchio nodo nei nuovi? Perche 11 e andato a dx e non a sx? Le key vengono suddivise a meta, se sono dispari si assegna o a dx o a sx una key in piu. Dove? La scelta e libera, purche si rimanga coerenti all interno dello stesso albero Se il nodo padre fosse stato pieno, dove avrei inserito la key 11?

Split di un nodo interno In un nodo interno pieno si richiede di inserire una chiave: 80 207 12 26 35 50 1 2 19 27 28 29 30 12 14 16 19 21 Bisogna dividere il nodo interno

Split di un nodo interno 2 Lo split per un nodo interno pero segue regole diverse: 26 80 207 12 19 35 50 1 2 27 28 29 30 12 14 16 19 21 Notate lo spostamento della chiave 26 e del nodo figlio ad esso associato:

Split di un nodo interno 3 Passi: Il nodo interno viene diviso in due parti Una delle chiavi centrali viene inserita nel nodo padre (nell esempio la chiave 26) Il nodo figlio, il cui puntatore era associato alla chiave spostata in alto (quello che nell esempio inizia con la key 27), diventa il primo figlio del nuovo nodo di dx In questo maniera permangono le proprieta di ordinamento che permettono di effettuare le ricerche

Split di un nodo interno 4 Alcune annotazioni: Lo split di un nodo figlio causa l inserimento di una key nel nodo padre. Se il nodo padre e pieno, dovra a sua volta dovra subire uno split Se l oggetto dello split e il nodo radice, la key che normalmente viene inserita nel nodo padre, in questo caso viene inserita in un nodo creato apposta, il quale diventa la nuova radice. Le due meta della vecchia radice diventano i figli della nuova radice.

Algoritmo di cancellazione Si ricerca la foglia che dovrebbe contenere la key da cancellare La key (se presente) viene cancellata 1 2 3 7 1 3 7 Se la nuova situazione non viola l half full requirement ci si ferma, altrimenti

Half Full Requirement Ogni nodo deve essere mezzo pieno (half full requirement) Un nodo che per effetto delle cancellazioni si ritrova a violare l Half Full Requirement puo : Prendere a prestito key dai suoi vicini piu ricchi Fondersi con un vicino povero

Key prese a prestito Possono essere richieste solo ad un nodo dello stesso livello ricco Ricco privato della chiave non deve violare l Half Full Requirement La modalita varia a seconda che si tratti di prendere a prestito key da foglie o da nodi interni

Key a prestito da foglie 17 1 7 10 15 18 15 1 7 10 15 18 Per un prestito da sx verso dx (come nell esempio) si prende l elemento maggiore della foglia (15) di sx Per un prestidto da dx verso sx si prende l elemento minore della foglia di dx Bisogna aggiornare la chiave del nodo padre (per esempio ponendola uguale al piu piccolo valore della foglia di sx E se le due foglie non hanno lo stesso padre? L operazione si complica. E necessario aggiornare le key dei nodi interni (vedi slide successive)

Key a prestito da nodi interni 22 19 1 7 12 19 31 1 7 12 22 31 12 13 15 26 28 30 12 13 15 26 28 30 19 20 21 19 20 21 Alcune foglie dell albero sono state omesse In grassetto le chiavi che hanno cambiato posto

Key a prestito da nodi interni 2 Dati due nodi A,B che devono scambiarsi le chiavi, se non sono figli dello stesso padre, il riarrangiamento delle chiavi interessa tutti i nodi che congiungono A e B con il loro primo avo comune. Il procedimento applicato ad ogni nodo e identico a quello visto nella slide precedente L overhead e talmente elevato che spesso gli algoritmi non implementato qs. scambio si limitano i prestiti di chiavi a nodi figli dello stesso padre

Fusione di due nodi vicini Se un nodo viene a violare l Half Full requirement, i suoi vicini non hanno key da prestare (perche hanno esattamente m/2 key) Si fondono due nodi in uno Il nodo risultante avra un numero di key compreso tra m ed m/2 (un nodo aveva m/2 key, l altro ne aveva meno di m/2)

Fusione di due nodi vicini 7 12 7 1 2 3 4 7 19 20 1 2 3 4 7 19 20 Nella fusione tra due nodi vicini, la key che discriminava i due nodi ed il puntatore al secondo nodo vengono eliminati