Está en la página 1de 26

ARBOLES-B

INTEGRANTES :
Apreciado Rivera, Jhefersown
León Ortecho, Jhon

Laurente Pachamango,Christian

Dominguez Honorio, Emerson

Cabeza Ramirez, Juan


INTRODUCCION
 Los B-árboles sugieron en 1972 creados por R.Bayer y E.McCreight.El
problema original comienza con la necesidad de mantener índices en
almacenamiento externo para acceso a bases de datos,es decir,con el
grave problema de la lentitud de estos dispositivos se pretende
aprovechar la gran capacidad de almacenamiento para mantener una
cantidad de información muy alta organizada de forma que el acceso a
una clave sea lo más rápido posible.
Como se ha visto anteriormente existen métodos y estructuras de datos
que permiten realizar una búsqueda dentro de un conjunto alto de
datos en un tiempo de orden O(log2n). Así tenemos el caso de los
árboles binarios AVL.¿Por qué no usarlos para organizar a través de
ellos el índice de una base de datos?la respuesta aparece si
estudiamos más de cerca el problema de acceso a memoria
externa.Mientras que en memoria interna el tiempo de acceso a n datos
situados en distintas partes de la memoria es independiente de las
direcciones que estos ocupen(n*cte donde cte es el tiempo de acceso a
1 dato),

UNT - Facultad de Informática


 en memoria externa es fundamental el acceder a datos situados en el
mismo bloque para hacer que el tiempo de ejecución disminuya debido a
que el tiempo depende fuertemente del tiempo de acceso del dispositivo
externo,si disminuimos el número de accesos a disco lógicamente el
tiempo resultante de ejecución de nuestra búsqueda se ve fuertemente
recortado.Por consiguiente,si tratamos de construir una estructura de datos
sobre disco es fundamental tener en cuenta que uno de los factores
determinantes en el tiempo de ejecución es el número total de accesos,de
forma que aunque dicho n&uacite;mero pueda ser acotado por un orden de
eficiencia es muy importante tener en cuenta el número real ya que el
tiempo para realizar un acceso es suficientemente alto como para que dos
algoritmos pese a tener un mismo orden,puedan tener en un caso un
tiempo real de ejecución aceptable y en otro inadmisible.

 De esta forma,si construimos un árbol binario de búsqueda equilibrado en


disco,los accesos a disco serán para cargar en memoria uno de los
nodos,es decir,para poder llevar a memoria una cantidad de información
suficiente como para poder decidir entre dos ramas.Los árboles de
múltiples ramas tienen una altura menor que los árboles binarios pues
pueden contener más de dos hijos por nodo,además de que puede

UNT - Facultad de Informática


hacerse corresponder los nodos con las páginas en disco de forma que al
realizar un único acceso se leen un número alto de datos que permiten
elegir un camino de búsqueda no entre dos ramas,sino en un número
considerablemente mayor de ellas.Además,este tipo de árboles hace más
fácil y menos costoso conseguir equilibrar el árbol.

 En resumen,los árboles con múltiples hijos hacen que el mantenimiento


de índices en memoria externa sea mucho más eficiente y es
justamente éste el motivo por el que este tipo de árboles han sido los
que tradicionalmente se han usado para el mantenimiento de índices
en sistemas de bases de datos.Lógicamente,aunque este tipo de
estructuras sean más idóneas para mantener grandes cantidades de
datos en almacenamiento externo es posible construirlas de igual forma
en memoria principal,y por consiguiente pueden ser mantenidas en
memoria (mediante el uso de punteros por ejemplo)al igual que las que

hemos estudiado hasta ahora.  

UNT - Facultad de Informática


Arboles B (balanceados)
 Son árboles multicamino con una construcción especial
en forma ascendente que permite mantenerlo balanceado
a bajo costo.

 En un árbol B una página o nodo consiste de una


secuencia ordenada de claves y un conjunto de punteros

 Siempre está completamente balanceado

 “Amplios y Bajos” en vez de “Delgados y Profundos”

UNT - Facultad de Informática


Arboles B
 Propiedades de un árbol B de orden M:
• Orden: cant. máx. de punteros por nodo
• Cant. de punteros= cant. claves + 1
• Ningún nodo tiene más de M hijos
• C/nodo (menos raíz y las hojas) tienen como mínimo [M/2]
hijos
• La raíz tiene como mínimo 2 hijos (o sino ninguno)
• Todos los nodos terminales a igual nivel
• Nodos no terminales con K hijos contienen K-1 claves.
• Los nodos terminales tienen:
• Minimo: [M/2]–1 claves
• Máximo: M–1 claves
 Formato del nodo

PO R1 P1 R2 P2 R3 P3 R4 P4 R5 P5 Nro de registros

UNT - Facultad de Informática


Arboles
 Inserción Vs Eliminación
División concatenación
? Redistribución

 la redistribución podría posponer la creación de


páginas nuevas
 se pueden generar árboles B más eficientes en
términos de utilización de espacio

UNT - Facultad de Informática


Arboles B*
 Árbol B especial en que cada nodo está lleno por lo
menos en 2/3 partes (excepto la raiz)

 Propiedades (orden M)
• Cada página tiene máximo M descendientes
• Cada página, menos la raíz y las hojas, tienen al menos
[(2M – 1) / 3] descendientes
• La raíz tiene al menos dos descendientes (o ninguno)
• Todas las hojas aparecen en igual nivel
• Una página que no sea hoja si tiene K descendientes
contiene K-1 llaves
• Una página hoja contiene por lo menos [(2M – 1) / 3] –1
llaves, y no más de M-1.

UNT - Facultad de Informática


Arboles B*
 Operaciones
 Búsqueda:
• Igual que el arbol B común
 Inserción: (Division + Redistribución) -> ver ejemplo
