logo

Arbre B+

B+ Tree és una extensió de B Tree que permet operacions eficients d'inserció, supressió i cerca.

A l'arbre B, les claus i els registres es poden emmagatzemar tant als nodes interns com a les fulles. Mentre que, a l'arbre B+, els registres (dades) només es poden emmagatzemar als nodes fulla mentre que els nodes interns només poden emmagatzemar els valors clau.

escàner java a continuació

Els nodes de fulla d'un arbre B+ estan enllaçats entre ells en forma de llistes enllaçades individualment per fer que les consultes de cerca siguin més eficients.

B+ Tree s'utilitzen per emmagatzemar la gran quantitat de dades que no es poden emmagatzemar a la memòria principal. A causa del fet que la mida de la memòria principal sempre és limitada, els nodes interns (claus per accedir als registres) de l'arbre B+ s'emmagatzemen a la memòria principal mentre que els nodes fulla s'emmagatzemen a la memòria secundària.

Els nodes interns de l'arbre B+ s'anomenen sovint nodes d'índex. A la figura següent es mostra un arbre B+ d'ordre 3.


Arbre B+

Avantatges de B+ Tree

  1. Els registres es poden obtenir en el mateix nombre d'accessos al disc.
  2. L'alçada de l'arbre es manté equilibrada i menor en comparació amb l'arbre B.
  3. Podem accedir a les dades emmagatzemades en un arbre B+ tant de manera seqüencial com directament.
  4. Les claus s'utilitzen per a la indexació.
  5. Consultes de cerca més ràpides, ja que les dades només s'emmagatzemen als nodes fulla.
Avantatges de B+ Tree

Arbre B VS Arbre B+

SN B Arbre Arbre B+
1 Les claus de cerca no es poden emmagatzemar repetidament. Les claus de cerca redundants poden estar presents.
2 Les dades es poden emmagatzemar tant en nodes fulla com en nodes interns Les dades només es poden emmagatzemar als nodes fulla.
3 La cerca d'algunes dades és un procés més lent, ja que les dades es poden trobar tant als nodes interns com als nodes full. La cerca és relativament més ràpida, ja que les dades només es poden trobar als nodes de la fulla.
4 La supressió de nodes interns és molt complicada i requereix molt de temps. La supressió mai serà un procés complex, ja que l'element sempre s'eliminarà dels nodes fulla.
5 Els nodes de fulla no es poden enllaçar. Els nodes de fulla estan enllaçats entre si per fer que les operacions de cerca siguin més eficients.

Inserció a l'arbre B+

Pas 1: Inseriu el nou node com a node fulla

Pas 2: Si la fulla no té espai necessari, dividiu el node i copieu el node central al següent node d'índex.

Pas 3: Si el node d'índex no té espai necessari, dividiu el node i copieu l'element central a la pàgina d'índex següent.

Exemple:

Inseriu el valor 195 a l'arbre B+ d'ordre 5 que es mostra a la figura següent.


B + Arbre

195 s'inserirà al subarbre dret de 120 després de 190. Inseriu-lo a la posició desitjada.


B + Arbre

El node conté un nombre superior al màxim d'elements, és a dir, 4, per tant, dividiu-lo i col·loqueu el node mitjà fins al pare.


B + Arbre

Ara, el node d'índex conté 6 fills i 5 claus que infringeixen les propietats de l'arbre B+, per tant, hem de dividir-lo, que es mostra a continuació.


B + Arbre

Supressió a l'arbre B+

Pas 1: Elimina la clau i les dades de les fulles.

Pas 2: si el node fulla conté menys del nombre mínim d'elements, fusioneu el node amb el seu germà i suprimiu la clau entre ells.

Pas 3: si el node d'índex conté menys d'un nombre mínim d'elements, fusiona el node amb el germà i mou la tecla cap avall entre ells.

Exemple

Suprimiu la clau 200 de l'arbre B+ que es mostra a la figura següent.

r en llenguatge c

B + Arbre

200 està present al subarbre dret de 190, després de 195. suprimeix-lo.


B + Arbre

Combina els dos nodes utilitzant 195, 190, 154 i 129.


B + Arbre

Ara, l'element 120 és l'únic element present al node que viola les propietats de l'arbre B+. Per tant, hem de combinar-lo fent servir 60, 78, 108 i 120.

Ara, l'alçada de l'arbre B+ es reduirà en 1.


B + Arbre