1. Introducción a los SGBD
Un Sistema de Gestión de Bases de Datos (SGBD) es un conjunto de programas que permiten definir, manipular, administrar y controlar el acceso a una base de datos de manera eficiente. Su objetivo principal es garantizar la integridad, seguridad y disponibilidad de los datos, permitiendo que múltiples usuarios y aplicaciones interactúen con ellos de forma concurrente.
Los SGBD han evolucionado significativamente desde los primeros sistemas centralizados hasta arquitecturas distribuidas y federadas, incorporando modelos avanzados de datos y nuevas tecnologías para mejorar el rendimiento y la escalabilidad.
2. Modelos y Arquitecturas de Bases de Datos
Los modelos y arquitecturas de bases de datos definen la estructura, organización y distribución de los datos en los sistemas informáticos.
2.1 Modelos de Bases de Datos
Existen diversos modelos de bases de datos que se utilizan dependiendo de los requisitos del sistema:
Bases de Datos Relacionales (RDBMS)
- Basadas en el modelo relacional propuesto por Edgar F. Codd en 1970.
- Utilizan tablas como estructura principal de almacenamiento.
- Implementan restricciones de integridad y relaciones mediante claves primarias y foráneas.
- Lenguaje estándar de consulta: SQL.
- Ejemplos: MySQL, PostgreSQL, Oracle, SQL Server.
Bases de Datos No Relacionales (NoSQL)
Diseñadas para manejar grandes volúmenes de datos con escalabilidad y flexibilidad. Se clasifican en:
- Clave-Valor: Datos almacenados como pares clave-valor. Ejemplo: Redis, DynamoDB.
- Documentales: Almacenan datos en formato JSON, BSON o XML. Ejemplo: MongoDB, CouchDB.
- Orientadas a Objetos: Basadas en el paradigma de POO, almacenan objetos y relaciones. Ejemplo: db4o, ObjectDB.
- Grafos: Optimizadas para representar relaciones complejas entre datos. Ejemplo: Neo4j, ArangoDB.
- Columnares: Almacenan datos por columnas en vez de filas, optimizando análisis de datos. Ejemplo: Apache Cassandra, HBase.
2.2 Arquitecturas de Bases de Datos
Las bases de datos pueden organizarse bajo diferentes arquitecturas:
- Bases de Datos Centralizadas
- Toda la información reside en un solo servidor.
- Facilita la administración y seguridad, pero presenta problemas de escalabilidad y rendimiento.
- Bases de Datos Distribuidas
- Los datos están replicados o fragmentados en múltiples nodos o servidores.
- Pueden ser homogéneas (mismo SGBD) o heterogéneas (diferentes SGBD).
- Mejora la disponibilidad y rendimiento, pero aumenta la complejidad.
- Bases de Datos Federadas
- Permiten que diferentes bases de datos trabajen juntas sin integrarse en un solo sistema.
- Útil en entornos empresariales donde se necesita interoperabilidad sin migraciones.
3. Motores de Indexación
Los motores de indexación permiten mejorar el rendimiento de las consultas en las bases de datos mediante estructuras de búsqueda optimizadas:
- Árboles B+: Estructuras jerárquicas utilizadas en bases de datos relacionales.
- Hashing: Mapeo de claves en ubicaciones específicas para acceso rápido.
- Índices Bitmap: Optimizados para consultas en bases de datos de lectura intensiva.
4. Modelo de Referencia ANSI/SPARC
Este modelo conceptual define una arquitectura de tres niveles:
- Nivel Externo: Define cómo los usuarios visualizan los datos mediante vistas personalizadas.
- Nivel Conceptual: Describe la estructura lógica global de la base de datos.
- Nivel Interno: Representa la organización física de los datos en el almacenamiento.
Este diseño proporciona independencia lógica y física de datos, facilitando cambios estructurales sin afectar a los usuarios.
5. Monitor de Transacciones
El monitor de transacciones gestiona la ejecución de transacciones, asegurando que cumplan con las propiedades ACID:
- Atomicidad: Una transacción se ejecuta completamente o no se ejecuta.
- Consistencia: La base de datos permanece en un estado válido antes y después de la transacción.
- Aislamiento: Cada transacción se ejecuta sin interferencias de otras.
- Durabilidad: Una vez completada, la transacción es permanente, incluso en caso de fallos.
6. Control de Concurrencia y Bloqueos
La concurrencia permite que múltiples usuarios accedan a la base de datos simultáneamente. Para evitar conflictos, se utilizan mecanismos de bloqueo:
- Bloqueo Exclusivo: Solo una transacción puede modificar un dato.
- Bloqueo Compartido: Varias transacciones pueden leer, pero no modificar.
- Protocolo de Bloqueo en Dos Fases (2PL):
- Fase de expansión: Adquiere bloqueos sin liberarlos.
- Fase de contracción: Libera bloqueos y no adquiere más.
Estos mecanismos previenen problemas como:
- Condiciones de carrera: Cuando varias transacciones intentan modificar el mismo dato simultáneamente.
- Deadlocks: Ocurre cuando dos o más transacciones esperan mutuamente por recursos bloqueados.
7. Recuperación de Errores
Los SGBD implementan estrategias para recuperar datos tras fallos:
- Registros de Log (WAL – Write-Ahead Logging): Se registran cambios antes de aplicarlos, permitiendo reversión o repetición de transacciones.
- Checkpoints: Estados de la base de datos almacenados periódicamente para facilitar la recuperación.
- Shadow Paging: Mantiene versiones antiguas de los datos hasta que se confirme una transacción.
8. Integridad de Datos
La integridad garantiza que los datos sean precisos, coherentes y confiables. Se aplica mediante:
- Integridad de Entidad: Garantiza que cada registro tenga un identificador único (clave primaria).
- Integridad Referencial: Controla que las relaciones entre tablas sean válidas mediante claves foráneas.
- Restricciones de Dominio: Define valores permitidos en los campos.
- Reglas de Negocio: Aplican restricciones personalizadas según requerimientos específicos.
9. Conclusión
Los SGBD son fundamentales para la gestión eficiente de datos en sistemas informáticos. Desde modelos relacionales hasta bases NoSQL, cada tecnología responde a diferentes necesidades, asegurando disponibilidad, rendimiento y seguridad en entornos empresariales.
Los mecanismos de concurrencia, transacciones y recuperación de fallos garantizan la fiabilidad de la información. El diseño adecuado de la arquitectura y la selección del tipo de base de datos adecuado son claves en la planificación de sistemas de información modernos.
Aplicaciones en el Servicio Andaluz de Salud (SAS)
El SAS utiliza SGBD para gestionar grandes volúmenes de datos clínicos y administrativos. Ejemplos:
- Bases de datos relacionales: Para la gestión del Historia Clínica Digital (Diraya).
- NoSQL (documentales y grafos): En análisis de datos de salud pública y sistemas de recomendación.
- Bases de datos distribuidas: Para asegurar disponibilidad en hospitales y centros de salud.
- Mecanismos de transacciones: Garantizando la integridad en registros médicos electrónicos.
El uso adecuado de estos sistemas es crítico para la seguridad, interoperabilidad y eficiencia en la gestión sanitaria.
Cuestionario Tipo Test – Tema 72: Los sistemas de gestión de bases de datos (SGBD)
Pregunta 1
¿Cuál es la función principal de un sistema de gestión de bases de datos (SGBD)?
a) Proteger el hardware del servidor.
b) Gestionar, almacenar y recuperar datos de manera eficiente.
c) Sustituir los sistemas operativos en servidores.
d) Asegurar que los datos sean accesibles solo desde aplicaciones de escritorio.
✅ Respuesta correcta: b) Gestionar, almacenar y recuperar datos de manera eficiente.
📌 Justificación: Un SGBD es un software diseñado para gestionar bases de datos, proporcionando herramientas para la manipulación, consulta, almacenamiento y recuperación eficiente de la información.
❌ Respuestas incorrectas:
- a): Aunque un SGBD tiene medidas de seguridad, no protege el hardware directamente.
- c): No sustituye al sistema operativo, sino que opera sobre él.
- d): Permite acceso desde múltiples dispositivos y entornos, no solo desde escritorio.
Pregunta 2
¿Qué modelo de base de datos organiza la información en tablas con relaciones entre ellas?
a) Bases de datos documentales
b) Bases de datos relacionales
c) Bases de datos de grafos
d) Bases de datos de objetos
✅ Respuesta correcta: b) Bases de datos relacionales
📌 Justificación: Las bases de datos relacionales utilizan tablas con filas y columnas para almacenar datos, estableciendo relaciones entre ellas mediante claves primarias y foráneas.
❌ Respuestas incorrectas:
- a): Las bases de datos documentales almacenan información en formato JSON o BSON, sin estructura tabular.
- c): Las bases de datos de grafos almacenan relaciones complejas en nodos y aristas.
- d): Las bases de datos de objetos almacenan datos como entidades orientadas a objetos.
Pregunta 3
¿Cuál es una característica clave de las bases de datos distribuidas?
a) Todas las transacciones deben ejecutarse en un único nodo.
b) La base de datos se divide y replica en múltiples nodos.
c) No permite la escalabilidad horizontal.
d) Solo funcionan con modelos relacionales.
✅ Respuesta correcta: b) La base de datos se divide y replica en múltiples nodos.
📌 Justificación: Las bases de datos distribuidas se ejecutan en múltiples servidores, permitiendo el procesamiento paralelo, redundancia y tolerancia a fallos.
❌ Respuestas incorrectas:
- a): En bases distribuidas, las transacciones pueden ejecutarse en varios nodos.
- c): Permiten escalabilidad horizontal, aumentando nodos según la demanda.
- d): Funcionan con distintos modelos, incluyendo relacionales y NoSQL.
Pregunta 4
¿Qué tipo de base de datos es más adecuado para representar relaciones complejas entre datos interconectados?
a) Bases de datos relacionales
b) Bases de datos de grafos
c) Bases de datos clave-valor
d) Bases de datos documentales
✅ Respuesta correcta: b) Bases de datos de grafos
📌 Justificación: Las bases de datos de grafos utilizan nodos y aristas para modelar relaciones complejas, siendo ideales para redes sociales, sistemas de recomendación y análisis de conexiones.
❌ Respuestas incorrectas:
- a): Aunque las bases relacionales pueden manejar relaciones, no son eficientes para grandes volúmenes de datos interconectados.
- c): Las bases clave-valor almacenan información en pares clave-valor, sin estructura relacional.
- d): Las bases documentales organizan datos en documentos JSON/BSON, sin optimización para relaciones.
Pregunta 5
¿Qué estándar define el modelo relacional y su lenguaje de consulta?
a) NoSQL
b) SQL
c) XML
d) JSON
✅ Respuesta correcta: b) SQL
📌 Justificación: SQL (Structured Query Language) es el lenguaje estándar para gestionar bases de datos relacionales, permitiendo consultas, inserciones, actualizaciones y eliminaciones de datos.
❌ Respuestas incorrectas:
- a): NoSQL es un término general para bases de datos no relacionales.
- c): XML es un formato de almacenamiento de datos, no un lenguaje de bases de datos.
- d): JSON es un formato de intercambio de datos, pero no define el modelo relacional.
Pregunta 6
¿Qué tipo de base de datos NoSQL almacena datos en pares clave-valor?
a) Bases de datos columnares
b) Bases de datos clave-valor
c) Bases de datos relacionales
d) Bases de datos de grafos
✅ Respuesta correcta: b) Bases de datos clave-valor
📌 Justificación: En este modelo, cada registro se almacena como un par clave-valor, permitiendo accesos rápidos y eficientes en aplicaciones como cachés y sistemas de configuración.
❌ Respuestas incorrectas:
- a): Las bases columnares organizan datos en columnas en lugar de filas.
- c): Las bases relacionales utilizan tablas, no pares clave-valor.
- d): Las bases de grafos almacenan relaciones entre datos en nodos y aristas.
Pregunta 7
¿Qué componente de un SGBD gestiona la concurrencia para evitar conflictos en los accesos simultáneos?
a) Motor de almacenamiento
b) Monitor de transacciones
c) Índices de base de datos
d) Modelo relacional
✅ Respuesta correcta: b) Monitor de transacciones
📌 Justificación: El monitor de transacciones gestiona operaciones simultáneas para evitar inconsistencias, garantizando aislamiento y coherencia mediante técnicas como bloqueos y control de concurrencia.
❌ Respuestas incorrectas:
- a): El motor de almacenamiento administra el acceso a los datos, pero no gestiona concurrencia.
- c): Los índices aceleran búsquedas, pero no evitan conflictos en accesos simultáneos.
- d): El modelo relacional define la estructura de datos, pero no la concurrencia.
Pregunta 8
¿Qué técnica evita inconsistencias en bases de datos al ocurrir un fallo del sistema?
a) Normalización
b) Recuperación ante fallos
c) Clustering
d) Sharding
✅ Respuesta correcta: b) Recuperación ante fallos
📌 Justificación: La recuperación ante fallos utiliza técnicas como journaling, copias de seguridad y registros de transacciones para restaurar datos tras fallos inesperados.
❌ Respuestas incorrectas:
- a): La normalización optimiza la estructura de datos, pero no gestiona fallos.
- c): El clustering agrupa servidores para mejorar rendimiento, sin ser una técnica de recuperación.
- d): El sharding divide la base de datos, pero no evita inconsistencias por fallos.
Aquí tienes el siguiente bloque del cuestionario tipo test continuando con la numeración adecuada.
Cuestionario Tipo Test – Tema 72: Los sistemas de gestión de bases de datos (SGBD)
Pregunta 9
¿Qué es un índice en una base de datos?
a) Un mecanismo para organizar los datos en orden secuencial.
b) Un esquema que define la relación entre diferentes tablas.
c) Una estructura que mejora la velocidad de búsqueda en las consultas.
d) Un procedimiento almacenado que automatiza tareas repetitivas.
✅ Respuesta correcta: c) Una estructura que mejora la velocidad de búsqueda en las consultas.
📌 Justificación: Los índices permiten acceder a los datos de forma más eficiente, evitando búsquedas secuenciales y acelerando la ejecución de consultas.
❌ Respuestas incorrectas:
- a): Aunque algunos índices organizan datos, su objetivo principal es mejorar la búsqueda.
- b): Las relaciones entre tablas se definen mediante claves primarias y foráneas, no índices.
- d): Los procedimientos almacenados automatizan tareas, pero no optimizan búsquedas.
Pregunta 10
¿Qué componente en un SGBD garantiza la integridad de los datos?
a) Las restricciones de integridad
b) El motor de almacenamiento
c) Los procedimientos almacenados
d) El sistema de replicación de datos
✅ Respuesta correcta: a) Las restricciones de integridad
📌 Justificación: Las restricciones de integridad (como las claves primarias, foráneas y reglas CHECK) aseguran que los datos sean correctos y coherentes dentro de la base de datos.
❌ Respuestas incorrectas:
- b): El motor de almacenamiento administra la gestión de datos, pero no define restricciones.
- c): Los procedimientos almacenados ejecutan tareas automáticas, pero no garantizan integridad.
- d): La replicación mantiene copias actualizadas, pero no impone restricciones.
Pregunta 11
¿Qué técnica permite dividir una base de datos en varias partes para mejorar el rendimiento y escalabilidad?
a) Normalización
b) Sharding
c) Indexación
d) Clustering
✅ Respuesta correcta: b) Sharding
📌 Justificación: El sharding divide una base de datos en fragmentos que se distribuyen en distintos servidores, permitiendo mejorar la escalabilidad y reducir la carga en un solo nodo.
❌ Respuestas incorrectas:
- a): La normalización optimiza la estructura de la base de datos, pero no la divide.
- c): La indexación mejora la velocidad de búsqueda, pero no escala la base de datos.
- d): El clustering distribuye instancias del SGBD para mejorar disponibilidad, pero no fragmenta los datos.
🔟 Pregunta 12
¿Qué modelo de base de datos se utiliza en Big Data para manejar grandes volúmenes de información de manera eficiente?
a) Bases de datos relacionales
b) Bases de datos NoSQL
c) Bases de datos jerárquicas
d) Bases de datos indexadas
✅ Respuesta correcta: b) Bases de datos NoSQL
📌 Justificación: Las bases de datos NoSQL están diseñadas para manejar grandes volúmenes de datos distribuidos con alta escalabilidad y rendimiento, siendo ideales para Big Data.
❌ Respuestas incorrectas:
- a): Las bases relacionales no escalan eficientemente en grandes volúmenes de datos.
- c): El modelo jerárquico es obsoleto para Big Data.
- d): La indexación acelera búsquedas, pero no define un modelo de base de datos.
🔟 Pregunta 13
¿Qué mecanismo de seguridad protege la base de datos contra accesos no autorizados?
a) La replicación de datos
b) El control de acceso basado en roles (RBAC)
c) La indexación de tablas
d) La normalización de la base de datos
✅ Respuesta correcta: b) El control de acceso basado en roles (RBAC)
📌 Justificación: El RBAC (Role-Based Access Control) define permisos para usuarios según sus roles dentro del sistema, asegurando que solo tengan acceso a la información necesaria.
❌ Respuestas incorrectas:
- a): La replicación solo copia datos, no impide accesos no autorizados.
- c): La indexación optimiza búsquedas, pero no protege los datos.
- d): La normalización organiza los datos, pero no es una medida de seguridad.
🔟 Pregunta 14
¿Qué tipo de base de datos almacena datos en formato JSON o BSON y permite consultas flexibles?
a) Bases de datos columnares
b) Bases de datos documentales
c) Bases de datos de grafos
d) Bases de datos relacionales
✅ Respuesta correcta: b) Bases de datos documentales
📌 Justificación: Las bases documentales almacenan datos en documentos JSON o BSON, lo que permite una estructura flexible y consultas rápidas en aplicaciones modernas.
❌ Respuestas incorrectas:
- a): Las bases columnares almacenan datos organizados por columnas, no en documentos JSON.
- c): Las bases de grafos modelan relaciones, no almacenan datos en formato JSON/BSON.
- d): Las bases relacionales utilizan tablas estructuradas, no documentos.
🔟 Pregunta 15
¿Qué modelo de base de datos es más adecuado para representar una red social con relaciones complejas entre usuarios?
a) Bases de datos clave-valor
b) Bases de datos relacionales
c) Bases de datos de grafos
d) Bases de datos documentales
✅ Respuesta correcta: c) Bases de datos de grafos
📌 Justificación: Las bases de datos de grafos están diseñadas para modelar relaciones entre entidades, siendo ideales para redes sociales y análisis de conexiones.
❌ Respuestas incorrectas:
- a): Las bases clave-valor son simples y no modelan relaciones complejas.
- b): Las bases relacionales pueden manejar relaciones, pero no son eficientes en estructuras altamente conectadas.
- d): Las bases documentales almacenan información flexible, pero no optimizan relaciones.
🔟 Pregunta 16
¿Qué característica define un monitor de transacciones en un SGBD?
a) Garantiza la ejecución de las transacciones bajo el principio ACID.
b) Almacena los datos en formato XML.
c) Mejora la velocidad de las consultas mediante índices.
d) Permite dividir la base de datos en múltiples nodos.
✅ Respuesta correcta: a) Garantiza la ejecución de las transacciones bajo el principio ACID.
📌 Justificación: Un monitor de transacciones asegura que todas las operaciones cumplan con las propiedades ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad), evitando inconsistencias en los datos.
❌ Respuestas incorrectas:
- b): XML es un formato de almacenamiento, no un mecanismo de transacciones.
- c): Los índices optimizan consultas, pero no controlan transacciones.
- d): La distribución de datos se gestiona con sharding o replicación, no con el monitor de transacciones.
Pregunta 17
¿Qué técnica se utiliza en los SGBD para evitar conflictos cuando múltiples usuarios acceden simultáneamente a la base de datos?
a) Indexación de tablas
b) Replicación de datos
c) Control de concurrencia
d) Desnormalización
✅ Respuesta correcta: c) Control de concurrencia
📌 Justificación: El control de concurrencia permite que múltiples usuarios accedan y modifiquen datos al mismo tiempo sin generar inconsistencias. Métodos como bloqueos, versionado y timestamping garantizan la integridad de los datos.
❌ Respuestas incorrectas:
- a): La indexación mejora la búsqueda de datos, pero no gestiona accesos simultáneos.
- b): La replicación distribuye datos entre servidores, pero no controla la concurrencia.
- d): La desnormalización optimiza consultas, pero no previene conflictos de acceso.
Pregunta 18
¿Qué técnica de control de concurrencia evita conflictos mediante la asignación de bloqueos a los datos?
a) Control de concurrencia optimista
b) Control de concurrencia pesimista
c) Normalización de la base de datos
d) Algoritmo de hash
✅ Respuesta correcta: b) Control de concurrencia pesimista
📌 Justificación: El control de concurrencia pesimista utiliza bloqueos para evitar que múltiples transacciones accedan simultáneamente a los mismos datos, reduciendo riesgos de inconsistencia.
❌ Respuestas incorrectas:
- a): La concurrencia optimista no usa bloqueos, sino validaciones antes de confirmar cambios.
- c): La normalización organiza la base de datos, pero no gestiona concurrencia.
- d): El hash optimiza búsquedas, pero no controla accesos simultáneos.
Pregunta 19
¿Cuál es la principal función del modelo de referencia ANSI/SPARC en los SGBD?
a) Mejorar la velocidad de consultas SQL
b) Definir los niveles de abstracción de los datos
c) Controlar la concurrencia entre transacciones
d) Optimizar la estructura física de almacenamiento
✅ Respuesta correcta: b) Definir los niveles de abstracción de los datos
📌 Justificación: El modelo ANSI/SPARC establece tres niveles de abstracción:
1️⃣ Nivel interno (almacenamiento físico)
2️⃣ Nivel conceptual (estructura lógica de la base de datos)
3️⃣ Nivel externo (vista del usuario)
Esto permite independencia entre la estructura física y lógica de la base de datos.
❌ Respuestas incorrectas:
- a): No mejora la velocidad de consultas.
- c): La concurrencia se gestiona con bloqueos y transacciones, no con este modelo.
- d): No define la optimización de almacenamiento.
Pregunta 20
¿Qué característica distingue a las bases de datos distribuidas de las centralizadas?
a) Almacenan datos en un solo servidor
b) Tienen menor tolerancia a fallos
c) Reparten los datos en múltiples ubicaciones
d) No requieren mecanismos de sincronización
✅ Respuesta correcta: c) Reparten los datos en múltiples ubicaciones
📌 Justificación: Las bases de datos distribuidas almacenan los datos en varios servidores conectados en red, lo que permite mejor escalabilidad y redundancia.
❌ Respuestas incorrectas:
- a): Las bases centralizadas almacenan datos en un solo servidor.
- b): Las distribuidas tienen mayor tolerancia a fallos porque pueden replicar datos.
- d): Sí requieren sincronización para mantener la coherencia entre servidores.
Pregunta 21
¿Qué elemento de un SGBD se encarga de gestionar las transacciones y garantizar la consistencia de los datos?
a) El gestor de almacenamiento
b) El motor de consultas SQL
c) El monitor de transacciones
d) El índice de la base de datos
✅ Respuesta correcta: c) El monitor de transacciones
📌 Justificación: El monitor de transacciones gestiona la ejecución de las transacciones y garantiza que cumplan las propiedades ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad).
❌ Respuestas incorrectas:
- a): El gestor de almacenamiento maneja los archivos físicos de la base de datos.
- b): El motor SQL interpreta y ejecuta consultas, pero no gestiona transacciones.
- d): Los índices mejoran la velocidad de búsqueda, pero no controlan transacciones.
Pregunta 22
¿Qué mecanismo se utiliza para recuperar una base de datos después de un fallo del sistema?
a) Rollback
b) Redo Log
c) Commit
d) Clustering
✅ Respuesta correcta: b) Redo Log
📌 Justificación: El Redo Log almacena un historial de cambios en la base de datos y permite recuperar datos después de un fallo, restaurando la última transacción confirmada.
❌ Respuestas incorrectas:
- a): El Rollback deshace cambios dentro de una transacción activa, pero no recupera datos después de un fallo.
- c): El Commit confirma una transacción, pero no es un mecanismo de recuperación.
- d): El Clustering distribuye cargas entre servidores, pero no es un método de recuperación.
Pregunta 23
¿Qué problema soluciona el control de bloqueos en bases de datos?
a) Redundancia de datos
b) Conflictos de acceso simultáneo
c) Pérdida de integridad referencial
d) Optimización de consultas SQL
✅ Respuesta correcta: b) Conflictos de acceso simultáneo
📌 Justificación: El control de bloqueos previene conflictos cuando múltiples transacciones intentan modificar los mismos datos al mismo tiempo.
❌ Respuestas incorrectas:
- a): La redundancia de datos se gestiona con normalización.
- c): La integridad referencial se mantiene con claves foráneas.
- d): La optimización de consultas se logra con índices y planificadores de consultas.
Pregunta 24
¿Cuál de las siguientes afirmaciones sobre la recuperación de errores en bases de datos es correcta?
a) Un checkpoint almacena una copia completa de la base de datos en cada transacción.
b) Un rollback permite deshacer cambios dentro de una transacción activa.
c) Los registros WAL (Write-Ahead Logging) eliminan la necesidad de backups.
d) Un sistema de recuperación basado en logs impide la corrupción de datos.
✅ Respuesta correcta: b) Un rollback permite deshacer cambios dentro de una transacción activa.
📌 Justificación: Un rollback revierte los cambios de una transacción si no se confirma con commit, evitando que datos incorrectos queden almacenados.
❌ Respuestas incorrectas:
- a): Un checkpoint no guarda toda la base de datos, solo estados intermedios.
- c): Los logs WAL mejoran la recuperación, pero no eliminan la necesidad de backups.
- d): Los sistemas de logs ayudan a la recuperación, pero no impiden corrupción de datos.
Árboles:
Pregunta: ¿Cuál de los siguientes algoritmos se utiliza comúnmente para recorrer un árbol binario en profundidad?
- a) BFS (Breadth-First Search)
- b) DFS (Depth-First Search)
- c) Dijkstra
- d) Kruskal
- Respuesta correcta: b) DFS (Depth-First Search). La búsqueda en profundidad explora una rama del árbol lo más profundo posible antes de retroceder.
Pregunta: ¿Cuál es la principal ventaja de un árbol AVL sobre un árbol binario de búsqueda estándar?
- a) Menor consumo de memoria.
- b) Mayor velocidad de búsqueda.
- c) Autobalanceo para mantener una altura logarítmica.
- d) Mejor manejo de datos duplicados.
- Respuesta correcta: c) Autobalanceo para mantener una altura logarítmica. Los árboles AVL realizan rotaciones para garantizar que la altura de los subárboles de cada nodo difiera a lo sumo en una unidad, lo que asegura un tiempo de búsqueda logarítmico en el peor caso.
Grafos:
Pregunta: ¿Cuál de los siguientes algoritmos se utiliza para encontrar el camino más corto entre dos nodos en un grafo con pesos positivos?
- a) Dijkstra
- b) Bellman-Ford
- c) Kruskal
- d) Prim
- Respuesta correcta: a) Dijkstra. El algoritmo de Dijkstra es eficiente para encontrar el camino más corto en grafos con pesos positivos.
Pregunta: ¿Cuál es la diferencia principal entre un grafo dirigido y uno no dirigido?
- a) Un grafo dirigido tiene ciclos, mientras que uno no dirigido no.
- b) Las aristas de un grafo dirigido tienen un peso, mientras que las de uno no dirigido no.
- c) Las aristas de un grafo dirigido tienen una dirección, mientras que las de uno no dirigido no.
- d) Un grafo dirigido siempre es conexo, mientras que uno no dirigido puede ser disconexo.
- Respuesta correcta: c) Las aristas de un grafo dirigido tienen una dirección, mientras que las de uno no dirigido no.
Hash Tables:
- Pregunta: ¿Cuál es la función principal de una función hash en una tabla hash?
- a) Ordenar los elementos.
- b) Mapear claves a índices.
- c) Eliminar elementos duplicados.
- d) Realizar búsquedas binarias.
- Respuesta correcta: b) Mapear claves a índices. Una función hash transforma una clave en un índice numérico para acceder directamente a la ubicación correspondiente en la tabla.
Complejidad Algorítmica:
- Pregunta: ¿Cuál es la notación asintótica que representa el mejor caso para la búsqueda en un árbol binario de búsqueda balanceado?
- a) O(n)
- b) O(log n)
- c) O(1)
- d) O(n^2)
- Respuesta correcta: c) O(1). En el mejor caso, el elemento buscado es la raíz del árbol, por lo que se encuentra en una sola operación.
Algoritmos de Ordenamiento:
Pregunta: ¿Cuál de los siguientes algoritmos de ordenamiento tiene una complejidad promedio de O(n log n) y es estable?
- a) Quicksort
- b) Mergesort
- c) Bubblesort
- d) Selectionsort
- Respuesta: b) Mergesort. Es estable y tiene una complejidad promedio de O(n log n) en el peor de los casos.
Pregunta: ¿Cuál de los siguientes algoritmos de ordenamiento in-place es inestable?
- a) Quicksort
- b) Heapsort
- c) Insertionsort
- d) Mergesort
- Respuesta: a) Quicksort. Aunque es eficiente, no garantiza el orden relativo de elementos iguales.
Hashing:
- Pregunta: ¿Cuál de las siguientes técnicas se utiliza para resolver colisiones en una tabla hash?
- a) Árbol binario de búsqueda
- b) Encadenamiento
- c) Ordenamiento por inserción
- d) Todas las anteriores
- Respuesta: b) Encadenamiento. Se crea una lista enlazada en cada celda de la tabla para almacenar elementos con la misma clave hash.
Árboles:
Pregunta: ¿Cuál es la altura máxima de un árbol binario perfecto con n nodos?
- a) log2(n+1) – 1
- b) n – 1
- c) n/2
- d) 2^n – 1
- Respuesta: a) log2(n+1) – 1. En un árbol binario perfecto todos los niveles están completamente llenos.
Pregunta: ¿Cuál es la principal diferencia entre un árbol AVL y un árbol rojo-negro?
- a) Los árboles AVL tienen un factor de balance más estricto.
- b) Los árboles rojo-negro permiten duplicados.
- c) Los árboles rojo-negro son más fáciles de implementar.
- d) Los árboles AVL tienen una altura máxima garantizada.
- Respuesta: a) Los árboles AVL tienen un factor de balance más estricto, lo que garantiza un tiempo de búsqueda logarítmico en el peor de los casos.
Grafos:
Pregunta: ¿Cuál de los siguientes algoritmos se utiliza para encontrar todos los caminos posibles entre dos nodos en un grafo?
- a) Dijkstra
- b) Bellman-Ford
- c) Búsqueda en profundidad (DFS)
- d) Búsqueda en anchura (BFS)
- Respuesta: c) Búsqueda en profundidad (DFS). Puede encontrar todos los caminos, aunque no necesariamente el más corto.
Pregunta: ¿Cuál es la complejidad temporal promedio del algoritmo de Dijkstra para encontrar el camino más corto en un grafo con V vértices y E aristas?
- a) O(V)
- b) O(E)
- c) O(V+E)
- d) O(V^2)
- Respuesta: c) O(V+E) utilizando una cola de prioridad.
Estructuras de Datos Avanzadas:
Pregunta: ¿Cuál de las siguientes estructuras de datos es más adecuada para implementar un caché LRU (Least Recently Used)?
- a) Pila
- b) Cola
- c) Lista doblemente enlazada
- d) Árbol AVL
- Respuesta: c) Lista doblemente enlazada. Permite insertar y eliminar elementos en cualquier posición de forma eficiente.
Pregunta: ¿Cuál es la principal ventaja de una trie sobre un árbol de búsqueda binario para almacenar cadenas de caracteres?
- a) Menor consumo de memoria.
- b) Mayor velocidad de búsqueda de prefijos.
- c) Mejor manejo de datos duplicados.
- d) Todas las anteriores.
- Respuesta: b) Mayor velocidad de búsqueda de prefijos. Las tries almacenan los caracteres de las cadenas en los nodos, lo que permite buscar prefijos de forma eficiente.
Complejidad Algorítmica:
- Pregunta: ¿Cuál de las siguientes afirmaciones sobre la notación Big O es correcta?
- a) O(n) es siempre más eficiente que O(log n).
- b) O(1) representa un algoritmo que nunca termina.
- c) La notación Big O describe el peor caso de un algoritmo.
- d) La notación Big O solo se aplica a algoritmos de ordenamiento.
- Respuesta: c) La notación Big O describe el peor caso de un algoritmo.
Algoritmos de Búsqueda:
Pregunta: ¿Cuál es la complejidad promedio de la búsqueda binaria en un arreglo ordenado?
- a) O(n)
- b) O(log n)
- c) O(n^2)
- d) O(1)
- Respuesta: b) O(log n). Divide el espacio de búsqueda a la mitad en cada iteración.
Pregunta: ¿Cuál es la principal ventaja de la búsqueda interpolada sobre la búsqueda binaria?
- a) Menor consumo de memoria.
- b) Mejor rendimiento en datos uniformemente distribuidos.
- c) Mayor velocidad en datos aleatorios.
- d) Capacidad de manejar datos duplicados.
- Respuesta: b) Mejor rendimiento en datos uniformemente distribuidos. Aprovecha la distribución de los datos para hacer estimaciones más precisas del punto medio.
Estructuras de Datos Avanzadas:
Pregunta: ¿Cuál de las siguientes estructuras de datos es más adecuada para implementar un autocompletar?
- a) Árbol binario de búsqueda
- b) Trie
- c) Tabla hash
- d) Lista enlazada
- Respuesta: b) Trie. Permite buscar prefijos de manera eficiente.
Pregunta: ¿Cuál es la principal diferencia entre una cola y una pila de prioridad?
- a) El orden de inserción.
- b) El criterio de extracción.
- c) El tamaño máximo.
- d) La implementación.
- Respuesta: b) El criterio de extracción. Las colas extraen elementos en el orden de llegada, mientras que las pilas de prioridad extraen el elemento con mayor o menor prioridad.
Análisis de Algoritmos:
Pregunta: ¿Cuál de las siguientes afirmaciones sobre la notación Theta (Θ) es correcta?
- a) Describe el mejor caso de un algoritmo.
- b) Describe el peor caso de un algoritmo.
- c) Describe el caso promedio de un algoritmo.
- d) Describe el espacio utilizado por un algoritmo.
- Respuesta: c) Describe el caso promedio de un algoritmo. Indica un límite superior e inferior ajustados asintóticamente.
Pregunta: ¿Cuál es la complejidad espacial de un algoritmo recursivo que utiliza una pila para realizar llamadas recursivas?
- a) O(1)
- b) O(log n)
- c) O(n)
- d) Depende del tamaño de la entrada
- Respuesta: d) Depende del tamaño de la entrada. El espacio utilizado por la pila depende de la profundidad de la recursión.
Temas Adicionales:
Pregunta: ¿Cuál es la principal ventaja de utilizar un grafo dirigido acíclico (DAG) para representar relaciones de precedencia entre tareas?
- a) Permite detectar ciclos.
- b) Garantiza un orden de ejecución único.
- c) Es más eficiente que un grafo no dirigido.
- d) Todas las anteriores.
- Respuesta: b) Garantiza un orden de ejecución único.
Pregunta: ¿Cuál de las siguientes estructuras de datos es más adecuada para implementar un conjunto?
- a) Árbol binario de búsqueda
- b) Tabla hash
- c) Lista enlazada
- d) Todas las anteriores
- Respuesta: b) Tabla hash. Proporciona una búsqueda en tiempo constante en promedio.
Pregunta: ¿Cuál es la principal diferencia entre un algoritmo online y uno offline?
- a) El uso de memoria.
- b) La disponibilidad de toda la entrada de antemano.
- c) La complejidad temporal.
- d) El tipo de datos de entrada.
- Respuesta: b) La disponibilidad de toda la entrada de antemano. Los algoritmos online procesan la entrada a medida que llega.
Pregunta: ¿Cuál de las siguientes técnicas se utiliza para reducir la complejidad temporal de un algoritmo recursivo?
- a) Memorización
- b) Iteración
- c) Búsqueda binaria
- d) Todas las anteriores
- Respuesta: a) Memorización. Almacena los resultados de subproblemas ya calculados para evitar recalcularlos.
Mapa Conceptual – Tema 72: Los Sistemas de Gestión de Bases de Datos (SGBD)
📌 Concepto Principal: Sistemas de Gestión de Bases de Datos (SGBD)
- Software especializado para la administración eficiente de datos.
- Garantiza integridad, seguridad y accesibilidad de la información.
📂 Modelos y Arquitecturas de Bases de Datos
🔹 Bases de datos centralizadas
- Toda la información almacenada en un único servidor.
- Ventaja: Fácil administración y control.
- Desventaja: Mayor riesgo de fallo único y problemas de escalabilidad.
🔹 Bases de datos distribuidas
- Datos almacenados en múltiples servidores interconectados.
- Ventaja: Mayor tolerancia a fallos y escalabilidad.
- Desventaja: Requiere mecanismos de sincronización complejos.
🔹 Bases de datos federadas
- Bases de datos autónomas e independientes interconectadas mediante un sistema común.
- Ejemplo: Red de hospitales con bases de datos separadas pero accesibles globalmente.
🔹 Bases de datos NoSQL (No relacionales)
- Diseñadas para manejar grandes volúmenes de datos con alta disponibilidad.
- Tipos:
- Clave-Valor (Redis)
- Documentales (MongoDB)
- De Objetos (db4o)
- Grafos (Neo4j)
- Columnares (Apache Cassandra)
📑 Motores de Indexación y Rendimiento
🔹 Índices en bases de datos
- Permiten búsqueda rápida de registros.
- Tipos:
- Índices B-Tree (para ordenación eficiente).
- Índices Hash (búsqueda directa por clave).
🔹 Técnicas de optimización
- Uso de planificadores de consultas (EXPLAIN en SQL).
- Almacenamiento en memoria caché para mejorar tiempos de respuesta.
🔄 Modelo ANSI/SPARC y Abstracción de Datos
1️⃣ Nivel Interno
- Define la estructura física y la manera en que los datos se almacenan en disco.
2️⃣ Nivel Conceptual
- Estructura lógica de la base de datos (tablas, relaciones, restricciones).
3️⃣ Nivel Externo
- Vistas del usuario (cómo los datos son presentados a diferentes usuarios).
🔍 Control de Concurrencia y Seguridad
🔹 Control de Concurrencia
- Garantiza el acceso seguro a la base de datos por múltiples usuarios.
- Métodos:
- Bloqueo pesimista (evita conflictos con bloqueos).
- Bloqueo optimista (permite acceso sin bloqueos, validando cambios antes de confirmar).
🔹 Monitor de Transacciones
- Gestiona las operaciones dentro de la base de datos.
- Propiedades ACID garantizan:
- Atomicidad (transacciones completas o no se ejecutan).
- Consistencia (mantiene integridad de los datos).
- Aislamiento (una transacción no afecta a otra en ejecución).
- Durabilidad (los cambios confirmados persisten).
📌 Recuperación de Errores y Mecanismos de Backup
🔹 Técnicas de recuperación
- Redo Log: Permite restaurar la base de datos tras fallos.
- Rollback: Revierte cambios no confirmados.
- Checkpoints: Guardan el estado de la base de datos en puntos seguros.
🔹 Tipos de Backup
- Completo: Copia de toda la base de datos.
- Incremental: Solo guarda los cambios desde el último backup.
- Diferencial: Copia de cambios desde el último backup completo.
📌 Tendencias en Bases de Datos
🚀 Bases de Datos en la Nube
- Amazon RDS, Google Cloud SQL, Azure SQL Database.
- Ofrecen alta disponibilidad y escalabilidad automática.
🚀 Bases de Datos con Machine Learning
- Uso de IA para optimizar consultas y predicciones.
🚀 Blockchain y Bases de Datos Inmutables
- Seguridad mejorada mediante registros descentralizados.
🔹 Resumen Visual del Mapa Conceptual
📌 SGBD → Modelos y Arquitecturas → Control de Concurrencia → Motores de Indexación → Seguridad → Recuperación y Backup → Tendencias
💡 Este mapa conceptual resume los aspectos clave del tema 72, destacando las estructuras de bases de datos, control de transacciones y tendencias tecnológicas.