5.28. CS272. Bases de Datos II (Obligatorio)
- Semestre: 5to Sem. Créditos: 3
- Horas del curso: Teoría: 1 horas; Práctica: 2 horas; Laboratorio: 2 horas;
-
Prerrequisitos:
- CS271. Bases de Datos I (4to Sem)
5.28.1. Justificación
Este curso es una continuación de Gestión de Datos I, enfocándose en los mecanismos internos de los sistemas de gestión de bases de datos (DBMS) y tecnologías de bases de datos modernas. Cubre en profundidad la optimización de consultas, estructuras de indexación e integridad transaccional. Además, introduce a los estudiantes a modelos no relacionales (NoSQL) y arquitecturas distribuidas, que son esenciales para manejar datos a gran escala en entornos de nube contemporáneos.
5.28.2. Objetivos Generales
- 1.
- Comprender las estructuras de almacenamiento interno y técnicas de indexación.
- 2.
- Analizar y optimizar planes de ejecución de consultas.
- 3.
- Comprender protocolos de transacción avanzados y mecanismos de recuperación.
- 4.
- Evaluar e implementar soluciones usando modelos de bases de datos NoSQL.
- 5.
- Comprender los principios de bases de datos distribuidas y paralelas.
5.28.3. Contribución a los resultados (Outcomes)
-
AG-C08) Análisis de Problemas: Identifica, formula y analiza problemas complejos de computación. (Usage)
-
AG-C12) Aplica la teoría de la ciencia de la computación y los fundamentos de desarrollo de software para producir soluciones basadas en computadora. (Usage)
5.28.4. Contenido
5.28.4.1. Procesamiento de Consultas (12 horas) [Habilidades AG-C08,AG-C12]
Referencias Bibliográficas: [Silberschatz et al., 2019, Ramakrishnan and Gehrke, 2003]
Temas
- 1.
- Estructuras de página
- 2.
- Estructuras de índice:
- a)
- árboles B+
- b)
- Índices hash: estáticos y dinámicos
- c)
- Creación de índices en SQL
- 3.
- Estructuras de archivos:
- a)
- Archivos de montón (heap)
- b)
- Archivos hash
- 4.
- Algoritmos para operadores de consulta:
- a)
- Ordenamiento externo
- b)
- Selección
- c)
- Proyección; con y sin eliminación de duplicados
- d)
- Uniones naturales: Bucle anidado, Mezcla-ordenada, Unión hash
- e)
- Análisis de eficiencia de algoritmos
- 5.
- Transformaciones de consultas
- 6.
- Optimización de consultas:
- a)
- Rutas de acceso
- b)
- Construcción de plan de consulta
- c)
- Estimación de selectividad
- d)
- Planes solo de índice
- 7.
- Procesamiento de Consultas en Paralelo (por ejemplo, exploración paralela, unión paralela, agregación paralela)
- 8.
- Afinamiento/rendimiento de base de datos:
- a)
- Selección de índices
- b)
- Impacto de índices en el rendimiento de consultas
- c)
- Desnormalización
Aprendizaje esperado (Learning Outcomes)
- 1.
- Describir el propósito y organización de las estructuras de índice tanto de árbol B+ como hash [Describir]
- 2.
- Componer un comando SQL para crear un índice (de cualquier tipo) [Componer]
- 3.
- Especificar los pasos para los diversos algoritmos de operadores de consulta: ordenamiento externo, proyección con eliminación de duplicados, unión por mezcla-ordenada, unión hash, unión por bucle anidado por bloques [Analizar]
- 4.
- Derivar el tiempo de ejecución (en solicitudes de E/S) para cada uno de los algoritmos anteriores [Analizar]
- 5.
- Transformar una consulta en álgebra relacional a su equivalente apropiado para una ejecución canalizada de profundidad izquierda [Rediseñar]
- 6.
- Calcular estimaciones de selectividad para una operación de selección y/o unión dada [Computar/Calcular]
- 7.
- Describir cómo modificar una estructura de índice para facilitar una operación solo de índice para una relación dada [Describir]
- 8.
- Para un escenario dado decidir qué índices soportar para la ejecución eficiente de un conjunto de consultas [Evaluar (valorar)]
- 9.
- Describir cómo los DBMS aprovechan el paralelismo para acelerar el procesamiento de consultas dividiendo el trabajo entre múltiples procesadores o nodos [Describir]
5.28.4.2. Internos de DBMS (12 horas) [Habilidades AG-C08,AG-C12]
Referencias Bibliográficas: [Silberschatz et al., 2019, Garcia-Molina et al., 2008]
Temas
- 1.
- Gestión de Búfer de DB
- 2.
- Gestión de Transacciones:
- a)
- Niveles de Aislamiento
- b)
- ACID
- c)
- Serializabilidad
- d)
- Transacciones Distribuidas
- 3.
- Control de Concurrencia:
- a)
- Bloqueo en 2 Fases
- b)
- Estrategias de manejo de bloqueos mutuos
- c)
- Modelos de consistencia basados en quórum
- 4.
- Gestor de Recuperación:
- a)
- Relación con el Gestor de Búfer
- 5.
- Control de Concurrencia:
-
a)
- Control de concurrencia optimista
- b)
- Control de concurrencia por marca de tiempo
-
- 6.
- Gestor de Recuperación:
- a)
- Registro por escritura anticipada
- b)
- Sistema de recuperación ARIES (Análisis, REDO, UNDO)
Aprendizaje esperado (Learning Outcomes)
- 1.
- Describir cómo un DBMS gestiona su Grupo de Búferes [Describir]
- 2.
- Describir las cuatro propiedades para un gestor de transacciones correcto [Describir]
- 3.
- Esbozar el principio de serializabilidad [Esquematizar/Esbozar]
5.28.4.3. Bases de Datos Distribuidas/Computación en la Nube (12 horas) [Habilidades AG-C08,AG-C12]
Referencias Bibliográficas: [Silberschatz et al., 2019, Özsu and Valduriez, 2020]
Temas
- 1.
- DBMS Distribuido:
- a)
- Almacenamiento de datos distribuido
- b)
- Procesamiento de consultas distribuido
- c)
- Modelo de transacción distribuida
- d)
- Soluciones homogéneas y heterogéneas
- e)
- Bases de datos distribuidas cliente-servidor
- 2.
- DBMS Paralelo:
- a)
- Arquitecturas de DBMS paralelo: memoria compartida, disco compartido, nada compartido
- b)
- Aceleración y escalamiento, por ejemplo, uso del modelo de procesamiento MapReduce
- c)
- Replicación de datos y modelos de consistencia débil
Aprendizaje esperado (Learning Outcomes)
- 1.
- Describir los componentes clave de un DBMS distribuido, incluyendo almacenamiento de datos distribuido, procesamiento de consultas y gestión de transacciones [Describir]
- 2.
- Analizar las ventajas y desventajas entre arquitecturas de DBMS paralelo: memoria compartida, disco compartido y nada compartido [Analizar]
- 3.
- Describir estrategias de replicación de datos y modelos de consistencia débil en sistemas de bases de datos distribuidas [Describir]
5.28.4.4. Sistemas NoSQL (12 horas) [Habilidades AG-C08,AG-C12]
Referencias Bibliográficas: [Sadalage and Fowler, 2012, Kleppmann, 2017a]
Temas
- 1.
- ¿Por qué NoSQL? (por ejemplo, Desajuste de impedancia entre Aplicación [CRUD] y RDBMS)
- 2.
- Modelo de datos Clave-Valor y Documento
- 3.
- Sistemas de almacenamiento (por ejemplo, sistemas Clave-Valor, Lagos de Datos (Data Lakes))
- 4.
- Modelos de Distribución (Fragmentación y Replicación)
- 5.
- Bases de Datos de Grafos
- 6.
- Modelos de Consistencia (Actualización y Lectura, consistencia de quórum, teorema CAP)
- 7.
- Modelo de procesamiento (por ejemplo, Map-Reduce, map-reduce multi-etapa, map-reduce incremental)
- 8.
- Estudios de Caso: Sistema de almacenamiento en la nube (por ejemplo, S3); Bases de datos de grafos; Çuándo no usar NoSQL"
Aprendizaje esperado (Learning Outcomes)
- 1.
- Desarrollar un caso de uso para el uso de NoSQL sobre RDBMS [Crear]
- 2.
- Describir las características definitorias detrás de los modelos de datos basados en Clave-Valor y Documentos [Describir]
5.28.4.5. Bases de Datos Semiestructuradas y No Estructuradas (12 horas) [Habilidades AG-C08,AG-C12]
Referencias Bibliográficas: [Kleppmann, 2017a, Manning et al., 2008, Mikolov et al., 2013, Agrawal et al.,
2023, MongoDB, Inc., 2025]
Temas
- 1.
- Datos no estructurados vectorizados (texto, video, audio, etc.) y almacenamiento vectorial:
- a)
- Vectorizador TF-IDF con n-grama
- b)
- Word2Vec
- c)
- Base de datos de arreglos o manejo de tipo de datos arreglo
- 2.
- Bases de datos semiestructuradas (por ejemplo, JSON):
- a)
- Almacenamiento:
- 1)
- Codificación y compresión de tipos de datos anidados
- b)
- Indexación:
- 1)
- árbol B, índice de salto, filtro Bloom
- 2)
- Índice invertido y compresión de mapa de bits
- 3)
- Indexación por curva de llenado de espacio para datos geo-semiestructurados
- c)
- Procesamiento de consultas para casos de uso OLTP y OLAP:
- 1)
- Compromisos de inserción, selección, actualización/eliminación
- 2)
- Estudios de caso sobre Postgres/JSON, MongoDB y Snowflake/JSON
Aprendizaje esperado (Learning Outcomes)
- 1.
- Describir representaciones vectorizadas de datos no estructurados (por ejemplo, TF-IDF, Word2Vec) y sus modelos de almacenamiento [Describir]
- 2.
- Aplicar técnicas de indexación (por ejemplo, árbol B, índice invertido, filtro Bloom) a datos semiestructurados almacenados en formato JSON [Aplicar]
- 3.
- Analizar las ventajas y desventajas del procesamiento de consultas en bases de datos semiestructuradas para casos de uso OLTP y OLAP [Analizar]