Está en la página 1de 22

El Omnipresente rbol-B.

DOUGLAS COMER.

Departamento de Ciencia Computacional, Universidad de Purdue, West Lafayette, Indiana 47907

----------------------

Los rboles B han llegado a ser, de hecho, un estndar para la organizacin


de ficheros. Los ficheros dedicados a usuarios, a sistemas de base de datos, y
a mtodos de acceso de propsito general, han sido propuestos e implementados
usando rboles-B.

Palabras clave y Expresiones: rbol-B, rbol-B*, rbol-B+, organizacin de fichero, ndice.

Categoras CR: 3.73 3.74 4.33 4.34

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

Podemos imaginar un escritorio lleno con


tres cajones de carpetas, una carpeta para
cada empleado. Los cajones pueden estar
etiquetados "A-G", "H-R", y "S-Z", mien-
tras que las carpetas pueden estar clasifi-
cadas por los apellidos de los empleados.
2z El Omnipresente rbol-B

CONTENIDO Han sido propuestas muchas tcnicas


para la organizacin de un fichero y su
INTRODUCCIN
ndice; Knuth [KNUTH73] proporciona un
Operaciones sobre un fichero examen de las bsicas. Aunque un simple
esquema no puede ser el ptimo para todas
1. EL RBOL-B BSICO las aplicaciones, la tcnica de organizacin
Equilibrado de un fichero y su ndice llamada rbol-B
Insercin
Borrado
ha llegado a ser ampliamente utilizada. El
rbol-B es, de hecho, la organizacin es-
2. EL COSTE DE OPERACIONES tndar para ndices en un sistema de base
Costes de recuperacin de datos. Este artculo, esta hecho para los
Costes de insercin y borrado profesionales de la informtica que han
Procesamiento secuencial
odo hablar sobre los rboles-B y quieren
3. VARIANTES DE RBOL-B alguna explicacin o consejo para una lec-
rboles-B* tura mas rpida, comparando varias varia-
rboles-B+ ciones del rbol-B, especialmente el rbol-
rboles-B virtuales B+, mostrando porque ha llegado a ser tan
Compresin
popular. Examina la literatura sobre rbo-
Entradas de longitud variable
rboles-B binarios les-B incluida en artculos recientes no
Arboles 2-3 y resultados tericos mencionados en libros de texto. En suma,
discute un mtodo de acceso a fichero, de
4. RBOLES-B EN UN ENTORNO propsito de general basado en el rbol-B.
MULTIUSUARIO
Seguridad
El punto de comienzo de nuestra discu-
5. UN MTODO DE ACCESO DE PROPSITO sin es una estructura de almacenamiento
GENERAL USANDO RBOLES-B. interno llamada rbol binario de bsqueda.
Mejoras del rendimiento En concreto, empezamos con el equilibra-
Directorio de fichero estructurado en rbol do de los rboles binarios de bsqueda y el
Otras facilidades VSAM
porqu de su garantizado bajo coste de
RESUMEN recuperacin. Para un examen de los rbo-
AGRADECIMIENTOS les binarios de bsqueda y otros mecanis-
REFERENCIAS

----------------------------------------

Las jerarquas naturales, como la for-


mada al considerar los apellidos como en-
tradas de ndices, no siempre produce el
mejor rendimiento cuando se usan en un
sistema informtico.
Normalmente, una nica clave es asig-
Figura 1. Un archivo y su ndice en almacenamien-
nada a cada elemento del fichero, y toda la to secundario
recuperacin se solicita especificando la
clave. Por ejemplo, cada empleado podra mos de almacenamiento interno, la lectura
tener asignado un nico numero de em- se refiere a SEVE74 y NIEV74. NIEV74.
pleado que identificara que empleado esta Tambin explica los trminos de la teora
registrado. En vez de clasificar los cajones de grafos "rbol", "nodo", "contorno", "ra-
del escritorio "A-G", etc., usaran rangos z", "camino", y "rama" que sern usados
de nmeros de empleados como "0001"- en toda la discusin.
"3000".

Computing Surveys, Vol. 11, N 2, Junio 1979


3z El Omnipresente rbol-B

ves tienen un orden natural, digamos alfa-


El recordatorio de esta introduccin btico, as que podemos referirnos al orden
presenta un modelo de los procesos de de la secuencia de claves de un archivo.
recuperacin y perfila las operaciones de
fichero a considerar. La Parte 1 presenta el Las operaciones que un usuario dirige
rbol-B bsico propuesto por Bayer y contra un archivo son insercin, borrado,
McCreight, dando los mtodos para la in- recuperacin y actualizacin de registros.
sercin, borrado, y localizacin de elemen- Adems, los usuarios frecuentemente pro-
tos. As, para cada tipo de operacin, la cesan el archivo secuencialmente, en el
Seccin 2 examina el coste y concluye que orden de la secuencia de claves, empezan-
el procesamiento secuencial puede ser ca- do en un punto determinado. A menudo,
ro. En muchos casos, cambiar la imple- ese punto de comienzo es el principio del
mentacin puede abaratar los costes. La archivo. Un conjunto de funciones bsicas
Seccin 3 muestra variaciones del rbol-B que soportan tales operaciones es:
que han sido desarrollados para que esto
ocurra. Ampliando sobre las variaciones de insertar: aade un nuevo registro, (ki, i),
rbol-B, la Seccin 4 revisa los problemas verificando que ki es nico,
de mantenimiento de un rbol-B en un borrar: borra el registro (ki, i) dado por
entorno multiusuario y perfila soluciones ki,
para problemas de concurrencia y seguri- encontrar: recupera i asociada a ki,
dad. Finalmente, la Seccin 5 presenta un siguiente: recupera y + 1 siendo y la lti-
mtodo de acceso a fichero, de propsito ma que se recuper (por ejemplo, en el
general de IBM que se basa en el rbol-B. proceso secuencial de un archivo.)

