Documente Academic
Documente Profesional
Documente Cultură
ÁRBOL B+
La principal diferencia es que en los árboles B todos los valores del campo de
búsqueda aparecen en algún nivel del árbol, junto con sus punteros de datos
correspondientes, mientras que en los árboles B+, los punteros de datos aparecen
sólo en los nodos hoja.
Los caminos de la raíz a cada hoja del árbol son de la misma longitud
Cada nodo que no es la raíz o una hoja tiene entre [n/2] y n hijos, donde n es fijo para cada
árbol en particular
Un nodo Hoja tiene entre [(n–1)/2] y n–1 valores
Casos especiales:
Estructura de Árbol B+
Modo típico:
Ki representa a los valores de claves de búsqueda y Pi son punteros a los hijos (para nodos que
no son hojas) o punteros a registros o cajones de registros (para nodos hojas). Las claves de
búsqueda en un nodo están ordenados.
K1 < K2 < K3 < . . . < Kn–1
Nodo Hoja:
- Una entrada por cada valor del campo de búsqueda, junto con un puntero al
registro (o a su bloque en disco) si el campo de búsqueda es clave o, si no lo es,
a un bloque de apuntadores (nivel de indirección adicional).
- Todos los nodos hoja están enlazados entre sí, para permitir el acceso ordenado
a los registros según el campo de búsqueda.
- Estructura de un nodo hoja:
1. Cada nodo hoja es de la forma
<<K1,Pr1,>,<K2,Pr2>,...,<Kq-1,Prq-1>, Psig>
donde qp, Pri es un puntero de datos y Psig es un puntero al siguiente nodo
Estructuras de Almaceuamieuto y Métodos de Acceso -22
hoja.
2. En cada nodo hoja se cumple que K1<K2< ...<Kq-1
3. Cada Pri, es un puntero a datos del fichero en disco:
· al registro cuyo valor del campo de búsqueda es Ki o
· al bloque que contiene el registro, o
· al bloque de punteros a los registros con valor Ki, si el campo de búsqueda
no es clave
4. Cada nodo tiene un mínimo de p/2 valores.
5. Todos los nodos hoja están en el mismo nivel.
Nodo Interno:
- Algunos valores del campo de búsqueda de los nodos hoja se repiten en los nodos
internos, para guiar las búsquedas
- Estructura de un nodo interno:
1. Cada nodo interno es de la forma
<P1,K1,P2,K2,...,Pq-1,Kq-1,Pq>,, qp, Pi un puntero de árbol y Ki un valor de
búsqueda
2. En cada nodo interno se cumple que K1<K2< ...<Kq-1
3. Para todo valor de búsqueda X en el subárbol al que apunta Pi,
se cumple: Ki-1< X Ki para 1<i<q
X Ki para i=1
Ki-1 < X para i=q
4. Cada nodo contiene como mucho p apuntadores de árbol
5. Cada nodo tiene un mínimo de p/2 punteros de árbol. La raíz tiene un
mínimo de dos, salvo si es el único nodo del árbol.
6. Un nodo con q punteros de árbol (qp), tiene q-1 valores del campo clave de
búsqueda.
Consultas
En las búsquedas se recorre el árbol buscando un elemento solicitado, siguiendo el
orden de la clave de busqueda. Se pueden efectuar búsquedas aleatorias o
secuenciales; estas últimas se facilitan, ya que las hojas están ligadas como si fuera
una lista encadenada. El camino que se recorre en el procesamiento de una consulta
(de la raíz a la hoja) no es mayor de log(n/2)K, siendo K los valores de la clave de
búsqueda del archivo.
Inserción
Lo primero que se debe hacer es buscar en qué nodo hoja debe insertarse,
analizando desde la raíz algunos de los nodos del árbol.
El insertar una llave en un nodo que no esta lleno es fácil sólo se actualiza el
nodo, recordando que la llave "más grande" debe promoverse siempre al nivel
superior.
Estructuras de Almaceuamieuto y Métodos de Acceso -23
Eliminación:
Para el primer caso lo único que se debe revisar es si la llave más grande sigue
siendo la misma, si la llave que eliminamos era la más grande debemos
actualizar el nivel superior (quizás sucesivamente si es el caso)
Para el segundo caso debemos "concatenar" dos nodos hermanos, teniendo 2
casos:
Bulk Loading es ordenar los registros a ser insertados en el árbol que será creado y
Asignamos una página vacía para que sirva como raíz, e insertamos un puntero a la primera página de
entradas en ella. Cuando la raíz está llena, dividimos la raíz y creamos una nueva página raíz. Continúe
insertando entradas en la página de índice más a la derecha justo por encima del nivel de hoja, hasta
que todas las entradas estén indexadas.
Indices HAshing
Los índices tipo Hash son mejores para búsquedas por igualdad y no soportan
búsquedas por rango; existen técnicas hash estáticas y dinámicas como en los árboles
ISAM y B+.
El hashing se puede usar no solo para la organización de archivos, sino también para
la creación de la estructura de índices. Un índice hash organiza claves de búsqueda,
con sus punteros a registros asociados, dentro de una estructura de archivo de hash.
Las inserciones y borrados requieren más de una operación.