Vous êtes sur la page 1sur 27

O

r
g
a
n
i
z
a
c
i

n

i
n
d
e
x
a
d
a

Caractersticas
El rbol B* (B asterisco, B Estrella o B Star) es una
variante del rbol B.
El comportamiento similar, con la ventaja de disminuir
el crecimiento en la altura del rbol al aplicar la
redistribucin en la insercin, deteniendo hasta ltimo
momento los split y el aprovechamiento del espacio
en el nodo al cambiar las polticas para decidir
cuando hacer un split o una concatenacin.
Asegura que a la hora de realizar un split al menos dos
nodos estn llenos, por lo que el split se realiza
tomando dos hermanos y dividindolos en 3 nodos 2/3
llenos.

4.3.4 rboles B*
Caractersticas
Todas las ramas tienen igual profundidad
Si un nodo tiene k claves, tiene siempre m + 1 descendientes.
Cada clave en un nodo est asociada siempre con dos
referencias. Una hacia otro nodo que contiene elementos con
claves menores y la otra a un nodo con elementos con claves
mayores.
Existe una relacin entre las caractersticas de cantidad de
claves y descendientes mnimos y mximos por nodo.
4.3.4 rboles B*
Caractersticas
Cantidad mxima de claves por nodo (k).
Cantidad mxima de descendientes por nodo: m = k+1
Cantidad mnima de claves por nodo (excepto la raz): [k*2/3]
3
.
Cantidad mnima de descendientes por nodo (excepto la raz y
las hojas) [(2m-1)/3]
4
El tamao de la raz es de 2*k+1
claves.
Si k = 2, la capacidad max. = 5
claves
Si se restringe a tener a lo k llaves,
al insertar una nueva llave,
deberamos proceder a dividir el
nodo en dos nodos, que no
cumpliran con la condicin de
tener al menos (2/3)p llaves.

4.3.4 rboles B*
Insercin
Se busca la ubicacin donde debe agregarse la clave.
Pueden ocurrir 2 situaciones:
El nodo tiene lugar: Se agregar la clave de la misma manera que
en un rbol B
El nodo esta completo: Se realiza una redistribucin con alguno
de sus hermanos y la clave separador del nivel superior. En caso
de no ser posible se realiza el split tomando para eso un hermano
completo, juntando los dos y realizando un split a 3 nodos con 2/3
de sus claves completas y promovindose una clave al nivel
superior.
4.3.4 rboles B*
Insercin
Si se va a insertar en la raz del rbol y est llena:
Insertar la llave como si realmente tuviese sitio libre.
Crear un nuevo nodo, que pasar a ser la raz del rbol. Extraer el
nodo que ocupa la posicin del medio en el nodo en que se
insert e insertarlo en la nueva raz.
Dividir equitativamente la pgina original en dos nuevos nodos.
Esto sucede solo cuando la raz, producto de la insercin, excede
las (4/3)k llaves, lo cual garantiza que al dividirse en dos el nodo
original, en cada nodo queden las (2/3)k llaves que necesita un
nodo del rbol B*.
4.3.4 rboles B*
Ejemplo
Cantidad mxima de claves por nodo 6.
Cantidad mxima de descendientes por nodo: m = 6+1 =7
Cantidad mnima de claves por nodo (excepto la raz) = 4.
Cantidad mnima de descendientes por nodo (excepto la raz y
las hojas) = 5

El tamao mximo
de la raz es de
2*6+1 = 13 claves.
4.3.4 rboles B*
Insercin
Ejemplo 1
Insertar 45. Sin problema se inserta en la raz, pues an no se puede
dividir en hijos
Insertar 70
Insertar 35. Ahora la raz se puede dividir
10 20 30 40 50 60
1
0
2
0
3
0
4
0
4
5
5
0
6
0
1
0
2
0
3
0
4
0
4
5
5
0
6
0
7
0
4
0
45 50 60 70 10 20 30 35
4.3.4 rboles B*
Insercin
Insertar 25 y 38

