You are on page 1of 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 estándar para la organización


de ficheros. Los ficheros dedicados a usuarios, a sistemas de base de datos, y
a métodos de acceso de propósito general, han sido propuestos e implementados
usando árboles-B.

Palabras clave y Expresiones: Árbol-B, Árbol-B*, Árbol-B+, organización de fichero, índice.

Categorías CR: 3.73 3.74 4.33 4.34

_________________________
INTRODUCCIÓN. Una petición secuencial requiere una bús-
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- ción aleatoria implica, que la búsqueda
mático, 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 información 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 informático 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 recuperación por direccionar
temente, haciendo los procesos de recupe- la búsqueda a la pequeña parte del fichero
ración de manera eficiente. que contiene el elemento deseado. La Fi-
gura 1, representa un archivo y su índice.
La elección de una buena organización Un índice puede estar físicamente integra-
de ficheros depende del tipo de recupera- do con el fichero, como las etiquetas de las
ción que va a ser realizada. Hay dos clases carpetas de los empleados, o físicamente
generales de ver la recuperación 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- más alta de este para favorecer una recupe-
pleados, preparar una lista de los nombres ración mas rápida y así sucesivamente. La
y apellidos de todos los empleados ", y jerarquía 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 información 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 técnicas


para la organización de un fichero y su
INTRODUCCIÓN
índice; Knuth [KNUTH73] proporciona un
Operaciones sobre un fichero examen de las básicas. Aunque un simple
esquema no puede ser el óptimo para todas
1. EL ÁRBOL-B BÁSICO las aplicaciones, la técnica de organización
Equilibrado de un fichero y su índice llamada árbol-B
Inserción
Borrado
ha llegado a ser ampliamente utilizada. El
árbol-B es, de hecho, la organización es-
2. EL COSTE DE OPERACIONES tándar para índices en un sistema de base
Costes de recuperación de datos. Este artículo, esta hecho para los
Costes de inserción y borrado profesionales de la informática que han
Procesamiento secuencial
oído hablar sobre los árboles-B y quieren
3. VARIANTES DE ÁRBOL-B alguna explicación o consejo para una lec-
Árboles-B* tura mas rápida, comparando varias varia-
Árboles-B+ ciones del árbol-B, especialmente el árbol-
Árboles-B virtuales B+, mostrando porque ha llegado a ser tan
Compresión
popular. Examina la literatura sobre árbo-
Entradas de longitud variable
Árboles-B binarios les-B incluida en artículos recientes no
Arboles 2-3 y resultados teóricos mencionados en libros de texto. En suma,
discute un método de acceso a fichero, de
4. ÁRBOLES-B EN UN ENTORNO propósito de general basado en el árbol-B.
MULTIUSUARIO
Seguridad
El punto de comienzo de nuestra discu-
5. UN MÉTODO DE ACCESO DE PROPÓSITO sión es una estructura de almacenamiento
GENERAL USANDO ÁRBOLES-B. interno llamada árbol binario de búsqueda.
Mejoras del rendimiento En concreto, empezamos con el equilibra-
Directorio de fichero estructurado en árbol do de los árboles binarios de búsqueda y el
Otras facilidades VSAM
porqué de su garantizado bajo coste de
RESUMEN recuperación. Para un examen de los árbo-
AGRADECIMIENTOS les binarios de búsqueda y otros mecanis-
REFERENCIAS

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

Las jerarquías 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 informático.
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
recuperación se solicita especificando la
clave. Por ejemplo, cada empleado podría mos de almacenamiento interno, la lectura
tener asignado un único numero de em- se refiere a SEVE74 y NIEV74. NIEV74.
pleado que identificaría que empleado esta También explica los términos de la teoría
registrado. En vez de clasificar los cajones de grafos "árbol", "nodo", "contorno", "ra-
del escritorio "A-G", etc., usarían rangos íz", "camino", y "rama" que serán usados
de números de empleados como "0001"- en toda la discusión.
"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 introducción bético, así que podemos referirnos al orden
presenta un modelo de los procesos de de la secuencia de claves de un archivo.
recuperación y perfila las operaciones de
fichero a considerar. La Parte 1 presenta el Las operaciones que un usuario dirige
árbol-B básico propuesto por Bayer y contra un archivo son inserción, borrado,
McCreight, dando los métodos para la in- recuperación y actualización de registros.
serción, borrado, y localización de elemen- Además, los usuarios frecuentemente pro-
tos. Así, para cada tipo de operación, la cesan el archivo secuencialmente, en el
Sección 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
mentación puede abaratar los costes. La archivo. Un conjunto de funciones básicas
Sección 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: añade un nuevo registro, (ki, αi),
Árbol-B, la Sección 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 Sección 5 presenta un siguiente: recupera αy + 1 siendo αy la últi-
método de acceso a fichero, de propósito 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 organización del


