Organización de Archivos en Sistemas de Bases de Datos: Registros de Longitud Fija y Variable
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,09 KB
Los archivos se organizan lógicamente como secuencias de registros, que a su vez se corresponden con los bloques del disco. Los sistemas operativos proporcionan los archivos como un instrumento fundamental, lo que implica la existencia de un sistema de archivos subyacente.
Mientras que los bloques son de tamaño fijo, los registros pueden variar en tamaño. La implementación de archivos con registros de longitud fija es más sencilla en comparación con aquellos de longitud variable.
Registros de Longitud Fija
Los registros de longitud fija tienen un tamaño predeterminado constante. Independientemente del tamaño del contenido del registro (siempre que no exceda el tamaño máximo), el tamaño del registro permanece invariable. Cada carácter ocupa 1 byte, y un campo numérico como numeric(12,2)
ocupa 8 bytes. Por ejemplo:
numero_cuenta char(10)
nombre_sucursal char(22)
saldo numeric(12,2)
En este caso, cada registro ocuparía un total de 40 bytes. Un enfoque simple es asignar los registros de forma consecutiva en el archivo (por ejemplo, los primeros 40 bytes para el primer registro, los siguientes 40 para el segundo, y así sucesivamente).
Problemas de los Registros de Longitud Fija
- Dificultad para borrar registros: Se debe rellenar el espacio del registro borrado con otro registro o marcar los registros borrados para omitirlos (eliminación lógica).
- Incompatibilidad de tamaños: Es complicado que el tamaño del bloque sea múltiplo del tamaño del registro.
Al borrar un registro, una opción es desplazar todos los registros siguientes para ocupar el espacio liberado. Sin embargo, esto puede implicar el movimiento de muchos registros, lo que no es recomendable. Otra alternativa es desplazar solo el último registro.
Gestión de Borrado en Registros de Longitud Fija
Debido a que las inserciones suelen ser más frecuentes que los borrados, es aceptable dejar libre el espacio de los registros borrados y reutilizarlo en inserciones posteriores. Para gestionar esto, se puede utilizar una lista libre:
- Se guarda la dirección del primer registro borrado en el archivo.
- En el primer registro borrado, se guarda la dirección del segundo, y así sucesivamente.
- Los registros borrados forman una lista enlazada, la lista libre.
Al insertar un nuevo registro, se utiliza el registro indicado por la cabecera de la lista libre. Se actualiza la cabecera para que apunte al siguiente registro disponible. Si no hay espacio en la lista libre, se añade el registro al final del archivo.
Registros de Longitud Variable
Los registros de longitud variable surgen en los sistemas de bases de datos por varias razones:
- Almacenamiento de varios tipos de registros en un mismo archivo.
- Tipos de registro que permiten longitudes variables para uno o varios campos.
- Tipos de registro que permiten campos repetidos.
Para implementarlos, se utilizan técnicas como la estructura de páginas con ranuras, que es una modificación de las cadenas de bytes.
Estructura de Páginas con Ranuras
Cada bloque tiene una cabecera al principio que contiene:
- El número de elementos del registro en la cabecera.
- El final del espacio vacío del bloque.
- Un array con la ubicación y el tamaño de cada registro.
Los registros se ubican de manera contigua en el bloque, comenzando desde el final. El espacio libre está entre la última entrada del array de la cabecera y el primer registro.
- Inserción: Se asigna espacio al final del espacio libre y se añade una entrada a la cabecera con su tamaño y ubicación.
- Borrado: Se libera el espacio ocupado, se marca la entrada como "borrado" (-1), y se desplazan los registros anteriores para ocupar el espacio libre. Se actualiza el puntero de final del espacio libre en la cabecera.