Anda di halaman 1dari 12

31/03/2015

rboles B rboles B+
Motivacin

Estructuras de rboles binarios (AVL, por ejemplo) son


eficientes para memoria principal pero

Almacenamiento de
ineficientes para almacenamiento
secundario. Se necesita estructura eficiente para
bsquedas.
Las bsquedas binarias requieren

Datos demasiados accesos.

Estructuras estticas son muy costosas


Se puede usar como estructura de
almacenamiento o acceso.

R BO L E S B - R BO L E S B+ de mantener. El desperdicio de espacio en los nodos se


encuentra controlado.
Estructuras estticas pueden crear
ING . TO MMA S E L A NTO NE L A problemas de insuficiencia de espacio.

rboles B rboles B
Caractersticas Usos
NDICE
Cada elemento contiene (clave, puntero a
rbol N-ario de bsqueda. nodo).
Los datos son apuntados solo en hojas.
Estructura completamente balanceada.

Bsquedas Eficientes.

Mayor complejidad en algoritmos de Insersin y Eliminacin.

Elementos de un nodo se encuentran ordenados linealmente.

Mecanismos de reestructuracin inhiben la utilizacin de instancias repetidas del dominio estructurante.

Usados para organizar grandes carpetas en NTFS.

Factor de ocupacin /2 1 donde es el orden del rbol (cantidad de punteros a hijos).


31/03/2015

rboles B rboles B
Usos Usos

NDICE HBRIDO
Cada elemento contiene (clave,
puntero a dato).
Punteros a datos en todos los niveles.

ARCHIVO
Cada elemento contiene (clave, dato).
No hay punteros a datos, sino que se
guardan los datos.

rboles B+ Estructura de rbol Ejemplo

Modificacin a los rboles B. 10 20 52 68

Estructura ms usada para implementar ndices dinmicos multinivel.

Utilizados en BFS para almacenamiento de directorios.


5 9 12 18 22 25 53 66 69 70 75 99
Mantiene datos o punteros a datos SOLO en las hojas. (DIFERENCIA CON B)

Las hojas se encuentran enlazadas. (DIFERENCIA CON B)

Realizar un recorrido ordenado de los registros es sencillo y eficiente.

Una hoja puede estar parcialmente vaca (ocupacin >= 50%).

NOTA: Elemento puede referirse genricamente tanto a lo que se almacena en un rbol B como a lo que se almacena en un rbol B+.
Lo que importa es que la ocupacin de los nodos en ambos casos sea la misma.
31/03/2015

Operaciones a Realizar INSERTAR 7


rbol B 10 20 52 68

INSERTAR INSERTAR
7 92 5 9 12 18 22 25 53 66 69 70 75 99

ELIMINAR ELIMINAR rbol B+


10 20 52 68

5 92
5 9 12 18 22 25 53 66 69 70 75 99

INSERTAR 7 COMO LA HOJA DONDE HAY QUE


INSERTAR EL 7 TIENE LUGAR NO ES
NECESARIO APLICAR TCNICAS DE
INSERTAR 92
REESTRUCTURACIN
rbol B 10 20 52 68 rbol B 10 20 52 68

5 7 9 12 18 22 25 53 66 69 70 75 99 5 7 9 12 18 22 25 53 66 69 70 75 99

rbol B+ rbol B+
10 20 52 68 10 20 52 68

5 7 9 12 18 22 25 53 66 69 70 75 99 5 7 9 12 18 22 25 53 66 69 70 75 99
31/03/2015

INSERTAR 92 LA INSERCIN OCURRI EN HOJAS


SIN ESPACIO.
HUBO QUE REESTRUCTURAR.
EL RBOL CRECI EN ALTURA POR
Insertar- Resumen
rbol B UNA SECUENCIA DE DIVISIONES

Siempre se inserta en una hoja.

Se busca la hoja en donde insertar la clave.


La hoja tiene lugar?
Se inserta.
La hoja NO tiene lugar?
Se aplican estrategias de re-estructuracin: SPLIT o REDISTRIBUCIN

SPLIT
rbol B+
ARBOL B: Elemento central se
El nodo involucrado se divide. PASA al padre.
Apuntar el nuevo nodo desde el padre del original.
Se reparten los elementos entre los nodos. ARBOL B+: Elemento central se
Una sucesin de Splits puede hacer que el rbol crezca COPIA al padre.
en altura.
Se puede utilizar siempre.

Insertar- Resumen ELIMINAR 5


rbol B

Siempre se inserta en una hoja.