Para los propósitos de este artículo, pen- archivo, hay costos asociados con el man-
samos en un fichero como un conjunto de tenimiento del índice y con la ejecución 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 -iésimo índice está destinado a la velocidad de re-
registro, y αi la información asociada. Por cuperación, el tiempo de proceso es nor-
ejemplo, la clave para un registro de em- malmente tomado como la principal medi-
pleados podría ser un número de empleado da del coste. Con la tecnología del hardwa-
de cinco dígitos, mientras que la informa- re actual, el tiempo requerido para acceder
ción asociada podría consistir en el nom- al almacenamiento secundario es el com-
bre, dirección, sueldo, y numero de subor- ponente principal del tiempo total requeri-
dinados del empleado. Asumimos que la do para procesar los datos. Además, en la
clave ki solamente identifica al registro ri. mayoría de los accesos aleatorios a un
Además, asumimos que aunque la clave es dispositivo se transfiere una cantidad fija
mucho más corta que la información aso- de datos por operación 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 número de lecturas. Por
moria principal. Estas suposiciones impli- eso, el número de accesos al almacena-
can que si los registros son recuperados miento secundario sirve como una razona-
aleatoriamente mediante las claves, sería ble medida del costo en la evaluación de
ventajoso construir un índice para una re- las técnicas del índice. Otro coste menos
cuperación más rápida. 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 utilización 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

proporción 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 búsqueda, la rama elegida
formación asociada. en un nodo depende del resultado de una
comparación de la clave buscada y de la
clave almacenada en el nodo. Si la clave
1. EL ÁRBOL-B BÁSICO 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 años 60, fabri- Figura 2 muestra parte de un árbol utili-
cantes de computadoras y grupos de inves- zado para almacenar los números de em-
tigación independientes, compitieron en el pleados, y el camino elegido para la clave
desarrollo de sistemas de archivo de pro- de búsqueda 15.
pósito general y los llamados "métodos de
acceso" para sus máquinas. La Sperry Uni- Veamos ahora la Figura 3 en la que se
vac Corporation (junto con la Case Wes- muestra un árbol de búsqueda modificado
tern Reserve University), H. Chiat, M. con dos claves almacenadas en cada nodo.
Schwartz, y otros desarrollaron e imple- La búsqueda se realiza mediante la elec-
mentaron un sistema, el cual llevaba a cabo ción de uno de los tres caminos de cada
las operaciones de inserción y búsqueda de nodo. En el dibujo, la clave buscada, 15, es
una manera afín al método 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 búsqueda
relativamente bajo para la mayoría de las para números de empleado. El camino seguido
operaciones definidas en la sección ante- para la búsqueda “15” está sobreimpreso.
rior; lo llamaron árbol-B (1) [ BAYE72].

Esta sección presenta las estructuras de


datos básicas del árbol-B y los algoritmos
de mantenimiento como una generaliza-
ción de los árboles de búsqueda binaria en
la cual salen más de dos caminos de un
mismo nodo; la siguiente sección discute
sobre lo costos de cada operación. Otras
introducciones generales pueden encon- Figura 3. Un árbol de búsqueda con 2 claves y 3
trarse en HORO76, KNUT73, y WIRT76. ramas por nodo. El camino para la búsqueda ‘15’
está sobreimpreso.

menor que 42 por lo que tomaremos el


(1)
El origen del "Arbol B" nunca ha sido explicado por nodo más a la izquierda de los de la raíz.
los autores. Como podemos ver, "balanced" (equilibra- Para las claves entre 42 y 81 se elige el
do), "broad" (extenso), o "bushy" (espeso) podrían
aplicarse. Otros sugieren que la "B" representa a Boeing.
descendiente central, mientras que elegi-
A causa de estas contribuciones, sin embargo, parece remos el más a la derecha para aquellas
apropiado pensar en los árboles-B como árboles - claves mayores de 81. El procedimiento de
"Bayer". decisión 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 más 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 operación de búsqueda 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 número 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 visitaría 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 implementación más 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-
ción adicional, que nos informa de cuántas

Figura 4. Un nodo en un árbol-B de orden d con


2d claves y 2d + 1 punteros.

están almacenadas correctamente en el


nodo.

Normalmente, los nodos con gran número


de claves no pueden ser almacenados en
memoria principal y requieren accesos a
memoria secundaria cada vez que es nece-
sario consultarlos. Más adelante, veremos
como, bajo un criterio de coste, mantener
más de una clave por nodo disminuye el
coste de las operaciones de búsqueda, in-
serción, 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.
métodos 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 búsqueda, inserciones aleatorias de re- cómputo 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 ración 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 más lar- árbol-B restringe los cambios en el árbol a
gas que otras, un árbol balanceado, como una sola rama desde las hojas al raíz, 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- raíz. Además 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 búsqueda).
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 inserción de la clave “57”, Nótese que el
número de claves en el nodo raíz puede ser menos que d, el orden del árbol-B. Todos los demás nodos
tienen como mínimo d claves.

