Tema 33. Los sistemas de gestión de bases de datos (SGBD). Modelos y arquitecturas: bases de datos centralizadas y distribuidas, bases de datos federadas, bases de datos no relacionales: clave valor, documentales, de objetos, grafos, columnares. Motores de indexación. El modelo de referencia ANSI. Monitor de transacciones. Control de concurrencia. Bloqueos. Recuperación de errores. Integridad.

Tema específico de Técnico/a Especialista en Informática

1. Los sistemas de gestión de bases de datos (SGBD)

🎯 Idea clave

  • Un Sistema de Gestión de Bases de Datos (SGBD) es el software especializado que actúa como intermediario entre los datos físicos y las aplicaciones o usuarios que los utilizan.
  • La base de datos es el conjunto organizado de datos, mientras que el SGBD es el sistema que los gestiona, controla y protege.
  • El SGBD resuelve problemas del modelo tradicional de ficheros, como la redundancia, la inconsistencia y la falta de seguridad.
  • Entre sus funciones esenciales se incluyen la definición de datos, el control de transacciones, la seguridad y la recuperación ante fallos.
  • Un SGBD garantiza coherencia, integridad, disponibilidad y seguridad en entornos multiusuario.
  • La distinción entre base de datos y SGBD es fundamental para evitar confusiones en el ámbito profesional y académico.

📚 Desarrollo

Definición y propósito. Un Sistema de Gestión de Bases de Datos (SGBD), también conocido como Database Management System (DBMS), es un software diseñado para definir, crear, almacenar, consultar, modificar, proteger y administrar bases de datos. Su función principal es mediar entre los datos físicos almacenados y los usuarios o aplicaciones que necesitan acceder a ellos, proporcionando un entorno estructurado y fiable. Esta capa intermedia es lo que diferencia a un SGBD de un simple repositorio de datos, como un fichero o una tabla aislada.

Diferenciación clave. Es esencial distinguir entre la base de datos, que es el conjunto organizado de datos, y el SGBD, que es el sistema que los gobierna. Mientras que la base de datos contiene la información en sí, el SGBD incorpora servicios avanzados como lenguajes de consulta, control de concurrencia, seguridad, transacciones y recuperación. Esta distinción evita confusiones frecuentes en oposiciones, donde se tiende a identificar erróneamente un fichero de datos con un SGBD completo.

Problemas resueltos. El SGBD surge como solución a las limitaciones del modelo tradicional de ficheros independientes, caracterizado por la redundancia de datos, la inconsistencia, la dificultad de acceso, la falta de aislamiento entre usuarios y la ausencia de mecanismos de seguridad y recuperación. Al centralizar la gestión bajo un sistema único, el SGBD garantiza que los datos sean coherentes, íntegros, disponibles y seguros, incluso en entornos con múltiples usuarios accediendo simultáneamente.

Funciones nucleares. Un SGBD completo incluye, al menos, las siguientes capacidades: definición de datos (creación y modificación de estructuras lógicas), manipulación de datos (inserción, consulta, actualización y borrado), gestión del almacenamiento (organización física de bloques y buffers), optimización de consultas (selección del plan de ejecución más eficiente), control de transacciones (agrupación de operaciones en unidades lógicas), control de concurrencia (regulación de accesos simultáneos) y seguridad (autenticación, autorización y protección de la información).

Ventajas estratégicas. Frente a soluciones ad hoc o sistemas basados en ficheros dispersos, el SGBD aporta centralización del dato, independencia entre la estructura lógica y el almacenamiento físico, acceso multiusuario controlado, soporte transaccional, recuperación ante fallos y herramientas de administración. Estas características lo convierten en una infraestructura estratégica para cualquier organización, ya que transforma los datos en un recurso gobernable, compartible y protegido.

Importancia en entornos corporativos. En el ámbito de las tecnologías de la información, el SGBD no se limita a almacenar datos, sino que los convierte en un recurso fiable y mantenible. Su valor radica en proporcionar un entorno donde múltiples aplicaciones y usuarios puedan operar con la información de manera segura y eficiente, sin comprometer la integridad o la disponibilidad. Esta capacidad es especialmente crítica en sectores como la sanidad, donde la gestión de datos debe cumplir con estrictos requisitos de confidencialidad y precisión.

Componentes y arquitectura. Aunque los componentes específicos varían según el SGBD, en general incluyen un parser para interpretar consultas, un optimizador para seleccionar el plan de ejecución, un motor de ejecución, gestores de buffers, almacenamiento, transacciones, bloqueos, logs y seguridad. Estos elementos trabajan de manera coordinada para garantizar que las operaciones se realicen de forma eficiente y segura, incluso en condiciones de alta demanda o fallos del sistema.


🧩 Elementos esenciales

  • Base de datos: Colección organizada de datos tratados como una unidad, sin incluir el software de gestión.
  • SGBD: Software que define, almacena, organiza, consulta, protege y administra una base de datos.
  • Independencia lógica-física: El SGBD separa la estructura lógica de los datos de su almacenamiento físico, facilitando modificaciones sin afectar a las aplicaciones.
  • Control de transacciones: Capacidad para agrupar operaciones en unidades lógicas que deben confirmarse (commit) o deshacerse (rollback) como un todo.
  • Concurrencia: Mecanismo que regula el acceso simultáneo de múltiples usuarios para evitar inconsistencias.
  • Integridad: Conjunto de reglas que garantizan la validez de los datos y sus relaciones.
  • Seguridad: Funciones de autenticación, autorización y protección de la información frente a accesos no autorizados.
  • Recuperación: Herramientas para restaurar estados consistentes tras fallos lógicos o físicos.
  • Metadatos: Información sobre la estructura de la base de datos, almacenada en el catálogo o diccionario de datos.
  • Lenguaje SQL: Estándar para la definición (DDL), manipulación (DML), control (DCL) y transacciones (TCL) en SGBD relacionales.
  • Optimización de consultas: Proceso que determina el plan de ejecución más eficiente para una consulta, basado en estadísticas e índices.
  • Administración: Conjunto de herramientas para monitorizar, ajustar, copiar y mantener el SGBD.

🧠 Recuerda

  • La base de datos es el qué (los datos), mientras que el SGBD es el cómo (el sistema que los gestiona).
  • Un fichero o una tabla no son un SGBD; este incorpora funciones avanzadas como transacciones, seguridad y recuperación.
  • El SGBD elimina problemas como la redundancia, la inconsistencia y la falta de control en entornos multiusuario.
  • La coherencia, integridad, disponibilidad y seguridad son los pilares que justifican la existencia de un SGBD.
  • La independencia entre la estructura lógica y el almacenamiento físico permite adaptar el sistema sin afectar a las aplicaciones.
  • El control de concurrencia y las transacciones son esenciales para garantizar operaciones seguras en entornos compartidos.
  • La seguridad no es un añadido, sino una función intrínseca del SGBD, con autenticación, autorización y auditoría.
  • Un SGBD es una infraestructura estratégica que convierte los datos en un recurso corporativo fiable y mantenible.
  • La optimización de consultas y la gestión del almacenamiento son clave para el rendimiento del sistema.
  • La recuperación ante fallos asegura que los datos puedan restaurarse a un estado consistente tras errores.

2. Modelos y arquitecturas: bases de datos centralizadas y distribuidas, bases de datos federadas, bases de datos no relacionales: clave valor, documentales, de objetos, grafos, columnares

🎯 Idea clave

  • Los modelos de bases de datos se clasifican según la estructura de los datos y la distribución de los mismos en el sistema.
  • Las bases de datos centralizadas almacenan todos los datos en un único servidor o nodo, simplificando la gestión pero limitando la escalabilidad.
  • Las bases de datos distribuidas reparten los datos entre múltiples nodos conectados en red, mejorando la disponibilidad y el rendimiento.
  • Las bases de datos federadas integran múltiples bases de datos independientes bajo una capa lógica unificada, sin modificar su estructura original.
  • Los sistemas NoSQL superan las limitaciones de los modelos relacionales en escenarios de alta escalabilidad o datos no estructurados.
  • Cada modelo NoSQL (clave-valor, documental, grafo, columnar u orientado a objetos) se adapta a necesidades específicas de almacenamiento y consulta.