Operaciones sobre un Fichero Para una determinada organizacin del


Para los propsitos de este artculo, pen- archivo, hay costos asociados con el man-
samos en un fichero como un conjunto de tenimiento del ndice y con la ejecucin de
n registros, cada uno de la forma r=(ki,i), cada una de estas funciones. Ya que el
en el llamamos ki a la clave para el -isimo ndice est destinado a la velocidad de re-
registro, y i la informacin asociada. Por cuperacin, el tiempo de proceso es nor-
ejemplo, la clave para un registro de em- malmente tomado como la principal medi-
pleados podra ser un nmero de empleado da del coste. Con la tecnologa del hardwa-
de cinco dgitos, mientras que la informa- re actual, el tiempo requerido para acceder
cin asociada podra consistir en el nom- al almacenamiento secundario es el com-
bre, direccin, sueldo, y numero de subor- ponente principal del tiempo total requeri-
dinados del empleado. Asumimos que la do para procesar los datos. Adems, en la
clave ki solamente identifica al registro ri. mayora de los accesos aleatorios a un
Adems, asumimos que aunque la clave es dispositivo se transfiere una cantidad fija
mucho ms corta que la informacin aso- de datos por operacin de lectura, as que
ciada, el conjunto de todas las claves es el tiempo total requerido est linealmente
demasiado grande para encajar en la me- relacionado con el nmero de lecturas. Por
moria principal. Estas suposiciones impli- eso, el nmero de accesos al almacena-
can que si los registros son recuperados miento secundario sirve como una razona-
aleatoriamente mediante las claves, sera ble medida del costo en la evaluacin de
ventajoso construir un ndice para una re- las tcnicas del ndice. Otro coste menos
cuperacin ms rpida. Ya que el conjunto importante incluye el tiempo en procesar
de todas las claves no encaja en la memo- los datos una vez han sido puestos en la
ria principal, el propio ndice debe ser ex- memoria principal, la utilizacin del espa-
terno. Finalmente, asumimos que las cla- cio de almacenamiento secundario, y la

Computing Surveys, Vol. 11, N 2, Junio 1979


4z El Omnipresente rbol-B

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

Esta seccin presenta las estructuras de


datos bsicas del rbol-B y los algoritmos
de mantenimiento como una generaliza-
cin de los rboles de bsqueda binaria en
la cual salen ms de dos caminos de un
mismo nodo; la siguiente seccin discute
sobre lo costos de cada operacin. Otras
introducciones generales pueden encon- Figura 3. Un rbol de bsqueda con 2 claves y 3
trarse en HORO76, KNUT73, y WIRT76. ramas por nodo. El camino para la bsqueda 15
est sobreimpreso.

menor que 42 por lo que tomaremos el


(1)
El origen del "Arbol B" nunca ha sido explicado por nodo ms a la izquierda de los de la raz.
los autores. Como podemos ver, "balanced" (equilibra- Para las claves entre 42 y 81 se elige el
do), "broad" (extenso), o "bushy" (espeso) podran
aplicarse. Otros sugieren que la "B" representa a Boeing.
descendiente central, mientras que elegi-
A causa de estas contribuciones, sin embargo, parece remos el ms a la derecha para aquellas
apropiado pensar en los rboles-B como rboles - claves mayores de 81. El procedimiento de
"Bayer". decisin se repite en cada nodo hasta que

Computing Surveys, Vol. 11, N 2, Junio 1979


5z El Omnipresente rbol-B

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 4. Un nodo en un rbol-B de orden d con


2d claves y 2d + 1 punteros.

estn almacenadas correctamente en el


nodo.

Normalmente, los nodos con gran nmero


de claves no pueden ser almacenados en
memoria principal y requieren accesos a
memoria secundaria cada vez que es nece-
sario consultarlos. Ms adelante, veremos
como, bajo un criterio de coste, mantener
ms de una clave por nodo disminuye el
coste de las operaciones de bsqueda, in-
sercin, y borrado. Figura 5. (a) Un rbol no balanceado con muchos
caminos largos y (b) un rbol balanceado con todos
La belleza de los rboles-B reside en los los caminos hasta las hojas exactamente de la mis-
ma longitud.
mtodos para insertar y borrar registros,
que dejan siempre el rbol balanceado. Al NIEV74, FOST65, KARL76 como ejem-
igual que en el caso de los rboles binarios plos). Cada esquema requiere un tiempo de
de bsqueda, inserciones aleatorias de re- cmputo para realizar el balanceo, por lo
gistros dentro de un fichero pueden dejar el que el ahorro en las operaciones de recupe-
rbol sin balancear. Mientras que un rbol racin debe ser mayor que el tiempo de
no-balanceado como el que se muestra en balancearlo. El esquema de balanceo del
la Figura 5a, tiene algunas ramas ms lar- rbol-B restringe los cambios en el rbol a
gas que otras, un rbol balanceado, como una sola rama desde las hojas al raz, as
el mostrado en la Figura 5b, tiene todas que no se puede producir una 'fuga' en la
las hojas a la misma profundidad. Intuiti- raz. Adems el mecanismo de balanceo,

Computing Surveys, Vol. 11, N 2, Junio 1979


6z El Omnipresente rbol-B

utiliza almacenamiento extra para reducir


los costes de balanceo, (supuestamente el
almacenamiento secundario es barato
comparado con el tiempo de bsqueda).
Figura 6. La forma de un rbol-B de orden d como
ndice de un archivo con n registros.

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

