Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arboles 2-3, B, B, B+: Karim Guevara Puente de La Vega
Arboles 2-3, B, B, B+: Karim Guevara Puente de La Vega
2-3, B, B*, B+
B C
40 55 82 105 122
D E F G H I J
R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R104 R107 R112 R119 R125 R127
Árboles B - búsqueda
A
96
100
B C
40 55 82 105 122
D E F G H I J
R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R9966 R98 R102 R104 R107 R112 R119 R125 R127
Árboles B - búsqueda
A
105
100
B C
40 55 82 105 122
D E F G H I J
R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R104 R107 R112 R119 R125 R127
Árboles B – inserción de X
Realizar una búsqueda sin éxito, que nos llevará al nodo
donde será insertado X (nodo hoja).
Si el nodo aún tiene capacidad, se insertará X en él, en el lugar
que le corresponda de acuerdo al orden establecido.
Si el nodo está lleno, será necesario realizar una división:
• Se divide el nodo y se distribuyen las claves.
• La clave intermedia es promovida al nodo padre.
• Si el padre está lleno, se repite el proceso nuevamente.
El peor caso tendrá lugar cuando se crea una nueva raíz, esto
es cuando se propaga la división.
La altura del árbol aumenta.
Ejemplo de inserción
Insertar en un árbol B de orden 5 inicialmente vacío la
secuencia de claves: 15, 4, 3, 7, 35
Árboles B - eliminación
Al borrar una clave puede ocurrir que:
1. La clave está en un un nodo o página hoja => desplazar a la
izquierda el resto de las claves de la página
• P.e.: eliminar 45
Árboles B - eliminación
2. La clave está en una página intermedia (hacer lo mismo que
en un BST):
• sustituir la clave por el antecesor (mayor elemento del sub árbol
izquierdo), o
• sustituir la clave por el sucesor (menor elemento del sub árbol
derecho)
Árboles B - eliminación
Subocupación de una página/nodo (underflow):
Si esa página no es la raíz, habrá que reorganizar el árbol.
Dos posibilidades:
• Equilibrado: (Redistribución)
• Fusión de páginas: (Concatenación)
• Su propagación hasta la raíz, reduce la altura del árbol.
Árbol B*
Perfeccionamiento de la utilización de memoria de un árbol
B (uso de memoria por lo menos al 66.67%).
Retraza la división de un nodo cuando ocurre desborde.
Extiende la idea de redistribución durante la inserción en
vez de la division.
Divide de dos a tres en lugar de uno a dos, en algunas
estrategias se exceptúa la raíz.
B* - Propiedades
Tomando en cuenta un árbol de orden n=512, se tendría:
𝑁+𝑚+2
∝=
2
B* - Inserción
P.e.: Inserción con redistribución
B* - Inserción
Inserción con división: cada página recibirá (2n/3)-1 claves y
se promocionan dos claves a la página superior.
n=N+1 orden del árbol.
2(𝑛 − 1) 𝛽 =
4(𝑛−1)
+1
∝= 3
3
B* - Inserción
P.e.: inserción con división
= 2(n-1)/3 = 8/3= 2
= 4(n-1)/3 + 1 = 16/3 + 1 = 6
Mín.claves = (2n/3) - 1 = 2
B* - Inserción en la Raíz
Si se considera división de uno a dos:
Es factible que las páginas hijas de la raíz tengan menos claves
que lo establecido por la regla del mínimo.
P.e., para un árbol B* de orden 8:
8 13 17 20 21 24 30
19
Mín.claves = (2n/3) - 1 = 4
20
División 1-2 8 13 17 19 21 24 30
B* - Inserción en la Raíz
Se considera división de uno a tres:
Aumentar la capacidad de la Raíz, de forma que al dividirse se
produzcan tres nodos con mínima cantidad de claves por lo
menos.
(mínimo de claves * 3 + 2 )
P.e. para un árbol B* de orden 8:
19
8 13 17 20 21 24 30 32 35 36 41 44 47 53
Mín.claves = 4
Cap.Raíz 19
= 4*3+2= 14
= 2(n-1)/3 = 4
= 4(n-1)/3 +1 = 10
20 36
División 1-3
8 13 17 19 35 41 44 47 53
B* - Eliminación
Similar al procedimiento de eliminación de un árbol B:
Si es necesario se redistribuye,
Sino, fusionar de 3 a 2
Considerar la capacidad de la raíz.
20 35
8 13 17 19 21 24 30 32 36 41 44 47
30
Eliminar(24)
8 13 17 19 20 21 32 35 36 41 44 47
Árbol B+
Es una mejora sobre los árboles B.
Con las misma propiedades que el árbol B, pero formado
por:
Índice: constituido por los nodos intermedios.
• Forman un árbol B
Secuencia: páginas hojas enlazadas secuencialmente en las
que se repiten algunas de las claves de nodos intermedios.
Las operaciones por clave empiezan en la raíz del árbol.
El proceso secuencial empieza en la hoja más a la
izquierda
B+ - Estructura
Índice: un
árbol-B
Búsqueda
aleatoria
Búsqueda
secuencial
....
Claves: el conjunto
secuencial
B+ - Estructura
Los nodos índices y nodos hoja pueden tener diferentes
formatos y tamaños.
X<K1 Ki -1 X< Ki Kq -1 X
Árbol B+
A
P.e.:
98
B C
36 53 81 107 119
D E F G H I J
R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R107 R109 R112 R119 R125 R127
Eficiencia del ÁrbolB+
Retiene la eficiencia de la búsqueda e inserción del árbol-B
Incrementa la eficiencia del hallazgo del registro
siguiente en el árbol de O(log n) a O(1).
Ventaja: no necesita guardar apuntador a registros en los
nodos no-hojas.
B+ - Búsqueda
Igual que en el árbol B, con la diferencia que, no debemos
detener la búsqueda cuando se haya encontrado la clave en la
página raíz o en una página intermedia.
Se debe proseguir en la página referenciada por
la rama izquierda o derecha de dicha clave.
Si la clave existe, se encontrará en página hoja.
Sino, sólo existe en el índice del árbol
B+ - Búsqueda
A
96
96
B C
36 53 81 107 119
D E F G H I J
R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R107 R109 R112 R119 R125 R127
B+ - Búsqueda
A
96
96
B C
36 53 81 107 119
D E F G H I J
R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 RR9966 R98 R102 R107 R109 R112 R119 R125 R127
B+ - Búsqueda
A
107
96
B C
36 53 81 107 122
D E F G H I J
R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R110077 R109 R112 R119 R125 R127
B+ - Inserción
Similar al proceso de inserción en un árbol B, pero ….
Si la página donde se inserta aún tiene espacio, se inserta y el
proceso termina.
Pero, si se inserta una clave en una página hoja que esta
llena:
• Esta se divide de 1 a 2
• Asciende la copia de la clave central, el original se queda en la hoja,
apuntando a su registro.
• La página actual contendrá: (n/2+1) ó (n/2)
• La página nueva contendrá: (n/2) ó (n/2+1)
B+ - Inserción
Inserción sin división: en el B+ de orden 5 insertar el 97
81
36 53 98 104
97
R8 R17 R36 R46 R53 R56 R5R67605 RR6R57722 R8811 R96 R98 R102 R104 R125 R127
R
B+ - Inserción
81
36 53 98 104
R8 R17 R36 R46 R53 R56 R5R67605 RR6R57722 R8811 R96 R97 R98 R102 R104 R125 R127
R
B+ - Inserción
Inserción con división: en el B+ de orden 5 insertar el 70
81
36 53 98 104
70
R8 R17 R36 R46 R53 R56 R5R67605 RR6R57722 R8811 R96 R97 R98 R102 R104 R125 R127
R
B+ - Inserción
81
70
36 53 98 104
R8 R17 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Inserción
81
36 53 70 98 104
R8 R17 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación
Indice: (niveles intermedios y raíz) similar al proceso de
eliminación de un árbol B.
Secuencia: (Nivel hoja), si la clave que se está eliminando
tiene una copia en el índice, sólo se elimina la clave que se
encuentra en página hoja:
Si al eliminar la clave el número de claves es mayor o igual al
mínimo de claves, el proceso finaliza.
Si hay menos que el mínimo, se procede a realizar equilibrado o
fusión
• A consecuencia de estas operaciones, las claves copiasdel índice
se eliminan.
B+ - Eliminación
P.e.: en un árbol B+ de orden 5, eliminar 17
81
Eliminar(17)
36 53 70 98 104
R8 R17 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación
81
36 53 70 98 104
R8 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación
P.e.: en un árbol B+ de orden 5 eliminar 98
81
Eliminar(98)
36 53 70 98 104
R8 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación
81
36 53 70 98 104
R8 R36 R46 R53 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
P.e.: en un árbol B+ de orden 5 eliminar 53
81
Eliminar(53)
36 53 70 98 104
R8 R36 R46 R53 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
81
Eliminar(53)
Equilibrado
36 53 70 98 104
R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
81
Eliminar(53)
Equilibrado
36 53 70 98 104
Copia
(56)
R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
81
36 56 70 98 104
R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
P.e.: en un árbol B+ de orden 5 eliminar 104
81
Eliminar(104)
36 56 70 98 104
R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
81
Es copia
Eliminar(104)
Fusión
36 56 70 98 104
R8 R36 R46 R56 R65 R70 R96 R97 R102 R125 R127
R72 R81
B+ - Eliminación
81
Descenso(93)
Redistribución
36 56 70 104
70
36 56 81 104