I B+ Alberi. Sommario
|
|
|
- Sabina Romano
- 9 anni fa
- Visualizzazioni
Transcript
1 I B+ Alberi R. Basili (Basi di Dati, a.a ) Sommario Indici organizzati secondo B + -alberi Motivazioni ed Esempio Definizione Ricerca in un B + -albero Esempio Vantaggi Inserimento/Cancellazione in un B + -albero Osservazioni B + -alberi in pratica Riassunto 1
2 Motivazioni Un ISAM fornisce una struttura statica => sottoutilizzo (molte cancellazioni) => sovrautilizzo (pagine di overflow) Pagine per i dati in ordine sequenziale (Range Search) Ipotesi: Bilanciamento => riorganizzazione dinamica Indici nelle Foglie e stessa ricerca nei nodi intermedi Link sequenzile garantito per le foglie (Range Search) Esempio indici 78 0 FILE x* 18 18<x* 27 data entries No overlflow list! 2
3 Definizione Un B-albero e un albero con radice e ordine d (>1) tale che: ogni nodo x contiene al piu 2d-1 chiavi, k[i] ogni nodo x contiene al piu 2d puntatori ai figli, p[i] (indefiniti per le foglie) per ogni nodo x si ha: (detta k i una generica chiave memorizzata in un figlio p[i] di x) k 0 k[1] k 1 k[2] k 2d-2 k[2d-1] k 2d-1 tutte le foglie sono alla stessa profondita (h) ogni nodo (tranne le radice) deve avere almeno d-1 chiavi e d figli d= Definizione (2) Se le foglie di un B-albero vengono organizzate in una lista doppiamente collegata allora la struttura prende il nome di B + -albero Foglie (Sequence list) 78 d=2 18 * 25 * 78 * 79 * 89 * 96 *. Generalmente, le foglie non contengono i dati (cioè, data entries data records) ma indici aggregati (densi o sparsi) La radice risiede sistematicamente in memoria centrale 3
4 Ricerca in un B + -albero Nodo *trova( Nodo *n, Key k, int d ) if foglia(n) then return( n ) else i=0; while (i<2*d-1) and (k>n->k[i+1]); i=i+1; return(trova(n->p[i], k, d)) Ricerca (Esempio) k=47 28 k< k=47 k>28 i=1 28 n p[1] * 18 * 32 * 47 * 55 * 56 * 67 * 84 * 96 * 97 * 4
5 Proprieta Altezza di un B + -Albero Se l ordine di un albero n e d nel caso di minima occupazione dell albero abbiamo liv=1 2 nodi liv=2 2d nodi liv=3 2d 2 nodi liv=i 2d (i-1) nodi Quindi per il numero totale N di chiavi in n vale: N 1+ ( d 1) h i= 1 2d i 1 h d 1 = 1+ ( d 1) = d 1 h = 2d 1 cioe N + 1 h logd 2 B + -alberi: Vantaggi I nodi intermedi (solo chiavi, k[i], e pt, P[i]) richiedono una pagina (1 operazione I/O) anche con d grande Costo delle operazioni di ricerca proporzionale ad h, cioe logaritmico (base d) in N Il branching factor f dei nodi: d f 2d Occupazione media: 60% - no overflow chains Le foglie (collegate) supportano operazioni di ricerca per intervallo (anch esse logaritmiche) I costi delle operazioni di inserimento/cancellazione sono logaritmici (segue) 5
6 Inserimento: ESEMPIO insert( newk,n ) newk= * 18 * 21 * 32 * 47 * 55 * 56 * 67 * 84 * 96 * 97 * (a) split foglia: copia 12 8 * 12 * 18 * 21 * (b) split generico: muovisu h = h * 12 * 18 * 21 * Cancellazione: ESEMPIO cancel( newk,n ) newk=56 newk= * 12 * 18 * 21 * 55 * 56 * 67 * 84 * 96 * 97 * * 12 * 21 * 55 * 57 * 84 * 96 * 97 * 6
7 Cancellazione: ESEMPIO (2) cancel( newk,n ) newk= * 12 * 21 * 32 * 47 * 55 * 57 * 84 * 96 * 97 * Ridistribuzione: max * 12 * 55 * 57 * 84 * 96 * 97 * Cancellazione: ESEMPIO (3) cancel( newk,n ) newk= * 12 * 32 * 47 * 55 * 57 * 84 * 96 * 97 * Fusione (leaf merge): * 32 * 47 * 55 * 57 * 84 * 96 * 97 * 7
8 Cancellazione: ESEMPIO (3) A + B C D Fusione (non-leaf merge): 71 A + B C D Osservazioni Implementazioni Compressione di chiavi Spazio libero nei nodi (~%) => minore d Cancellazione vs. marcatura+garbage collection Svantaggi: elevata dinamicità dei nodi intermedi => svantaggiosa per la concorrenza chiavi multiple Costruzione del B + -albero Inserimenti ripetuti Smart loading: Sorting e bottom-up add/split 8
9 Sommario B+-alberi ottimizzano le operazioni di search e range-search Sono indici dinamici che si adattano alle variazioni di taglia dei dati L ordine d di un albero vincola superiormente ed inferiormente il fattore di ramificazione L altezza dell albero cresce logaritmicamente con il numero delle chiavi La ricerca di elementi ha un costo (disk I/O) pari ad h Sommario Durante gli inserimenti le catene di overflow sono evitate tramite operazioni di split dei nodi pieni Tali split possono far crescere l altezza h Durante le cancellazioni le operazioni di merge tra nodi possono far decrescere l altezza dell albero L ordine dipende organizzazione dei record organizzazione degli indici (data entries) compressione delle chiavi Svantaggi per l uso concorrente dei dati: dinamica dell accesso ai nodi intermedi 9
10 Cosa sapere Def. ed Indicizzazione basata su B + -alberi Costi delle Operazioni di Ricerca Ricerca per Intervallo Inserimento e Cancellazione Confronto tra ISAM e B + -alberi 10
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
Alberi 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
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
Algoritmi e strutture dati
Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 4 Implementazioni delle partizioni Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio 2016.
GLI ALBERI BINARI DI RICERCA. Cosimo Laneve
GLI ALBERI BINARI DI RICERCA Cosimo Laneve argomenti 1. alberi binari di ricerca 2. la ricerca di elementi e la complessità computazionale 3. operazione di cancellazione di elementi 4. esempi/esercizi
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
B-Alberi Esercitazioni
B-Alberi Esercitazioni Introduzione B-Trees: alberi bilanciati di ricerca progettati per essere memorizzati su dischi magnetici. Dischi magnetici molto più lenti delle memorie ad accesso casuale. La misura
Multi-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(
Albero binario. Alberi binari (introduzione) Terminologia. Alberi di ricerca binaria (BST)
Albero binario 2 Alberi binari (introduzione) Struttura di dati bidimensionale formata da nodi costituiti ciascuno dai dati da memorizzare e da due link Ver. 2.4 20 - Claudio Fornaro - Corso di programmazione
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
Esercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
5. 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
Alberi 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
Heap 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
Alberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
ADT Coda con priorità
Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni
Algoritmi 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]
Problemi di ordinamento
Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata
Progettazione 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
Un heap binario è un albero binario con le seguenti caratteristiche:
Heap Un heap binario è un albero binario con le seguenti caratteristiche: È quasi completo: tutti i livelli, tranna al più l ultimo sono completi e le foglie dell ultimo livello sono tutte adossate a sinistra.
Alberi 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
Un albero completamente bilanciato o pieno (full) alberi completamente sbilanciati. Un albero binario completo
alberi completamente sbilanciati Un albero completamente bilanciato o pieno (full) Definizione: Un albero è pieno se tutte le foglie sono sullo stesso livello e ogni nodo non foglia ha due figli. Il numero
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Appello del 24 Gennaio 2007 Esercizio 1 (ASD) 1. Sia T (n) = T (n/6) + T (n/3) + Θ(n). Considerare ciascuna delle seguenti affermazioni
ESERCIZI SUGLI HEAP BINOMIALI (CAPITOLO 20) Catalano Pietro 56/100592
ESERCIZI SUGLI HEAP BINOMIALI (CAPITOLO 20) Catalano Pietro 5/100592 20.1-1 Supponiamo che x sia un nodo di un albero binomiale contenuto in uno heap binomiale e che sibling[x] NIL. Se x non è una radice
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
Laboratorio di Algoritmi e Strutture Dati. Code con Priorità
Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile [email protected] Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso
Alberi 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,
Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Riassunto sui dizionari
Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006 Alberi di Ricerca Bilanciati Marco Antoniotti Riassunto sui dizionari Dizionario: astrazione di collezioni Operazioni fondamentali
Introduzione. Heap-binomiali: un heap binomiale è un insieme di alberi binomiali.
Heap binomiali 1 Introduzione Heap-binomiali: un heap binomiale è un insieme di alberi binomiali. Alberi-binomiali: un albero binomiale è un albero ordinato definito ricorsivamente. 2 Proprietà degli alberi
