arboles b+.ppt

22
ARBOLES B+

Upload: s1a2n3d4r5a6

Post on 31-Jul-2015

192 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arboles b+.Ppt

ARBOLES B+

Page 2: Arboles b+.Ppt

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í.

Page 3: Arboles b+.Ppt

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.

Page 4: Arboles b+.Ppt

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.

Page 5: Arboles b+.Ppt

EJEMPLO

Árbol B+ de orden 5

Page 6: Arboles b+.Ppt

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.

Page 7: Arboles b+.Ppt

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.

Page 8: Arboles b+.Ppt

ESTRUCTURA

Page 9: Arboles b+.Ppt

ESTRUCTURA

Page 10: Arboles b+.Ppt

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

Page 11: Arboles b+.Ppt

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.

Page 12: Arboles b+.Ppt

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.

Page 13: Arboles b+.Ppt

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.

Page 14: Arboles b+.Ppt

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.

Page 15: Arboles b+.Ppt

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

Page 16: Arboles b+.Ppt

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.

Page 17: Arboles b+.Ppt

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.

Page 18: Arboles b+.Ppt

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.

Page 19: Arboles b+.Ppt

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.

Page 20: Arboles b+.Ppt

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.

Page 21: Arboles b+.Ppt

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.

Page 22: Arboles b+.Ppt

GRACIAS