Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arbol B PDF
Arbol B PDF
DOUGLAS COMER.
----------------------
_________________________
INTRODUCCIN. Una peticin secuencial requiere una bs-
queda para examinar el fichero, una carpe-
Las facilidades del almacenamiento secun- ta cada vez. De distinta manera, una peti-
dario disponible en un gran sistema infor- cin aleatoria implica, que la bsqueda
mtico, permiten al usuario almacenar, guiada por las etiquetas de los cajones y
actualizar, y retirar datos de grandes colec- carpetas, necesita solo extraer una carpeta.
ciones de informacin llamadas ficheros.
Un ordenador debe recuperar un elemento Asociado con un gran fichero de acceso
y colocarlo en memoria principal, antes de aleatorio en un sistema informtico est un
que pueda ser procesado. Para hacer un ndice, que como las etiquetas sobre los
buen uso de los recursos del ordenador, cajones y las carpetas del archivo escrito-
este debe organizar los ficheros inteligen- rio, acelera la recuperacin por direccionar
temente, haciendo los procesos de recupe- la bsqueda a la pequea parte del fichero
racin de manera eficiente. que contiene el elemento deseado. La Fi-
gura 1, representa un archivo y su ndice.
La eleccin de una buena organizacin Un ndice puede estar fsicamente integra-
de ficheros depende del tipo de recupera- do con el fichero, como las etiquetas de las
cin que va a ser realizada. Hay dos clases carpetas de los empleados, o fsicamente
generales de ver la recuperacin que pue- separados, como las etiquetas de los cajo-
den ser ilustradas por los siguientes ejem- nes. Normalmente, el ndice mismo es un
plos: fichero. Si el fichero ndice es grande, otro
ndice puede ser construido sobre la parte
-Secuencial: "De nuestro archivo de em- ms alta de este para favorecer una recupe-
pleados, preparar una lista de los nombres racin mas rpida y as sucesivamente. La
y apellidos de todos los empleados ", y jerarqua resultante es similar a la del ar-
chivo de empleados, donde el ndice mas
-Aleatorio: "De nuestro archivo de em- alto esta formado de etiquetas sobre cajo-
pleados, extraer la informacin sobre el nes y el ndice de siguiente nivel consiste
empleado J. Smith ". en etiquetas sobre carpetas.
----------------------------------------
proporcin entre el espacio requerido por Hay que tener en cuenta que en un r-
el ndice y el espacio requerido por la in- bol binario de bsqueda, la rama elegida
formacin asociada. en un nodo depende del resultado de una
comparacin de la clave buscada y de la
clave almacenada en el nodo. Si la clave
1. EL RBOL-B BSICO buscada es menor que la clave almacenada,
se elige la rama de la izquierda; si es ma-
El rbol-B tiene una corta pero importante yor, se sigue por la rama de la derecha. La
historia. A finales de los aos 60, fabri- Figura 2 muestra parte de un rbol utili-
cantes de computadoras y grupos de inves- zado para almacenar los nmeros de em-
tigacin independientes, compitieron en el pleados, y el camino elegido para la clave
desarrollo de sistemas de archivo de pro- de bsqueda 15.
psito general y los llamados "mtodos de
acceso" para sus mquinas. La Sperry Uni- Veamos ahora la Figura 3 en la que se
vac Corporation (junto con la Case Wes- muestra un rbol de bsqueda modificado
tern Reserve University), H. Chiat, M. con dos claves almacenadas en cada nodo.
Schwartz, y otros desarrollaron e imple- La bsqueda se realiza mediante la elec-
mentaron un sistema, el cual llevaba a cabo cin de uno de los tres caminos de cada
las operaciones de insercin y bsqueda de nodo. En el dibujo, la clave buscada, 15, es
una manera afn al mtodo del rbol-B que
describiremos brevemente. Independien-
temente, B. Cole, S. Radcliffe, M. Kauf-
man, y otros desarrollaron un sistema simi-
lar al de Control Data Corporation (junto
con la Stanford University). R. Bayer y E.
McCreight, entonces en los Boeing Scien-
tific Research Labs, propusieron un meca-
nismo externo para el ndice con un costo Figura 2. Parte de un rbol binario de bsqueda
relativamente bajo para la mayora de las para nmeros de empleado. El camino seguido
operaciones definidas en la seccin ante- para la bsqueda 15 est sobreimpreso.
rior; lo llamaron rbol-B (1) [ BAYE72].
se encuentra una clave exactamente igual vamente, los rboles-B tienen una forma
(xito) o hasta que se llega a una hoja como la que se muestra en la Figura 6. El
(error). camino ms largo en un rbol-B de n cla-
ves contiene como mucho unos logd (n)
En general, cada nodo en un rbol-B de nodos, siendo d el orden del rbol-B. Una
orden d contiene como mucho 2d claves y operacin de bsqueda puede visitar n no-
2d+1 punteros, como se observa en la Fi- dos en un rbol no balanceado indexando
gura 4. De hecho, el nmero de claves un fichero de n registros, pero en un fiche-
puede variar de un nodo a otro, pero cada ro igual con estructura de rbol-B de or-
uno debe tener al menos d claves y d+1 den d no visitara mas de 1+logd(n) nodos.
punteros. Como consecuencia, cada nodo Puesto que cada visita requiere un acceso
est completo a la mitad de su capacidad. al dispositivo de almacenamiento secunda-
En la implementacin ms usual un nodo rio, el balanceo del rbol tiene un gran
forma un registro del fichero ndice, tiene ahorro potencial. Se han propuesto varios
una longitud fija capaz de almacenar 2d esquemas para rboles balanceados (ver
claves y 2d punteros, y contiene informa-
cin adicional, que nos informa de cuntas
Figura 7. (a) Un rbol-B de orden 2, y (b) el mismo rbol, tras la insercin de la clave 57, Ntese que el
nmero de claves en el nodo raz puede ser menos que d, el orden del rbol-B. Todos los dems nodos
tienen como mnimo d claves.
Por lo tanto, los rboles-B tienen las ceso de bsqueda desde la raz para
ventajas del esquema de un rbol ba- localizar la hoja apropiada para la inser-
lanceado, mientras evita algunos de los cin. Entonces se realiza la insercin, y
costes (en tiempo) de mantenimiento. se restablece el balanceado del rbol
mediante un procedimiento, el cual se
Insercin aplica desde la hoja hacia la raz. Refi-
rindonos a la Figura 7a, uno puede ver
Para ilustrar cmo se mantiene el balan- que cuando inserta la clave 57" la bs-
ceado durante la insercin, considrese queda termina sin xito en la cuarta
la Figura 7a la cual muestra un rbol-B hoja. Ya que la hoja puede alojar otra
de orden 2. Puesto que cada nodo en un clave, se inserta la clave nueva simple-
rbol-B de orden d contiene entre d y 2d mente, dando lugar al rbol que se
claves, cada nodo del ejemplo tiene muestra en la Figura 7b. Si se inserta la
entre 2 y 4 claves. En cada nodo debe clave 72", sin embargo, habra compli-
existir un indicador (que no est refleja- caciones porque la hoja correspondiente
do en la figura) para informar sobre el ya est llena. Cuando quiera que una
nmero de claves que tiene el nodo. La clave necesite insertarse en un nodo que
insercin de un nuevo nodo requiere un ya est lleno, ocurre una divisin: se
proceso de dos pasos. Primero, un pro- divide el nodo como se muestra en la
Borrado
Figura 10. (a) Parte de un rbol-B antes, y (b) despus de la redistribucin de nodos entre dos vecinos.
Ntese que la posicin final de la clave intermedia, 50. La redistribucin en nodos de igual tamao
ayuda a evitar underflow en sucesivos borrados.
quiere una mera bsqueda por la hoja reside en una hoja. La Figura 9 de-
ms a la izquierda, en el subrbol dere- muestra estas relaciones.
cho del ahora slot vaco. Como en un
rbol binario, el valor requerido siempre
Una vez que el slot vaco ha sido tran algoritmos de insercin y borrado
"movido" a una hoja, debemos verificar en BAYE72. Ejemplos simples
para ver que por lo menos quedan d programados en PASCAL son
claves. Si quedan menos de d claves en proporcionados por Wirth (WIRTH76).
la hoja, entonces se dice que ocurre
underflow, y se hace necesaria una re-
distribucin de las claves. Para restaurar
el equilibrio (y la propiedad de los r-
boles-B de que cada nodo tiene por lo
menos d claves) slo se necesita una
clave que se puede obtener pidindola
prestada de una hoja vecina. Pero ya Figura 11. (a) Borrado que origina una conca-
que la operacin requiere por lo menos tenacin, y (b) el rbol re-balanceado.
dos accesos a almacenamiento secunda-
rio, una mejor redistribucin dividira 2. COSTE DE LAS OPERACIONES
uniformemente las llaves restantes entre
los dos nodos vecinos, disminuyendo el Ya que visitar un nodo en el rbol-B
coste de borrados sucesivos del mismo conlleva acceder a memoria secundaria,
nodo. La Redistribucin viene ilustrada el nmero de nodos que se visiten en
por la Figura 10. cada operacin sobre el rbol es lo que
nos da la medida de su coste. Bayer y
Por supuesto, la distribucin de cla- McCreight [Baye72] dan un anlisis
ves entre dos vecinos basta slo si hay preciso del coste de las operaciones de
por lo menos 2d claves para distribuir. insertar, borrar y recuperar; tambin nos
Cuando quedan menos de 2d valores, dan resultados experimentales, hacia lo
debe ocurrir un encadenamiento. Duran- que tienden los dispositivos actuales.
te un encadenamiento, se combinan las Knuth [KNUT73] tambin nos da las
claves simplemente en uno de los no- tendencias de coste de realizar opera-
dos, y se desecha el otro (observar que ciones sobre un rbol-B pero usando
ese encadenamiento es lo contrario del una definicin algo diferente. En el si-
fraccionamiento). Ya que queda un ni- guiente prrafo se da una explicacin de
co nodo, la clave que separa los dos los lmites asintticos del coste.
nodos en el antecesor ya no es necesa-
ria; tambin es aadida a la nica hoja Coste de una recuperacin
restante. La Figura 11 muestra un
ejemplo de encadenamiento y la situa- Primero, hay que considerar el coste de
cin final de la clave separadora. la operacin de bsqueda. Excepto para
la raz, cada nodo en un rbol-B tiene al
Cuando algn nodo pierde una clave menos d descendientes directos ya que
separadora debido a un encadenamiento hay entre d y 2d descendientes por
de dos de sus hijos, tambin puede cau- nodo; la raz tiene al menos 2 descen-
sar underflow y requiere redistribucin diente. As que el nmero de nodos en
de uno de sus vecinos. El proceso de los niveles 2 0, 1, 2, ..., deben ser por lo
encadenamiento puede forzar encade- menos 2, 2d, 2d*d, 2d*d*d, ... Todas
namiento en el siguiente nivel hacia las hojas tienen que estar a la misma
arriba, y as sucesivamente hasta el lle- altura h, por lo tanto hay nodos con al
gar a la raz. Finalmente, si se encade-
nan los descendientes de la raz, stos 2
La raz de un rbol se encuentra enel nivel 0;
forman una nueva raz, decrementando los hijos de un nodo de profundidad i-1 se en-
la altura del rbol-B en 1. Se encuen- cuentran a profundidad i.
Adems, el coste esconde el factor que la clave deseada. Por ejemplo, la clave
siempre est presente y que crece de ms pequea se encuentra en la hoja de
igual manera que crece el volumen de ms a la izquierda y para encontrarla
datos a transferir. Para terminar, cada necesitamos acceder a todos los nodos a
dispositivo tiene varios tamaos de pis- lo largo del camino que se establece
ta fijados, los cuales deben de ajustarse entre la raz hasta la hoja, tal y como se
para evitar el desperdicio del espacio muestra en la Figura 12.
en memoria. De esta manera en la prc-
tica el tamao ptimo del nodo depen- Qu es lo que se puede hacer para
de, y mucho, de las caractersticas del mejorar el coste de realizar la siguiente
sistema y de los dispositivos en los que operacin? Esta pregunta y otras se con-
se encuentre el fichero almacenado.
sido eliminado del almacenamiento se- comparacin con los beneficios, espe-
cundario. El sugiere usar una bsqueda cialmente ya que el almacenamiento
binaria en vez de una bsqueda lineal secundario es econmico y est hecho
para localizar para localizar el puntero para fijar la longitud de los nodos.
correcto al descendiente. Knuth
[KNUT73] seala que una bsqueda
binaria puede ser til si el nodo es gran-
de, mientras que una bsqueda secuen- RBOLES-B*
cial puede ser lo mejor para nodos pe- Quizs el trmino ms utilizado en la
queos. No hay razn para limitar la literatura de los rboles-B es rbol-
bsqueda interna a bsqueda secuencial B* 3 . En realidad, Knuth [KNUTH73]
o binaria; puede usarse cualquier nme- define un rbol-B* como un rbol-B en
ro de tcnicas de KNUT73. En particu- el cual cada nodo est al menos 2/3 lle-
lar, Maruyama y Smith [MARU77] no (en vez de solo la mitad). La inser-
mencionan una tcnica de extrapolacin cin del rbol-B* emplea un esquema
que ellos llaman la bsqueda de la raz de redistribucin local para retrasar la
cuadrada. divisin hasta que dos nodos hermanos
En sus tratamientos generales de estn llenos. Entonces los dos nodos se
creacin por ndices para un fichero, dividen en tres cada uno lleno en 2/3
Ghosh y Senko [GHOS69] consideran partes. Este esquema garantiza que la
el uso de una bsqueda de interpolacin utilizacin del almacenamiento es al
para eliminar el acceso a un almacena- menos del 66%, mientras que solamente
miento secundario. El anlisis presenta- requieren una moderada modificacin
do generaliza para rboles-B e indica de los algoritmos de mantenimiento.
que esto puede tener un coste efectivo Esto debe ser sealado ya que el incre-
para eliminar algunos de los niveles de mento en la utilizacin del almacena-
ndices justo por encima de las hojas. miento tiene el efecto lateral de acelerar
Desde una bsqueda terminara con la bsqueda ya que la altura del rbol
varias posibles hojas candidatas, la co- resultante es ms pequea.
rrecta sera encontrada por una "estima-
cin" basada en el valor de la clave y la El trmino rbol-B* ha sido utilizado
distribucin de la clave dentro del fiche- frecuentemente para otras variaciones
ro. Cuando la estimacin produzca la de rboles-B como tambin sugiere
hoja equivocada, podra llevarse a cabo Knuth [KNUTH73, WEDE74,
una bsqueda secuencial. Aunque algu- BAYE77]. Para evitar confusin, noso-
nas estimaciones podran perderse, el tros usaremos el trmino rbol-B+ para
mtodo resultara sobre el promedio. la implementacin no identificada de
Knuth.
Knuth [KNUTH73] sugiere una va-
riacin del rbol-B la cul tiene diver- RBOLES-B+
sos "rdenes" para cada profundidad. En un rbol-B+, todas las claves estn
Parte de la motivacin viene de su ob- en las hojas. Los niveles ms altos, que
servacin de que los punteros en los estn organizados como un rbol-B,
nodos hojas gastan espacio y deberan constan slo de un ndice, un mapa para
ser eliminadas. Esto tambin da sentido permitir una rpida localizacin de las
a tener una forma diferente para la raz
3
(la cual est rara vez muy llena en com- Un caso entretenido es el "algoritmo de bs-
queda de un rbol-B*", el cual es sobre un
paracin con los otros nodos). Los
algoritmo de un rbol de bsqueda llamado B*
costes de mantenimiento para esta im- [BERL78]
plementacin parecen bastante altos en
Figura 13. Un rbol-B+ con las partes ndice y claves separadas. Las operaciones por clave empiezan en
la raz como en un rbol-B; el proceso secuencial empieza en la hoja ms a la izquierda.
Figura 14. (a) Un rbol-B+ y (b) un rbol-B+ despus del borrado de la clave 20. Incluso despus del
borrado, la clave 20 vale todava como valor separador en la parte ndice.
Figura 15. Parte de un rbol-B Prefijo. La entrada ndice e es suficiente para diferen-
ciar computador de electrnico.
La tcnica ms simple para elegir el peado en una pgina del espacio de di-
prefijo nico ms corto de la clave para recciones virtual. Entonces el usuario
servir como separador da resultado. En trata el rbol-B como si estuviera en
el ejemplo, el prefijo ms corto de 'elec- memoria. Los accesos a los nodos (p-
trnico' es suficiente para distinguirlo ginas) que no estn en memoria, causan
de 'computador'. Algunas veces, sin al sistema una recuperacin de pgina
embargo, la tcnica del prefijo no fun- desde memoria secundaria.
ciona bien: eligiendo el prefijo ms cor-
to de 'programadores' para distinguirlo Muchos algoritmos de paginacin
de 'programador' no resulta del todo eligen sustituir la pgina menos usada
correcto. En cada uno de los casos, Ba- cuando ha de traer una pgina nueva.
yer y Unterauer sugieren explorar unas En trminos del rbol-B, los nodos ms
pequeas claves cercanas para obtener activos son esos ms prximos a la raz;
una buena pareja para el algoritmo de estos procuran quedarse en memoria.
separacin. Mientras esto pueda dejar En realidad Bayer y McCreight
los nodos desigualmente cargados, te- [BAYE72] y Knuth [KNUT73] sugieren
niendo no mucha cantidad de claves ambos un mecanismo LRU para rbo-
extra en uno de los nodos, no afectar al les-B cuando no se usa paginacin por
coste global. hardware. Al menos, la raz debera
permanecer en memoria principal ya
rboles-B virtuales que es accedida por cada bsqueda.
Muchos de los sistemas de computado- As, los rboles-B virtuales tienen las
res emplean un esquema de gestin de siguientes ventajas:
memoria que suministra a cada uno de 1.- El hardware especial realiza transfe-
los usuarios una extensa memoria vir- rencias a alta velocidad
tual. El espacio de direcciones de la 2.- El mecanismo de proteccin de me-
memoria virtual por usuario est dividi- moria asla de otros usuarios, y
do en pginas que son almacenadas en 3.- Las partes del rbol accedidas fre-
memoria secundaria y cargadas en me- cuentemente, deberan permanecer
moria principal automticamente cuan- en memoria.
do son referenciadas. Esta tcnica, lla-
mada Pgina Demandada o Por Falta de Compresin
Pgina, multiplexa la cantidad de me-
moria real de los usuarios y al mismo Otras tcnicas varias de implementa-
tiempo proporciona proteccin para cin han sido sugeridas para mejorar el
asegurar que cada uno de los usuarios funcionamiento de los rboles-B. Wag-
no interferir con datos de otro. Adems ner [WAGN73] resume varias de estas
el hardware de propsito especial mane- incluyendo los conceptos de claves y
ja la paginacin, as que las transferen- punteros comprimidos 4 .
cias a y desde memoria son realizadas a
alta velocidad. Los punteros pueden ser comprimi-
dos usando una base/forma de reempla-
La disponibilidad del hardware de zamiento de direcciones de modo mejor
demanda de pgina sugiere una intere- que el modo de direccionamiento abso-
sante implementacin de rboles-B. A luto. Un modo con punteros comprimi-
travs de una cuidadosa cuota o racin,
cada nodo del rbol-B puede ser ma- 4
Ver tambin AUER76
Figura 16. Un nodo con punteros comprimidos. Para obtener el puntero i-simo, se suma el valor base al
offset i-simo.
Figura 18. Un archivo VSAM con datos reales (informacin asociada) almacenados en sus hojas
Figura 19. Formato de un intervalo de control. El campo de control describe el intervalo mismo, y el
formato de los campos de datos.
man un ndice y una conjunto secuen- Aunque VSAM presenta al usuario una
cial de rbol-B+ como se ha descrito; las vista de los datos lgica (o independien-
hojas contienen registros de datos ac- te de la mquina), la organizacin de
tuales. En terminologa VSAM , una ficheros debe acomodarse a los recursos
hoja se llama intervalo de control y subyacentes si se quieren realizar las
forma la unidad bsica de datos transfe- transacciones eficientemente. Por tanto,
ridos en una operacin Entrada/Salida. el tamao mximo de un intervalo de
Cada intervalo de control contiene uno control est limitado por la mayor uni-
o ms registros de datos as como in- dad de datos que el hardware puede
formacin de control que describe el transferir en una operacin. Adems el
formato del intervalo. La Figura 19 ajuste de todos los intervalos de control
muestra los campos de un intervalo de asociados con una secuencia de nodos
control. (llamada rea de control) debe caber en
un cilindro de la unidad de almacena-
Mejoras de Realizacin
Figura 21. El catlogo Maestro VSAM, que sirve como directorio para todos los ficheros VSAM, es un
archivo VSAM en s mismo.