19 Nov

Organización de Archivos

Cada archivo se divide en unidades de almacenamiento de longitud constante denominadas bloques, que son las unidades de asignación de almacenamiento y de transferencia de datos. Uno de los principales objetivos del sistema de bases de datos es minimizar el número de transferencias de bloques entre el disco y la memoria.

La memoria intermedia (buffer) es la parte de la memoria principal disponible para el almacenamiento de las copias de los bloques del disco. El subsistema responsable de la asignación del espacio de la memoria intermedia se denomina gestor de la memoria intermedia.

Funciones del Gestor de Memoria Intermedia

  • Estrategia de sustitución: se elimina el bloque menos recientemente utilizado.
  • Bloques clavados: para que el sistema de bases de datos pueda recuperarse de las caídas.
  • Salida forzada de los bloques: Hay situaciones en las que resulta necesario volver a escribir el bloque en el disco, aunque no se necesite el espacio de memoria intermedia que ocupa.

Los archivos se organizan lógicamente como secuencias de registros. Estos registros se corresponden con los bloques del disco. Los bloques son de un tamaño fijo, mientras que los tamaños de los registros pueden variar.

Tipos de Registros

1. Registros de Longitud Fija

Cada carácter es un byte; el tipo numeric(12,2) = 8 bytes, entonces cada registro ocupa 40 bytes.

Problemas:

  • Difícil borrado.
  • Difícil que el tamaño del bloque sea múltiplo del registro.

Solución: Al borrar un registro, podemos desplazar los registros y ocupar el lugar, o podemos ocupar el lugar con el último. No es conveniente ocupar el espacio al borrar un registro, tenemos que agregar una cabecera del archivo, en donde tenemos: la dirección del primer registro cuyo contenido haya sido borrado se utiliza este primer registro para guardar la dirección del segundo registro disponible, y así sucesivamente generando así una estructura de lista libre, que es una lista enlazada de los registros disponibles enlazados con punteros.

2. Registros de Longitud Variable

Surgen al:

  • Almacenar varios tipos de registros en un mismo archivo.
  • Tipos de registros de longitud variable (varchar).
  • Tipos de registros que permiten campos repetidos (arrays).

Se utiliza la Estructura de Páginas con Ranuras:

La cabecera contiene:

  • El número de elementos del registro de la cabecera.
  • El final del espacio del bloque.
  • Un array cuyas entradas contienen la ubicación y el tamaño de cada registro.

Borrado de un registro:

  • Se libera el espacio y se borra su entrada (en tamaño va -1).
  • Se desplazan los registro y ocupan el espacio libre.
  • Se actualiza el puntero de final de espacio libre.

Nota: 1 bloque tiene aproximadamente 4 kilobytes. Los objetos de gran tamaño y los campos largos, suelen guardarse en archivos especiales (o conjunto de archivos), suelen representarse en organizaciones de archivos de árboles B+.

Organización de los Registros en Archivos

  1. Organización de los archivos en montículos: se puede colocar cualquier registro en cualquier parte del archivo en que haya espacio suficiente. Los registros no se ordenan. Generalmente sólo hay un archivo por cada relación.
  2. Organización secuencial de los archivos: Los registros se guardan en orden secuencial según el valor de la “clave de búsqueda”. El principal problema radica en la reorganización del archivo cuando se borra un registro para que quede ordenado.
  3. Organización asociativa (hash) de los archivos: se calcula una función de asociación para algún atributo de cada registro que indica el bloque del archivo donde se debe colocar el registro.

Organización de los Registros en Agrupaciones de Varias Tablas

  • Aprovechan completamente el sistema de archivos del SO.
  • Adecuada para pequeñas bases de datos.
  • Reducida cantidad de código necesaria para implementar el sistema, resulta menos satisfactorio a medida que aumenta el tamaño de la base de datos.

Resulta beneficiosa una estructura de archivos más compleja:

  • Aunque se mantenga la estrategia de guardar cada relación en un archivo diferente.
  • No utilizan directamente el SO subyacente para la gestión de archivos.
  • Se asigna al sistema de BD un archivo de gran tamaño del SO.

Almacenamiento con Diccionario de Datos

Un SGDB relacional necesita tener datos sobre las relaciones, como:

  • Los nombres de las relaciones.
  • Los nombres de los atributos de cada relación.
  • Los dominios y las longitudes de los atributos.
  • Los nombres de las vistas definidas en la base de datos y la definición de esas vistas.
  • Las restricciones de integridad.

Muchos sistemas guardan datos de los usuarios, estadísticas e índices:

  • Los nombres de los usuarios autorizados, la información de las cuentas de usuarios.
  • Contraseñas u otra información usada para autenticar a los usuarios.
  • Número de tuplas de cada relación, etc.

Deja un comentario