Por lo tanto, los árboles-B tienen las ceso de búsqueda desde la raíz para
ventajas del esquema de un árbol ba- localizar la hoja apropiada para la inser-
lanceado, mientras evita algunos de los ción. Entonces se realiza la inserción, y
costes (en tiempo) de mantenimiento. se restablece el balanceado del árbol
mediante un procedimiento, el cual se
Inserción aplica desde la hoja hacia la raíz. Refi-
riéndonos a la Figura 7a, uno puede ver
Para ilustrar cómo se mantiene el balan- que cuando inserta la clave “57" la bús-
ceado durante la inserción, considérese 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, habría 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
número de claves que tiene el nodo. La clave necesite insertarse en un nodo que
inserción de un nuevo nodo requiere un ya está lleno, ocurre una división: 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-
ción termina. Si ocurriera que el nodo
padre estuviera lleno también, entonces
se aplicaría el mismo proceso de divi-
Figura 8. (a) Una hoja y su antecesor en un sión de nuevo. En el peor de los casos,
árbol-B, y (b) el mismo árbol tras la inserción la división se propaga todo el camino
de la clave “72”. cada nodo conserva entre 2 y 4 hasta la raíz y el árbol aumenta en altura
claves (d y 2d).
un nivel. De hecho, un árbol-B sólo
incrementa en altura debido a una divi-
sión hacia la raíz.

Borrado

El borrado en un árbol-B también re-


quiere una operación de búsqueda 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 posición vacante. La cuentre una clave adyacente y cambiarla
siguiente clave siempre está en la hoja más a la en la posición que se dejó vacante de
izquierda del subárbol apuntado por el puntero manera que esté dispuesto para trabajar
derecho de la posición vacía. correctamente. Localizar una clave ad-
yacente en una secuencia de claves re-
Figura 8. De las 2d+1 claves, se ponen
las d más pequeñas en un nodo, las d
mayores se ponen en otro nodo, y el

Figura 10. (a) Parte de un árbol-B antes, y (b) después de la redistribución de nodos entre dos vecinos.
Nótese que la posición final de la clave intermedia, “50”. La redistribución en nodos de igual tamaño
ayuda a evitar ‘underflow’ en sucesivos borrados.

quiere una mera búsqueda por la hoja reside en una hoja. La Figura 9 de-
más a la izquierda, en el subárbol dere- muestra estas relaciones.
cho del ahora slot vacío. 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 vacío ha sido tran algoritmos de inserción 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-
distribución 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) sólo se necesita una
clave que se puede obtener pidiéndola
prestada de una hoja vecina. Pero ya Figura 11. (a) Borrado que origina una conca-
que la operación requiere por lo menos tenación, y (b) el árbol re-balanceado.
dos accesos a almacenamiento secunda-
rio, una mejor redistribución dividiría 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 Redistribución viene ilustrada el número de nodos que se visiten en
por la Figura 10. cada operación sobre el árbol es lo que
nos da la medida de su coste. Bayer y
Por supuesto, la distribución de cla- McCreight [Baye72] dan un análisis
ves entre dos vecinos basta sólo si hay preciso del coste de las operaciones de
por lo menos 2d claves para distribuir. insertar, borrar y recuperar; también 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] también 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 definición algo diferente. En el si-
fraccionamiento). Ya que queda un úni- guiente párrafo se da una explicación de
co nodo, la clave que separa los dos los límites asintóticos del coste.
nodos en el antecesor ya no es necesa-
ria; también es añadida a la única hoja Coste de una recuperación
restante. La Figura 11 muestra un
ejemplo de encadenamiento y la situa- Primero, hay que considerar el coste de
ción final de la clave separadora. la operación de búsqueda. Excepto para
la raíz, cada nodo en un árbol-B tiene al
Cuando algún 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, también puede cau- nodo; la raíz tiene al menos 2 descen-
sar underflow y requiere redistribución diente. Así que el número 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 raíz. Finalmente, si se encade-
nan los descendientes de la raíz, éstos 2
La raíz de un árbol se encuentra enel nivel 0;
forman una nueva raíz, 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 recuperación de claves tanto en el
i sentido teórico como en el práctico.
∑ d = ⎯⎯⎯
y= 0 2d -1
Coste de Inserción y del Borrado
menos d claves cada uno. La altura de
un árbol con un total de n claves, nece- El borrado o la inserción de una opera-
sita cumplir: ción podría requerir, además del coste
de la operación de búsqueda cuando se
2d( dh - 1 ) / (d -1) < = n avanza por el árbol en su marcha atrás,
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 línea de arriba van los núme-
o ros de hacia dónde tienden los costes de acceso
en el peor de los casos, para varios tamaños de
h <= log d ( (n + 1) / 2 ) nodos y varios tamaños de ficheros.