Insertar 15. Se recorren las claves hacia el hermano q tiene espacio




Insertar 55
4
0
45 50 60 70 10 20 25 30 35 38
3
8
40 45 50 60 70 10 15 20 25 30 35
3
8
40 45 50 55 60 70 10 15 20 25 30 35
4.3.4 rboles B*
Insercin
Insertar 32

Se combina el nodo en que se inserta, con el hermano, para
obtener tres nodos. En esta combinacin tambin se tiene en
cuenta la llave que se encuentra en el padre, entre ambos
nodos, o sea, el 40 y se parte en 3 nodos, subiendo a la raz los
nodos centrales
3
8
10 15 20 25 30 35
1
0
1
5
2
0
2
5
3
0
3
2
3
5
3
8
3
0
4
5
40 45 50 55 60 70
10 15 20 25
40 45 50 55 60 70
32 35 38 40 50 55 60 70
4.3.4 rboles B*
Tarea
Construir el rbol (K=3) con la insercin de los siguientes
valores. Realizar los ajustes correspondientes K mnima 2,
mximo para raz 7:
Insercin
33, 20, 57,90, 49, 30, 17, 35, 10, 21, 40, 80, 56, 8, 39, 43, 60, 4, 31, 99,
1, 2, 11
Baja
80, 11, 8, 57, 33
4.3.3 rboles B
Borrado
Se procede de la misma manera que en el rbol B.
Cuando va a eliminarse una clave de un nodo con la cantidad
mnima de llaves, deben seguirse los pasos siguientes:
1. Si el hermano tiene una clave para ceder: la clave cedida se
intercambia con la clave K
i
del padre, que se encuentra entre
ambos nodos y esta se inserta en el nodo del cual se elimin.
2. Si los hermanos no tienen la posibilidad de ceder una clave, se
analiza el hermano del hermano, si tiene, mover la clave
mediante rotaciones entre hermanos.
4.3.4 rboles B*
Borrado
Rotacin. Llamaremos H
0
al nodo del cual se elimin, H
1
al
hermano que no poda ceder y H
2
al otro hermano. En caso de
ser posible, deben hacerse dos rotaciones para hacer llegar la
llave a H
0
:
1. Una primera rotacin de H
1
a H
0
(ahora H
1
es quien tiene la
falta)
2. Segunda rotacin desde H
2
a H
1
.
Estas rotaciones involucran a las clave Ki del nodo padre, que se
encuentran entre los nodos H
0
y H
1
, H
1
y H
2
, respectivamente.
4.3.4 rboles B*
Borrado
3. Si existen dos nodos hermanos del nodo del que se elimin que
no tenan posibilidad de ceder una llave:
Se realiza una combinacin de tres nodos para obtener dos,
con participacin de las llaves K
i
del padre que se encuentran
entre los tres nodos. La idea es, dividir las llaves de los tres nodos
en dos conjuntos que pasarn a estar en los dos nodos a
formar, extrayendo la llave del medio, que quedar en el nodo
padre, entre los nodos resultantes.
Si del proceso, el nodo padre ha perdido una llave y provoca
una falta de llave, se debe seguirse analizando el rbol hacia
arriba.
4.3.4 rboles B*
Borrado
4. Si el nodo del cual se elimin solo tiene un hermano (rbol con
dos niveles, en uno la raz y el otro las dos hojas) y este hermano
no puede ceder la llave, se deben fundir las claves que quedan
en un solo nodo, que quedara como raz del rbol.
4.3.4 rboles B*
Borrado
Eliminar 35

El hermano puede cederle una clave sin romper la condicin
4
0
45 50 60 70 80 10 20 30 35
4
5
50 60 70 80 10 20 30 40
4.3.4 rboles B*
Borrado
Eliminar 40

