Lectura pública del tema
1. Sistemas de gestión de bases de datos relacionales: características y componentes
1. Sistemas de gestión de bases de datos relacionales: características y componentes
🎯 Idea clave
- Un SGBDR es el software que permite definir, almacenar, consultar, modificar, proteger y administrar datos organizados según el modelo relacional de tablas, filas y columnas.
- El modelo relacional se fundamenta en teoría de conjuntos y lógica de predicados, estableciendo una separación clara entre el nivel lógico de datos y su almacenamiento físico.
- El sistema proporciona mecanismos de consulta estructurada, control de integridad, gestión de transacciones con propiedades ACID, seguridad, concurrencia y recuperación ante fallos.
- Integra componentes internos especializados como el motor o kernel, el procesador de consultas, y los gestores de transacciones, logs y almacenamiento.
- La administración requiere garantizar la disponibilidad, integridad, protección y recuperabilidad de los datos durante todo su ciclo de vida.
- Actúa como intermediario crítico entre las aplicaciones de usuario y los datos físicos, gestionando operaciones de lectura, escritura y control de accesos.
📚 Desarrollo
Definición y estructura básica. Un sistema de gestión de bases de datos relacional (SGBDR o RDBMS) es un software que gestiona datos organizados según el modelo relacional. En este modelo, la información se representa mediante relaciones que se materializan como tablas formadas por filas y columnas. Cada fila representa una tupla o registro, mientras que cada columna representa un atributo con un dominio específico de valores posibles.
Fundamentos teóricos y separación de niveles. Propuesto por Edgar F. Codd, el modelo relacional se basa en fundamentos matemáticos de teoría de conjuntos y lógica de predicados. Su diseño separa la visión lógica de los datos de su almacenamiento físico: el usuario interactúa con tablas, claves y relaciones, mientras el sistema decide internamente la organización de páginas, índices, estadísticas, buffers y planes de ejecución. Esta independencia permite modificar estructuras internas sin alterar las consultas de las aplicaciones.
Funcionalidades integrales. La utilidad del SGBDR trasciende el almacenamiento simple de datos. Proporciona lenguaje de consulta estructurado (SQL), control de integridad referencial y de dominio, gestión de transacciones que garantizan propiedades ACID (atomicidad, consistencia, aislamiento y durabilidad), mecanismos de seguridad y autorización, control de concurrencia para evitar interferencias entre usuarios simultáneos, y capacidades de recuperación ante incidencias.
Arquitectura de componentes. Un SGBD relacional moderno integra numerosos subsistemas cooperativos. El motor o kernel constituye el núcleo coordinador. El procesador de consultas incluye el analizador léxico y sintáctico (parser) que verifica las sentencias SQL, el optimizador que selecciona planes de ejecución de menor coste basándose en estadísticas, el planificador que genera el plan ejecutable, y el ejecutor que accede a los datos. Completan la arquitectura el motor de almacenamiento físico, el gestor de transacciones, el gestor de logs para recuperación y el subsistema de seguridad que controla autenticación y autorización.
Administración operativa. La administración de bases de datos comprende técnicas, organizativas y de seguridad necesarias para mantener los datos disponibles, íntegros, protegidos y recuperables. Esto abarca la instalación y configuración del sistema gestor, la gestión de usuarios y permisos, la monitorización del rendimiento, el mantenimiento preventivo, la ejecución de copias de seguridad y los procedimientos de restauración ante fallos.
Rol del DBA. El administrador de bases de datos (DBA) debe asegurar el funcionamiento estable del sistema, la recuperabilidad tras incidencias, la restricción de accesos según necesidades operativas, el rendimiento aceptable y el control de cambios. En el contexto de las Administraciones Públicas, estas funciones se vinculan con el Esquema Nacional de Seguridad, la protección de datos personales, la continuidad de servicios y la trazabilidad de actuaciones.
Metadatos y objetos gestionados. El sistema mantiene un catálogo o diccionario de datos que almacena metadatos sobre tablas, columnas, índices y permisos. El esquema define la estructura de la base de datos, mientras que la instancia representa el contenido específico en un momento dado. Además, el SGBDR gestiona vistas, procedimientos almacenados, funciones y disparadores que incorporan lógica de negocio dentro del propio sistema.
🧩 Elementos esenciales
- Tupla: Cada fila de una tabla que representa un registro individual dentro del modelo relacional.
- Atributo: Cada columna de una tabla que opera sobre un dominio específico de valores posibles.
- Independencia lógica-física: Separación entre la representación conceptual de los datos (tablas) y su implementación física (páginas, índices, buffers).
- Propiedades ACID: Conjunto de garantías de las transacciones: Atomicidad, Consistencia, Aislamiento y Durabilidad.
- Procesador de consultas: Componente interno que comprende parser, optimizador, planificador y ejecutor para interpretar y ejecutar instrucciones SQL.
- Catálogo/Diccionario: Repositorio de metadatos que describe la estructura completa de la base de datos, incluyendo tablas, columnas, índices y permisos.
- Esquema vs Instancia: El esquema es la estructura definida de la base de datos; la instancia es el conjunto de datos concretos existentes en un momento determinado.
- Gestor de logs: Subsistema que registra cambios para permitir la recuperación y garantizar la durabilidad de las transacciones.
🧠 Recuerda
- Un SGBDR gestiona datos organizados exclusivamente en tablas bidimensionales según el modelo relacional propuesto por Codd.
- El modelo se fundamenta en teoría de conjuntos y separa estrictamente el nivel lógico del almacenamiento físico interno.
- SQL es el mecanismo habitual para definir estructuras, consultar información y modificar registros en sistemas relacionales.
- Las transacciones deben cumplir las propiedades ACID para mantener la integridad y consistencia de los datos.
- El procesador de consultas utiliza un optimizador que selecciona el plan de ejecución más eficiente basándose en estadísticas.
- El catálogo o diccionario de datos contiene toda la información sobre la estructura, restricciones y permisos del sistema.
- La administración incluye tareas críticas como backup, restauración, gestión de usuarios y monitorización continua del rendimiento.
- El DBA garantiza la continuidad del servicio y la protección de la información según normativa de seguridad y protección de datos.
- Los índices aceleran consultas pero consumen espacio y encarecen las operaciones de escritura.
- Las vistas ofrecen representaciones lógicas de los datos y pueden utilizarse para reforzar la seguridad de acceso.
2. Sistemas de gestión de bases de datos orientados a objetos: características y componentes
2. Sistemas de gestión de bases de datos orientados a objetos: características y componentes
🎯 Idea clave
- Los OODBMS almacenan objetos persistentes aplicando conceptos de programación orientada a objetos como identidad, herencia, encapsulación y comportamiento.
- El objetivo principal es reducir la impedancia objeto-relacional permitiendo que los objetos sobrevivan al cierre de la aplicación conservando su estructura y estado.
- Los componentes principales incluyen el motor de almacenamiento persistente, el gestor de objetos generador de OID y el gestor de transacciones ACID.
- La identidad de objeto es independiente de sus valores de atributos y se gestiona mediante identificadores únicos que pueden ser lógicos o físicos.
- El Manifiesto de 1989 establece trece reglas que definen las características obligatorias, específicas de bases de datos y de usabilidad de un sistema orientado a objetos puro.
📚 Desarrollo
Definición y persistencia. Un sistema de gestión de bases de datos orientado a objetos (OODBMS u ODBMS) almacena y administra datos siguiendo los conceptos de la programación orientada a objetos. En lugar de representar la información exclusivamente mediante tablas, filas y columnas, permite persistir objetos con identidad, estado, comportamiento, clases, herencia, encapsulación y relaciones complejas. La idea principal es la persistencia de objetos, es decir, que los objetos creados en memoria durante la ejecución de una aplicación puedan sobrevivir al cierre del programa y recuperarse posteriormente conservando su identidad y estructura originales.
Impedancia objeto-relacional. Este modelo busca reducir la distancia entre el paradigma utilizado por las aplicaciones orientadas a objetos y el modelo persistente de la base de datos. La transformación continua entre objetos complejos y filas de tablas, conocida como impedancia objeto-relacional, resulta costosa en diseño, rendimiento y mantenimiento cuando el dominio es muy complejo. Al eliminar esta necesidad de conversión, los OODBMS facilitan el desarrollo de aplicaciones con dominios complejos y grafos de objetos extensos.
Motor de almacenamiento y OID. El sistema incorpora un motor de almacenamiento persistente encargado de serializar los objetos en disco y reconstruirlos al cargarlos, utilizando técnicas de agrupamiento físico que sitúan próximos los objetos frecuentemente accedidos juntos. Paralelamente, el gestor de objetos actúa como generador de identificadores únicos (OID) en el momento de la creación, pudiendo ser estos lógicos —independientes de la ubicación física y más flexibles ante reorganizaciones— o físicos —codificando la dirección de almacenamiento para un acceso más rápido.
Gestión de transacciones y esquema. El gestor de transacciones garantiza las propiedades ACID sobre las operaciones que afectan a uno o varios objetos, implementando protocolos clásicos de inicio, confirmación y deshacer. El esquema de la base de datos puede estar formado por clases y jerarquías, aunque la evolución de clases y el versionado de objetos constituyen problemas prácticos importantes en estos sistemas. Las referencias persistentes permiten navegar directamente las relaciones entre objetos sin necesidad de operaciones de unión complejas.
El Manifiesto de 1989. En 1989 se publicó el Manifiesto de los Sistemas de Bases de Datos Orientadas a Objetos, documento de enorme influencia que enumera trece reglas fundamentales. Las ocho primeras son obligatorias y propias del paradigma orientado a objetos, entre ellas la capacidad de construir objetos complejos mediante constructores recursivos, la existencia de una identidad de objeto única e inmutable independiente de su estado, y el encapsulamiento que oculta la representación interna exponiendo únicamente una interfaz pública mediante métodos.
Productos representativos. Existen productos de relevancia académica e industrial como Db4o, destacada por su sencillez y orientación a Java y .NET; ObjectDB, compatible con JPA y JDO para aplicaciones medianas; Versant Object Database, dirigida a entornos de alto rendimiento en telecomunicaciones y defensa; ObjectStore, pionera en CAD con modelo de memoria virtual mapeada; GemStone/S, basada en Smalltalk para servidores de objetos compartidos en finanzas; InterSystems Caché, sistema multimodelo desplegado ampliamente en el ámbito sanitario; y Perst, biblioteca embebida para sistemas pequeños y móviles.
🧩 Elementos esenciales
- OID (Object Identifier): Identificador único asignado a cada objeto en su creación, que puede ser lógico (independiente de la ubicación física) o físico (codifica la dirección de almacenamiento).
- Persistencia de objetos: Capacidad de los objetos para sobrevivir al cierre de la aplicación y recuperarse posteriormente conservando identidad y estructura.
- Impedancia objeto-relacional: Coste en diseño, rendimiento y mantenimiento derivado de transformar continuamente objetos complejos en filas de tablas y viceversa.
- Motor de almacenamiento persistente: Componente que serializa objetos en disco y los reconstruye, utilizando técnicas de agrupamiento físico para mejorar el rendimiento.
- Gestor de transacciones: Módulo que garantiza las propiedades ACID sobre operaciones con objetos, implementando protocolos de confirmación y deshacer.
- Encapsulamiento: Principio por el que los objetos ocultan su representación interna y exponen únicamente una interfaz pública mediante métodos.
- Identidad de objeto: Característica que distingue a cada objeto mediante un identificador único e inmutable, independiente de sus valores de atributos.
- Objetos complejos: Objetos construidos a partir de otros más simples mediante constructores como conjuntos, listas, tuplas y arrays de forma recursiva.
- Referencias persistentes: Mecanismos que permiten navegar directamente las relaciones entre objetos almacenados.
- Evolución de clases: Problema práctico relacionado con la modificación de la estructura de clases en un sistema en funcionamiento.
- ACID: Conjunto de propiedades (Atomicidad, Consistencia, Aislamiento, Durabilidad) garantizadas por el gestor de transacciones.
🧠 Recuerda
- Un OODBMS almacena objetos persistentes, no únicamente tablas, filas y columnas.
- La identidad de objeto no depende de valores de atributos como una clave primaria relacional.
- Los OID lógicos ofrecen mayor flexibilidad ante reorganizaciones; los físicos proporcionan acceso más rápido.
- El Manifiesto de 1989 establece trece reglas, siendo las ocho primeras obligatorias y propias del paradigma orientado a objetos.
- Los OODBMS puros no deben confundirse con los ORDBMS ni con bases NoSQL documentales.
- La persistencia directa de objetos no elimina las necesidades de administración, backup y seguridad.
- El lenguaje de consulta en OODBMS suele estar menos estandarizado que SQL.
- Las referencias persistentes permiten navegar relaciones entre objetos sin operaciones de unión complejas.
- La impedancia objeto-relacional se evita al no tener que transformar objetos en filas de tablas.
3. Sistemas de gestión de bases de datos NoSQL
3. Sistemas de gestión de bases de datos NoSQL
🎯 Idea clave
- Los sistemas NoSQL agrupan tecnologías de almacenamiento que no siguen exclusivamente el modelo relacional, interpretándose el término como "not only SQL".
- Estos sistemas surgen para atender necesidades de escalabilidad horizontal, modelos de datos flexibles, grandes volúmenes, baja latencia y distribución geográfica.
- Las familias principales incluyen bases clave-valor, documentales, de familias de columnas, de grafos, de series temporales y motores de búsqueda.
- Ofrecen esquemas flexibles y alta disponibilidad mediante replicación y técnicas de particionamiento o sharding.
- Históricamente carecen de soporte completo de JOIN y transacciones multi-objeto ACID, aunque las tendencias recientes incorporan transacciones distribuidas en escenarios concretos.
- En las administraciones públicas coexisten con sistemas relacionales en arquitecturas de persistencia políglota para casos de uso específicos.
📚 Desarrollo
Definición y alcance. Los sistemas de gestión de bases de datos NoSQL comprenden un conjunto de tecnologías de almacenamiento y consulta que no se circunscriben al modelo relacional tabular tradicional. El acrónimo se entiende habitualmente como "not only SQL", ya que muchas de estas bases no emplean SQL como lenguaje principal, aunque algunas ofrecen compatibilidad parcial o lenguajes similares.
Familias de modelos de datos. Esta categoría engloba distintos enfoques especializados: las bases clave-valor recuperan información de forma simple y rápida mediante identificadores únicos; las documentales almacenan datos semiestructurados, normalmente en formato JSON o similar; las de familias de columnas orientan su diseño a grandes volúmenes distribuidos y patrones de consulta conocidos; y las de grafos priorizan la gestión eficiente de nodos, relaciones y recorridos.
Características de esquema y escalado. Los sistemas NoSQL suelen ser schema-flexible, lo que significa que no exigen una definición previa rígida del esquema, facilitando la evolución de las aplicaciones mediante atributos distintos por documento o fila. Están diseñados para escalado horizontal nativo, repartiendo datos entre múltiples nodos mediante técnicas de sharding o particionado.
Alta disponibilidad y APIs. Proporcionan alta disponibilidad mediante mecanismos de replicación que copian datos en varios nodos para tolerar caídas de máquinas individuales. Ofrecen APIs simples, normalmente de tipo CRUD (crear, leer, actualizar, borrar), junto con lenguajes de consulta propios adaptados a cada modelo especializado.
Consistencia y transacciones. Históricamente, estos sistemas carecían de soporte completo para operaciones JOIN y transacciones multi-objeto ACID. La tendencia reciente, sin embargo, incorpora transacciones distribuidas en escenarios concretos, como en MongoDB a partir de su versión 4, Cassandra con transacciones ligeras, Couchbase o Cosmos DB.
Ejemplos en el ámbito administrativo. Aunque el modelo relacional permanece dominante, las bases NoSQL se han integrado en ecosistemas públicos para casos específicos. MongoDB, de tipo documental, utiliza replica sets y sharding; Redis, almacén clave-valor en memoria, opera con esquemas master-replica, Redis Sentinel para failover y Redis Cluster para particionado; Cassandra, columnar y distribuida, organiza nodos en topología peer-to-peer sin nodo maestro y realiza tareas de anti-entropy repair; Elasticsearch distribuye sus índices en shards y réplicas con nodos especializados en roles de maestro, datos, coordinación e ingesta.
🧩 Elementos esenciales
- NoSQL: conjunto de tecnologías interpretado como "not only SQL" que agrupa modelos no exclusivamente relacionales.
- Escalabilidad horizontal: capacidad de distribuir datos entre muchos nodos mediante sharding o particionado.
- Esquema flexible: ausencia de definición rígida previa que permite atributos distintos por cada documento, fila o nodo.
- Alta disponibilidad: lograda mediante replicación de datos en varios nodos para soportar fallos individuales.
- Bases clave-valor: modelo simple y rápido de recuperación de datos mediante clave única.
- Bases documentales: almacenamiento de documentos semiestructurados, normalmente en JSON o formatos similares.
- Bases columnares: orientadas a grandes volúmenes distribuidos con patrones de consulta predefinidos.
- Bases de grafos: especializadas en nodos, relaciones y recorridos entre elementos.
- Series temporales: optimizan el almacenamiento y consulta de datos indexados por tiempo.
- Consistencia eventual: mecanismo donde los datos convergen posteriormente, sin implicar incoherencia permanente.
- Desnormalización: práctica frecuente para optimizar tiempos de respuesta en consultas específicas.
- Persistencia políglota: coexistencia de sistemas NoSQL con gestores relacionales según requisitos concretos.
🧠 Recuerda
- NoSQL no significa ausencia total de estructura ni ausencia total de transacciones.
- La replicación no equivale a una copia de seguridad tradicional.
- Los teoremas CAP y BASE ayudan a comprender los compromisos en sistemas distribuidos.
- Las bases de series temporales son especializadas en datos indexados por tiempo.
- MongoDB se administra mediante replica sets y sharding, con herramientas como Compass.
- Redis utiliza esquemas master-replica, Sentinel para failover y Cluster para particionado.
- Cassandra organiza sus nodos en topología peer-to-peer sin nodo maestro único.
- Elasticsearch distribuye índices en shards y réplicas con nodos de distintos roles especializados.
- La elección de un sistema debe basarse en requisitos reales de datos, consultas, volumen, consistencia y operación.