¿Qué es un árbol B +?

Un árbol B + es una estructura de datos utilizada a menudo en la implementación de índices de bases de datos. Cada nodo del árbol contiene una lista ordenada de claves y punteros para nodos de nivel inferior en el árbol. Se puede pensar que estos punteros están entre cada una de las teclas. Para buscar o insertar un elemento en el árbol, uno carga el nodo raíz, encuentra las claves adyacentes entre las que se encuentra el valor buscado y sigue el puntero correspondiente al siguiente nodo en el árbol. La recurrencia eventualmente conduce al valor deseado o a la conclusión de que el valor no está presente.

Los árboles B + utilizan algunas técnicas inteligentes de equilibrio para asegurarse de que todas las hojas estén siempre en el mismo nivel del árbol, que cada nodo esté siempre al menos medio lleno (redondeado) de teclas y (por lo tanto) que la altura del árbol siempre es como máximo techo (log (n) / log (k / 2)) (más o menos una constante, no recuerdo exactamente) donde n es el número de valores en el árbol yk es el número máximo de claves en cada bloque Esto significa que solo es necesario un pequeño número de recorridos de puntero para buscar un valor si el número de claves en un nodo es grande. Esto es crucial en una base de datos porque el árbol B + está en el disco. Leer un solo bloque lleva tanto tiempo como leer un bloque parcial, y un bloque puede contener una gran cantidad de teclas / punteros (128-1024 más o menos).

Finalmente, todas las hojas del árbol B + contienen un puntero “próximo hermano” para una iteración rápida a través de un bloque contiguo de valores. Esto permite consultas de rango extremadamente eficientes (encuentre el bloque que contiene el primer valor y atraviese a los hermanos hasta encontrar el último valor). Es especialmente eficiente si la implementación garantiza que los bloques de hojas son contiguos en el disco, aunque esto es un desafío hasta donde yo sé.

Los árboles B + también se pueden usar fuera del disco, pero en general un árbol de búsqueda binario equilibrado o una lista de omisión o algo debería proporcionar un mejor rendimiento en la memoria, donde el seguimiento del puntero no es más costoso que encontrar el puntero correcto para seguir.

Es un árbol B, con una ventaja al lado. HAH

El árbol AB es un árbol binario con equilibrio automático. Un árbol B + es una versión especializada de un árbol B, que proporciona un número fijo de elementos en el nodo (llamados bloques). Las bases de datos más modernas y populares usan árboles B + para el almacenamiento (Oracle, Postgresql, Mysql, Microsoft SQL Server, …)

http://en.wikipedia.org/wiki/B%2

Un árbol B + es un árbol n-ario con un número variable pero a menudo grande de hijos por nodo. Un árbol B + consiste en una raíz, nodos internos y hojas.

La raíz puede ser una hoja o un nodo con dos o más hijos.

Un árbol B + puede verse como un árbol B en el que cada nodo contiene solo claves (no pares de clave-valor), y al que se agrega un nivel adicional en la parte inferior con hojas vinculadas.

El valor principal de un árbol B + es almacenar datos para una recuperación eficiente en un contexto de almacenamiento orientado a bloques, en particular, sistemas de archivos. Esto se debe principalmente a que, a diferencia de los árboles de búsqueda binarios, los árboles B + tienen un despliegue muy alto (número de punteros a nodos secundarios en un nodo ,

normalmente del orden de 100 o más), lo que reduce la cantidad de operaciones de E / S necesarias para encontrar un elemento en el árbol.

More Interesting

Cómo crear una red neuronal para la detección de Alzheimer

¿Puedo obtener CS en COMEDK con un rango de 15,300?

Como informático con concentración en seguridad de la información, ¿qué trabajos me esperan?

¿Por qué no hay muchas mujeres exitosas en el campo de la informática?

¿Por qué no hay robot chef? ¿Será posible a medida que el aprendizaje automático sea más avanzado?

¿Qué hace que Carnegie Mellon sea tan bueno en informática?

¿Cuáles son las mejores universidades (en la India y en el extranjero) listas para Tie Ups / MOU, las mejores en el departamento de informática de MSC IT?

¿La capacitación para la detección de spam es universal en todos los usuarios para los principales clientes de correo electrónico?

¿Qué significa la hipótesis específica y general en el concepto de espacio de versión del aprendizaje automático?

A mayo de 2017, ¿cuál es el estado de la computación cuántica?

¿Mac OS reemplazará a Windows en el mundo corporativo?

¿Hay científicos trabajando para unir las diversas disciplinas de la ciencia en un solo campo?

En la historia de la computación, ¿quién era el científico que se sorprendió al descubrir que las máquinas en su laboratorio se comunicaban entre sí?

¿Pueden los estudiantes de ciencias de la computación, a partir del conocimiento adquirido durante la universidad, hacer algo bueno para los agricultores o el medio ambiente?

¿Los hackers de crecimiento y los ingenieros de crecimiento están aquí para quedarse?