• Tres casos posibles
• Derecha
• Izquierda o derecha
• Izquierda y derecha
• Derecha: redistribuir con nodo adyacente hermano de la
derecha (o izq. si es el último)
• Izquierda o derecha: si el nodo de la derecha está lleno y no
se puede redistribuir, se busca el de la izquierda.
• Izquierda y derecha: busca llenar los tres nodos, estos
tendrán un 2/3 parte llena.
 Borrado: similar a árbol B (concatenación, redistribución)

UNT - Facultad de Informática


Arboles
 Manejo de páginas en Buffers
 Objetivo: minimizar Nº acceso a disco
 Transferir la pág. raiz a RAM ahorra 1 acceso
 Almacenar la raiz y las pags. solicitadas en un
Buffer de pags. en RAM
 Técnicas de paginado
• estrategias de reemplazo: LRU (least recently used)
# llaves = 2400 # páginas = 140 Altura = 3 niveles
Nº págs. en Buffer 1 5 10 20
Nº acceso prom. por búsqueda 3.00 1.71 1.42 0.97

UNT - Facultad de Informática


Arboles
 Información asociada con cada registro
1. Solo clave + puntero
2. Todo el registro
 Ventajas y desventajas
 Si en el espacio ocupado por un
registro pueden almacenarse muchas
parejas (clave+puntero), es conveniente
esta última opción

UNT - Facultad de Informática


Arboles B+
 Archivos secuenciales indizados
 Permiten una mejor recorrida por algún tipo de
orden
 Indizado (ordenado por una llave)
 Secuencial (acceder secuencialmente al archivo,
devolviendo los registros en orden de llave)
 Hasta ahora métodos disjuntos, se opta:
• rápida recuperación (Arbol)
• Recuperación ordenada (secuencial)
 Debemos encontrar una solución que agrupe
ambos casos
UNT - Facultad de Informática
Arboles B+
 Los árboles B+ constituyen otra mejora
sobre los árboles B.

• Conservan la propiedad de acceso


aleatorio rápido (de los árboles B)
permitiendo además un recorrido
secuencial rápido

UNT - Facultad de Informática


Arboles B+

Este árbol esta compuesto por dos partes:

 Índice: nodos interiores

 Secuencia: paginas hojas enlazadas


secuencialmente en las que se repiten
las claves anteriores

UNT - Facultad de Informática


Arboles B+

• Todas las claves se encuentran en las


Hojas (duplicándose en la raiz y nodos
interiores, aquellas necesarias para definir
los caminos de búsqueda)

• Las hojas están vinculadas, obteniéndose


de ese modo una trayectoria secuencial
para recorrer las claves del árbol

UNT - Facultad de Informática


Arboles B+
• Ocupan más espacio que los árboles B (ya que
algunas claves se encuentran más de una vez
en el árbol)

• Las claves de la página raiz e interiores se


utilizan únicamente como índice (para búsqueda)

UNT - Facultad de Informática


Arboles B+

UNT - Facultad de Informática


Arboles B+
 Propiedades
• Cada página tiene máximo M descendientes
• Cada página, menos la raíz y las hojas, tienen entre
[M/2] y M hijos
• La raíz tiene al menos dos descendientes (o ninguno)
• Todas las hojas aparecen en igual nivel
• Una página que no sea hoja si tiene K descendientes
contiene K-1 llaves
• Los nodos terminales representan un conjunto de datos
y son linkeados juntos.

 Los nodos no terminales no tienen datos sino


punteros a los datos.
UNT - Facultad de Informática
Arboles B+
 Operaciones clásicas

 Búsqueda: la búsqueda no debe


detenerse cuando se encuentre la clave en
la raiz o nodo interior, sino que debe seguir
en la pág. Apuntada por la rama derecha
de dicha clave

UNT - Facultad de Informática


Arboles B+
 Operaciones clásicas
 Inserción:
• El proceso de inserción es similar a de los
árboles B, excepto cuando se desea insertar
una clave en donde la página se encuentra
llena.

• Cuando se inserta una nueva clave en una


nueva página llena, esta se divide también en
otras dos, pero ahora la primera contendrá m/2
claves y la segunda 1+m/2 y lo que subirá al
padre será una copia de la clave central

UNT - Facultad de Informática


Arboles B+

 Inserción clave 13

UNT - Facultad de Informática


Arboles B+
 Operaciones clásicas
 Eliminación
• Este proceso es más simple que en los árboles B, porque
todas las claves se encuentran en las páginas hojas.
• Si al eliminar la clave (siempre en una hoja) la cant. de
claves >= m/2, el proceso ha terminado
• Las claves de la raiz o nodos internos no se modifican pues
siguen siendo un separador válido entre las claves de las
páginas descendientes

• Si al eliminar la clave (siempre en una hoja) la cant. de


claves < m/2, es necesario una fusión y redistribución de
las mismas, en las hojas y el índice

UNT - Facultad de Informática


Arboles B+

UNT - Facultad de Informática


Arboles B+

UNT - Facultad de Informática


Arboles B+

 Comparaciones

Arbol B Arbol B+
Nodos Nodo
Ubicación de datos
(cualquiera) terminal
Tiempo de búsqueda = =
Procesamiento Rápido (con
Lento (complejo)
secuencial punteros)
Puede requerir
Inserción eliminación Ya discutida + tiempo

UNT - Facultad de Informática


Árboles
 Separadores
• Derivados de las llaves de los registros
que limitan un bloque en el conjunto de
secuencia
• Separadores más cortos, ocupan espacio
mínimo

 Árbol B+ de prefijos simples


• Árbol B+ en el cual el conjunto índice está
constituido por separadores más cortos

UNT - Facultad de Informática

También podría gustarte