📚 Desarrollo

Modelos por distribución de datos. Los sistemas de gestión de bases de datos (SGBD) se clasifican según cómo se organizan y distribuyen los datos en la infraestructura. En los SGBD centralizados, toda la información reside en un único servidor o nodo, lo que facilita la administración y el control de integridad. Este modelo es común en entornos donde la simplicidad y la coherencia prevalecen sobre la escalabilidad horizontal. Sin embargo, su principal limitación radica en la dependencia de un único punto de fallo y en la dificultad para escalar ante crecimientos significativos de datos o usuarios.

Bases de datos distribuidas. En contraste, los SGBD distribuidos reparten los datos entre múltiples nodos interconectados, coordinando el acceso de manera transparente para el usuario. Esta arquitectura mejora la disponibilidad, ya que la caída de un nodo no paraliza todo el sistema, y permite escalar horizontalmente añadiendo más servidores. La distribución puede ser homogénea, donde todos los nodos ejecutan el mismo SGBD, o heterogénea, combinando sistemas distintos. No obstante, la complejidad en la gestión de transacciones, la sincronización y la consistencia de los datos aumenta significativamente en comparación con los modelos centralizados.

Federación de bases de datos. Las bases de datos federadas representan un enfoque intermedio, donde múltiples bases de datos independientes se integran bajo una capa lógica unificada sin modificar su estructura original. Este modelo permite consultar y combinar datos de fuentes heterogéneas como si fueran una única base de datos, manteniendo la autonomía de cada sistema subyacente. Es especialmente útil en entornos corporativos donde coexisten sistemas legacy, aplicaciones departamentales o bases de datos de distintos proveedores. La federación evita la migración forzosa de datos, pero introduce desafíos en el rendimiento y la coherencia semántica de las consultas.

Modelos NoSQL. Los SGBD no relacionales (NoSQL) surgieron para superar las limitaciones de los modelos relacionales en escenarios de alta escalabilidad, datos no estructurados o semiestructurados, y requisitos de rendimiento extremo. A diferencia de los sistemas relacionales, que organizan los datos en tablas con esquemas fijos, los NoSQL ofrecen flexibilidad en la estructura de los datos y priorizan la escalabilidad horizontal. Esta categoría incluye varios subtipos, cada uno optimizado para casos de uso específicos, como el almacenamiento de grandes volúmenes de datos en tiempo real o el análisis de relaciones complejas.

Modelo clave-valor. Los SGBD clave-valor son los más simples dentro de los NoSQL, almacenando los datos como pares de identificadores únicos (claves) y valores asociados. Este modelo es ideal para aplicaciones que requieren acceso rápido a datos mediante claves, como cachés, sesiones de usuario o configuraciones. Ejemplos destacados incluyen Redis y DynamoDB. Su simplicidad permite un rendimiento excepcional en operaciones de lectura y escritura, pero carecen de capacidades avanzadas de consulta o relaciones entre datos.

Modelo documental. Los SGBD documentales almacenan los datos en documentos semiestructurados, generalmente en formato JSON o BSON. Cada documento es una unidad autónoma que contiene campos y valores, permitiendo esquemas flexibles y anidados. Este modelo es adecuado para aplicaciones con datos heterogéneos o en evolución, como catálogos de productos, perfiles de usuarios o registros médicos. MongoDB es el ejemplo más conocido, destacando por su capacidad para manejar grandes volúmenes de datos no estructurados con consultas complejas.

Modelos especializados. Los SGBD columnares organizan los datos por columnas en lugar de filas, optimizando el almacenamiento y el rendimiento en consultas analíticas sobre grandes conjuntos de datos. Son comunes en entornos de big data y data warehousing, como Apache Cassandra. Por otro lado, los SGBD de grafos están diseñados para manejar relaciones complejas entre datos, representando la información como nodos, aristas y propiedades. Neo4j es un ejemplo destacado, utilizado en redes sociales, recomendaciones o detección de fraudes. Finalmente, los SGBD orientados a objetos integran conceptos de la programación orientada a objetos, permitiendo almacenar objetos directamente sin necesidad de mapeo relacional.


🧩 Elementos esenciales

  • Centralizadas: Todos los datos residen en un único servidor o nodo, simplificando la gestión pero limitando la escalabilidad.
  • Distribuidas: Los datos se reparten entre múltiples nodos, mejorando la disponibilidad y el rendimiento, pero aumentando la complejidad.
  • Federadas: Integración de múltiples bases de datos independientes bajo una capa lógica unificada, sin modificar su estructura original.
  • NoSQL clave-valor: Almacenan datos como pares clave-valor, optimizados para acceso rápido y simplicidad, como Redis.
  • NoSQL documentales: Guardan datos en documentos semiestructurados (JSON/BSON), ideales para esquemas flexibles, como MongoDB.
  • NoSQL columnares: Organizan datos por columnas, optimizados para consultas analíticas y big data, como Apache Cassandra.
  • NoSQL de grafos: Representan datos como nodos y relaciones, especializados en análisis de conexiones complejas, como Neo4j.
  • NoSQL orientados a objetos: Integran conceptos de programación orientada a objetos, permitiendo almacenar objetos directamente.
  • Escalabilidad horizontal: Capacidad de los modelos distribuidos y NoSQL para crecer añadiendo más nodos o servidores.
  • Flexibilidad de esquema: Característica de los modelos NoSQL que permite adaptarse a datos heterogéneos o en evolución.
  • Consistencia eventual: Modelo de consistencia común en sistemas distribuidos, donde los datos se sincronizan con el tiempo.
  • Autonomía de nodos: Propiedad de las bases de datos federadas que mantiene la independencia de cada sistema subyacente.

🧠 Recuerda

  • Los modelos centralizados son simples pero vulnerables a fallos únicos y limitados en escalabilidad.
  • Las bases de datos distribuidas mejoran la disponibilidad y el rendimiento, pero requieren gestión avanzada de consistencia.
  • La federación permite integrar sistemas heterogéneos sin migrar datos, aunque puede afectar al rendimiento.
  • Los sistemas NoSQL priorizan escalabilidad y flexibilidad sobre la rigidez de los esquemas relacionales.
  • Cada modelo NoSQL (clave-valor, documental, columnar, grafo u orientado a objetos) resuelve necesidades específicas.
  • Los SGBD columnares son ideales para análisis de grandes volúmenes de datos, mientras que los de grafos destacan en relaciones complejas.
  • La elección del modelo depende del tipo de datos, los requisitos de rendimiento y la escalabilidad necesaria.
  • Los modelos distribuidos y NoSQL son clave en entornos de big data y aplicaciones en tiempo real.
  • La federación es útil en entornos corporativos con sistemas legacy o departamentales independientes.
  • La flexibilidad de esquema en NoSQL permite adaptarse a datos no estructurados o en constante evolución.

3. Motores de indexación

🎯 Idea clave

  • Los motores de indexación son subsistemas de los SGBD encargados de crear, mantener y explotar índices para optimizar el acceso a los datos.
  • Un índice es una estructura auxiliar que evita recorridos completos de tablas, acelerando consultas sin modificar el modelo lógico de los datos.
  • La indexación mejora el rendimiento de las consultas, pero implica costes de almacenamiento y mantenimiento que deben gestionarse con criterio.
  • En el SAS, los motores de indexación son críticos para aplicaciones clínicas como Diraya o Receta XXI, que requieren baja latencia en consultas masivas.
  • Existen múltiples tipos de índices, cada uno adaptado a patrones de consulta y naturaleza de los datos específicos.
  • La selección adecuada del tipo de índice y su mantenimiento regular son competencias clave para el Técnico Especialista en Informática del SAS.

📚 Desarrollo

Definición y función. Los motores de indexación constituyen el componente interno de un SGBD responsable de gestionar índices, estructuras auxiliares que permiten localizar datos sin explorar toda la tabla. Su objetivo es reducir las operaciones de entrada/salida (I/O) necesarias para recuperar información, mejorando significativamente el rendimiento de las consultas. Esta optimización es especialmente relevante en entornos sanitarios como el SAS, donde sistemas como Diraya o Receta XXI exigen tiempos de respuesta mínimos en operaciones masivas.