Computing Surveys, Vol. 11, N 2, Junio 1979


7z El Omnipresente rbol-B

valor restante se sube al nodo padre


donde sirve como un separador. Nor-
malmente el nodo padre alojar una
clave adicional y el proceso de inser-
cin termina. Si ocurriera que el nodo
padre estuviera lleno tambin, entonces
se aplicara el mismo proceso de divi-
Figura 8. (a) Una hoja y su antecesor en un sin de nuevo. En el peor de los casos,
rbol-B, y (b) el mismo rbol tras la insercin la divisin se propaga todo el camino
de la clave 72. cada nodo conserva entre 2 y 4 hasta la raz y el rbol aumenta en altura
claves (d y 2d).
un nivel. De hecho, un rbol-B slo
incrementa en altura debido a una divi-
sin hacia la raz.

Borrado

El borrado en un rbol-B tambin re-


quiere una operacin de bsqueda para
localizar el nodo exacto. Hay entonces
dos posibilidades: la clave que se quiere
borrar reside en una hoja, o la clave
reside en un nodo interno. Un borrado
Figura 9. El borrado de la clave 17 requiere
encontrar la siguiente clave en secuencia, 21, de un nodo interno requiere que se en-
e intercambiarla con la posicin vacante. La cuentre una clave adyacente y cambiarla
siguiente clave siempre est en la hoja ms a la en la posicin que se dej vacante de
izquierda del subrbol apuntado por el puntero manera que est dispuesto para trabajar
derecho de la posicin vaca. correctamente. Localizar una clave ad-
yacente en una secuencia de claves re-
Figura 8. De las 2d+1 claves, se ponen
las d ms pequeas en un nodo, las d
mayores se ponen en otro nodo, y el

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

Computing Surveys, Vol. 11, N 2, Junio 1979


8z El Omnipresente rbol-B

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.

Computing Surveys, Vol. 11, N 2, Junio 1979


9z El Omnipresente rbol-B

los rboles B muestran un bajo coste en


h
h d -1 la recuperacin de claves tanto en el
i sentido terico como en el prctico.
d =
y= 0 2d -1
Coste de Insercin y del Borrado
menos d claves cada uno. La altura de
un rbol con un total de n claves, nece- El borrado o la insercin de una opera-
sita cumplir: cin podra requerir, adems del coste
de la operacin de bsqueda cuando se
2d( dh - 1 ) / (d -1) < = n avanza por el rbol en su marcha atrs,
un coste adicional que es el acceso a
Si lo simplificamos nos queda memoria secundaria. En resumen, los
costes como mucho se duplican, por lo
2dh < = n + 1,
TABLA I : En la lnea de arriba van los nme-
o ros de hacia dnde tienden los costes de acceso
en el peor de los casos, para varios tamaos de
h <= log d ( (n + 1) / 2 ) nodos y varios tamaos de ficheros.

De este modo, el coste de procesar una ______________________________________


operacin de bsqueda crece de forma
logartmica en relacin con el tamao
del fichero.

La tabla I muestra cmo puede ser


de razonable el coste logartmico, inclu-
so para fichero de gran tamao. En un
rbol-B de orden 50 que contenga las
claves que indexan un fichero de un
milln de registros, se puede realizar que la altura del rbol an domina las
una operacin de bsqueda con 4 acce- expresiones del coste. Por esta razn en
sos como mucho. Mas adelante se ver un rbol-B de orden d que contenga
que esta estimacin es tirando por lo las claves de un fichero de n registros,
alto, tcnicas de implementacin ms las operaciones de insercin y de borra-
simples disminuyen el coste en el peor do llevan un tiempo proporcional a logd
de los casos a 3 accesos y la media da n en el peor de los casos.
un coste an menor.
Ahora se podra explicar la ventaja
Aho et al. [AHO74] nos da otra vi- de que los nodos puedan contener un
sin del coste de las operaciones de gran nmero de claves. A la vez que el
bsqueda en un rbol-B. Nos muestran factor de la rama d se incrementa, tam-
para el modelo de programacin de bin se incrementa la base del logarit-
rboles-de-decisin , en donde la bs- mo, y el coste de las operaciones de
queda se basa en la comparacin entre bsqueda, insercin y borrado decre-
s de los nodos, no se puede idear un cen. Ahora bien, en la prctica el tama-
algoritmo asinttico rpido para los o de un nodo tiene las siguientes res-
accesos. Por supuesto, este modelo de tricciones: La mayora de los sistemas
rbol descarta algunos mtodos como hardware limitan la cantidad de datos
las tcnicas de acceso mediante funcio- que se puede transferir de una sola vez
nes hash [MAUE75]. A pesar de esto, en el acceso a memoria secundaria.

Computing Surveys, Vol. 11, N 2, Junio 1979


10 z El Omnipresente rbol-B

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.

Bayer y McCreight [BAYE72] dan


algunas pautas aproximadas para elegir
el tamao del nodo que se basan en los
retrasos de tiempo rotacional, en la tasa
de transferencia y en el tamao de las Figura 12. La localizacin de la clave ms
claves. Sus experimentos verifican que pequea en la hoja ms a la izquierda de un
los valores que toman sus modelos p- rbol-B. Alcanzarla requiere logd n accesos.
timos se llevan bien a la prctica.
testarn en el apartado siguiente, bajo el
Proceso secuencial ttulo rboles-B+.

Hasta ahora hemos considerado las ope- 3.- RBOLES-B VARIANTES