Se busca la hoja en donde insertar la clave.


La hoja tiene lugar?
Se inserta.
La hoja NO tiene lugar?
Se aplican estrategias de re-estructuracin: SPLIT o REDISTRIBUCIN

REDISTRIBUCIN
El nodo pasa elementos a alguno de sus vecinos (si rbol B+
tienen espacio).

Costoso. Accesos innecesarios a bloques.

El pasaje genera actualizacin de padre (se deja cumplir


propiedad de orden).
No siempre se puede utilizar.
31/03/2015

ELIMINAR 5 EN AMBOS CASOS HUBO QUE


ELIMINAR DE HOJA.
LAS HOJAS QUEDARON CON EL
MNIMO DE ELEMENTOS.
ELIMINAR 75
rbol B NO HUBO QUE REESTRUCTURAR. rbol B

rbol B+ rbol B+

ELIMINAR 75 Eliminar- Resumen


EL ELEMENTO A ELIMINAR ESTABA EN UN NODO
INTERMEDIO.
HUBO QUE REEMPLAZAR EL VALOR POR EL
MAYOR MENOR O MENOR MAYOR.
rbol B CON EL REEMPLAZO, EL NODO QUED CON
10 20 52 68 MENOS ELEMENTOS QUE EL MNIMO. rbol B rbol B+
HUBO QUE REESTRUCTURAR. SE APLIC FUSIN.
LA ALTURA DEL RBOL DECRECI COMO Se puede eliminar de hoja o de nodo intermedio.
CONSECUENCIA DE UNA SUCESIN DE FUSIONES.
Si se elimina de nodo intermedio, se lo debe reemplazar Siempre se elimina de hoja.
por el inmediato en orden. Si el elemento est como clave de bifurcacin, en general
Mayor de los Menores. se lo deja. El ndice genera rangos.
5 7 9 12 18 22 25 53 66 69 70 92 99 Menor de los Mayores.

Si el nodo del que se elimina queda con menos elementos que los permitidos es necesario aplicar estrategias de
reestructuracin FUSION o REDISTRIBUCIN.
SIEMPRE SE ELIMINAR DE HOJA (ES DONDE
ESTN LOS DATOS O PUNTEROS A ELLOS). FUSIN REDISTRIBUCIN
LA HOJA QUED CON EL MNIMO DE
rbol B+ ELEMENTOS. El nodo pasa elementos a alguno de sus vecinos (si
NO HUBO QUE REESTRUCTURAR.
LA CLAVE DE BSQUEDA SE DEJA EN LA
El nodo que qued con menos elementos se fusiona con tienen espacio).
ESTRUCTURA su vecino.
Desaparece el par (clave,puntero) que lo apuntaba. Costoso. Accesos innecesarios a bloques.
Situacin puede propagarse hasta la raz.
El rbol puede decrecer en altura por una secuencia de El pasaje genera actualizacin de padre (se deja cumplir
fusiones. propiedad de orden).
No siempre se puede utilizar.
31/03/2015

Estructuras de Estructuras de
Almacenamiento de Almacenamiento de
Datos Datos
R BO L E S B - R BO L E S B+ A NE XO S E CUE NCIA DE R IVA CI N R BO L E JE MPLO

ING . TO MMA S E L A NTO NE L A ING . TO MMA S E L A NTO NE L A

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B Secuencia de Operaciones para obtener la estructura como rbol B
Insertar 5, 9, 10, 12, 18, 20, 22. 25, 52, 53, 66, 68, 69, 70, 75, 99 1. Insertar 5, 9, 10, 12

10 20 52 68 5 9 10 12 18

5 9 12 18 22 25 53 66 69 70

NOTA: En este caso cada elemento adems de la clave, contiene el dato.


En caso de que corresponda, se aplica DIVISIN como estrategia de reestructuracin para la Insercin y FUSIN como estrategia de reestructuracin para la Eliminacin
31/03/2015

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B Secuencia de Operaciones para obtener la estructura como rbol B
2. Insertar 18 Como no haba lugar en la hoja correspondiente, se la divide. Se propagan los cambios a la raz. El 3. Insertar 20, 22 No es necesario dividir nodos. Hay lugar en la hoja correspondiente.
rbol crece en 1 su altura.

10 10

5 9 12 18 5 9 12 18 20 22 25

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B Secuencia de Operaciones para obtener la estructura como rbol B
4. Insertar 25 - Como no haba lugar en la hoja correspondiente, se la divide. 5. Insertar 52, 53 - No es necesario dividir nodos. Hay lugar en la hoja correspondiente.