Equilibrio entre ventajas y costes. La documentación oficial de PostgreSQL, MySQL, Oracle Database y SQL Server coincide en señalar que los índices aceleran las búsquedas, pero introducen costes asociados. Estos incluyen el consumo adicional de almacenamiento, la ralentización de operaciones de escritura (INSERT, UPDATE, DELETE) debido a la necesidad de actualizar los índices, y la complejidad en su diseño y mantenimiento. Por ello, la indexación debe planificarse cuidadosamente, priorizando las consultas más frecuentes y críticas para el sistema.

Tipos de índices generales. El índice B-tree (y su variante B+tree) es el más utilizado en bases de datos relacionales por su versatilidad. Soporta búsquedas exactas, rangos, ordenaciones y prefijos, siendo el tipo predeterminado en la mayoría de SGBD. Los índices hash, en cambio, están optimizados para búsquedas por igualdad exacta, ofreciendo tiempos de acceso O(1), pero no son útiles para consultas de rango. Los índices bitmap son eficientes en columnas con baja cardinalidad (pocos valores distintos), como sexo o estado, y son comunes en entornos analíticos (OLAP).

Índices especializados. Además de los tipos generales, existen índices adaptados a necesidades específicas. Los índices funcionales permiten indexar el resultado de una función o expresión aplicada a una columna, como LOWER(apellido) para búsquedas case-insensitive. Los índices parciales o filtrados cubren solo un subconjunto de datos, reduciendo su tamaño y coste de mantenimiento. PostgreSQL, por ejemplo, ofrece estructuras avanzadas como GiST, SP-GiST, GIN y BRIN, cada una diseñada para casos de uso particulares, como búsquedas de texto completo o datos correlacionados.

Motores de indexación en el SAS. En el Servicio Andaluz de Salud, los motores de indexación son piezas clave para la operatividad de aplicaciones clínicas y analíticas. Los sistemas relacionales (Oracle, PostgreSQL) utilizan índices tradicionales para soportar consultas transaccionales, mientras que los almacenes de datos analíticos emplean índices columnares para indicadores y vigilancia. Plataformas como Elasticsearch, OpenSearch o Solr se integran en portales corporativos, intranets y repositorios documentales para búsquedas enriquecidas. Además, proyectos emergentes de IA y RAG aprovechan bases vectoriales (pgvector, Pinecone, Milvus) para gestionar embeddings de literatura clínica y guías.

Mantenimiento y buenas prácticas. El rendimiento de los índices depende de su mantenimiento regular. Las estadísticas sobre la distribución de los datos son fundamentales para que el optimizador de consultas elija planes eficientes. Si estas estadísticas están desactualizadas, el SGBD puede optar por recorridos ineficientes, afectando gravemente al rendimiento. Además, es crucial revisar periódicamente los índices existentes para eliminar aquellos no utilizados, reorganizar los fragmentados y ajustar los diseños en función de los patrones reales de consulta. En el SAS, esta labor corresponde a equipos especializados en coordinación con desarrolladores y administradores de bases de datos.

Formación y evolución. Dada la rápida evolución de los motores de indexación, la formación continua es esencial para el Técnico Especialista en Informática del SAS. Conocer los conceptos y productos descritos no solo permite operar la infraestructura existente, sino también diagnosticar problemas de rendimiento, soportar a usuarios afectados y participar en proyectos de mejora. La capacidad para seleccionar el tipo de índice adecuado, equilibrar su coste y beneficio, y mantener su eficacia es una competencia directamente aplicable en el ámbito sanitario.

🧩 Elementos esenciales

  • Motor de indexación: Subsistema del SGBD encargado de crear, mantener y utilizar índices para optimizar el acceso a los datos.
  • Índice: Estructura auxiliar que acelera las consultas evitando recorridos completos de tablas, sin alterar el modelo lógico de los datos.
  • B-tree/B+tree: Tipo de índice generalista, eficiente para búsquedas exactas, rangos, ordenaciones y prefijos, utilizado por defecto en la mayoría de SGBD relacionales.
  • Hash: Índice optimizado para búsquedas por igualdad exacta (O(1)), pero no apto para consultas de rango o ordenación.
  • Bitmap: Índice eficiente para columnas con baja cardinalidad, común en entornos analíticos (OLAP) y consultas con múltiples condiciones lógicas.
  • Índice funcional: Permite indexar el resultado de una función o expresión aplicada a una columna, como LOWER(nombre) para búsquedas insensibles a mayúsculas.
  • Índice parcial/filtrado: Cubre solo un subconjunto de datos, reduciendo su tamaño y coste de mantenimiento.
  • GiST/SP-GiST/GIN/BRIN: Tipos de índices especializados en PostgreSQL para casos de uso avanzados, como búsquedas de texto completo o datos correlacionados.
  • Columnstore: Índice orientado a almacenamiento columnar, optimizado para consultas analíticas y agregaciones.
  • Elasticsearch/OpenSearch/Solr: Motores de búsqueda distribuidos utilizados en el SAS para búsquedas enriquecidas en portales y repositorios documentales.
  • Bases vectoriales (pgvector, Pinecone, Milvus): Motores de indexación para embeddings, empleados en proyectos de IA y RAG sobre conocimiento clínico.
  • Estadísticas: Datos sobre la distribución de los valores en las tablas, esenciales para que el optimizador de consultas elija planes eficientes.

🧠 Recuerda

  • Los motores de indexación son fundamentales para el rendimiento de los SGBD, especialmente en entornos con consultas masivas como el SAS.
  • Un índice acelera las búsquedas, pero ralentiza las escrituras y consume espacio de almacenamiento.
  • El índice B-tree es el más versátil y utilizado en bases de datos relacionales.
  • Los índices hash son eficientes para igualdad exacta, pero no sirven para rangos ni ordenaciones.
  • Los índices bitmap son ideales para columnas con pocos valores distintos y consultas con múltiples condiciones.
  • Los índices funcionales y parciales permiten optimizar consultas específicas sin sobrecargar el sistema.
  • En el SAS, se combinan motores de indexación tradicionales (Oracle, PostgreSQL) con soluciones especializadas (Elasticsearch, bases vectoriales).
  • El mantenimiento regular de índices y estadísticas es crucial para evitar degradación del rendimiento.
  • La selección del tipo de índice adecuado depende del patrón de consulta y la naturaleza de los datos.
  • La formación continua en motores de indexación es esencial para el Técnico Especialista en Informática del SAS.

4. El modelo de referencia ANSI

🎯 Idea clave

  • El modelo de referencia ANSI/SPARC es un marco conceptual fundamental para los Sistemas de Gestión de Bases de Datos (SGBD), propuesto en 1975.
  • Establece tres niveles de abstracción: externo, conceptual e interno, que permiten organizar la información de manera estructurada.
  • La arquitectura garantiza independencia de datos, separando la visión del usuario, la estructura lógica global y la implementación física.
  • El nivel externo define las vistas personalizadas para cada usuario o aplicación, adaptadas a sus necesidades específicas.
  • El nivel conceptual representa el esquema lógico global de la base de datos, incluyendo entidades, relaciones y restricciones.
  • El nivel interno describe el almacenamiento físico de los datos, como índices, páginas y estructuras de acceso.

📚 Desarrollo

Origen y propósito. El modelo de referencia ANSI/SPARC fue propuesto en 1975 por el comité SPARC del American National Standards Institute (ANSI). Su objetivo es proporcionar un marco conceptual para los SGBD, estableciendo una separación clara entre los distintos niveles de abstracción de los datos. Esta arquitectura no describe un producto concreto, sino una forma ordenada de organizar la información y las responsabilidades dentro de un sistema de bases de datos.

Niveles de abstracción. La arquitectura ANSI/SPARC define tres niveles fundamentales: el nivel externo, el nivel conceptual y el nivel interno. Cada uno de estos niveles cumple una función específica y se relaciona con los demás mediante mapeos que garantizan la coherencia del sistema. Esta separación permite gestionar de manera independiente las vistas de usuario, la estructura lógica global y el almacenamiento físico.

Nivel externo. Este nivel, también conocido como nivel de vistas, define cómo cada usuario o aplicación percibe la base de datos. Cada vista externa es un subconjunto lógico de la base de datos, adaptado a las necesidades específicas de un usuario o grupo de usuarios. En SQL, este nivel se implementa mediante vistas (VIEWs), que permiten aplicar el principio de mínimo privilegio y personalizar el acceso a los datos sin alterar su estructura global.