De este modo, el coste de procesar una ______________________________________


operación de búsqueda crece de forma
logarítmica en relación con el tamaño
del fichero.

La tabla I muestra cómo puede ser


de razonable el coste logarítmico, inclu-
so para fichero de gran tamaño. En un
Árbol-B de orden 50 que contenga las
claves que indexan un fichero de un
millón de registros, se puede realizar que la altura del árbol aún domina las
una operación de búsqueda con 4 acce- expresiones del coste. Por esta razón en
sos como mucho. Mas adelante se verá un Árbol-B de orden d que contenga
que esta estimación es tirando por lo las claves de un fichero de n registros,
alto, técnicas de implementación más las operaciones de inserción 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 aún menor.
Ahora se podría explicar la ventaja
Aho et al. [AHO74] nos da otra vi- de que los nodos puedan contener un
sión del coste de las operaciones de gran número de claves. A la vez que el
búsqueda en un Árbol-B. Nos muestran factor de la rama d se incrementa, tam-
para el modelo de programación de bién se incrementa la base del logarit-
árboles-de-decisión , en donde la bús- mo, y el coste de las operaciones de
queda se basa en la comparación entre búsqueda, inserción y borrado decre-
sí de los nodos, no se puede idear un cen. Ahora bien, en la práctica el tama-
algoritmo asintótico rápido para los ño de un nodo tiene las siguientes res-
accesos. Por supuesto, este modelo de tricciones: La mayoría de los sistemas
árbol descarta algunos métodos como hardware limitan la cantidad de datos
las técnicas 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

Además, el coste esconde el factor que la clave deseada. Por ejemplo, la clave
siempre está presente y que crece de más pequeña se encuentra en la hoja de
igual manera que crece el volumen de más a la izquierda y para encontrarla
datos a transferir. Para terminar, cada necesitamos acceder a todos los nodos a
dispositivo tiene varios tamaños de pis- lo largo del camino que se establece
ta fijados, los cuales deben de ajustarse entre la raíz 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 prác-
tica el tamaño óptimo del nodo depen- ¿Qué es lo que se puede hacer para
de, y mucho, de las características del mejorar el coste de realizar la siguiente
sistema y de los dispositivos en los que operación? Esta pregunta y otras se con-
se encuentre el fichero almacenado.

Bayer y McCreight [BAYE72] dan


algunas pautas aproximadas para elegir
el tamaño del nodo que se basan en los
retrasos de tiempo rotacional, en la tasa
de transferencia y en el tamaño de las Figura 12. La localización de la clave más
claves. Sus experimentos verifican que pequeña en la hoja más 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 práctica.
testarán en el apartado siguiente, bajo el
Proceso secuencial título “árboles-B+”.

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


