🧠 ¿Qué es un SGBD y qué servicios debe ofrecer?
🔹 Modelo Relacional (Codd, 1970) – 8 servicios fundamentales
- Almacenamiento de datos: Acceso, actualización y ocultamiento de la estructura física.
- Catálogo de datos: Diccionario con descripciones accesibles al usuario.
- Transacciones: Ejecución atómica de operaciones (todo o nada).
- Concurrencia: Acceso simultáneo seguro a la base de datos.
- Recuperación: Mecanismo de recuperación ante fallos.
- Integridad: Garantía de validez y consistencia de los datos.
- Seguridad: Accesos autorizados y protección contra ataques.
- Interfaces múltiples: Interacción mediante lenguajes y herramientas externas.
🛡️ Reglas ACID: Garantías para las transacciones
| Regla | Significado |
|---|---|
| Atomicidad | Todo o nada: la transacción completa o no se hace. |
| Consistencia | Mantiene la integridad antes y después. |
| Aislamiento (Isolation) | Una transacción no ve los efectos de otras hasta que terminen. |
| Durabilidad | Una vez confirmada (COMMIT), los cambios persisten. |
🛠️ Servicios adicionales esperados en un SGBD
- 🔄 Independencia entre programas y datos: Permite modificar vistas o estructuras sin cambiar el software.
- 🧩 Herramientas de administración: Para backup, recuperación, monitoreo, etc.
🔐 Integridad de los datos
Un SGBD debe garantizar:
- Validez y coherencia de los datos.
- Reglas de integridad: restricciones, claves primarias, claves foráneas, etc.
🔗 Concurrencia y control de accesos
Cuando múltiples usuarios acceden simultáneamente, deben evitarse problemas como:
- Pérdida de actualizaciones.
- Lecturas inconsistentes.
- Acceso a datos sucios.
🔒 Tipos de bloqueos
| Tipo | Descripción | Ejemplo |
|---|---|---|
| Shared (S) | Bloqueo compartido para lectura. | SELECT |
| Exclusive (X) | Exclusivo para actualización. | INSERT, UPDATE |
| Explícito | Definido por el programador. | SELECT FOR UPDATE |
🔁 Granularidad del bloqueo: Entre mayor sea (más grande el ítem), menor será la concurrencia.
🧩 Protocolos de concurrencia
🔹 Bloqueo binario
- Estados: Bloqueado (1) o Desbloqueado (0).
- Muy restrictivo.
🔹 Bloqueo compartido/exclusivo
- Estados: Lectura compartida, escritura exclusiva, o desbloqueado.
🔹 Protocolo de dos fases
- Fase de expansión: Se adquieren bloqueos.
- Fase de contracción: Se liberan bloqueos (no se adquieren nuevos).
👉 Ventaja: Garantiza serialización.
❌ Problemas comunes:
- Interbloqueo (Deadlock): Transacciones esperando indefinidamente.
- Inversión de prioridades (Livelock): Nunca se ejecuta una transacción.
🕓 Alternativas: Control por marcas de tiempo
- Cada transacción recibe un timestamp (TS).
- El SGBD ordena operaciones según sus marcas para mantener la consistencia serial.
🔑 Claves e integridad referencial
| Tipo de clave | Descripción |
|---|---|
| Superclave | Uno o más atributos que identifican una tupla de forma única. |
| Clave candidata | Subconjunto mínimo de una superclave. |
| Clave primaria | Candidata seleccionada como identificador único. |
| Clave alternativa | Claves candidatas no elegidas como primaria. |
| Clave ajena (foránea) | Atributo que referencia una clave primaria de otra tabla. |
| Clave compuesta | Compuesta por varios atributos. |
| Clave externa | Puede tener valores NULL. |
✅ La integridad referencial asegura que los valores de una clave foránea existan en la tabla referenciada.
📌 Conclusión
Los SGBD modernos no solo almacenan datos, sino que también:
- Aseguran la integridad, seguridad y concurrencia.
- Proveen herramientas administrativas.
- Permiten transacciones confiables bajo reglas ACID.
- Soportan sistemas complejos con múltiples usuarios de forma eficiente.


Deja un comentario