Академический Документы
Профессиональный Документы
Культура Документы
Archivo de datos
1
1.1 Archivos hash y
secuenciales
El almacenamiento en una base de datos se realiza por medio de archivos
físicos que se graban en un disco rígido. Estos archivos cuentan con una
estructura que nos permite realizar diferentes operaciones que se describen
a continuación.
2
Figura 1: bloque de datos físico
3
3) Archivos desordenados: el orden en este tipo de archivos se
va dando en la medida que los datos se van insertando. Y la
inserción por defecto siempre se realiza al final del archivo.
4
Extracción o recuperación: son operaciones donde se busca un
determinado dato para ser presentado. Esta búsqueda puede ser
realizada con alguna condición para delimitar el universo de archivos
que se deban recorrer. Este tipo de operación no modifica los datos de
los archivos o base de datos. Suele ser llamada operación de lectura.
Un ejemplo para este tipo de operaciones sería el hecho de traer o leer
todos los artículos de un determinado rubro, por ejemplo, listar todos
los artículos del rubro electrónico.
5
Figura 3: ejemplo de tabla hash
Fuente: [Imagen sin título sobre tabla hash]. (s. f.). Recuperado de https://goo.gl/Hy50ns
Para conseguir un buen rendimiento de las tablas hash, es vital contar una
buena función, que genere la menor cantidad de colisiones. Cuando una
colisión es generada se resuelve con una búsqueda secuencial. Cuando una
función genera muchos valores iguales las búsquedas son más lentas.
6
Una forma de depurar el manejo de las colisiones en una tabla hash, puede
ser el utilizar una función hash que devuelva un valor constante. Por ejemplo
1 y que cause colisión en cada inserción.
Resolución de colisiones
Por suerte esto tiene solución y hay varias técnicas para solucionarlo, pero
las más conocidas son:
Encadenamiento.
Direccionamiento abierto.
7
Encadenamiento
Fuente: [Imagen sin título sobre encadenamiento]. (s. f.). Recuperado de https://goo.gl/B3xN1E
1) El borrado es simple.
Direccionamiento abierto
8
Figura 5: ejemplo de direccionamiento abierto
Fuente: [Imagen sin título sobre direccionamiento abierto]. (s. f.). Recuperado de
https://goo.gl/B3xN1E
Hash perfecto
Es cuando se encuentra una función que no duplica los valores de las claves
o genera valores únicos. Como consecuencia de esto no se presentan
colisiones.
9
Hash dinámico
Las estructuras de las tablas hash son del tipo árbol y permiten almacenar
un gran número de información. Su mayor eficiencia la presentan en las
operaciones de inserción, eliminación y búsqueda. Y como desventaja o
problema podemos nombrar dos:
10
1.2 Archivos de índices y
árboles
1.2.1 Archivos de índices
En la unidad anterior, hablamos de los archivos de índices de manera
general. En esta unidad entraremos en detalle. Para ello comenzaremos con
la clasificación de índices:
Índice principal
11
Figura 6: índice principal
Índice agrupado
12
Figura 7: índice agrupado, más de un valor por bloque
13
Índice secundario
14
Figura 10: índice secundario, puntero a bloque de punteros
Índice multinivel
15
Figura 11: Índices multiniveles
16
Figura 12: árbol AVL no equilibrado
1.2.3 Árboles B y B+
Los índices multinivel dinámico que utilizan árboles B y B+ son casos
especiales de estructuras dinámicas de datos. Permiten implementar índices
multinivel con posibilidad de que un índice se expanda o contraiga. Cada
nodo contiene:
17
Las dos limitaciones que tienen los árboles de búsqueda son, siendo K un
valor de búsqueda de conjunto ordenado:
dentro de cada nodo: K1<K2<…<Kq-1;
para todos los valores de X del subárbol al que apunta Pi,
tenemos que Ki-1<X<Ki. (Rodriguez-Tastets, 2017,
recuperado de https://goo.gl/R8wAIx)
18
Figura 16: restricción de búsqueda 2
Árboles B
Los algoritmos de los árboles B son complejos, cada valor del campo de
búsqueda aparece con su puntero, por única vez. Hay otras restricciones
adicionales que aseguran el equilibrio:
19
Figura 17: árboles B balanceados
Árboles B+
Los árboles B+ son una variación de los árboles B. Los punteros a datos solo
están en los nodos hoja, con lo cual se logra menos niveles y mayor
capacidad. Los punteros de los nodos hoja pueden ser al:
Los punteros en nodos internos son punteros de árbol a bloque. Los nodos
hoja se encadenan para obtener acceso ordenado a registros.
20
Referencias
Cruz Chávez, M. A., (2017). Recuperado de
http://www.gridmorelos.uaem.mx/~mcruz/cursos/miic/bd1.pdf
21