Nivel conceptual. El nivel conceptual representa el esquema lógico global de la base de datos, incluyendo todas las entidades, relaciones, restricciones y semántica de los datos. Es responsabilidad del administrador de la base de datos (DBA) definir y mantener este esquema, que actúa como la representación canónica de la organización de la información. Este nivel es independiente de las vistas externas y del almacenamiento físico, lo que facilita su evolución sin afectar a los demás niveles.

Nivel interno. El nivel interno, o nivel físico, describe cómo se almacenan los datos en el soporte de almacenamiento, como discos magnéticos, SSDs o sistemas de ficheros. Incluye detalles como la organización de ficheros, métodos de acceso, índices, particionado físico, compresión y cifrado. Este nivel es el único que interactúa directamente con el hardware y el sistema operativo, y su gestión corresponde al DBA, quien optimiza el rendimiento mediante decisiones sobre índices, tablespaces o algoritmos de compresión.

Independencia de datos. Uno de los objetivos centrales del modelo ANSI/SPARC es garantizar la independencia de datos, que se divide en dos dimensiones: independencia física e independencia lógica. La independencia física permite modificar el almacenamiento o las estructuras de acceso sin afectar al esquema conceptual. La independencia lógica, por su parte, permite cambiar el esquema conceptual sin necesidad de rehacer las vistas externas o las aplicaciones que las utilizan. Esta separación reduce el acoplamiento entre niveles y facilita la evolución tecnológica.

Aplicación práctica. El modelo ANSI/SPARC es un marco de referencia conceptual que ayuda a entender y diseñar sistemas de bases de datos. Aunque los SGBD comerciales actuales, como Oracle, SQL Server o PostgreSQL, implementan esta arquitectura con distintos grados de explicitación, su valor radica en proporcionar una disciplina de separación entre preocupaciones. Esta separación permite asignar responsabilidades claras a administradores, diseñadores y usuarios, y facilita la toma de decisiones sobre almacenamiento, acceso y presentación de los datos.


🧩 Elementos esenciales

  • Arquitectura ANSI/SPARC: Marco conceptual propuesto en 1975 que define tres niveles de abstracción en los SGBD: externo, conceptual e interno.
  • Nivel externo: Vistas personalizadas para usuarios o aplicaciones, adaptadas a sus necesidades específicas. Implementado mediante VIEWs en SQL.
  • Nivel conceptual: Esquema lógico global de la base de datos, que incluye entidades, relaciones, restricciones y semántica. Responsabilidad del DBA.
  • Nivel interno: Almacenamiento físico de los datos, con detalles como índices, páginas, compresión y particionado. Gestionado por el DBA.
  • Independencia física: Capacidad de modificar el nivel interno sin afectar al esquema conceptual.
  • Independencia lógica: Capacidad de modificar el esquema conceptual sin afectar a las vistas externas o aplicaciones.
  • Esquema interno: Descripción completa de la estructura física de almacenamiento, incluyendo organización de ficheros, métodos de acceso y rutas.
  • Esquema conceptual: Representación lógica global de la base de datos, independiente de las vistas externas y del almacenamiento físico.
  • Mapeos entre niveles: Relaciones que permiten conectar las vistas externas con el esquema conceptual y este con el almacenamiento físico.
  • Ejemplos de nivel interno: Índices B-Tree, organización en montículo (heap), tamaño de bloque de datos y particionado físico.
  • Ejemplos de nivel conceptual: Tablas, claves primarias, claves foráneas, constraints y dominios.
  • Valor del modelo: Proporciona una disciplina de separación entre preocupaciones, facilitando el diseño, mantenimiento y evolución de las bases de datos.

🧠 Recuerda

  • El modelo ANSI/SPARC es un marco conceptual, no una implementación concreta de un SGBD.
  • Los tres niveles de la arquitectura son: externo (vistas), conceptual (esquema lógico global) e interno (almacenamiento físico).
  • La independencia de datos se divide en física y lógica, y es clave para la evolución de los sistemas.
  • El nivel externo permite personalizar el acceso a los datos para distintos usuarios o aplicaciones.
  • El nivel conceptual es responsabilidad del DBA y define la estructura lógica global de la base de datos.
  • El nivel interno describe el almacenamiento físico y es gestionado por el DBA para optimizar el rendimiento.
  • Los mapeos entre niveles garantizan la coherencia entre las vistas externas, el esquema conceptual y el almacenamiento físico.
  • La arquitectura ANSI/SPARC facilita la separación de responsabilidades entre administradores, diseñadores y usuarios.
  • Los SGBD comerciales actuales implementan esta arquitectura, aunque con distintos grados de explicitación.
  • Comprender este modelo ayuda a interpretar mejor el papel de los SGBD y las decisiones de diseño y almacenamiento.

5. Monitor de transacciones

🎯 Idea clave

  • El monitor de transacciones es el subsistema del SGBD encargado de coordinar las operaciones para garantizar que las transacciones se comporten como unidades lógicas ACID.
  • Su función principal no se limita a ejecutar comandos COMMIT o ROLLBACK, sino que abarca el control completo del ciclo de vida de las transacciones.
  • Actúa como punto de articulación entre la lógica funcional, la consistencia de los datos y la fiabilidad operativa del sistema.
  • En la práctica, suele integrarse en varios componentes internos del SGBD, más que existir como un módulo aislado y uniforme.
  • Es imprescindible en entornos multiusuario y sistemas donde los datos tienen valor operativo, evitando estados intermedios inaceptables.
  • Su alcance incluye la delimitación de la unidad de trabajo, el control de concurrencia y la recuperación ante fallos.

📚 Desarrollo

Definición y alcance. El monitor de transacciones es el componente del SGBD responsable de gobernar la ejecución de unidades de trabajo transaccionales para asegurar que sus efectos sobre los datos sean coherentes, recuperables y seguros. No se trata de una herramienta de observación, sino de un sistema activo que controla el ciclo de vida completo de cada transacción, desde su inicio hasta su confirmación o anulación [3][4].

Integración en el SGBD. Aunque académicamente se conceptualiza como una entidad diferenciada, en la práctica el monitor de transacciones suele integrarse en diversos componentes internos del SGBD. Esto implica que su función se sustenta mediante la cooperación de mecanismos de control, estructuras de registro, planificación de operaciones y políticas de visibilidad o bloqueo. Su misión es articular las decisiones necesarias para que la transacción se comporte como una unidad ACID [1].

Funciones nucleares. El monitor de transacciones delimita la unidad de trabajo, garantiza su tratamiento atómico, regula su convivencia con otras transacciones, conserva la coherencia de los cambios hasta su finalización y permite confirmar o deshacer la operación de forma controlada. Estas funciones son esenciales para evitar que operaciones parciales o estados intermedios comprometan la integridad de la base de datos [1].

Coordinación interna. Su labor incluye el reconocimiento del inicio y fin de la transacción, el seguimiento de las modificaciones realizadas, la aplicación de reglas de visibilidad y aislamiento, la preparación de la confirmación definitiva y la capacidad de reversión total o parcial. Además, proporciona soporte a la recuperación posterior en caso de fallo, asegurando que los datos mantengan su consistencia [1].

Propiedades ACID. El monitor de transacciones es el garante de las propiedades ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad). Para ello, coordina su actuación con otros componentes del SGBD, como el gestor de bloqueos y el gestor de logs, asegurando que las operaciones se ejecuten de manera atómica y que los cambios sean persistentes o reversibles según corresponda [3][5].

Contexto transaccional. En entornos con pools de conexiones, el monitor debe asegurar que cada conexión se devuelva en un estado limpio, sin transacciones abiertas ni estados temporales que puedan afectar a peticiones posteriores. Esto es crucial para mantener la coherencia en sistemas con alta concurrencia y múltiples sesiones activas [6].

Registro y recuperación. El log transaccional es un componente clave asociado al monitor de transacciones. Registra los cambios o intenciones de cambio para permitir la restauración de un estado consistente tras fallos. Muchos SGBD emplean escritura anticipada, asegurando que la información necesaria para la recuperación esté almacenada de manera estable antes de materializar los cambios definitivos [6].