raciones de acceso directo realizadas a
travs de una clave especfica. Nor- Como en la mayora de las organizacio-
malmente los usuarios desean ver el nes de ficheros, abundan las variaciones
fichero como algo secuencial, haciendo de rboles-B. Bayer y McCreight [Ba-
uso de la operacin NEXT para proce- ye72] sugieren varias alternativas de
sar todos los registros ordenados por la implementacin en sus textos origina-
clave. De hecho el llamado Mtodo de les. Por ejemplo, la condicin de no
Acceso Secuencial Indexado (ISAM) desbordamiento, resultante de un borra-
[GH0S69], asume que el acceso se- do, es tratado sin concatenacin por
cuencial se da con mucha frecuencia. redistribucin de claves desde nodos
adyacentes (a menos que no pueda ob-
Desafortunadamente, un rbol-B no tenerse el nmero de claves requerido).
se desenvuelve bien en entornos con Aplicando la misma estrategia a la con-
procesamiento secuencial, ya que un dicin de desbordamiento puede retras-
simple rbol con pre-orden [KNUT68] ar el corte y eliminacin de la estructura
en el que se obtienen todas sus claves asociada. De este modo, en vez de divi-
en orden, requiere un espacio en memo- dir un nodo en cuanto se llena, las cla-
ria principal de al menos h = log d (n+1) ves pueden distribuirse simplemente
para guardar los nodos, ya que se apilan dentro de un nodo adyacente, dividin-
todos los nodos a lo largo del camino dolo slo cuando dos nodos adyacentes
recorrido desde la raz para evitar que se llenan. Otras variaciones de rboles-
se lean dos veces. Adems el proceso de B se han concentrado sobre las mejoras
la siguiente operacin puede necesitar en costes secundarios. Clampet
el trazado de un camino a travs de un [CLAM64] considera el coste de proce-
gran nmero de nodos antes de llegar a samiento de un nodo una vez ste ha

Computing Surveys, Vol. 11, N 2, Junio 1979


11 z El Omnipresente rbol-B

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

Computing Surveys, Vol. 11, N 2, Junio 1979


12 z El Omnipresente rbol-B

bifurcaciones de ndices y claves. La que se siga la trayectoria correcta a la


Figura 13 muestra la separacin lgica hoja.
de las bifurcaciones de ndices y claves.
Naturalmente los nodos ndices y nodos Durante el borrado en un rbol-B+,
hoja pueden tener diferentes formatos o la habilidad para dejar los valores sin
incluso diferentes tamaos. En particu- clave en la parte de ndices como sepa-
lar, los nodos hoja estn enlazados jun- radores simplifica el proceso. La clave a
tos de izquierda a derecha como se eliminar debe estar siempre en una hoja
muestra. La lista de uniones de hojas de tal modo que su eliminacin sea sim-
esta relacionada como un conjunto su- ple. Mientras la hoja se quede al menos
cesin. Las uniones del conjunto suce- medio llena, el ndice no necesita cam-
sin permiten un procesamiento se- biarse, incluso si una copia de la clave
cuencial fcil. ha sido propagada en l. La Figura 14
muestra como la copia de una clave
Para apreciar totalmente un rbol- borrada puede dirigir todava bsquedas
+
B , uno debe entender las implicaciones a la hoja correcta. Por supuesto, si surge
de tener un ndice independiente y un una condicin de no desequilibrio, la
conjunto sucesin. Considere por un redistribucin o procedimientos de
momento la operacin encontrar. Pro- concatenacin pueden requerir valores
cediendo desde la raz de un rbol-B+ a ajustados en el ndice y tambin en las
travs del ndice a una hoja. Con todas hojas.
las claves incluidas en las hojas, no es Las operaciones de insercin y bs-
un problema qu valores se encuentren queda en un rbol-B+ son procesadas
conforme avanza la bsqueda con tal casi idnticamente a las operaciones de

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.

Computing Surveys, Vol. 11, N 2, Junio 1979


13 z El Omnipresente rbol-B

insercin y de bsqueda en un rbol-B. que parte de los ndices sirven simple-


Cuando una hoja se divide en dos, en mente como un mapa de caminos para
vez de ascender la clave intermedia, el guiar la bsqueda de la hoja correcta;
algoritmo asciende una copia de la cla- no necesita contener todas las claves
ve, reteniendo la clave real en la hoja reales. Cuando las claves consisten en
derecha. Las operaciones de bsqueda una tira de caracteres hay buena razn
difieren de las que se realizan en los para no usar las claves reales como se-
rboles-B en que la bsqueda no para si paradores: las claves reales requieren
una clave en el ndice es igual al valor demasiado espacio. Bayer y Unterauer
por el que se pregunta. En cambio, se consideran como alternativa el B+ rbol
sigue el puntero situado ms a la dere- prefijo.
cha, y se procede de esta forma todo el
camino hasta la hoja. Hemos visto que Supongamos que la secuencia alfab-
un rbol-B que soporta un bajo coste en tica de claves, 'binario', 'computador',
operaciones de bsqueda, insercin y 'electrnico', 'programa' y 'sistema' estn
borrado puede necesitar log n accesos a asignadas o localizadas en un rbol-B
almacenamiento secundario para proce- como el mostrado en la Figura 15. El
der a la siguiente operacin. La imple- separador valora o seala entre las cla-
mentacin de rboles-B+ contiene las ves 'computador', 'electrnico', las cua-
propiedades de coste algortmico para les no necesitan estar ntegramente:
operaciones por clave, pero tiene la basta con alguna cadena de caracteres.
ventaja de requerir como mximo un Por ejemplo, algunos de estas tiras, 'e-
acceso para satisfacer la siguiente ope- lec', 'e' 'd' serviran perfectamente. Ya
racin. Por otra parte, durante el proce- que no se hace diferencia durante el
samiento secuencial de un fichero, nin- proceso de recuperar, debera usarse el
gn nodo es accedido ms de una vez, separador ms corto para as guardar
as que se necesita disponer de espacio espacio. Como los requerimientos de
para un slo nodo en memoria principal. espacio pueden llegar a ser muy peque-
As, los rboles-B+ son adecuados para os, muchas claves pueden estar situa-
aplicaciones que supongan procesa- das en cada nodo, aumentando as los
miento aleatorio y secuencial. elementos y disminuyendo la altura del
rbol. Ya que los rboles son ms cortos
B+ Arboles Prefijo. tiene un menor coste de bsqueda,
usando separadores cortos disminuir el
La separacin de los ndices y conjunto tiempo de acceso as como ahorrar
de secuencias en los rboles-B+ es intui- espacio.
tivamente atrayente. Tngase en cuenta