10 20 10 20

5 9 12 18 22 25 5 9 12 18 22 25 52 53 66
31/03/2015

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B Secuencia de Operaciones para obtener la estructura como rbol B
6. Insertar 66 - Como no haba lugar en la hoja correspondiente, se la divide. 7. Insertar 68, 69 - No es necesario dividir nodos. Hay lugar en la hoja correspondiente.

10 20 52 10 20 52

5 9 12 18 22 25 53 66 5 9 12 18 22 25 53 66 68 69 70

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B Secuencia de Operaciones para obtener la estructura como rbol B
8. Insertar 70 - Como no haba lugar en la hoja correspondiente, se la divide. 9. Insertar 75, 99 - No es necesario dividir nodos. Hay lugar en la hoja correspondiente

10 20 52 68 10 20 52 68

5 9 12 18 22 25 53 66 69 70 5 9 12 18 22 25 53 66 69 70 75 99
31/03/2015

Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+
Insertar 5, 9, 10, 12, 18. Eliminar 10. Insertar 20, 22. 25. Eliminar 20. Insertar 52, 53, 66. Insertar 52.
Insertar 68, 69, 70. Eliminar 70. Insertar 75, 99

10 20 52 68

5 9 12 18 22 25 53 66 69 70

NOTA: En este caso cada elemento adems de la clave, contiene el dato.


En caso de que corresponda, se aplica DIVISIN como estrategia de reestructuracin para la Insercin y FUSIN como estrategia de reestructuracin para la Eliminacin
Cuando un nodo es eliminado, si aparece como clave de bsqueda la misma no se elimina de la estructura.

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+ Secuencia de Operaciones para obtener la estructura como rbol B+
1. Insertar 5, 9, 10, 12 2. Insertar 18 Como no haba lugar en la hoja correspondiente, se la divide. Se propagan los cambios a la raz. El
rbol crece en 1 su altura.

5 9 10 12 18 10

5 9 10 12 18
31/03/2015

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+ Secuencia de Operaciones para obtener la estructura como rbol B+
3. Eliminar 10 La hoja queda con la cantidad minima de elementos. No es necesario aplicar estrategias de 4. Insertar 20, 22 No es necesario dividir nodos. Hay lugar en la hoja correspondiente.
reestructuracin

10 10

5 9 12 18 5 9 12 18 20 22 25

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+ Secuencia de Operaciones para obtener la estructura como rbol B+
5. Insertar 25 - Como no haba lugar en la hoja correspondiente, se la divide. 6. Eliminar 20 La hoja queda con la cantidad minima de elementos. No es necesario aplicar estrategias de
reestructuracin

10 20 10 20

5 9 12 18 20 22 25 5 9 12 18 22 25
31/03/2015

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+ Secuencia de Operaciones para obtener la estructura como rbol B+
7. Insertar 52, 53 - No es necesario dividir nodos. Hay lugar en la hoja correspondiente. 8. Insertar 66 - Como no haba lugar en la hoja correspondiente, se la divide.

10 20 10 20 52

5 9 12 18 22 25 52 53 66 5 9 12 18 22 25 52 53 66

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+ Secuencia de Operaciones para obtener la estructura como rbol B+
9. Eliminar 52 La hoja queda con la cantidad minima de elementos. No es necesario aplicar estrategias de 10. Insertar 68, 69 - No es necesario dividir nodos. Hay lugar en la hoja correspondiente.
reestructuracin

10 20 52 10 20 52

5 9 12 18 22 25 53 66 5 9 12 18 22 25 53 66 68 69 70
31/03/2015

Estructura de rbol Ejemplo Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+ Secuencia de Operaciones para obtener la estructura como rbol B+
11. Insertar 70 - Como no haba lugar en la hoja correspondiente, se la divide. 11. Eliminar 68 La hoja queda con la cantidad minima de elementos. No es necesario aplicar estrategias de
reestructuracin

10 20 52 68 10 20 52 68

5 9 12 18 22 25 53 66 68 69 70 5 9 12 18 22 25 53 66 69 70

Estructura de rbol Ejemplo


Secuencia de Operaciones para obtener la estructura como rbol B+
12. Insertar 75, 99 - No es necesario dividir nodos. Hay lugar en la hoja correspondiente
Estructuras de
10 20 52 68
Almacenamiento de
5 9 12 18 22 25 53 66 69 70 75 99
Datos
A NE XO S E CUE NCIA DE R IVA CI N R BO L E JE MPLO

ING . TO MMA S E L A NTO NE L A