2. ¿Qué es un fichero? Un fichero es un conjunto de bytes almacenados de forma organizada en un dispositivo de memoria secundaria. La información de los ficheros se almacena en unidades llamadas registros, y estos se dividen en campos.
3. Organización Aleatoria o indirecta Son ficheros con organización relativa y clave alfanumérica, que hay que transformar para conseguir un valor numérico entero que facilite la correspondencia directa entre la clave y la dirección de memoria. En este caso las claves no coinciden con la dirección física, que son las posiciones de cada registro.
4. Para transformar dicha clave alfanumérica y obtener la dirección física usamos las siguientes fórmulas: f(clave) = clave / 2 (división entera), tendremos que los registros con clave 500 y 501 intentarán ocupar la misma dirección física: la 250. Es responsabilidad del programador evitar estas colisiones. Otras funciones hash, como la ya vista f(clave) = clave x 2, no producen colisiones, pero en cambio provocan que muchas direcciones físicas no sean utilizadas, con lo que se desaprovecha el espacio de almacenamiento.
5. Ventajas Acceso inmediato a los registros mediante su clave. No es necesario ordenar el fichero. Se pueden realizar operaciones de escritura y lectura a la vez. Son muy rápidos en el tratamiento individual de registros. Se pueden realizar accesos secuenciales.
6. Inconvenientes El fichero contiene gran cantidad de huecos o espacios. El algoritmo para la conversión de las claves y el algoritmo necesario para el almacenamiento y tratamiento de sinónimos han de ser creados de modo que dejen el menor numero de huecos libres y se genere el menor numero de sinónimos.
7. Inserción y lectura de registro Para insertar el registro A usamos el siguiente algoritmo f(clave) = clave x 2 50x2 = 100 Que corresponde con la dirección de memoria 100.
8. Al calcular la dirección de memoria puede ser que una clave diferente nos de cómo resultado la misma dirección de memoria, ese registro iría a la zona de overflow
9. Borrado de registro Para el borrado, borramos el registro y queda el hueco libre para poder poner un nuevo registro.
10. Árboles B y Árboles B+ Descubiertos en 1972 por Bayer y McCreight, son el estándar hoy en día para la indexación de ficheros de datos. Representan una colección de datos ordenados de manera que se permite una inserción y borradoeficientes de elementos. Es un índice, multinivel, dinámico, con un límite máximo y mínimo en el número de claves pornodo.
11. Árboles B Los árboles B son índices multinivel que resuelven los problemas de la inserción y borrado de registros y se basan en dos reglas: Permitir que los registros índice no estén llenos No mover índices de un registro a otro cuando está lleno. En su lugar, dividir en dos el registro. Cuando dos registros están muy vacíos, unirlos en uno solo cada registro de claves es un nodo del árbol B. El número máximo de claves por nodo (m) constituye el orden del árbol B. El número mínimo de claves permitidas en un nodo es normalmente la mitad del orden del árbol, con la excepción de la raiz 8.
13. Árboles B+ Un árbol-B+ esunavariación de un árbol-B. En un árbol-B+, en contrasterespecto un árbol-B, toda la información se guarda en lashojas. Los nodosinternossólocontienen claves y punteros. Todaslashojas se encuentran en el mismo, másbajonivel. Los nodoshoja se encuentranunidos entre sícomounalistaenlazadaparapermitirbúsquedasecuencial.
14. El número máximo de claves en un registro es llamado el orden del árbol-B+. El mínimo número de claves por registro es la mitad del máximo número de claves. Por ejemplo, si el orden de un árbol-B+ es n, cada nodo (exceptuando la raíz) debe tener entre n/2 y n claves. El número de claves que pueden ser indexadas usando un árbol-B+ está en función del orden del árbol y su altura. Para un árbol-B+ de orden n, con una altura h: Número máximo de claves es: nh Número mínimo de claves es: 2(n / 2)h- 1