arboles b+.ppt

Post on 31-Jul-2015

193 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 número máximo de claves en un registro es llamado el orden del árbol B+.

• El mínimo número de claves por registro es la mitad del máximo número de claves. Por ejemplo, si el orden de un árbol-B+ es n, cada nodo (exceptuando la raíz) debe tener entre n/2 y n claves.

• La raíz almacena como mínimo un dato y como máximo n-1 datos.

• El nodo raíz tiene como mínimo 2 descendientes.• Los nodos intermedios tienen como mínimo (n-1)/2(parte

entera) datos.• Los nodos intermedios tienen como máximo n-1 datos.

CARACTERISTICAS

• Todos los nodos hojas tienen la misma altura.• La información debe estar ordenada.• Toda la información 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

• Automáticamente se reorganiza con cambios pequeños y locales en las inserciones y borrados. No se requiere la reorganización total del archivo.

• El acceso global es más rápido y la altura media del árbol es menor.

• Las hojas se pueden vincular obteniéndose, de esta forma, una trayectoria secuencial para recorrer las claves del árbol.

DESVENTAJAS

• Desventajas de los archivos secuenciales indexados: el rendimiento se degrada según crece el archivo. Esta degradación se resuelve reorganizando el archivo.

• Una degradación al insertar y borrar, y espacio extra.

ESTRUCTURA

ESTRUCTURA

NODO TIPICO

– Ki son los valores de la clave de búsqueda

– Pi son

•Punteros a hijos (para nodos que no son hojas), o•Punteros a cajones (para nodos hoja).

– Valores de búsqueda 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 búsqueda Ki, o bien a un cajón de punteros, cada uno de los cuales apunta a un registro del archivo con valor de la clave de búsqueda 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 subárbol que contiene los valores de la clave de búsqueda menores que K1

– Para i=2, 3, ..., m-1, Pi apunta al subárbol que contiene los valores de la clave menores que Ki y mayor o igual que Ki-1

– Pm apunta a la parte del subárbol que contiene los valores de las clave mayores o iguales a Km-1.

BUSQUEDA

La búsqueda no debe detenerse cuando se encuentre la clave en la página raíz o en una página interior, sino que debe proseguir en la página apuntada por la rama derecha de dicha clave.

INSERCION

Su diferencia con el proceso de inserción de árboles B consiste en que cuando se inserta una nueva clave en una página llena, esta se divide también en otras dos, pero ahora la primera contendrá con m/2 claves y la segunda 1+m/2, y lo que subirá a la página 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 operación de eliminación en árboles B+ es más simple que en árboles B. Esto ocurre porque las claves a eliminar siempre se encuentran en las páginas 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 operación. Las claves de los nodos raíz o internos no se modifican por más 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 redistribución de claves, tanto en el índice como en las páginas hojas.

BULK LOADING

• La aplicación 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 método para crear árboles de datos cuando la colección de registros es bastante grande, ya que insertar uno a uno los registros usando el algoritmo de inserción resultaría ser muy costoso.

BULK LOADING

El primer paso de la aplicación 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 creación 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

top related