Árbol B: Un B-Tree se denomina árbol autoequilibrado porque sus nodos están ordenados en el orden transversal. En un árbol B, un nodo puede tener más de dos hijos. El logM N es la altura del árbol B (donde ‘M’ es el orden del árbol y N es el número de nodos). Y la altura se ajusta automáticamente en cada actualización. En el árbol B, los datos están ordenados, con el valor más bajo a la izquierda y el valor más alto a la derecha. Insertar los datos o la clave en un árbol B es más complejo que un árbol binario. El B-Tree debe cumplir varias condiciones:
- Todos los nodos hoja del árbol B deben estar al mismo nivel.
- Por encima de los nodos hoja del árbol B, no debe haber subárboles vacíos.
- La altura del árbol B debe ser lo más baja posible.
Árbol B+ Un árbol B+ elimina la desventaja de un árbol B utilizado para la indexación al almacenar punteros de datos solo en los nodos de hoja del árbol. Por lo tanto, la estructura de los nodos de hoja de un árbol B+ es muy diferente de la estructura de los nodos internos del árbol B. Cabe señalar aquí que dado que los punteros de datos están presentes solo en los nodos de hoja, los nodos de hoja deben contener la valores clave todos almacenados junto con su directorio de datos correspondiente para el bloque de archivos de disco, para acceder a ellos. Además, los nodos hoja están vinculados para proporcionar un acceso ordenado a los registros. Los nodos hoja son, por tanto, el primer nivel del índice, y los nodos internos los demás niveles de un índice multinivel. Algunos de los valores clave de los nodos hoja también aparecen en los nodos internos, para actuar como un medio para controlar la búsqueda de registros.
Veamos la diferencia entre un árbol B y un árbol B+:
Base de comparación | árbol B | árbol B+ |
---|---|---|
Puntas | Todos los nodos internos y las hojas tienen punteros de datos. | Solo los nodos de hoja tienen punteros de datos |
Búsqueda | Dado que no todas las claves están disponibles en la hoja, la búsqueda suele llevar más tiempo. | Todas las claves están en los nodos hoja, por lo que la búsqueda es más rápida y precisa. |
Teclas redundantes | No se guardan claves duplicadas en el árbol. | Las claves duplicadas se mantienen y todos los nodos están presentes en la hoja. |
Insertar | La interrupción lleva más tiempo y, a veces, es impredecible. | La inserción es más fácil y los resultados son siempre los mismos. |
supresión | Borrar el nodo interno es muy complicado y el árbol tiene que sufrir muchas transformaciones. | Eliminar cualquier nodo es fácil porque todos los nodos se encuentran en la hoja. |
Nodos de hoja | Los nodos hoja no se almacenan como una lista enlazada estructurada. | Los nodos hoja se almacenan como una lista enlazada estructurada. |
Acceso | El acceso secuencial a los nodos no es posible | El acceso secuencial es posible al igual que la lista enlazada |
Altura | Para un cierto número de nodos hay más altura | La altura es menor que el árbol B para el mismo número de nodos |
Solicitud | B-Trees utilizados en bases de datos, motores de búsqueda | Árboles B+ utilizados en indexación multinivel, indexación de bases de datos |
Número de nodos | El número de nodos en cualquier nivel intermedio ‘l’ es 2yo. | Cada nodo intermediario puede tener de n/2 a n hijos. |