Figura 15. Parte de un rbol-B Prefijo. La entrada ndice e es suficiente para diferen-
ciar computador de electrnico.

Computing Surveys, Vol. 11, N 2, Junio 1979


14 z El Omnipresente rbol-B

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

Computing Surveys, Vol. 11, N 2, Junio 1979


15 z El Omnipresente rbol-B

dos tiene la forma mostrada en la Figu- VARIABLE


ra 16, donde la direccin de la base est
almacenada cada una en el nodo y un Algunas aplicaciones requieren el alma-
valor de desplazamiento fuera de la cenamiento de datos con claves de lon-
base, sustituyen cada puntero. Para re- gitud variable. Las entradas de longitud
construir el valor actual del puntero, la variable resultan de la comprensin de
base es aadida al desplazamiento de las tcnicas mencionadas anteriormente.
ese puntero. Las tcnicas de compren- McCreight [McCr77] considera el al-
sin de punteros son particularmente macenamiento de rboles con entradas
apropiadas para rboles B virtuales de longitud variable y muestra como
donde los punteros toman unos valores promoviendo claves ms cortas durante
de direcciones altos. una insercin se produce un rbol con
mejor manejo del almacenamiento y
Las claves o separadores de claves mejores tiempos de acceso.
pueden ser comprimidas usando alguna
de las varias tcnicas estndar para mo- rboles-B Binarios
ver redundancias. Ambas, claves com-
primidas y punteros comprimidos, in- Otra variacin propuesta por Bayer
crementan la capacidad de cada nodo y [Baye72a], el rbol-B binario, produce
por lo tanto disminuyen el coste de re- rboles-B conforme a un nivel de alma-
cuperar. A cambio de una disminucin cenamiento. Esencialmente un rbol-B
de acceso a memoria secundaria, incre- binario es un rbol-B de orden 1; cada
menta el tiempo necesario de CPU para nodo tiene 1 2 claves y 2 3 punteros.
buscar un nodo despus de haber sido
ledo. As, los complicados algoritmos Para evitar despilfarrar espacio de
de compresin no pueden ser siempre nodos que solo estn medio llenos, usa-
efectivos. remos una representacin como la mos-
trada en la Figura 17. Los nodos con
Debera advertirse que ambos, con o una clave son representados como en la
sin compresin. pueden ser aplicados a figura 17a, mientras que los de 2 claves
las claves. Por ejemplo Bayer y Unte- son enlazados como en la Figura 17b.
rauer [BAYE77] consideran la compre- Desde el puntero de la derecha del nodo
sin de claves para los prefijos rboles- se apunta a otro de menor valor que la
B+. clave del nodo, usando un bit extra para
hacer esto.
ENTRADAS DE LONGITUD

Figura 16. Un nodo con punteros comprimidos. Para obtener el puntero i-simo, se suma el valor base al
offset i-simo.

El anlisis muestra que la insercin, ra dos o ms accesos a los nodos, igual


borrado y bsqueda solo toman logn para la ms a la izquierda. Usando el
pasos como en un rbol-B, aunque bus- puntero derecho para dos propsitos
car la direccin ms a la derecha requie- hace complicados los algoritmos de

Computing Surveys, Vol. 11, N 2, Junio 1979


16 z El Omnipresente rbol-B

insercin y borrado. Para mantener el de comparaciones y el de nodos accedi-


coste logartmico, debemos tener cuida- dos, respectivamente, como criterio de
do de asegurar que nunca haya dos pun- costes. En cada caso se presenta un al-
teros derechos apuntando a nodos her- goritmo lineal para la construccin p-
manos en una cola. El algoritmo deta- tima de rboles a partir de una lista de
llado para el proceso de rotacin, que claves ordenadas. El resultado en el
previene tres o ms enlaces hermanos Mill77 es extendido para rboles-B en
orden aleatorio.

Yao [Yao78] redacta el resultado de


analizar los rboles 2-3 para un grupo
determinado de claves. El papel da a
ambas un mayor y menor contenido en
Figura 17. Los nodos de un rbol-B y sus co- las expectativas de almacenamiento.
rrespondientes nodos en un rbol-B binario. Extendiendo el anlisis rboles-B de
Cada puntero derecho en el rbol-B binario mayor orden, Yao ha mostrado que la
puede apuntar a un hermano o a un descendien-
expectativa de almacenamiento es ln 2
te.
69%.
sucesivos est descrito en [Baye72a] y
[Wirt76]. Guibas et al. [Guib78] presenta otro
rbol-B proyecta y compara la presenta-
Una extensin de los rboles-B bina- cin de algunas tcnicas de balanceo de
rios, la cual permita a los enlaces iz- rboles. Su importante contribucin
quierdo y derecho apuntar a nodos her- muestra que la particin superior no es
manos, exhibe una simetra carente en siempre requerida. La trampa es partir
los rboles-B binarios. Por tanto, el los nodos que estn casi llenos cuando
nombre de rbol-B Binario Simtrico bajemos el rbol. La prxima seccin
ha sido aplicado para semejar la estruc- muestra la eliminacin de "abajo-
tura de Bayer [Baye73], la cual informa arriba" que puede ser crucial para la
que los rboles-B Binarios contienen la actuacin. Ver Brow78 y Brow78a para
conocida clase de los rboles AVL co- ver los resultados tericos.
mo subclase [Fost65].
4. RBOLES-B EN UN
2-3 rboles y Resultados Tericos. DISPOSITIVO MULTIUSUARIO.

