5.28. Bases de Datos II (Obligatorio)

5.28. 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;
  • Sílabo:

    Español

    English
    - htmlonly
  • Prerrequisitos:
    • CS271 Bases de Datos I (4to Sem) itemize
    Figura 5.28: Mapa de Conexión. CS272 Bases de Datos II

    5.28.1. Justificación ↑ Volver arriba

    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 ↑ Volver arriba

    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) ↑ Volver arriba

    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 ↑ Volver arriba

    5.28.4.1. Procesamiento de Consultas (12 horas) [Habilidades AG-C08,AG-C12] ↑ Volver arriba

    Referencias Bibliográficas: (Silberschatz et al., 2019; Ramakrishnan and Gehrke, 2003)

    Temas

    1. Estructuras de página
    2. Estructuras de índice:
      1. árboles B+
      2. Índices hash: estáticos y dinámicos
      3. Creación de índices en SQL enumerate
      4. Estructuras de archivos:
        1. Archivos de montón (heap)
        2. Archivos hash enumerate
        3. Algoritmos para operadores de consulta:
          1. Ordenamiento externo
          2. Selección
          3. Proyección; con y sin eliminación de duplicados
          4. Uniones naturales: Bucle anidado, Mezcla-ordenada, Unión hash
          5. Análisis de eficiencia de algoritmos enumerate
          6. Transformaciones de consultas
          7. Optimización de consultas:
            1. Rutas de acceso
            2. Construcción de plan de consulta
            3. Estimación de selectividad
            4. Planes solo de índice enumerate
            5. Procesamiento de Consultas en Paralelo (por ejemplo, exploración paralela, unión paralela, agregación paralela)
            6. Afinamiento/rendimiento de base de datos:
              1. Selección de índices
              2. Impacto de índices en el rendimiento de consultas
              3. Desnormalización enumerate

              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] ↑ Volver arriba

              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:
                1. Niveles de Aislamiento
                2. ACID
                3. Serializabilidad
                4. Transacciones Distribuidas enumerate
                5. Control de Concurrencia:
                  1. Bloqueo en 2 Fases
                  2. Estrategias de manejo de bloqueos mutuos
                  3. Modelos de consistencia basados en quórum enumerate
                  4. Gestor de Recuperación:
                    1. Relación con el Gestor de Búfer enumerate
                    2. Control de Concurrencia:
                      1. Control de concurrencia optimista
                      2. Control de concurrencia por marca de tiempo enumerate
                      3. Gestor de Recuperación:
                        1. Registro por escritura anticipada
                        2. Sistema de recuperación ARIES (Análisis, REDO, UNDO) enumerate

                        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] ↑ Volver arriba

                        Referencias Bibliográficas: (Silberschatz et al., 2019; Özsu and Valduriez, 2020)

                        Temas

                        1. DBMS Distribuido:
                          1. Almacenamiento de datos distribuido
                          2. Procesamiento de consultas distribuido
                          3. Modelo de transacción distribuida
                          4. Soluciones homogéneas y heterogéneas
                          5. Bases de datos distribuidas cliente-servidor enumerate
                          6. DBMS Paralelo:
                            1. Arquitecturas de DBMS paralelo: memoria compartida, disco compartido, nada compartido
                            2. Aceleración y escalamiento, por ejemplo, uso del modelo de procesamiento MapReduce
                            3. Replicación de datos y modelos de consistencia débil enumerate

                            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] ↑ Volver arriba

                            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; "Cuá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] ↑ Volver arriba

                            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:
                              1. Vectorizador TF-IDF con n-grama
                              2. Word2Vec
                              3. Base de datos de arreglos o manejo de tipo de datos arreglo enumerate
                              4. Bases de datos semiestructuradas (por ejemplo, JSON):
                                1. Almacenamiento:
                                  1. Codificación y compresión de tipos de datos anidados enumerate
                                  2. 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 enumerate
                                    4. 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 enumerate enumerate

                                      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 ↑ Volver arriba

                                      Silberschatz, A., Korth, H. F., and Sudarshan, S. (2019). Database System Concepts. McGraw-Hill, 7th edition.

                                      Ramakrishnan, R. and Gehrke, J. (2003). Database Management Systems. McGraw-Hill, 3rd edition.

                                      Garcia-Molina, H., Ullman, J. D., and Widom, J. (2008). Database Systems: The Complete Book. Pearson, 2nd edition.

                                      Özsu, M. T. and Valduriez, P. (2020). Principles of Distributed Database Systems. Springer, 4th edition.

                                      Sadalage, P. J. and Fowler, M. (2012). NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison-Wesley.

                                      Kleppmann, M. (2017a). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O'Reilly Media.

                                      Manning, C. D., Raghavan, P., and Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press.

                                      Mikolov, T., Chen, K., Corrado, G., and Dean, J. (2013). Efficient estimation of word representations in vector space. arXiv preprint. arXiv:1301.3781.

                                      Agrawal, D. et al. (2023). Toward a systems architecture for ai-enabled applications. Communications of the ACM, 66(6):54–63.

                                      MongoDB, Inc. (2025). Mongodb manual. MongoDB, Inc. https://www.mongodb.com/docs/.

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

                                      Escanea para abrir en tu teléfono