🧩 Elementos esenciales

  • Unidad lógica de trabajo: Agrupa una o más operaciones sobre los datos que deben ejecutarse como un todo atómico, confirmándose todas o deshaciéndose todas.
  • Ciclo de vida de la transacción: Incluye las fases de inicio, ejecución, confirmación (COMMIT) o anulación (ROLLBACK), coordinadas por el monitor.
  • Propiedades ACID: Atomicidad, Consistencia, Aislamiento y Durabilidad, garantizadas por el monitor de transacciones en colaboración con otros componentes del SGBD.
  • Gestor de bloqueos: Componente con el que el monitor coordina para regular el acceso concurrente a los datos y evitar conflictos.
  • Gestor de logs: Registra los cambios realizados durante la transacción para permitir la recuperación ante fallos, siendo esencial para la durabilidad.
  • Contexto transaccional: Permite identificar a qué transacción pertenece cada operación, evitando propagaciones incorrectas o contaminación entre sesiones.
  • Escritura anticipada: Técnica utilizada en muchos SGBD para asegurar que los datos necesarios para la recuperación estén almacenados de forma estable antes de aplicar cambios definitivos.
  • Reversión (ROLLBACK): Capacidad del monitor para deshacer total o parcialmente los cambios realizados por una transacción, restaurando la coherencia.
  • Confirmación (COMMIT): Proceso mediante el cual el monitor hace definitivos los cambios realizados por una transacción, asegurando su persistencia.
  • Aislamiento: Propiedad que impide que otras transacciones vean estados intermedios inaceptables durante la ejecución de una transacción.
  • Recuperación ante fallos: Mecanismo que permite restaurar la base de datos a un estado consistente tras errores o interrupciones, utilizando la información del log.
  • Coordinación de recursos: En entornos distribuidos, el monitor puede extender su función para coordinar múltiples recursos heterogéneos, como bases de datos o colas.

🧠 Recuerda

  • El monitor de transacciones no es un módulo aislado, sino un subsistema coordinador integrado en el SGBD.
  • Su función principal es garantizar que las transacciones se comporten como unidades ACID.
  • Controla el ciclo de vida completo de cada transacción, desde su inicio hasta su confirmación o anulación.
  • Coordina su actuación con el gestor de bloqueos y el gestor de logs para asegurar la atomicidad y durabilidad.
  • Es imprescindible en entornos multiusuario para evitar estados intermedios inconsistentes.
  • El log transaccional es clave para la recuperación ante fallos, registrando cambios o intenciones de cambio.
  • La escritura anticipada asegura que la información necesaria para la recuperación esté almacenada de forma estable.
  • El contexto transaccional evita la contaminación entre sesiones y garantiza la correcta asociación de operaciones.
  • La confirmación (COMMIT) hace definitivos los cambios, mientras que la reversión (ROLLBACK) los deshace.
  • Su labor no se limita a ejecutar comandos SQL, sino que abarca la arquitectura interna del SGBD.

6. Control de concurrencia

🎯 Idea clave

  • El control de concurrencia es el conjunto de mecanismos que garantiza la ejecución simultánea de transacciones en un SGBD sin comprometer la consistencia de los datos.
  • Su objetivo principal es armonizar el acceso concurrente de múltiples usuarios con la preservación de la corrección y coherencia de los resultados.
  • La concurrencia es una situación normal en entornos multiusuario, pero requiere regulación para evitar interferencias no controladas.
  • La serializabilidad es la referencia teórica fundamental, buscando que la ejecución concurrente sea equivalente a una ejecución en serie válida.
  • Los SGBD modernos combinan técnicas como bloqueos, control multiversión (MVCC) y niveles de aislamiento para equilibrar concurrencia y consistencia.
  • Sin control de concurrencia, una base de datos multiusuario no podría ofrecer resultados fiables ni operar de forma segura.

📚 Desarrollo

Definición y propósito. El control de concurrencia es el conjunto de principios, reglas y mecanismos que un Sistema de Gestión de Bases de Datos (SGBD) emplea para gestionar el acceso simultáneo de múltiples transacciones a los mismos datos. Su finalidad es permitir la ejecución concurrente sin que se produzcan resultados incorrectos, inconsistencias o pérdidas de actualizaciones. En entornos corporativos como los del Servicio Andaluz de Salud (SAS), donde cientos de usuarios pueden acceder y modificar datos de pacientes de forma simultánea, este control es crítico para garantizar la fiabilidad del sistema.

Concurrencia en entornos multiusuario. La concurrencia se produce cuando varias transacciones o sentencias acceden a la base de datos en intervalos temporales solapados. Esta situación es habitual en bases de datos corporativas, donde múltiples usuarios, aplicaciones o servicios interactúan con los mismos datos. El problema no radica en la concurrencia en sí, sino en las posibles interferencias entre operaciones que, sin regulación, podrían generar resultados dependientes del orden accidental de ejecución o de la visibilidad de cambios no confirmados.

Anomalías de concurrencia. Sin mecanismos de control, pueden producirse anomalías como la lectura sucia (una transacción lee datos modificados por otra que aún no ha confirmado los cambios), la actualización perdida (dos transacciones modifican el mismo dato y una sobrescribe los cambios de la otra), la lectura no repetible (una transacción lee el mismo dato dos veces y obtiene valores distintos) o el fenómeno fantasma (una transacción lee un conjunto de filas que otra modifica posteriormente). Estas anomalías ponen en riesgo la integridad de los datos y la previsibilidad del sistema.

Serializabilidad como referencia teórica. La serializabilidad es el criterio teórico fundamental del control de concurrencia. Consiste en que la ejecución concurrente de transacciones debe ser equivalente a alguna ejecución en serie de esas mismas transacciones, es decir, sin solapamientos. Este principio garantiza que los resultados sean correctos y consistentes, como si las transacciones se hubieran ejecutado una tras otra. Los SGBD implementan técnicas para aproximarse a este ideal, aunque en la práctica se admiten ciertos compromisos para mejorar el rendimiento.

Niveles de aislamiento. Los SGBD ofrecen distintos niveles de aislamiento para graduar las garantías de consistencia frente a las interferencias concurrentes. Los niveles más comunes son READ COMMITTED (solo se leen datos confirmados), REPEATABLE READ (garantiza que las lecturas de una transacción sean consistentes) y SERIALIZABLE (el nivel más estricto, equivalente a una ejecución en serie). Estos niveles permiten ajustar el equilibrio entre consistencia y rendimiento según las necesidades del sistema.

Técnicas de control de concurrencia. Los SGBD emplean diversas técnicas para gestionar la concurrencia. La más conocida es el bloqueo, que reserva temporalmente un recurso para impedir accesos incompatibles. Los bloqueos pueden ser compartidos (para lecturas) o exclusivos (para escrituras), y su granularidad varía desde filas hasta tablas completas. Otra técnica es el control multiversión (MVCC), que mantiene versiones históricas de los datos para permitir lecturas consistentes sin bloquear escrituras. También se utilizan marcas de tiempo, versionado de filas y detección de conflictos para coordinar las operaciones concurrentes.

Importancia en sistemas corporativos. El control de concurrencia es una función estructural de cualquier SGBD corporativo, ya que sin él, los datos podrían reflejar resultados accidentales, las consultas podrían leer estados efímeros o contradictorios, y las transacciones podrían perder trabajo unas de otras. En sistemas críticos como los del SAS, donde la fiabilidad y la consistencia de los datos son prioritarias, este control convierte la simultaneidad en una realidad gobernable, protegiendo la integridad del sistema y permitiendo que múltiples usuarios trabajen de forma segura y predecible.


