![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig84.gif)
Es de notar que los arboles-B+ ocupan un poco mas de espacio
que los arboles-B, y esto ocurre al existir duplicidad en algunas claves. Sin
embargo, esto es aceptable si el archivo se modifica frecuentemente, puesto que
se evita la operación de reorganización del árbol que es tan costosa en los
arboles-B.
Formalmente se define un árbol-B+ de la siguiente manera:
Cada pagina, excepto la raíz, contiene entre d y 2d
elementos.
Cada pagina, excepto la raíz, tiene entre d + 1 y 2d + 1
descendientes. Se utiliza m para expresar el numero de elementos por pagina.
La pagina raíz tiene al menos dos descendientes.
Las paginas hojas están todas al mismo nivel.
Todas las claves se encuentran en las paginas hojas.
Las claves de las paginas raíz e interiores se utilizan como
índices.
Búsqueda De Arboles-B+
La operación de búsqueda en árboles-B+ es similar a la
operación de búsqueda en árboles-B. El proceso es simple, sin embargo puede
suceder que al buscar una determinada clave la misma se encuentra en una pagina
raíz o interior, en dicho caso no debe detenerse el proceso, sino que debe
continuarse la búsqueda con la pagina apuntada por la rama derecha de dicha
clave. Por ejemplo, al buscar la clave 55 en el árbol-B+ de la figura 8.4 se
advierte que esta se encuentra en la pagina raíz. En este caso, debe
continuarse el proceso de búsqueda en la pagina apuntada por la rama derecha de
dicha clave
Inserción en árboles B+
El proceso de inserción en árboles-B+ es relativamente
simple, similar al proceso de inserción en árboles-B. La dificultad se presenta
cuando desea insertarse una clave en una pagina que se encuentra llena ( m = 2d
). En este caso, la pagina afectada se divide en 2, distribuyéndose las m + 1
claves de la siguiente forma: " las d primeras claves en la pagina de la
izquierda y las d + 1 restantes claves en la pagina derecha ". Una copia
de la clave del medio sube a la pagina antecesora. En la figura 8.5 hay dos
diagramas que ilustran como funciona este caso.
![]() |
Figura 8.5 Inserción de la clave 13 en un árbol B+.
a) Antes de insertar la clave b)Después de insertarla.
Puede suceder que la pagina antecesora se desborde
nuevamente, entonces tendrá que repetirse el proceso anterior. Es importante
notar que el desbordamiento en una pagina que no es hoja no produce duplicidad
de claves. El proceso de propagación puede llegar hasta la raíz, en cuyo caso
la altura del árbol puede incrementarse en una unidad. En la figura 8.6 se
presentan dos diagramas que clarifican y resuelven este caso.
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig86.gif)
Figura 8.6 Inserción de la clave 66 en un árbol-B+
a) Antes de insertar la clave b) Después de insertarla.
a) Antes de insertar la clave b) Después de insertarla.
Ejemplo 8.5.1
Supóngase que se desea insertar las siguientes claves en un
árbol-B+ de orden 2 que se encuentra vacío:
claves: 10-27-29-17-25-21-15-31-13-51-20-24-48-19-60-35-66
Los resultados parciales que ilustran el crecimiento del
árbol se presentan en los siguientes diagramas correspondientes a la figura 8.7
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig87.gif)
Figura 8.7 Inserciones en un árbol-B+ de orden2
(primera parte)
(primera parte)
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig87a.gif)
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig87b.gif)
Figura 8.7 Inserción de un árbol-B+ de orden 2
(Segunda parte)
Borrado En Arboles-B+
La operación de borrado en árboles-B+ es mas simple que la
operación de borrado en árboles-B. Esto ocurre porque las claves a eliminar
siempre se encuentran en las paginas hojas. En general deben distinguirse los
siguientes casos:
1. Si al eliminar una clave, m queda mayor o igual a d
entonces termina la operación de borrado. Las claves de las paginas raíz o
internas no se modifican por mas que sean una copia de la clave eliminada en
las hojas. ( Se presenta un ejemplo de este caso en la figura 8.9 ).
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig89.gif)
Figura 8.9 Eliminación de la clave 25
a) Antes de eliminar la clave. b) Después de eliminarla.
a) Antes de eliminar la clave. b) Después de eliminarla.
2. Si al eliminar una clave, m queda menor a d entonces debe
realizarse una redistribución de claves, tanto en el índice como en las paginas
hojas. ( Hay dos ejemplos que ilustran como funciona este caso en la figura
8.10 ).
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig810.gif)
Figura 8.10 Eliminación de la clave 27
a) Antes de eliminar la clave. b) Después de eliminarla.
a) Antes de eliminar la clave. b) Después de eliminarla.
Nota: Al eliminar la clave 27 de la página A, m queda menor
a d por lo que debe realizarse una redistribución de las claves. Se toma la
clave que se encuentra más a la derecha en la rama izquierda de 25 (21 de la
página B). Se coloca dicha clave en la página A y una copia de la misma, como
índice, en la página C.
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig810a.gif)
Figura 8.10 Eliminación de la clave 21
b) Antes de eliminar la clave. d) Después de eliminarla.
b) Antes de eliminar la clave. d) Después de eliminarla.
Nota: Al eliminar la clave 21 de la página A, m queda menor
a d por lo que debe realizarse una redistribución de claves. Como no se puede
tomar una clave de la página B puesto que m quedaría menor a d, entonces se
realiza una fusión de las páginas A y B.
Puede suceder que al eliminar una clave y al realizar una
redistribución de las mismas, la altura del árbol disminuya en una unidad. ( En
la figura 8.11 se presentan dos diagramas que clarifican y resuelven este
caso).
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig811a.gif)
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig811b.gif)
Figura 8.11 Eliminación de la clave 37
a) Antes de eliminarla. b) Después de eliminarla.
a) Antes de eliminarla. b) Después de eliminarla.
Nota: Al eliminar la clave 37 de la página A, m queda menor
a d por lo que debe realizarse una redistribución de claves. Como no puede
tomarse una clave de la página B puesto que m quedaría menor a d, entonces se
realiza una fusión de las páginas A y B. Sin embargo, luego de está fusión m
queda menor a d en la página C, por lo que debe bajarse la clave 29 de la
página E y realizarse una nueva fusión, ahora de las páginas C y E. La altura
del árbol disminuye en una unidad.
Ejemplo 8.5.3
Suponga que desea eliminar las siguientes claves del
árbol-B+ de orden 2 de la figura 8.12:
claves: 15-51-48-60-31-20-10-25-17-24
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig812.gif)
Figura 8.12 Arbol-B+ de orden 2
Los resultados parciales que ilustran como funciona el
procedimiento se presentan en los diagramas de la figura 8.13.
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig813.gif)
Figura 8.13
Eliminaciones en un árbol-B+ de orden 2
(Primera parte)
Eliminaciones en un árbol-B+ de orden 2
(Primera parte)
![](http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/cap8/media/fig813a.gif)
No hay comentarios:
Publicar un comentario