Hopcroft desarroll la nocin de un Si los rboles-B se usan en una base de


rbol 2-3, y explor sus usos a nivel de datos de propsito general, deben per-
almacenamiento. Cada nodo en un rbol mitir algunos requisitos de usuario para
2-3 tiene 2 3 hijos (porque contiene 2 ser procesados simultneamente. Aun-
3 claves). As, un rbol 2-3 es un que algunos son aplicados obligatoria-
rbol-B de orden 1, y viceversa. El pe- mente para la sincronizacin de proce-
queo tamao del nodo hace que los sos, deben interferir uno con el otro. Un
rboles 2-3 sean inapropiados para el proceso podra leer un nodo y el si-
almacenamiento externo, pero si lo son guiente de una lista mientras otro proce-
para el almacenamiento interno. Rosen- so los est cambiando. Adelantando la
baun y Snyder [Rose78], y Miller complicada iteracin, primero empeza-
[Mill77] consideran el problema de la remos operando de forma "Top-down"
optimizacin de rboles 2-3 para un (arriba-abajo) en el rbol-B mientras
grupo de claves. Ellos usan el nmero que la insercin y el borrado requieren
un acceso "Bottom-up"(abajo-arriba).

Computing Surveys, Vol. 11, N 2, Junio 1979


17 z El Omnipresente rbol-B

Damadi [Sama76] presenta una solucin se procede a la actualizacin, cambian-


para el problema econmico. Held y do slo nodos sobre los que mantiene
Stonebraker [Held78] argumentan que cerrojos absolutos. Tras haber hecho
los conflictos econmicos, los cuales se todos los cambios, se cancelan los ce-
resuelven dando solo acceso al rbol a rrojos absolutos y la ruta actualizada
un proceso por vez, disminuye las ven- queda disponible para otros procesos.
tajas de los rboles-B en los dispositi-
vos multiusuario. Reservar una ruta entera desde la raz
hasta una hoja evita el que otras actuali-
Bayer y Schkolnik [Baye77a] mues- zaciones accedan al rbol-B. Adems, la
tran un conjuntos de protocolos de cie- mayora de las actualizaciones afectan
rre, forzados por un proceso supervisor, slo a unos pocos niveles (los cercanos
puede asegurar la integridad del acceso a la hoja), as que no es recomendable
a un rbol-B mientras se permite una reservar una ruta entera. Aunque reser-
actividad concurrente. En esencia una var pocos nodos podra hacer necesario
vez que est siendo ledo un nodo, nin- comenzar de nuevo desde la raz. Por
gn otro nodo puede acceder a el. Como esto, Bayer y Schkolnick, proponen un
la bsqueda progresa al prximo nivel, protocolo de cerrojos generalizado que
el procesador libera el cierre del antece- representa un punto entre los dos ex-
sor, permitiendo a otros leerlo. Estos tremos. Ellos proporcionan un modelo
lectores cierran a lo sumo dos nodos al con parmetros y muestran como las
mismo tiempo; otro proceso lector est reservas pueden permitir suficiente con-
libre para explorar (y sellar) otras partes currencia para usar la tecnologa actual
del rbol simultneamente. mientras que se desperdicia poco tiem-
po en restablecer las reservas.
Actualmente en un ambiente concu- En contraste, usando la divisin de
rrente se presentan muchos problemas arriba a abajo sugerida en GUIB78 se
complejos, los cuales requieren protoco- elimina la carencia para todos los proto-
los ms complejos. Esto puede afectar a colos (excepto los ms simples) ya que
los niveles ms altos, un proceso actual los actualizadores no necesitan ascender
abandona una reserva en cada nodo al en el rbol. De este modo, en un mo-
que accede, reservando el nodo a cerrar mento dado, slo tendrn cerrojo un par
correctamente. Despus la reserva debe de nodos. Por supuesto, el precio de
ser convertida en un cierre si el proceso dividir los nodos antes de llenarlos
actual determina que el cambio se pue- completamente es un ligero descenso en
de propagar a un nodo reservado. Alter- la utilizacin del sitio disponible y su
nativamente, la reserva puede ser cance- correspondiente aumento en tiempo de
lada si el cambio no afecta al nodo re- acceso.
servado. Los nodos reservados pueden
ser ledos desde lectores, continuando a Seguridad
menudo a una hoja, pero reservarse una
segunda vez hasta que la primera reser- La proteccin de la informacin en un
va est cancelada. entorno multiusuario plantea otro pro-
blema para los diseadores de bases de
Una vez que un proceso de actualiza- datos. Antes, bajo el tpico rbol-B
cin establece reservas en una ruta a virtual se recomendaba que el aisla-
una hoja, puede convertir la reserva en miento de los usuarios se obtuviese a
un cerrojo absoluto, arriba-abajo. El partir del mecanismo de proteccin de
cerrojo absoluto garantiza que ningn la memoria (paginado). Cuando el con-
otro proceso accede al nodo. Entonces tenido de un archivo debe ser protegido