🧩 Elementos esenciales

  • Control de concurrencia: Mecanismos que regulan el acceso simultáneo de transacciones a los mismos datos para preservar la consistencia.
  • Concurrencia: Situación en la que múltiples transacciones acceden a la base de datos en intervalos solapados, normal en entornos multiusuario.
  • Serializabilidad: Criterio teórico que exige que la ejecución concurrente sea equivalente a una ejecución en serie válida.
  • Anomalías de concurrencia: Problemas como lectura sucia, actualización perdida, lectura no repetible o fenómeno fantasma, que surgen sin control adecuado.
  • Niveles de aislamiento: Grados de protección frente a interferencias, como READ COMMITTED, REPEATABLE READ y SERIALIZABLE.
  • Bloqueo: Técnica que reserva temporalmente un recurso para impedir accesos incompatibles, con granularidad variable (fila, página, tabla).
  • Control multiversión (MVCC): Técnica que mantiene versiones históricas de los datos para permitir lecturas consistentes sin bloquear escrituras.
  • Protocolo de bloqueo en dos fases (2PL): Regla que divide la ejecución de una transacción en una fase de adquisición de bloqueos y otra de liberación, sin adquirir nuevos bloqueos después de empezar a liberar.
  • Lectura consistente: Garantía de que una transacción vea una versión coherente de los datos, incluso si otras transacciones los modifican simultáneamente.
  • Detección de conflictos: Mecanismo para identificar y resolver interferencias entre transacciones concurrentes.
  • Entorno multiusuario: Característica esencial de los SGBD corporativos, donde múltiples usuarios acceden y modifican datos simultáneamente.
  • Fiabilidad del sistema: Objetivo último del control de concurrencia, que evita resultados arbitrarios o inconsistentes en la base de datos.

🧠 Recuerda

  • El control de concurrencia es esencial para que un SGBD multiusuario funcione de forma fiable y consistente.
  • La concurrencia no es un problema en sí misma, pero requiere regulación para evitar interferencias no controladas.
  • La serializabilidad es la referencia teórica que garantiza resultados equivalentes a una ejecución en serie.
  • Los niveles de aislamiento permiten ajustar el equilibrio entre consistencia y rendimiento según las necesidades del sistema.
  • Las técnicas como bloqueos, MVCC y detección de conflictos son herramientas clave para gestionar la concurrencia.
  • Sin control de concurrencia, una base de datos no podría ofrecer resultados predecibles ni operar de forma segura.
  • Los bloqueos pueden ser compartidos o exclusivos, y su granularidad afecta al rendimiento y la concurrencia.
  • El protocolo de bloqueo en dos fases (2PL) es una regla clásica para garantizar la serializabilidad.
  • Las anomalías de concurrencia, como la lectura sucia o el fenómeno fantasma, ilustran la necesidad de estos mecanismos.
  • En sistemas críticos como los del SAS, el control de concurrencia es fundamental para garantizar la integridad de los datos.

7. Bloqueos

🎯 Idea clave

  • Los bloqueos son mecanismos esenciales en los SGBD para coordinar el acceso concurrente a los datos y garantizar su coherencia.
  • Su función principal es reservar temporalmente un recurso para impedir operaciones incompatibles por parte de otras transacciones.
  • Protegen la integridad de los datos al evitar interferencias destructivas entre transacciones simultáneas.
  • Forman parte del control de concurrencia y contribuyen a implementar las propiedades ACID, especialmente el aislamiento.
  • Se diferencian por su modo (compartido, exclusivo, etc.) y su granularidad (fila, página, tabla, etc.).
  • Aunque coexisten con técnicas como MVCC, siguen siendo una herramienta nuclear en motores como PostgreSQL, MySQL o Oracle.

📚 Desarrollo

Definición y propósito. Un bloqueo es un mecanismo de protección temporal que un SGBD aplica sobre un recurso de la base de datos para limitar el acceso concurrente de otras transacciones. Su finalidad no es restringir la simultaneidad, sino permitirla de forma ordenada, evitando resultados incorrectos, pérdidas de actualización o estados intermedios inconsistentes. Cuando varias transacciones intentan acceder al mismo dato, el SGBD decide qué operaciones son compatibles y cuáles deben esperar, materializando esta decisión a través del gestor de bloqueos.

Funciones básicas. Los bloqueos cumplen tres funciones fundamentales en el control de concurrencia. En primer lugar, protegen el estado de los recursos mientras una transacción depende de ellos, evitando que otras transacciones los modifiquen de forma incompatible. En segundo lugar, ordenan los accesos concurrentes, resolviendo conflictos entre operaciones que podrían comprometer la coherencia. Por último, contribuyen a hacer efectiva la política de aislamiento del sistema, garantizando que las transacciones se ejecuten como si fueran secuenciales, incluso en entornos multiusuario.

Modos de bloqueo. Los bloqueos se clasifican según el tipo de acceso que protegen. El modo compartido (S) se asocia a operaciones de lectura que no modifican datos, permitiendo que varias transacciones lean el mismo recurso simultáneamente. El modo exclusivo (X), en cambio, se utiliza para operaciones de modificación (INSERT, UPDATE, DELETE) e impide que otras transacciones accedan al recurso mientras dure el bloqueo. Además, existen modos especializados como el bloqueo de actualización (U), que facilita la transición de un bloqueo compartido a uno exclusivo sin riesgo de interbloqueo.

Granularidad y jerarquía. La granularidad de un bloqueo determina el tamaño del recurso protegido, que puede ir desde una fila hasta toda la base de datos. Una granularidad fina (por ejemplo, a nivel de fila) aumenta la concurrencia, pero también la sobrecarga de gestión. Para optimizar este equilibrio, los SGBD implementan bloqueos de intención, que se aplican en niveles jerárquicos superiores (tabla, página) para indicar la intención de bloquear recursos de menor granularidad. Los principales tipos son IS (Intention Shared), IX (Intention Exclusive) y SIX (Shared + Intention Exclusive), cuya compatibilidad se define mediante matrices específicas.

Bloqueos implícitos y explícitos. Los bloqueos implícitos son adquiridos automáticamente por el SGBD durante la ejecución de sentencias SQL, sin intervención del usuario. Por ejemplo, un SELECT puede obtener un bloqueo compartido, mientras que un UPDATE adquiere un bloqueo exclusivo sobre las filas afectadas. Los bloqueos explícitos, en cambio, son solicitados directamente por la aplicación mediante sentencias como SELECT ... FOR UPDATE (que bloquea filas en modo exclusivo) o LOCK TABLE (que bloquea una tabla completa). Estos últimos son útiles en patrones de acceso concurrente donde se necesita garantizar la estabilidad de un registro antes de modificarlo.

Protocolos y gestión de conflictos. El protocolo Two-Phase Locking (2PL) es uno de los más utilizados para garantizar la serialización de transacciones. Este protocolo divide la ejecución en dos fases: una de crecimiento, donde se adquieren bloqueos, y otra de contracción, donde se liberan. Una variante estricta, Strict 2PL, mantiene los bloqueos exclusivos hasta el final de la transacción (COMMIT o ROLLBACK), evitando problemas como lecturas sucias. Sin embargo, los bloqueos también pueden generar interbloqueos (deadlocks), situaciones en las que dos o más transacciones se bloquean mutuamente. Los SGBD resuelven estos conflictos abortando una de las transacciones implicadas, seleccionada como "víctima".

Coexistencia con otras técnicas. Aunque los bloqueos son una herramienta central en el control de concurrencia, no son la única. Motores modernos como PostgreSQL, MySQL InnoDB u Oracle combinan los bloqueos con técnicas como MVCC (Multiversion Concurrency Control), que permite lecturas consistentes sin bloquear los datos. Esto reduce la contención y mejora el rendimiento en entornos de alta concurrencia. No obstante, los bloqueos siguen siendo esenciales para garantizar la coherencia en operaciones críticas, especialmente en niveles de aislamiento elevados como SERIALIZABLE.

