Está en la página 1de 18

ESTRUCTURAS DE INDEXACIÓN

ESTRUCTURAS DISCRETAS

ALUMNOS:
Claudia V. Coaguila Rodríguez
Elizabeth Casilla Mamani
María Elena Yupa Linares
Adrian José Montoya Ibarcena
Javier Colque Malaga
Introducción

En el ámbito computacional la búsqueda de archivos y obtención de


datos son eventos que están presentes en cada una de las acciones
realizadas por un computador, uno de los métodos más eficaces para
realizar estas búsquedas lo ofrecen las estructuras de indexación.
Se utilizan para poder hacer las búsquedas dentro de las bases de
datos mucho más rápidas y fáciles mediante código SQL.
Los tipos de estructuras de indexación más utilizados se basan en
ficheros ordenados (Índices de un solo nivel) y en estructuras de
datos de árboles (BTrees y B+Trees).
Conceptos Básicos
Índices Ordenados de un solo nivel
Para poder explicar la manera en que trabaja un índice ordenado de un solo nivel
usaremos el ejemplo de una biblioteca.
Cuando nosotros realizamos la búsqueda de un libro en una biblioteca recurrimos a un
índice de todos los libros en donde realizamos la búsqueda elemento por elemento,
desde el primero hasta que hallemos el elemento que deseamos.
Índices basados en Árboles
Árboles heterogéneos y homogéneos
● Son aquellos donde cada nodo del árbol contiene solo un tipo de puntero,
pero los punteros de los nodos hoja son de de distinto tipo que los de los
nodos no hoja.
● Los punteros de los nodos hoja apuntan a los registros del fichero de datos,
mientras que los punteros de los nodos no hoja apuntan a otros nodos del
árbol (niveles inferiores).

Nodos no hoja Punteros de árbol

Nodos hoja

Punteros de datos
Árboles B
Los árboles B son árboles cuyos nodos pueden tener un
número múltiple de hijos.
Árbol B
● B-árbol es un árbol de búsqueda que puede estar vacío o aquel cuyos nodos pueden
tener varios hijos, existiendo una relación de orden entre ellos.
● Un árbol-B de orden M (el máximo número de hijos que puede tener cada nodo) es
un árbol que satisface las siguientes propiedades:
● Cada nodo tiene como máximo M hijos.
● Cada nodo (excepto raíz y hojas) tiene como mínimo M/2 hijos.
● La raíz tiene al menos 2 hijos si no es un nodo hoja.
● Todos los nodos hoja aparecen al mismo nivel.
● Un nodo no hoja con k hijos contiene k-1 elementos almacenados.
● Los hijos que cuelgan de la raíz (r1, ···, rm) tienen que cumplir ciertas condiciones:
● El primero tiene valor menor que r1.
● El segundo tiene valor mayor que r1 y menor que r2, etc.
● El último hijo tiene valor mayor que rm.
Árbol B+
¿Qué es un Árbol B+?
● Árbol balanceado en el cual los nodos internos
dirigen la búsqueda, y los nodos “hoja” contienen las
entradas de datos.
● Para acceder a todos los nodos hoja de manera
eficiente, se enlazan utilizando apuntadores.
● Se organizan los datos en una lista doblemente
enlazada, de manera que se mantenga el acceso secuencial
en cualquier dirección.
Estructura de un Árbol B+

Entradas de
índices
(para dirigir la
búsqueda)

Entradas de
Datos
(“Conjunto de
secuencias”)
Árbol B+ - Ahora, un
ejemplo…
Inserción en Árboles B+
● El algoritmo de inserción toma una
entrada, encuentra el nodo hoja al cual
pertenece y lo inserta allí.
● Usualmente, este proceso resulta en
bajar (de manera recursiva) hasta el nodo
hoja al cual pertenece la nueva entrada,
ubicar la entrada, y luego retornar hasta
la raíz.
● ¿qué pasa cuando un nodo esta lleno?
Inserción en Árboles B+
Eliminación en Árboles B+

● Se inicia en la raíz, se busca la hoja en


donde se encuentra la entrada a borrar.
● Se elimina la entrada
● Si al eliminar una entrada el nodo queda
por debajo del nº mínimo de elementos,
se redistribuyen los elementos restantes,
de manera que el árbol se mantenga
balanceado.
Eliminación en Árboles B+
Altura de árboles y fan-out
El fan-out define la cantidad máxima de hijos que
puede tener cada nodo, mientras que la altura esta
referida a los niveles que tiene el árbol.
• Árboles Homogéneos: El número máximo de
registros que pueden ser indexados es de
b0(b - 1) + b1(b - 1) + . . . + bn-1(b -1)
para un fan-out de b y n niveles.
• Árboles Heterogéneos: El número máximo de
registros que pueden ser indexados es de bn.
Recorridos de árboles
Para recorrer y buscar algún dato dentro de un árbol se pueden utilizar 3 formas,
preorden, entreorden y postorden. A continuación explicaremos cada uno de manera
breve:
● Preorden: Este recorrido empieza por la raíz continua por el hijo izquierdo y luego
el hijo derecho, si cualquiera de los hijos resulta ser un subárbol se aplica el mismo
procedimiento hasta recorrer cada elemento del árbol (A B C D E F G H I J).
● Entreorden: Este recorrido empieza por el hijo izquierdo que este más a la izquierda
del árbol (el menor) y va avanzando de la siguiente manera: hijo izquierdo, raíz e
hijo derecho, en caso cualquiera de los hijos sea un subárbol se realiza el mismo
procedimiento dentro de este subárbol hasta llegar al último hijo derecho (el mayor)
(C B D E A F I H J G).
● Postorden: Este recorrido empieza por el hijo izquierdo y luego el hijo derecho
recorriendo posteriormente la raíz, si cualquiera de los hijos resulta ser un subárbol
se aplica el mismo procedimiento hasta recorrer cada elemento del árbol (C E D B I
J H G F A).
Relación con las Estructuras Discretas
Se basa principalmente en el orden que se manifiesta tanto en los
índices de un solo nivel como en estructuras basadas en árboles.
Como hemos visto ambos realizan búsquedas basadas en estructuras
ordenadas (aquí tenemos la expresión de lo que son conjuntos
parcialmente ordenados) y es imposible que un índice no lo haga.
Algunos ejemplos serían:
• La forma como el Explorador de Windows distribuye las
carpetas.(Árbol)
• El menú que se despliega cuando usamos la contracción
alt+tab.(Índice ordenado de un solo nivel, doble lista enlazada)
• Menús desplegables.(Árboles)
Conclusiones
• Los conceptos básicos de relaciones, funciones y conjuntos
parcialmente ordenados son necesarios para poder entender y
desarrollar estructuras de indexación en bases de datos.
• Una estructura de indexación reduce significativamente el
tiempo necesario para poder buscar y recuperar datos, y su nivel
de eficiencia es medido según la complejidad de dicha
estructura. Podemos darnos cuenta de esto al comparar los
índices ordenados de un solo nivel con los índices basados en
árboles ya sean estos árboles binarios B o B+.
• Un factor importante es definir cual será la función que realizara
la estructura de indexación para poder determinar cual es la
estructura interna que mejor se adapte a esta tarea.
GRACIAS..

También podría gustarte