Curricula CS-UNI
5.28. CS272. Bases de Datos II (Obligatorio)

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)

Figura 5.28: Mapa de Conexión. CS272 Bases de Datos II

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., 2019Ramakrishnan 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., 2019Garcia-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, 2012Kleppmann, 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, 2017aManning et al., 2008Mikolov et al., 2013Agrawal et al., 2023MongoDB, 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]

5.28.5. Referencias Bibliográficas

[Silberschatz et al., 2019]

[Ramakrishnan and Gehrke, 2003]

[Garcia-Molina et al., 2008]

[Özsu and Valduriez, 2020]

[Sadalage and Fowler, 2012]

[Kleppmann, 2017a]

[Manning et al., 2008]

[Mikolov et al., 2013]

[Agrawal et al., 2023]

[MongoDB, Inc., 2025]

¿Encontraste una errata, un curso desactualizado, un enlace roto, o tienes una sugerencia? Cuéntanos.

Escanea para abrir en tu teléfono