raciones de acceso directo realizadas a
través de una clave específica. Nor- Como en la mayoría 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 operación NEXT para proce- ye72] sugieren varias alternativas de
sar todos los registros ordenados por la implementación en sus textos origina-
clave. De hecho el llamado Método de les. Por ejemplo, la condición de no
Acceso Secuencial Indexado (ISAM) desbordamiento, resultante de un borra-
[GH0S69], asume que el acceso se- do, es tratado sin concatenación por
cuencial se da con mucha frecuencia. redistribución de claves desde nodos
adyacentes (a menos que no pueda ob-
Desafortunadamente, un Árbol-B no tenerse el número de claves requerido).
se desenvuelve bien en entornos con Aplicando la misma estrategia a la con-
procesamiento secuencial, ya que un dición de desbordamiento puede retras-
simple árbol con pre-orden [KNUT68] ar el corte y eliminación 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, dividién-
todos los nodos a lo largo del camino dolo sólo cuando dos nodos adyacentes
recorrido desde la raíz para evitar que se llenan. Otras variaciones de árboles-
se lean dos veces. Además el proceso de B se han concentrado sobre las mejoras
la siguiente operación puede necesitar en costes secundarios. Clampet
el trazado de un camino a través de un [CLAM64] considera el coste de proce-
gran número 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- comparación con los beneficios, espe-
cundario. El sugiere usar una búsqueda cialmente ya que el almacenamiento
binaria en vez de una búsqueda lineal secundario es económico y está hecho
para localizar para localizar el puntero para fijar la longitud de los nodos.
correcto al descendiente. Knuth
[KNUT73] señala que una búsqueda
binaria puede ser útil si el nodo es gran-
de, mientras que una búsqueda secuen- ÁRBOLES-B*
cial puede ser lo mejor para nodos pe- Quizás el término más utilizado en la
queños. No hay razón para limitar la literatura de los árboles-B es árbol-
búsqueda interna a búsqueda secuencial B* 3 . En realidad, Knuth [KNUTH73]
o binaria; puede usarse cualquier núme- define un árbol-B* como un árbol-B en
ro de técnicas 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 técnica de extrapolación ción del árbol-B* emplea un esquema
que ellos llaman la búsqueda de la raíz de redistribución local para retrasar la
cuadrada. división hasta que dos nodos hermanos
En sus tratamientos generales de están llenos. Entonces los dos nodos se
creación 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 búsqueda de interpolación utilización del almacenamiento es al
para eliminar el acceso a un almacena- menos del 66%, mientras que solamente
miento secundario. El análisis presenta- requieren una moderada modificación
do generaliza para árboles-B e indica de los algoritmos de mantenimiento.
que esto puede tener un coste efectivo Esto debe ser señalado ya que el incre-
para eliminar algunos de los niveles de mento en la utilización del almacena-
índices justo por encima de las hojas. miento tiene el efecto lateral de acelerar
Desde una búsqueda terminaría con la búsqueda ya que la altura del árbol
varias posibles hojas candidatas, la co- resultante es más pequeña.
rrecta sería encontrada por una "estima-
ción" basada en el valor de la clave y la El término árbol-B* ha sido utilizado
distribución de la clave dentro del fiche- frecuentemente para otras variaciones
ro. Cuando la estimación produzca la de árboles-B como también sugiere
hoja equivocada, podría llevarse a cabo Knuth [KNUTH73, WEDE74,
una búsqueda secuencial. Aunque algu- BAYE77]. Para evitar confusión, noso-
nas estimaciones podrían perderse, el tros usaremos el término árbol-B+ para
método resultaría sobre el promedio. la implementación no identificada de
Knuth.
Knuth [KNUTH73] sugiere una va-
riación del árbol-B la cuál tiene diver- ÁRBOLES-B+
sos "órdenes" para cada profundidad. En un árbol-B+, todas las claves están
Parte de la motivación viene de su ob- en las hojas. Los niveles más altos, que
servación de que los punteros en los están organizados como un árbol-B,
nodos hojas gastan espacio y deberían constan sólo de un índice, un mapa para
ser eliminadas. Esto también da sentido permitir una rápida localización de las
a tener una forma diferente para la raíz
3
(la cual está rara vez muy llena en com- Un caso entretenido es el "algoritmo de bús-
queda de un árbol-B*", el cual es sobre un
paración con los otros nodos). Los
algoritmo de un árbol de búsqueda llamado B*
costes de mantenimiento para esta im- [BERL78]
plementación 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 separación lógica 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 tamaños. En particu- clave en la parte de índices como sepa-
lar, los nodos hoja están 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 eliminación sea sim-
esta relacionada como un conjunto su- ple. Mientras la hoja se quede al menos
cesión. Las uniones del conjunto suce- medio llena, el índice no necesita cam-
sión permiten un procesamiento se- biarse, incluso si una copia de la clave
cuencial fácil. ha sido propagada en él. La Figura 14
muestra como la copia de una clave
Para apreciar totalmente un árbol- borrada puede dirigir todavía búsquedas
+
B , uno debe entender las implicaciones a la hoja correcta. Por supuesto, si surge
de tener un índice independiente y un una condición de no desequilibrio, la
conjunto sucesión. Considere por un redistribución o procedimientos de
momento la operación encontrar. Pro- concatenación pueden requerir valores
cediendo desde la raíz de un árbol-B+ a ajustados en el índice y también en las
través del índice a una hoja. Con todas hojas.
las claves incluidas en las hojas, no es Las operaciones de inserción y bús-
un problema qué valores se encuentren queda en un árbol-B+ son procesadas
conforme avanza la búsqueda con tal casi idénticamente a las operaciones de

Figura 13. Un árbol-B+ con las partes índice y claves separadas. Las operaciones ‘por clave empiezan en
la raíz como en un árbol-B; el proceso secuencial empieza en la hoja más a la izquierda.

Figura 14. (a) Un árbol-B+ y (b) un árbol-B+ después del borrado de la clave “20”. Incluso después del
borrado, la clave “20” vale todavía como valor separador en la parte índice.

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


13 z El Omnipresente Árbol-B

inserción y de búsqueda 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 búsqueda 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 búsqueda una tira de caracteres hay buena razón
difieren de las que se realizan en los para no usar las claves reales como se-
árboles-B en que la búsqueda 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 más 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 búsqueda, inserción y 'electrónico', 'programa' y 'sistema' están
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 operación. La imple- separador valora o señala entre las cla-
mentación de árboles-B+ contiene las ves 'computador', 'electrónico', las cua-
propiedades de coste algorítmico para les no necesitan estar íntegramente:
operaciones por clave, pero tiene la basta con alguna cadena de caracteres.
ventaja de requerir como máximo un Por ejemplo, algunos de estas tiras, 'e-
acceso para satisfacer la siguiente ope- lec', 'e' ó 'd' servirían perfectamente. Ya
ración. Por otra parte, durante el proce- que no se hace diferencia durante el
samiento secuencial de un fichero, nin- proceso de recuperar, debería usarse el
gún nodo es accedido más de una vez, separador más corto para así guardar
así que se necesita disponer de espacio espacio. Como los requerimientos de
para un sólo 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 más cortos
B+ Arboles Prefijo. tiene un menor coste de búsqueda,
usando separadores cortos disminuirá el
La separación de los índices y conjunto tiempo de acceso así como ahorrará
de secuencias en los árboles-B+ es intui- espacio.
tivamente atrayente. Téngase en cuenta