🧩 Elementos esenciales

  • Bloqueo compartido (S): Permite lecturas concurrentes sobre el mismo recurso, pero es incompatible con bloqueos exclusivos.
  • Bloqueo exclusivo (X): Garantiza acceso único para modificaciones, impidiendo cualquier otro bloqueo sobre el recurso.
  • Bloqueo de actualización (U): Facilita la transición de S a X sin riesgo de interbloqueo, utilizado en implementaciones como SQL Server u Oracle.
  • Granularidad: Nivel de detalle del recurso bloqueado (fila, página, tabla, base de datos), donde una granularidad fina aumenta la concurrencia pero también la complejidad.
  • Bloqueos de intención (IS, IX, SIX): Señalan la intención de bloquear recursos de menor granularidad, optimizando la verificación de compatibilidad.
  • Protocolo 2PL: Divide la ejecución en fase de crecimiento (adquisición de bloqueos) y fase de contracción (liberación), garantizando serialización.
  • Strict 2PL: Variante del 2PL que mantiene bloqueos exclusivos hasta el final de la transacción, evitando lecturas sucias.
  • Interbloqueo (deadlock): Situación en la que dos o más transacciones se bloquean mutuamente, resuelta abortando una de ellas.
  • Bloqueos implícitos: Adquiridos automáticamente por el SGBD durante la ejecución de sentencias SQL estándar.
  • Bloqueos explícitos: Solicitados por el usuario mediante sentencias como SELECT ... FOR UPDATE o LOCK TABLE.
  • Matriz de compatibilidad: Define qué combinaciones de bloqueos pueden coexistir en el mismo recurso, clave para la gestión de concurrencia.
  • MVCC: Técnica que permite lecturas consistentes sin bloqueos, complementando (pero no reemplazando) a los bloqueos tradicionales.

🧠 Recuerda

  • Los bloqueos son fundamentales para garantizar la coherencia de los datos en entornos multiusuario.
  • Su función principal es evitar interferencias destructivas entre transacciones concurrentes.
  • Los modos compartido y exclusivo son los más básicos, pero existen otros especializados como el de actualización.
  • La granularidad determina el equilibrio entre concurrencia y sobrecarga de gestión.
  • Los bloqueos de intención optimizan la verificación de compatibilidad en jerarquías de recursos.
  • El protocolo 2PL y su variante estricta son clave para garantizar la serialización de transacciones.
  • Los interbloqueos son un riesgo inherente al uso de bloqueos y requieren mecanismos de detección y resolución.
  • Los bloqueos implícitos son la forma habitual de funcionamiento, mientras que los explícitos se usan en casos específicos.
  • Aunque técnicas como MVCC reducen la necesidad de bloqueos, estos siguen siendo esenciales en muchos escenarios.
  • La documentación oficial de motores como PostgreSQL, MySQL u Oracle confirma que los bloqueos siguen siendo una pieza central en los SGBD modernos.

8. Recuperación de errores

🎯 Idea clave

  • La recuperación de errores en un SGBD es el conjunto de mecanismos que restauran la base de datos a un estado consistente tras un fallo.
  • Su objetivo principal es garantizar que las transacciones confirmadas persistan y las no confirmadas no dejen efectos parciales.
  • Se sustenta en las propiedades ACID de atomicidad y durabilidad para asegurar la coherencia de los datos.
  • Incluye tanto la restauración de archivos desde copias de seguridad como la reconstrucción del estado correcto mediante registros de cambios.
  • Es crítica en entornos como el SAS, donde la pérdida de datos puede afectar directamente a la seguridad del paciente.
  • Requiere una política planificada de backup y recovery para proteger frente a fallos físicos, lógicos y errores humanos.

📚 Desarrollo

Definición y alcance. La recuperación de errores en un Sistema de Gestión de Bases de Datos (SGBD) comprende los procedimientos y técnicas diseñados para devolver la base de datos a un estado consistente y operativo tras la ocurrencia de un fallo. Este proceso no se limita a reiniciar el sistema, sino que asegura que los datos recuperados sean coherentes y útiles para reanudar la actividad con la menor pérdida posible [2].

Propiedades ACID. La recuperación de errores está directamente vinculada a dos propiedades fundamentales de las transacciones: la atomicidad y la durabilidad. La atomicidad garantiza que una transacción se ejecute completamente o no deje ningún rastro, mientras que la durabilidad asegura que los efectos de una transacción confirmada persistan incluso ante fallos posteriores al commit [4].

Diferencia entre restaurar y recuperar. Restaurar consiste en reponer archivos desde una copia de seguridad, mientras que recuperar implica reconstruir el estado correcto de la base de datos aplicando o revirtiendo cambios hasta alcanzar el punto deseado. Ambos procesos son complementarios y esenciales para garantizar la integridad de los datos [1].

Mecanismos técnicos. Los SGBD emplean registros de transacciones (log), puntos de control (checkpoints), técnicas de redo (rehacer) y undo (deshacer), y procedimientos de restauración para implementar la recuperación. Herramientas como RMAN en Oracle, WAL en PostgreSQL o los logs de redo y undo en MySQL/InnoDB son ejemplos de estos mecanismos [1].

Importancia en entornos sanitarios. En sistemas de información sanitaria, como los del Servicio Andaluz de Salud (SAS), la recuperación de errores adquiere una relevancia crítica. La pérdida o corrupción de datos puede tener consecuencias graves, como historias clínicas incompletas, errores en prescripciones o resultados analíticos no registrados, lo que compromete la seguridad del paciente [2].

Política de backup y recovery. La efectividad de la recuperación depende de una política planificada y probada que combine copias de seguridad periódicas con registros de transacciones. Esta política debe cubrir fallos físicos (como corrupción de ficheros), fallos lógicos (como operaciones erróneas) y errores humanos, asegurando la coherencia de los datos en todo momento [1].

Proceso de recuperación. Tras un fallo, el SGBD utiliza el log de transacciones para deshacer las operaciones de transacciones no confirmadas (undo) y rehacer las operaciones de transacciones confirmadas que no llegaron a reflejarse en disco (redo). Los puntos de control (checkpoints) optimizan este proceso al reducir el volumen de operaciones que deben revisarse [7].

Continuidad del servicio. La recuperación de errores no solo protege la integridad de los datos, sino que también garantiza la disponibilidad y continuidad del servicio. En entornos corporativos, como los del SAS, esto es esencial para mantener la operatividad de sistemas críticos sin interrupciones prolongadas [8].


🧩 Elementos esenciales

  • Recuperación de errores: Conjunto de mecanismos para restaurar la base de datos a un estado consistente tras un fallo.
  • Atomicidad: Propiedad ACID que asegura que una transacción se ejecute completamente o no deje ningún efecto.
  • Durabilidad: Propiedad ACID que garantiza que los efectos de una transacción confirmada persistan tras un fallo.
  • Restaurar: Proceso de reponer archivos desde una copia de seguridad.
  • Recuperar: Proceso de reconstruir el estado correcto de la base de datos aplicando o revirtiendo cambios.
  • Log de transacciones: Registro de todas las operaciones realizadas en la base de datos, esencial para la recuperación.
  • Checkpoints: Puntos de control que optimizan el proceso de recuperación al reducir el volumen de operaciones a revisar.
  • Redo: Técnica para rehacer operaciones de transacciones confirmadas que no llegaron a disco.
  • Undo: Técnica para deshacer operaciones de transacciones no confirmadas.
  • Política de backup y recovery: Planificación y pruebas periódicas para garantizar la efectividad de la recuperación.
  • Fallo físico: Corrupción de ficheros, cortes eléctricos o incidencias de almacenamiento.
  • Fallo lógico: Operaciones erróneas o inconsistencias en los datos.
  • Error humano: Acciones incorrectas realizadas por usuarios o administradores.

🧠 Recuerda

  • La recuperación de errores es esencial para garantizar la coherencia y disponibilidad de los datos en un SGBD.
  • Las propiedades ACID de atomicidad y durabilidad son la base teórica de la recuperación.
  • Restaurar y recuperar son procesos distintos pero complementarios.
  • Los registros de transacciones (log) y los puntos de control (checkpoints) son herramientas clave para la recuperación.
  • En entornos sanitarios, como el SAS, la recuperación de errores es crítica para la seguridad del paciente.
  • Una política de backup y recovery bien planificada es fundamental para proteger frente a fallos físicos, lógicos y errores humanos.
  • Las técnicas de redo y undo permiten reconstruir el estado correcto de la base de datos tras un fallo.
  • La recuperación de errores no solo protege la integridad de los datos, sino que también asegura la continuidad del servicio.

9. Integridad

