Implementación de SGBD y Estructuras Físicas de Datos

Clasificado en Informática

Escrito el en español con un tamaño de 4,79 KB

Introducción a la Implementación de SGBD

Después de comprender SQL, el modelo E/R y el modelo relacional, es crucial abordar el Modelo físico de datos. Este modelo se encarga de la representación de la información en estructuras de archivos (bytes), donde las relaciones y atributos se traducen a "bytes" en disco.

La implementación de un SGBD implica:

  1. Implementar las operaciones relacionales (consultas y actualizaciones: inserción, modificación, eliminación) sobre los datos almacenados en disco.
  2. Aplicar optimizaciones para hacer viables las operaciones de consulta y actualización. Esto incluye el análisis del coste de las operaciones en disco, estrategias de borrado/inserción/compactación e indexación (índices simples, árboles B, hashing).
  3. Un SGBD debe ser capaz de:
    • Almacenar en memoria externa los datos del estado de una BD.
    • Definir una organización física de estos datos (en bytes de archivos en disco).
    • Ejecutar sentencias SQL: convertirlas a operaciones elementales de acceso y actualización de datos en archivos.
    • Optimizar el acceso a datos en disco (indexación).

Estructura Física: Campos y Registros

En el modelo físico, una tupla se traduce en un registro y un atributo en un campo. La delimitación de registros y campos puede ser de longitud fija o longitud variable.

En el caso de longitud variable, se utilizan diferentes métodos:

  1. Separador
  2. Indicador de longitud
  3. Fichero de direcciones

Además, se utilizan cabeceras con "auto-descripción" de estructuras, número de registros, etc. El formato de almacenamiento puede ser texto, binario o comprimido.

Delimitación de Registros y Campos

Longitud Fija

  • Acceso a datos más rápido.
  • Los registros se direccionan por número de orden (nrr).

Longitud Variable

  • Acceso más lento.
  • Optimización de espacio en disco.
  • Los registros se direccionan por su posición en bytes (offset).

Cabecera

  • Sección descriptiva de la estructura física de un archivo: qué campos, cómo se delimitan, etc.
  • Permite implementaciones más generales que admitan diferentes formas de organizar físicamente los registros.

¿Longitud Fija o Variable?

La elección entre longitud fija y variable depende de las necesidades específicas:

  1. Longitud fija: economía de procesamiento (y de esfuerzo de programación). Es una solución cómoda de desarrollar y ejecutar.
  2. Longitud variable: economía de espacio en disco. El esfuerzo de desarrollo/ejecución puede compensar, por ejemplo, cuando:
    • El consumo de disco es un problema.
    • La variabilidad de tamaño de registros es muy amplia: campos muy variables y/u opcionales (valores NULL).
    • Se juntan registros de diferentes tipos en el mismo archivo.
  3. Si un campo es realmente grande (documento de texto o multimedia), se suele almacenar en un archivo aparte y se guarda en el registro un descriptor de la dirección donde se almacena el valor del campo.

Escritura/Lectura en Binario vs Texto

Ejemplo para guardar en disco el short n=425:

  1. BINARIO (fwrite(&n,sizeof(n),1,f)): Pasar el 425 a complemento 2.
  2. TEXTO (fprintf(f,"%d",n)): Divide el 425 en: 4, 2 y 5. Hace el ASCII de cada número y después el complemento 2 (binario).

Generalmente, el modo texto ocupa más e implica la conversión en RAM de binario a texto (tipo "itoa"). Sin embargo, es legible con un editor de texto. La lectura (como es lógico) debe ser coherente con la escritura: binario ↔ binario, texto ↔ texto (es decir, fwrite ↔ fread, fprintf ↔ fscanf).

Operaciones en Disco

Las operaciones principales en disco son:

  1. Acceso:
    • Acceso a un registro por posición.
    • Búsqueda de registros por condiciones (consultas).
    • Índices para optimizar las operaciones de acceso.
  2. Actualización:
    • Inserción, modificación, eliminación: típicamente conllevan una consulta.
    • Borrado eficiente combinado con inserción.
  3. Coste de acceso a datos en disco:
    • Es un aspecto clave y condiciona todas las técnicas.
    • En disco es varios órdenes de magnitud mayor al de acceso en RAM.
    • Hace inviables formulaciones sencillas de operaciones comunes.
    • Cambia completamente el análisis de complejidad.
    • Cambia las estrategias y algoritmos con respecto a las técnicas en RAM.

Entradas relacionadas: