logo

B+ Albero

B+ Tree è un'estensione di B Tree che consente efficienti operazioni di inserimento, cancellazione e ricerca.

In B Tree, le chiavi e i record possono essere archiviati sia nei nodi interni che in quelli foglia. Mentre, nell'albero B+, i record (dati) possono essere archiviati solo sui nodi foglia mentre i nodi interni possono archiviare solo i valori chiave.

I nodi foglia di un albero B+ sono collegati insieme sotto forma di elenchi collegati singolarmente per rendere le query di ricerca più efficienti.

I B+ Tree vengono utilizzati per archiviare la grande quantità di dati che non possono essere archiviati nella memoria principale. Dato che la dimensione della memoria principale è sempre limitata, i nodi interni (chiavi per accedere ai record) dell'albero B+ sono archiviati nella memoria principale mentre i nodi foglia sono archiviati nella memoria secondaria.

I nodi interni dell'albero B+ sono spesso chiamati nodi indice. Nella figura seguente è mostrato un albero B+ di ordine 3.


B+ Albero

Vantaggi di B+ Tree

  1. I record possono essere recuperati in un numero uguale di accessi al disco.
  2. L'altezza dell'albero rimane equilibrata e inferiore rispetto all'albero B.
  3. Possiamo accedere ai dati memorizzati in un albero B+ sia in sequenza che direttamente.
  4. Le chiavi vengono utilizzate per l'indicizzazione.
  5. Query di ricerca più veloci poiché i dati vengono archiviati solo sui nodi foglia.
Vantaggi dell'albero B+

Albero B VS Albero B+

SN B Albero B+ Albero
1 Le chiavi di ricerca non possono essere memorizzate ripetutamente. Possono essere presenti chiavi di ricerca ridondanti.
2 I dati possono essere archiviati nei nodi foglia così come nei nodi interni I dati possono essere archiviati solo sui nodi foglia.
3 La ricerca di alcuni dati è un processo più lento poiché i dati possono essere trovati sia sui nodi interni che sui nodi foglia. La ricerca è relativamente più veloce poiché i dati possono essere trovati solo sui nodi foglia.
4 La cancellazione dei nodi interni è così complicata e richiede molto tempo. L'eliminazione non sarà mai un processo complesso poiché l'elemento verrà sempre eliminato dai nodi foglia.
5 I nodi foglia non possono essere collegati tra loro. I nodi foglia sono collegati tra loro per rendere più efficienti le operazioni di ricerca.

Inserimento nel B+ Tree

Passo 1: Inserisci il nuovo nodo come nodo foglia

generici Java

Passo 2: Se la foglia non ha spazio richiesto, dividi il nodo e copia il nodo centrale nel nodo indice successivo.

Passaggio 3: Se il nodo indice non ha spazio richiesto, dividi il nodo e copia l'elemento centrale nella pagina indice successiva.

Esempio :

Inserire il valore 195 nell'albero B+ di ordine 5 mostrato nella figura seguente.


B+Albero

195 verrà inserito nel sottoalbero destro di 120 dopo 190. Inseriscilo nella posizione desiderata.


B+Albero

Il nodo contiene un numero di elementi superiore al massimo, ovvero 4, quindi dividerlo e posizionare il nodo mediano fino al genitore.


B+Albero

Ora, il nodo indice contiene 6 figli e 5 chiavi che violano le proprietà dell'albero B+, quindi dobbiamo dividerlo, come mostrato di seguito.


B+Albero

Cancellazione in B+ Tree

Passo 1: Elimina la chiave e i dati dalle foglie.

Passo 2: se il nodo foglia contiene meno del numero minimo di elementi, unisci il nodo con il suo fratello ed elimina la chiave tra di loro.

Passaggio 3: se il nodo indice contiene meno del numero minimo di elementi, unisci il nodo con il fratello e sposta verso il basso la chiave tra di loro.

Esempio

Eliminare la chiave 200 dal B+ Tree mostrato nella figura seguente.


B+Albero

200 è presente nel sottoalbero destro di 190, dopo 195. cancellalo.


B+Albero

Unisci i due nodi utilizzando 195, 190, 154 e 129.


B+Albero

Ora, l'elemento 120 è il singolo elemento presente nel nodo che sta violando le proprietà del B+ Tree. Pertanto, dobbiamo unirlo utilizzando 60, 78, 108 e 120.

Ora l'altezza dell'albero B+ verrà ridotta di 1.


B+Albero