🎯 Idea clave

  • La integridad en bases de datos garantiza que los datos almacenados sean correctos, consistentes y conformes a las reglas del mundo real que representan.
  • Se distingue de la seguridad, ya que controla la validez de los datos independientemente de quién los introduce o accede a ellos.
  • El Sistema de Gestión de Bases de Datos (SGBD) aplica restricciones y mecanismos automáticos para evitar estados inválidos tras operaciones de inserción, actualización o eliminación.
  • La integridad está estrechamente ligada a la propiedad de consistencia del modelo ACID, asegurando que las transacciones mantengan la base de datos en un estado válido.
  • Existen diferentes tipos de integridad, como la de entidad, referencial, de dominio y semántica, cada una con mecanismos específicos de aplicación.
  • La integridad no es un mecanismo único, sino un conjunto de técnicas que protegen la calidad y fiabilidad del dato en entornos corporativos.

📚 Desarrollo

Definición y propósito. La integridad en los sistemas de gestión de bases de datos (SGBD) es la propiedad que asegura que la información almacenada mantiene validez, coherencia y corrección respecto al modelo de datos y las reglas definidas. Su finalidad es evitar que los datos se degraden con el uso cotidiano, impidiendo valores imposibles, referencias rotas o duplicidades inadmisibles que comprometan la fiabilidad del sistema.

Diferenciación con la seguridad. Mientras la seguridad controla el acceso a los datos, la integridad se centra en garantizar que los datos sean correctos y coherentes. Ambas dimensiones son complementarias: la seguridad protege contra accesos no autorizados, y la integridad asegura que los datos introducidos cumplan las reglas establecidas, independientemente de quién los manipule.

Mecanismos de aplicación. El SGBD implementa la integridad mediante restricciones declarativas, claves primarias y ajenas, reglas de nulabilidad, controles de unicidad y otros mecanismos. Estas herramientas permiten trasladar la validación desde la capa de aplicación hasta el núcleo de la base de datos, garantizando una protección homogénea y evitando incoherencias introducidas por procesos externos o cargas masivas.

Tipos de integridad. La integridad se clasifica en varias categorías. La integridad de entidad exige que cada registro sea identificable de forma única, generalmente mediante claves primarias. La integridad referencial asegura que las relaciones entre tablas sean coherentes, evitando referencias a registros inexistentes. La integridad de dominio limita los valores admisibles de cada atributo, como fechas válidas o rangos clínicos. Finalmente, la integridad semántica o de negocio recoge reglas más complejas que no pueden expresarse con restricciones simples.

Relación con el modelo ACID. La integridad está directamente vinculada a la propiedad de consistencia del modelo ACID. El SGBD verifica las restricciones de integridad al inicio y al final de cada transacción, asegurando que estas lleven la base de datos de un estado consistente a otro. Esto garantiza que las reglas de integridad nunca se violen en estados confirmados, protegiendo la coherencia del sistema.

Integridad lógica y física. La integridad se divide en dos dimensiones. La integridad lógica se refiere a la corrección de los datos según el modelo y las reglas funcionales, mientras que la integridad física asegura que los datos almacenados no se dañen por fallos de hardware, software o infraestructura. Los SGBD modernos protegen ambas mediante técnicas como transacciones ACID, escritura anticipada en diarios, sumas de comprobación y replicación.

Importancia en entornos corporativos. La integridad es una función nuclear del SGBD, ya que transforma un conjunto de datos en un recurso fiable y compartible. Sin mecanismos de integridad, la base de datos podría funcionar técnicamente, pero perdería su valor como soporte de procesos críticos, especialmente en entornos como el sanitario, donde la precisión de los datos es esencial.


🧩 Elementos esenciales

  • Integridad de entidad: Garantiza que cada registro sea único e identificable mediante una clave primaria, evitando valores nulos o duplicados.
  • Integridad referencial: Asegura que las relaciones entre tablas sean coherentes, impidiendo referencias a registros inexistentes mediante claves ajenas.
  • Integridad de dominio: Limita los valores admisibles de un atributo, como formatos, rangos o tipos de datos específicos.
  • Integridad semántica o de negocio: Recoge reglas complejas que no pueden expresarse con restricciones simples, como validaciones específicas del contexto.
  • Restricciones declarativas: Mecanismos como PRIMARY KEY, FOREIGN KEY, NOT NULL o CHECK que el SGBD aplica automáticamente.
  • Transacciones ACID: Garantizan que las operaciones mantengan la consistencia de la base de datos, verificando las restricciones de integridad al inicio y al final de cada transacción.
  • Integridad lógica: Se refiere a la corrección de los datos según el modelo y las reglas funcionales definidas.
  • Integridad física: Protege los datos almacenados contra daños causados por fallos de hardware, software o infraestructura.
  • Escritura anticipada en diarios: Técnica que registra las operaciones antes de aplicarlas, permitiendo la recuperación ante fallos.
  • Replicación y copias de seguridad: Mecanismos que aseguran la disponibilidad y recuperación de los datos en caso de errores físicos.
  • Control de concurrencia: Evita que accesos simultáneos comprometan la integridad de los datos, coordinando las operaciones de múltiples usuarios.
  • Independencia de la capa de aplicación: La validación en el núcleo del SGBD protege contra incoherencias introducidas por procesos externos o integraciones.

🧠 Recuerda

  • La integridad no es lo mismo que la seguridad: la primera garantiza la corrección de los datos, la segunda controla el acceso a ellos.
  • El SGBD aplica restricciones automáticas para mantener la integridad, evitando estados inválidos tras operaciones de modificación.
  • La integridad de entidad se basa en claves primarias, la referencial en claves ajenas y la de dominio en restricciones de valores.
  • La integridad semántica recoge reglas complejas que no pueden expresarse con restricciones simples.
  • La propiedad de consistencia del modelo ACID está directamente relacionada con la integridad.
  • La integridad lógica protege la coherencia según el modelo, mientras que la física protege contra daños en el almacenamiento.
  • Las transacciones ACID verifican las restricciones de integridad al inicio y al final de cada operación.
  • La integridad es esencial para que la base de datos sea fiable y útil en entornos corporativos.
  • Sin integridad, los datos pueden volverse incoherentes, perdiendo su valor como soporte de procesos críticos.
  • El SGBD centraliza la gestión de la integridad, evitando depender de validaciones en la capa de aplicación.

Prueba la demo si quieres ver el resto

Has visto un tema abierto completo. En la demo puedes comprobar cómo encajan el temario, las preguntas justificadas y los simulacros dentro de OposAs.

Qué vas a probar

Una demo pensada para decidir con criterio

Temario, test y simulacro conectados

La idea no es solo leer un tema: es estudiar con continuidad y comprobar cómo se relaciona con el resto de herramientas.

Preguntas justificadas

Verás explicaciones de la correcta y de las incorrectas para estudiar con más criterio, no solo para memorizar.

Acceso rápido

Con tu nombre y tu email, eliges categoría y te enviamos el acceso por correo sin compromiso.

Gratis Sin compromiso Acceso por email

Solicita ya tu acceso Demo

Sólo tu email, tu nombre y apellidos (si quieres), elige categoría y prueba antes de decidir. Es gratis.

Acceso solicitado

Revisa tu correo y también spam.

En tienes el enlace para terminar el autoregistro.

Ábrelo antes de 1 hora.

OposAs
Detrás de OposAs
Serafín revisando discos, creador de OposAs

Fuera del código también hay música, discos y radio. La misma forma de hacer las cosas: con alma, pasión y criterio.

Construí OposAs para practicar test y entender cada fallo sin pelearme con "tochos de textos infinitos".

Preparando Técnico Especialista en Informática del SAS, echaba en falta una forma más clara y atractiva de estudiar: hacer test, corregirlos bien y aprender de verdad con cada justificación.

Practicar test, aprender por qué la correcta lo es y, sobre todo, por qué las incorrectas no lo son.

OposAs está pensado para practicar test y aprender mientras corriges, sin tragarte textos interminables antes de empezar. Cuando fallas, la justificación te ayuda a entender la correcta y, sobre todo, las incorrectas: ahí suele estar el aprendizaje.

No hay una empresa detrás. Hay una persona que construyó desde cero una herramienta que “me valió para aprobar las oposiciones de TEI”, donde estudiar no se convierta en algo “pesado” sino “llevadero”.

La música forma parte de mi manera de hacer las cosas. También llevo proyectos personales como salalondon.es y jazzchill.es. Música 24/7 para cuando y donde quieras 🎶❤️.

salalondon.es jazzchill.es

De opositor a opositor, Serafín.