Computing Surveys, Vol. 11, N 2, Junio 1979


18 z El Omnipresente rbol-B

fuera del sistema, se debe usar alguna 5. UN MTODO DE ACCESO DE


tcnica de encriptamiento. Bayer y PROPSITO GENERAL USANDO
Metzger [BAYE76] consideran esque- RBOLES-B+
mas de enciframiento y posibles amena-
zas de la seguridad. Muestran que el Esta seccin presenta un ejemplo del
enciframiento tiene un coste relativo uso de los rboles-B+ (Los mtodos de
alto a no ser que se implemente median- acceso de IBA basados en rboles-B de
te hardware. Por otro lado, los cambios propsito general, VSAM[IBM1,IBM2,
en los algoritmos de mantenimiento del KEEH72,WAGN73]). Con la intencin
rbol-B para restaurar los ficheros codi- de ser tiles en una gran variedad de
ficados son menos, especialmente si el aplicaciones, VSAM est diseado para
enciframiento puede llevarse a cabo soportar bsqueda secuencial, as como
durante la transmisin de los datos. insercin, borrado y bsquedas median-
te logaritmos de coste. Comparados con
la organizacin indexada-secuencial

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.

convencional, los rboles-B+ ofrecen las


siguientes ventajas: colocacin y libera-
do dinmico de espacio, utilizacin del
espacio de almacenaje garantizada del
50% y evita la necesidad de reorganizar
peridicamente el fichero entero.
Ya que VSAM debe manejar el al-
macenamiento de las claves y la infor-
Figura 20. El formato de un rea de control con
el nodo del conjunto secuencial, S, duplicado en macin asociada, la Figura 18 repre-
la primera pista para minimizar el tiempo de senta un fichero VSAM. Las dos sec-
latencia. ciones superiores del rbol VSAM for-

Computing Surveys, Vol. 11, N 2, Junio 1979


19 z El Omnipresente rbol-B

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.

miento concreta usada para almacenar da en el disco. VSAM intenta mejorar la


el fichero. Estas restricciones mejoran realizacin en varias otras formas. Los
la realizacin y permiten posteriores punteros se comprimen usando el mto-
mejoras descritas a continuacin. do de base/desalojamiento descrito arri-
ba, las claves se comprimen en las posi-
Como todos los descendientes de una ciones anterior (prefijo) y posterior (su-
secuencia de nodos estn situados en un fijo), los registros de los ndices pueden
cilindro, puede mejorarse la realizacin ser replicadas, y el ndice puede ser
colocando la secuencia de nodos en el almacenado en un recurso separado para
mismo cilindro. Entonces, una vez que permitir el acceso concurrente de ndi-
la secuencia de nodos ha sido recupera- ces y datos. Finalmente, VSAM permite
da, los objetos del rea de control pue- que la zona del ndice sea un rbol-B
den ser recuperados sin que tenga que virtual, usando la memoria hardware
moverse el brazo de la cabeza lectora. virtual para recuperarlo
La Figura 20 muestra una extensin a
la localizacin de la secuencia de nodos Directorio de Archivos Estructurado
contigua y cmo puede replicarse la en rbol
secuencia en una pista del cilindro. La
replicacin reduce el tiempo de bsque-

Computing Surveys, Vol. 11, N 2, Junio 1979


20 z El Omnipresente rbol-B

Quiz la idea ms novedosa en la im- a los registros (p.e. no se permiten ope-


plementacin VSAM es que se puede raciones usando la clave). Los ficheros
usar un formato de datos para el siste- VSAM entrada-secuenciados no necesi-
ma. Por ejemplo, aquellas rutinas que tan ndice, por eso son menos costosos
mantienen un directorio de todos los de mantener.
ficheros VSAM en el sistema tienen la
informacin en un fichero VSAM, el Aadindose a los procesos de manteni-
catlogo maestro. La figura 21 muestra miento y recuperacin de los ficheros
el catlogo maestro, que contiene una VSAM, el sistema proporciona un me-
entrada para cada fichero VSAM (o canismo para definir y cargar un fichero
conjunto de datos VSAM). Ya que to- VSAM. Se debe decidir cmo distribuir
dos los ficheros VSAM deben ser intro- el espacio libre dentro del fichero: si el
ducidos en el catlogo, el sistema puede usuario prev muchas inserciones, el
localizar cualquier fichero automtica- fichero no debera ser cargado con cada
mente mediante su nombre. Por supues- nodo completo al 100% o las insercio-
to el catlogo es un conjunto de datos nes iniciales seran demasiado costosas.
VSAM, as que contiene una entrada Por otra parte, si el fichero va a perma-
describindose a s mismo. necer relativamente estable, cargar los
nodos al 50% de capacidad desperdicia
Si varios procesos acceden al catlo- espacio de almacenamiento. La facili-
go maestro simultneamente, ocurre dad de definicin de ficheros VSAM
competencia y todos excepto uno ten- proporciona ayuda mediante la carga
drn que esperar. Para evitar demoras del fichero de acuerdo con los parme-
provocadas por este conflicto, cada tros elegidos.
usuario puede definir un catlogo local
con entradas para ficheros VSAM. Los Finamente existen facilidades VSAM
catlogos de usuario, que son ficheros para la insercin eficiente de gran con-
VSAM, deben ser entradas en el catlo- junto de registros contiguos, proteccin
go maestro. Una vez se ha localizado un de datos, backups de ficheros y recupe-
catlogo de usuario mediante una bs- racin de errores todos los cuales son
queda en el catlogo maestro, referen- necesarios en un entorno de produccin.
cias posteriores a ficheros indexados
por ese catlogo no implican buscar en Resumen
el catlogo maestro. El esquema del
catlogo resultante con estructura de Una organizacin de ficheros externos
rbol y multinivel recuerda al sistema equilibrada y multicamino, el rbol-B,
de ficheros de MULTICS. es eficiente, verstil, simple y de fcil
mantenimiento. Una variante, el rbol-
Otras facilidades de VSAM B+, permite el proceso secuencial efi-
ciente del fichero mientras conserva el
Muchas facetas del VSAM no han apa- coste logartmico deseado para las ope-
recido en nuestra breve discusin - el raciones de bsqueda, insercin y bo-
lector est avisado de que hemos dado rrado. Los esquemas de rboles-B ga-
slo un rpido vistazo. Por ejemplo, los rantizan el 50% de utilizacin del alma-
ficheros VSAM que hemos discutido cenamiento mientras asignan o liberan
son los llamados llave-secuenciados espacio conforme el fichero crece o
(key-sequenced). Otra forma, los entra- decrece. Mas an, los rboles-B crecen
da-secuenciados (entry-sequenced), y disminuyen exactamente al contrario;
permiten un procesado secuencial efi- la "reorganizacin" masiva de ficheros
ciente cuando ninguna clave acompaa

