📝 SGBD_Componentes
← Volver

Componentes de un SGBD

Sistema Gestor de Bases de Datos (SGBD): Software que actúa como interfaz entre los usuarios/aplicaciones y los datos físicos almacenados.


Tabla Resumen de Componentes

Tipo de componente Elemento Función
Procesamiento de consultas Compilador DML Traduce consultas (SELECT, INSERT…) a bajo nivel
Precompilador DML Extrae código DML de programas (ej: embebido en Java/C)
Intérprete DDL Procesa definiciones (CREATE, ALTER…)
Motor de ejecución Ejecuta las operaciones en la BD
Gestión de almacenamiento Gestor de ficheros Maneja archivos físicos
Gestor de buffers Controla memoria intermedia
Gestión de transacciones Gestor de transacciones Controla concurrencia y ACID
Control de concurrencia Evita conflictos entre usuarios
Recuperación Recupera datos ante fallos
Metadatos Diccionario de datos Información sobre tablas, índices, etc.

Arquitectura General

USUARIO / APLICACIÓN
        │
        ▼
┌─────────────────────────────────────┐
│     PROCESAMIENTO DE CONSULTAS      │
│  ┌───────────┐   ┌───────────────┐  │
│  │Precompil. │   │  Compilador   │  │
│  │   DML     │──▶│     DML       │  │
│  └───────────┘   └──────┬────────┘  │
│  ┌───────────┐          │           │
│  │Intérprete │   ┌──────▼────────┐  │
│  │   DDL     │──▶│  Motor de     │  │
│  └───────────┘   │  Ejecución    │  │
│                  └──────┬────────┘  │
└─────────────────────────┼───────────┘
                          │
        ┌─────────────────┼─────────────────┐
        ▼                 ▼                 ▼
┌──────────────┐ ┌──────────────┐  ┌──────────────┐
│   GESTIÓN DE │ │   GESTIÓN DE │  │  METADATOS   │
│ ALMACENAM.   │ │TRANSACCIONES │  │              │
│              │ │              │  │ Diccionario  │
│ Gest.Fich.   │ │ Gest.Trans.  │  │  de datos    │
│ Gest.Buffer  │ │ Ctrl.Concur. │  │              │
│              │ │ Recuperación │  │              │
└──────┬───────┘ └──────────────┘  └──────────────┘
       │
       ▼
  [DATOS FÍSICOS]

1. Procesamiento de Consultas

Bloque encargado de recibir, interpretar y optimizar las peticiones al SGBD.

Compilador DML

-- Entrada al compilador DML:
SELECT nombre FROM empleados WHERE salario > 3000;
-- Salida: plan de acceso optimizado (ej: uso de índice sobre 'salario')

Precompilador DML

// Ejemplo DML embebido en Java (JDBC):
String sql = "SELECT * FROM clientes WHERE id = ?";
PreparedStatement ps = conn.prepareStatement(sql);

Intérprete DDL

-- Instrucciones procesadas por el Intérprete DDL:
CREATE TABLE empleados (id INT PRIMARY KEY, nombre VARCHAR(100));
ALTER TABLE empleados ADD COLUMN salario DECIMAL(10,2);

Motor de Ejecución


2. Gestión de Almacenamiento

Responsable de la organización física de los datos en disco y memoria.

Gestor de Ficheros

Gestor de Buffers

DISCO  ──▶  [Gestor de Buffers / Buffer Pool]  ──▶  Motor de Ejecución
              ↑ Minimiza accesos a disco ↑

⚠️ Importante para el examen: El gestor de buffers es clave para el rendimiento. Su objetivo es maximizar los hits en memoria y minimizar los accesos a disco.


3. Gestión de Transacciones

Garantiza que las operaciones sobre la BD sean correctas, incluso ante fallos o accesos concurrentes.

Propiedades ACID ⚠️

Propiedad Significado
Atomicidad La transacción se ejecuta completa o no se ejecuta (todo o nada)
Consistencia La BD pasa de un estado válido a otro estado válido
Aislamiento Las transacciones concurrentes no se interfieren entre sí
Durabilidad Los cambios confirmados (COMMIT) persisten aunque haya fallos

Gestor de Transacciones

Control de Concurrencia

Técnica Descripción
Bloqueos (locks) Bloquea recursos para uso exclusivo o compartido
MVCC Versiones múltiples para lectura no bloqueante
Sellado temporal Ordena transacciones por timestamp

Recuperación ante Fallos

Fallo del sistema
      │
      ▼
  [LOG / WAL]
  /         \
UNDO         REDO
(T no        (T con
confirmadas) COMMIT)

4. Metadatos — Diccionario de Datos

También llamado catálogo del sistema o data dictionary.

-- Ejemplo: consultar metadatos en PostgreSQL
SELECT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_schema = 'public';

Tabla Comparativa: DML vs DDL

Característica DML DDL
Significado Data Manipulation Language Data Definition Language
Operaciones SELECT, INSERT, UPDATE, DELETE CREATE, ALTER, DROP, TRUNCATE
Componente Compilador DML / Precompilador Intérprete DDL
Afecta a Los datos La estructura (esquema)
Transacción Sí (COMMIT / ROLLBACK) Generalmente auto-commit

Resumen en 3 puntos

  1. El SGBD tiene 4 bloques funcionales principales: procesamiento de consultas (compilador/precompilador DML + intérprete DDL + motor), gestión de almacenamiento (ficheros + buffers), gestión de transacciones (ACID + concurrencia + recuperación) y metadatos (diccionario de datos).

  2. La gestión de transacciones es el núcleo de la fiabilidad: garantiza las propiedades ACID mediante el gestor de transacciones, el control de concurrencia (bloqueos/MVCC) y el mecanismo de recuperación basado en logs (UNDO/REDO).

  3. El diccionario de datos (metadatos) es transversal a todo el sistema: lo usan el compilador para validar y optimizar, el intérprete DDL para actualizar esquemas, y el gestor de transacciones para controlar accesos. Es imprescindible para el funcionamiento interno del SGBD.