Figura 15. Parte de un árbol-B Prefijo. La entrada índice “e” es suficiente para diferen-
ciar “computador” de “electrónico”.

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


14 z El Omnipresente Árbol-B

La técnica más simple para elegir el peado en una página del espacio de di-
prefijo único más 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 más corto de 'elec- memoria. Los accesos a los nodos (pá-
trónico' es suficiente para distinguirlo ginas) que no están en memoria, causan
de 'computador'. Algunas veces, sin al sistema una recuperación de página
embargo, la técnica del prefijo no fun- desde memoria secundaria.
ciona bien: eligiendo el prefijo más cor-
to de 'programadores' para distinguirlo Muchos algoritmos de paginación
de 'programador' no resulta del todo eligen sustituir la página menos usada
correcto. En cada uno de los casos, Ba- cuando ha de traer una página nueva.
yer y Unterauer sugieren explorar unas En términos del árbol-B, los nodos más
pequeñas claves cercanas para obtener activos son esos más próximos a la raíz;
una buena pareja para el algoritmo de estos procuran quedarse en memoria.
separación. 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 paginación por
coste global. hardware. Al menos, la raíz debería
permanecer en memoria principal ya
Árboles-B virtuales que es accedida por cada búsqueda.

Muchos de los sistemas de computado- Así, los árboles-B virtuales tienen las
res emplean un esquema de gestión 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 protección de me-
memoria virtual por usuario está dividi- moria aísla de otros usuarios, y
do en páginas que son almacenadas en 3.- Las partes del árbol accedidas fre-
memoria secundaria y cargadas en me- cuentemente, deberían permanecer
moria principal automáticamente cuan- en memoria.
do son referenciadas. Esta técnica, lla-
mada Página Demandada o Por Falta de Compresión
Página, multiplexa la cantidad de me-
moria real de los usuarios y al mismo Otras técnicas varias de implementa-
tiempo proporciona protección para ción 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. Además ner [WAGN73] resume varias de estas
el hardware de propósito especial mane- incluyendo los conceptos de claves y
ja la paginación, 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 página sugiere una intere- que el modo de direccionamiento abso-
sante implementación de árboles-B. A luto. Un modo con punteros comprimi-
través de una cuidadosa cuota o ración,
cada nodo del árbol-B puede ser ma- 4
Ver también 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 dirección 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 comprensión de
base es añadida al desplazamiento de las técnicas mencionadas anteriormente.
ese puntero. Las técnicas de compren- McCreight [McCr77] considera el al-
sión 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 más cortas durante
de direcciones altos. una inserción 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 técnicas estándar para mo- Árboles-B Binarios
ver redundancias. Ambas, claves com-
primidas y punteros comprimidos, in- Otra variación 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 disminución 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 después de haber sido
leído. Así, los complicados algoritmos Para evitar despilfarrar espacio de
de compresión no pueden ser siempre nodos que solo están medio llenos, usa-
efectivos. remos una representación como la mos-
trada en la Figura 17. Los nodos con
Debería advertirse que ambos, con o una clave son representados como en la
sin compresión. 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
sión 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 análisis muestra que la inserción, ra dos o más accesos a los nodos, igual
borrado y búsqueda solo toman logn para la más a la izquierda. Usando el
pasos como en un árbol-B, aunque bus- puntero derecho para dos propósitos
car la dirección más a la derecha requie- hace complicados los algoritmos de

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


16 z El Omnipresente Árbol-B

inserción y borrado. Para mantener el de comparaciones y el de nodos accedi-


coste logarítmico, 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 construcción óp-
manos en una cola. El algoritmo deta- tima de árboles a partir de una lista de
llado para el proceso de rotación, que claves ordenadas. El resultado en el
previene tres o más 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 análisis á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 extensión de los árboles-B bina- ción de algunas técnicas de balanceo de
rios, la cual permita a los enlaces iz- árboles. Su importante contribución
quierdo y derecho apuntar a nodos her- muestra que la partición superior no es
manos, exhibe una simetría carente en siempre requerida. La trampa es partir
los árboles-B binarios. Por tanto, el los nodos que están casi llenos cuando
nombre de árbol-B Binario Simétrico bajemos el árbol. La próxima sección
ha sido aplicado para semejar la estruc- muestra la eliminación de "abajo-
tura de Bayer [Baye73], la cual informa arriba" que puede ser crucial para la
que los árboles-B Binarios contienen la actuación. Ver Brow78 y Brow78a para
conocida clase de los árboles AVL co- ver los resultados teóricos.
mo subclase [Fost65].
4. ÁRBOLES-B EN UN
2-3 Árboles y Resultados Teóricos. DISPOSITIVO MULTIUSUARIO.

Hopcroft desarrolló la noción de un Si los árboles-B se usan en una base de


árbol 2-3, y exploró sus usos a nivel de datos de propósito 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 simultáneamente. 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 sincronización de proce-
queño tamaño del nodo hace que los sos, deben interferir uno con el otro. Un
árboles 2-3 sean inapropiados para el proceso podría 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 iteración, primero empeza-
[Mill77] consideran el problema de la remos operando de forma "Top-down"
optimización de árboles 2-3 para un (arriba-abajo) en el árbol-B mientras
grupo de claves. Ellos usan el número que la inserción 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 solución se procede a la actualización, cambian-


para el problema económico. Held y do sólo nodos sobre los que mantiene
Stonebraker [Held78] argumentan que cerrojos absolutos. Tras haber hecho
los conflictos económicos, 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 raíz
hasta una hoja evita el que otras actuali-
Bayer y Schkolnik [Baye77a] mues- zaciones accedan al árbol-B. Además, la
tran un conjuntos de protocolos de cie- mayoría de las actualizaciones afectan
rre, forzados por un proceso supervisor, sólo 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 podría hacer necesario
vez que está siendo leído un nodo, nin- comenzar de nuevo desde la raíz. Por
gún otro nodo puede acceder a el. Como esto, Bayer y Schkolnick, proponen un
la búsqueda progresa al próximo 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 parámetros 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 tecnología actual
del árbol simultáneamente. mientras que se desperdicia poco tiem-
po en restablecer las reservas.
Actualmente en un ambiente concu- En contraste, usando la división 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 más complejos. Esto puede afectar a colos (excepto los más simples) ya que
los niveles más 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, sólo tendrán cerrojo un par
correctamente. Después 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 utilización 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 leídos desde lectores, continuando a Seguridad
menudo a una hoja, pero reservarse una
segunda vez hasta que la primera reser- La protección de la información en un
va esté cancelada. entorno multiusuario plantea otro pro-
blema para los diseñadores de bases de
Una vez que un proceso de actualiza- datos. Antes, bajo el tópico árbol-B
ción 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 protección de
cerrojo absoluto garantiza que ningún 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 MÉTODO DE ACCESO DE


técnica de encriptamiento. Bayer y PROPÓSITO GENERAL USANDO
Metzger [BAYE76] consideran esque- ÁRBOLES-B+
mas de enciframiento y posibles amena-
zas de la seguridad. Muestran que el Esta sección presenta un ejemplo del
enciframiento tiene un coste relativo uso de los árboles-B+ (Los métodos de
alto a no ser que se implemente median- acceso de IBA basados en árboles-B de
te hardware. Por otro lado, los cambios propósito general, VSAM[IBM1,IBM2,
en los algoritmos de mantenimiento del KEEH72,WAGN73]). Con la intención
árbol-B para restaurar los ficheros codi- de ser útiles en una gran variedad de
ficados son menos, especialmente si el aplicaciones, VSAM está diseñado para
enciframiento puede llevarse a cabo soportar búsqueda secuencial, así como
durante la transmisión de los datos. inserción, borrado y búsquedas median-
te logaritmos de coste. Comparados con
la organización indexada-secuencial

Figura 18. Un archivo VSAM con datos reales (información 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: colocación y libera-
do dinámico de espacio, utilización del
espacio de almacenaje garantizada del
50% y evita la necesidad de reorganizar
periódicamente 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 mación 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 lógica (o independien-
hojas contienen registros de datos ac- te de la máquina), la organización de
tuales. En terminología VSAM , una ficheros debe acomodarse a los recursos
hoja se llama intervalo de control y subyacentes si se quieren realizar las
forma la unidad básica de datos transfe- transacciones eficientemente. Por tanto,
ridos en una operación Entrada/Salida. el tamaño máximo de un intervalo de
Cada intervalo de control contiene uno control está limitado por la mayor uni-
o más registros de datos así como in- dad de datos que el hardware puede
formación de control que describe el transferir en una operación. Además 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 Realización

Figura 21. El catálogo 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 realización en varias otras formas. Los
la realización y permiten posteriores punteros se comprimen usando el méto-
mejoras descritas a continuación. 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 están situados en un fijo), los registros de los índices pueden
cilindro, puede mejorarse la realización 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 extensión a
la localización de la secuencia de nodos Directorio de Archivos Estructurado
contigua y cómo puede replicarse la en Árbol
secuencia en una pista del cilindro. La
replicación reduce el tiempo de búsque-

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


20 z El Omnipresente Árbol-B