Computing Surveys, Vol. 11, N 2, Junio 1979


21 z El Omnipresente rbol-B

nunca es necesaria incluso despus del algorithms, Addison Wesley,


trfico pesado de transacciones. Publ. Co., Reading Mass.,
1974.
Diferentes tcnicas de implementacin AUER76 AUER, R. Schlusselkompres-
de rboles-B proporcionan ejecucin sionen in B* baumen, Diplo-
mejorada, generalidad y la habilidad de marbeit, Tech. Universitat,
usar rboles-B en un entorno multiusua- Munich, 1976.
rio. La comprensin de claves y punte- BAYE72 BAYER, R: AND
ros, la colocacin (y copia) cuidadosa McCREIGHT, C. Organiza-
de nodos en almacenamiento secundario tion and maintenance of large
y la redistribucin local de claves du- ordered indexes, Acta Inf. 13
rante la insercin o el borrado hacen (1972), 173-189.
viables a los rboles-B en entornos de BAYE72a BAYER, R. Binary B-trees
produccin, mientras los protocolos de for virtual memory, in Proc.
acceso, la proteccin de la memoria 1971 ACM SIGFIDET Work-
virtual y el encapsulamiento de datos shop, ACM, New York, 219-
proporcionan la seguridad y la exclu- 235.
sin mutua necesaria cuando un rbol-B BAYE73 BAYER, R. Symmetric bi-
es compartido por varios usuarios. nary B-tees: data structure
and maintenance algorithms,
El VSAM de IBM demuestra que es Acta Inf. 1, 4 (1972), 290-
razonable construir un mtodo de acce- 306.
so a ficheros de propsito general basa- BAYE76 BAYER, R. and METZGER,
do en rboles-B. Adems de los ficheros J. On encipherment of
de rboles-B del usuario, el propio sis- search trees and random ac-
tema usa un fichero rbol-B para clasi- cess files. ACM Trans. Da-
ficar el nombre y la localizacin de to- tabase Syst. 1, 1 (March
dos los ficheros VSAM disponibles. 1976), 37-52.
Usando una estructura en rbol-B para BAYE77 BAYER, R. and
permitir procesado secuencial eficiente, UNTERAUER, K. Prefix B-
el VSAM incorpora muchas de las tc- trees, ACM Trans. Database
nicas disponibles para ejecuciones me- Syst. 2, 1 (March 1977), 11-
joradas y proteccin de datos. 26.
BAYE77aBAYER, R. and
AGRADECIMIENTOS SCHKOLNICK, M. Concur-
rency of operations on B-
El autor agradece a las personas refe- trees, Acta Inf. 9, 1 (1977),
renciadas por proveer contactos relati- 1-21.
vos a la historia de los rboles-B, y a la BERL78 BERLINER, H. The B*-tree
corporacin IBM por hacer accesible search algorithm: a best-first
amablemente informacin detallada proof procedure, Tech. Rep.
sobre su mtodo de acceso basado en CMU-CA-78-112, Computer
rboles-B cuando ninguno de sus com- Science Dept., carnegie Mel-
petidores hubiera revelado los suyos. lon Univ., Pittsburgh, 1978.
BROWN78 BROWN, M. A storage
REFERENCIAS scheme for height-balanced
trees, Inf. Process. Lett. 7, 5
AHO74 AHO, A., HOPCROFT, J. (Aug. 1978), 231-232
AND ULLMAN, J. The De-
sign and analysis of computer

Computing Surveys, Vol. 11, N 2, Junio 1979


22 z El Omnipresente rbol-B

BROWN78a BROWN, M. A partial Carlos de la Cruz Lpez


analysis of height-balanced Ignacio Alcauza Casante
trees Calixto Melln Madruga
Carlos Pastor Arriaza
Este documento ha sido traducido para Gema Fernndez Pascual
la asignatura de Estructuras de Datos II, Ivn Bernardo Rodrguez
de la Escuela Universitaria de Inform- J.Alberto Berna Garca
tica por los alumnos de ED-II de los Francisco J. Gil Snchez
grupos GM-21 & GM-23 en el curso Alberto Bodego Felin
1996-97: Grficos: Silvia Fernndez Martn
Coordinacin: Jess Alonso S.
Prohibida su Difusin
Paz Blanco Vedia

Computing Surveys, Vol. 11, N 2, Junio 1979

También podría gustarte