Los hermanos inmediatos no pueden cederle una llave, pero el
hermano de su hermano de la der s. Hacer dos rotaciones.
3
0
4
8
9
0
92 94 95 96 98
10 15 20 25
32 35 40 45 50 60 70 80
3
0
5
0
9
2
94 95 96 98
10 15 20 25
32 35 45 48 60 70 80 90
4.3.4 rboles B*
Borrado
Eliminar 20

Ninguno de los hermanos pueden cederle una clave, por lo que
deben combinarse los tres nodos para formar dos
3
0
4
8
9
0
92 94 95 96
10 15 20 25
32 35 40 45 50 60 70 80
1
0
1
5
2
5
3
0
3
2
3
5
4
0
4
5
48 50 60 70 80
4
0
9
0
92 94 95 96
10 15 25 30 32 35
45 48 50 60 70 80
4.3.4 rboles B*
Borrado
Eliminar 15

Ninguno de los hermanos pueden cederle una clave, por lo que
deben combinarse los tres nodos para formar uno que quedar
como raz
3
0
10 15 20 25
32 35 40 45
1
0
2
0
2
5
3
0
3
2
3
5
4
0
4
5
4.3.4 rboles B*
Tarea
Cantidad mxima de claves por nodo 5.
Cantidad mxima de descendientes por nodo = 6
Cantidad mnima de claves por nodo (excepto la raz) = 3.
Cantidad mnima de descendientes por nodo (excepto la raz y
las hojas) = 4

El tamao mximo
de la raz es de
2*5+1 = 11 claves.
4.3.4 rboles B*
rboles B*
Con el siguiente rbol



Realizar la insercin de: 8, 10, 1, 99, 86, 25, 63, 77, 54, 19, 14
33
17 20 30 49 57 90
4.3.4 rboles B*
Tarea
Insertar 8 y 10

Insertar: 1, 99
33
8 10 17 20 30 49 57 90
30
1 8 10 17 20 33 49 57 90 99
4.3.4 rboles B*
Tarea
Insertar 86

Insertar 25, 63


Insertar 77

17 49
1 8 10 20 30 33
57 86 90 99
4.3.4 rboles B*
17 49
1 8 10 20 25 30 33
57 63 86 90 99
17 57
1 8 10 20 25 30 33 49
63 77 86 90 99
Tarea
Insertar 54 y 19

Insertar 14
4.3.4 rboles B*
20 57
1 8 10 17 19 25 30 33 49 54
63 77 86 90 99
17 30 57
1 8 10 33 49 54
63 77 86 90 99
1 8 10 17 19 20 25 30 33 49 54
19 20 25
Tarea
Realizar la baja de: 49, 67, 54, 10, 18, 19, 57, 75, 33, 99,
58
86 90 99
1 3 8 10
11 19 30
67 70 73
77 79 80
14 17 18
65 75 85
57
31 33 40 49 54
20 25 28
58 59 60 63 64
4.3.4 rboles B*
OI. Ventajas
Rapido acceso. Evita examinar archivo por archivo para
recuperar algn registro buscado; por lo tanto se ahorra tiempo.
El sistema se encarga de relacionar la posicion de cada registro
con su contenido por medio del area de indices.
Permite un acceso secuencial y directo de una forma aceptable.
Permite acceder por varias claves.
El espacio de almacenamiento es mayor que en las otras
organizaciones.
Se pueden actualizar los registros en el mismo archivo sin
necesidad de crear uno nuevo
4.3.6 Organizacin indizada
OI. Desventajas
Necesidad de espacio adicional para el area de indices.
Desaprovechamiento de espacio que resulta al quedar huecos
intermedios libres despues de sucesivas actualizaciones.
Tiene tendencia a que aumente el tiempo medio de acceso a los
registros, cuando se producen muchas altas nuevas con claves
que hay que intercalar entre las existentes, por el ordenamiento.
Aumenta el tiempo de acceso a los registros

4.3.6 Organizacin indizada

Vous aimerez peut-être aussi