Quizá la idea más novedosa en la im- a los registros (p.e. no se permiten ope-
plementación 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
información en un fichero VSAM, el Añadiéndose a los procesos de manteni-
catálogo maestro. La figura 21 muestra miento y recuperación de los ficheros
el catálogo 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 cómo distribuir
dos los ficheros VSAM deben ser intro- el espacio libre dentro del fichero: si el
ducidos en el catálogo, el sistema puede usuario prevé‚ muchas inserciones, el
localizar cualquier fichero automática- fichero no debería ser cargado con cada
mente mediante su nombre. Por supues- nodo completo al 100% o las insercio-
to el catálogo es un conjunto de datos nes iniciales serían demasiado costosas.
VSAM, así que contiene una entrada Por otra parte, si el fichero va a perma-
describiéndose a sí mismo. necer relativamente estable, cargar los
nodos al 50% de capacidad desperdicia
Si varios procesos acceden al catálo- espacio de almacenamiento. La facili-
go maestro simultáneamente, ocurre dad de definición de ficheros VSAM
competencia y todos excepto uno ten- proporciona ayuda mediante la carga
drán que esperar. Para evitar demoras del fichero de acuerdo con los paráme-
provocadas por este conflicto, cada tros elegidos.
usuario puede definir un catálogo local
con entradas para ficheros VSAM. Los Finamente existen facilidades VSAM
catálogos de usuario, que son ficheros para la inserción eficiente de gran con-
VSAM, deben ser entradas en el catálo- junto de registros contiguos, protección
go maestro. Una vez se ha localizado un de datos, backups de ficheros y recupe-
catálogo de usuario mediante una bús- ración de errores todos los cuales son
queda en el catálogo maestro, referen- necesarios en un entorno de producción.
cias posteriores a ficheros indexados
por ese catálogo no implican buscar en Resumen
el catálogo maestro. El esquema del
catálogo resultante con estructura de Una organización de ficheros externos
árbol y multinivel recuerda al sistema equilibrada y multicamino, el árbol-B,
de ficheros de MULTICS. es eficiente, versátil, simple y de fácil
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 logarítmico deseado para las ope-
recido en nuestra breve discusión - el raciones de búsqueda, inserción y bo-
lector está avisado de que hemos dado rrado. Los esquemas de árboles-B ga-
sólo un rápido vistazo. Por ejemplo, los rantizan el 50% de utilización 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 aún, los árboles-B crecen
da-secuenciados (entry-sequenced), y disminuyen exactamente al contrario;
permiten un procesado secuencial efi- la "reorganización" masiva de ficheros
ciente cuando ninguna clave acompaña

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


21 z El Omnipresente Árbol-B

nunca es necesaria incluso después del algorithms, Addison Wesley,


tráfico pesado de transacciones. Publ. Co., Reading Mass.,
1974.
Diferentes técnicas de implementación AUER76 AUER, R. Schlusselkompres-
de árboles-B proporcionan ejecución 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 comprensión de claves y punte- BAYE72 BAYER, R: AND
ros, la colocación (y copia) cuidadosa McCREIGHT, C. “Organiza-
de nodos en almacenamiento secundario tion and maintenance of large
y la redistribución local de claves du- ordered indexes”, Acta Inf. 13
rante la inserción o el borrado hacen (1972), 173-189.
viables a los árboles-B en entornos de BAYE72a BAYER, R. “Binary B-trees
producción, mientras los protocolos de for virtual memory, “ in Proc.
acceso, la protección 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.
sión 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 método de acce- 306.
so a ficheros de propósito general basa- BAYE76 BAYER, R. and METZGER,
do en árboles-B. Además 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 localización 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 téc- trees, “ACM Trans. Database
nicas disponibles para ejecuciones me- Syst. 2, 1 (March 1977), 11-
joradas y protección 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
corporación IBM por hacer accesible search algorithm: a best-first
amablemente información detallada proof procedure, Tech. Rep.
sobre su método 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 López


analysis of height-balanced Ignacio Alcauza Casante
trees Calixto Mellén Madruga
⎯⎯⎯⎯⎯⎯⎯→♣←⎯⎯⎯⎯⎯⎯ Carlos Pastor Arriaza
Este documento ha sido traducido para Gema Fernández Pascual
la asignatura de Estructuras de Datos II, Iván Bernardo Rodríguez
de la Escuela Universitaria de Informá- J.Alberto Berna García
tica por los alumnos de ED-II de los Francisco J. Gil Sánchez
grupos GM-21 & GM-23 en el curso Alberto Bodego Felin
1996-97: Gráficos: Silvia Fernández Martín
⎯⎯⎯⎯⎯⎯⎯→♣←⎯⎯⎯⎯⎯⎯ Coordinación: Jesús Alonso S.
Prohibida su Difusión
Paz Blanco Vedia ⎯⎯⎯⎯⎯⎯⎯→♣←⎯⎯⎯⎯⎯⎯

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

You might also like