You are on page 1of 22

ARBOLES B+

DEFINICION
Un rbol B+ es un rbol balanceado, variante especializada del rbol B que tiene dos tipos de nodos: Internos, que solo apuntan a otros nodos. Externos, que contienen los datos en s.

CARACTERISTICAS

El nmero mximo de claves en un registro es llamado el orden del rbol B+. El mnimo nmero de claves por registro es la mitad del mximo nmero de claves. Por ejemplo, si el orden de un rbol-B+ es n, cada nodo (exceptuando la raz) debe tener entre n/2 y n claves. La raz almacena como mnimo un dato y como mximo n-1 datos. El nodo raz tiene como mnimo 2 descendientes. Los nodos intermedios tienen como mnimo (n-1)/2(parte entera) datos. Los nodos intermedios tienen como mximo n-1 datos.

CARACTERISTICAS

Todos los nodos hojas tienen la misma altura. La informacin debe estar ordenada. Toda la informacin se encuentra almacenada en los nodos hoja, por lo que en los nodos internos se pueden duplicar las claves.

EJEMPLO
rbol B+ de orden 5

VENTAJAS

Automticamente se reorganiza con cambios pequeos y locales en las inserciones y borrados. No se requiere la reorganizacin total del archivo. El acceso global es ms rpido y la altura media del rbol es menor. Las hojas se pueden vincular obtenindose, de esta forma, una trayectoria secuencial para recorrer las claves del rbol.

DESVENTAJAS

Desventajas de los archivos secuenciales indexados: el rendimiento se degrada segn crece el archivo. Esta degradacin se resuelve reorganizando el archivo. Una degradacin al insertar y borrar, y espacio extra.

ESTRUCTURA

ESTRUCTURA

NODO TIPICO

Ki son los valores de la clave de bsqueda Pi son Punteros a hijos (para nodos que no son hojas), o Punteros a cajones (para nodos hoja). Valores de bsqueda ordenados K1 < K2 < K3 < ... < Kn-1

NODO HOJA
Para i=1, 2, ..., n-1, el puntero Pi apunta o bien a un registro del archivo con valor de la clave de bsqueda Ki, o bien a un cajn de punteros, cada uno de los cuales apunta a un registro del archivo con valor de la clave de bsqueda Ki.

NODO INTERNO
Los nodos internos forman un ndice multinivel disperso sobre los nodos hoja. Para un nodo interno con m punteros: P1 apunta a la parte del subrbol que contiene los valores de la clave de bsqueda menores que K1 Para i=2, 3, ..., m-1, Pi apunta al subrbol que contiene los valores de la clave menores que Ki y mayor o igual que Ki-1 Pm apunta a la parte del subrbol que contiene los valores de las clave mayores o iguales a Km-1.

BUSQUEDA
La bsqueda no debe detenerse cuando se encuentre la clave en la pgina raz o en una pgina interior, sino que debe proseguir en la pgina apuntada por la rama derecha de dicha clave.

INSERCION
Su diferencia con el proceso de insercin de rboles B consiste en que cuando se inserta una nueva clave en una pgina llena, esta se divide tambin en otras dos, pero ahora la primera contendr con m/2 claves y la segunda 1+m/2, y lo que subir a la pgina antecesora ser una copia de la clave central.

INSERCION
EJEMPLO, Insertar las siguientes claves a un rbol de orden 5: 10-27-29-17-25-21-15-31-13-51-20-24-48-19

ELIMINACION
La operacin de eliminacin en rboles B+ es ms simple que en rboles B. Esto ocurre porque las claves a eliminar siempre se encuentran en las pginas hojas. En general se distinguen 2 casos.

ELIMINACION
CASO 1: Si al eliminar una clave, la cantidad de llaves queda mayor o igual que [m/2] entonces termina la operacin. Las claves de los nodos raz o internos no se modifican por ms que sean una copia de la clave eliminada en las hojas.

ELIMINACION
CASO 2: Si al eliminar una clave, la cantidad de llaves queda menor que [m/2] entonces debe realizarse una redistribucin de claves, tanto en el ndice como en las pginas hojas.

BULK LOADING

La aplicacin de rboles B+ para manejar los registros de una base de datos incluye otros conceptos, uno de ellos es el Bulk Loading. El Bulk Loading es un mtodo para crear rboles de datos cuando la coleccin de registros es bastante grande, ya que insertar uno a uno los registros usando el algoritmo de insercin resultara ser muy costoso.

BULK LOADING
El primer paso de la aplicacin del Bulk Loading es ordenar los registros a ser insertados en el rbol que ser creado.

ARBOLES B+ EN DBMS

IBM DB2, Informix, Microsoft SQL Server, Oracle 8 y Sybase ASE, entre otros, soportan la creacin de rboles B+ para el manejo de ndices. La diferencia entre los mismos radica en la manera de manejar las eliminaciones y los duplicados. Por ejemplo, en Oracle 8 las eliminaciones se realizan marcando la fila como borrada, para reutilizar el espacio liberado se pueden reconstruir los ndices. DB2 y SQL Server eliminan los registros y reubican los ndices restantes cuando se desbalancea el rbol.

GRACIAS