5.22. Bases de Datos I (Obligatorio)

5.22. Bases de Datos I (Obligatorio)

Figura 5.22: Mapa de Conexión. CS271 Bases de Datos I

5.22.1. Justificación ↑ Volver arriba

Este curso introduce conceptos y técnicas fundamentales en gestión de datos, centrándose en sistemas de bases de datos relacionales. Los estudiantes aprenderán modelado de datos usando diagramas entidad-relación, principios de diseño de bases de datos relacionales, teoría de normalización y Lenguaje de Consulta Estructurado (SQL). El curso cubre componentes centrales de sistemas de bases de datos, gestión de transacciones y procesamiento básico de consultas. Se pone énfasis en habilidades prácticas para diseñar, implementar y consultar bases de datos, así como en comprender el rol de los datos en las organizaciones y las consideraciones éticas asociadas en la gestión de datos.

5.22.2. Objetivos Generales ↑ Volver arriba

  1. Diseñar e implementar bases de datos relacionales normalizadas.
  2. Formular consultas complejas usando SQL para recuperación y manipulación de datos.
  3. Aplicar técnicas de modelado de datos usando diagramas entidad-relación.
  4. Comprender la arquitectura de sistemas de bases de datos y gestión de transacciones.
  5. Reconocer consideraciones éticas y de seguridad en la gestión de datos.
  6. Utilizar herramientas y técnicas básicas de administración de bases de datos.

5.22.3. Contribución a los resultados (Outcomes) ↑ Volver arriba

AG-C09) Diseño y Desarrollo de Soluciones: Diseña, implementa y evalúa soluciones para 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.22.4. Contenido ↑ Volver arriba

5.22.4.1. Conceptos Fundamentales de Sistemas de Bases de Datos (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

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

Temas

  1. Propósito y ventajas de los sistemas de bases de datos
  2. Componentes de los sistemas de bases de datos
  3. Diseño de funciones fundamentales de DBMS (por ejemplo, mecanismos de consulta, gestión de transacciones, gestión de búfer, métodos de acceso)
  4. Arquitectura de base de datos, independencia de datos y abstracción de datos
  5. Gestión de transacciones
  6. Normalización
  7. Enfoques para gestionar grandes volúmenes de datos (por ejemplo, sistemas de bases de datos NoSQL, uso de MapReduce)
  8. Cómo soportar aplicaciones solo de CRUD
  9. Bases de datos distribuidas/sistemas basados en la nube
  10. Datos estructurados, semiestructurados y no estructurados
  11. Uso de un lenguaje de consulta declarativo
  12. Sistemas que soportan contenido estructurado y/o de flujo

Aprendizaje esperado (Learning Outcomes)

  1. Identificar al menos cuatro ventajas que proporciona el uso de un sistema de base de datos [Familiarizarse]
  2. Enumerar los componentes de un sistema de base de datos (relacional) [Familiarizarse]
  3. Explicar las ventajas de los sistemas de bases de datos sobre los sistemas de archivos [Usar].
  4. Describir la arquitectura de tres esquemas y la independencia de datos [Familiarizarse].
  5. Identificar diferentes tipos de usuarios de bases de datos y sus roles [Familiarizarse].
5.22.4.2. Modelado de Datos (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

Referencias Bibliográficas: (Ramakrishnan and Gehrke, 2002; Elmasri and Navathe, 2015)

Temas

  1. Modelos conceptuales (por ejemplo, entidad-relación, diagramas UML)
  2. Conjuntos de entidades, conjuntos de relaciones y atributos.
  3. Restricciones de cardinalidad: uno-a-uno, uno-a-muchos, muchos-a-muchos.
  4. Conjuntos de entidades débiles y relaciones identificadoras.
  5. Características extendidas E-R: especialización, generalización, agregación.
  6. Diagramas de clases UML para modelado de datos.

Aprendizaje esperado (Learning Outcomes)

  1. Describir los componentes del modelo E-R (o algún otro modelo no relacional) [Familiarizarse]
  2. Modelar un entorno dado usando un modelo de datos conceptual [Usar]
  3. Diseñar diagramas E-R para escenarios del mundo real [Usar].
  4. Convertir diagramas E-R a esquemas relacionales [Usar].
  5. Aplicar características E-R extendidas para modelado complejo [Evaluar].
5.22.4.3. Bases de Datos Relacionales (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

Referencias Bibliográficas: (Ramakrishnan and Gehrke, 2002; Elmasri and Navathe, 2015)

Temas

  1. Integridad de entidad y referencial: Clave candidata, superclaves
  2. Diseño de base de datos relacional
  3. Operaciones de álgebra relacional: selección, proyección, join, unión, etc.
  4. Restricciones de integridad: dominio, clave, entidad, referencial.
  5. Cálculo relacional: cálculo de tuplas y de dominio.
  6. Mapeo de diagramas E-R a esquemas relacionales.

Aprendizaje esperado (Learning Outcomes)

  1. Describir las características definitorias detrás del modelo de datos relacional [Familiarizarse]
  2. Comentar sobre la diferencia entre una clave foránea y una superclave [Usar]
  3. Expresar consultas usando álgebra relacional [Usar].
  4. Diseñar esquemas relacionales con restricciones apropiadas [Usar].
  5. Mapear diagramas E-R complejos a relaciones normalizadas [Evaluar].
5.22.4.4. Construcción de Consultas (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

Referencias Bibliográficas: (Ramakrishnan and Gehrke, 2002; Beaulieu, 2009)

Temas

  1. Formación de Consultas SQL:
    1. Ejecución interactiva de SQL
    2. Ejecución programática de una consulta SQL enumerate
    3. Lenguaje de definición de datos: CREATE, ALTER, DROP.
    4. Tipos de datos y restricciones de dominio.
    5. Creación y gestión de índices.
    6. Definición de vistas y vistas materializadas.
    7. Diseño e implementación de esquemas de base de datos.

    Aprendizaje esperado (Learning Outcomes)

    1. Componer consultas SQL que incorporen selección, proyección, unión, intersección, diferencia de conjuntos y división de conjuntos [Usar]
    2. Definir, en SQL, un esquema de relación, incluyendo todas las restricciones de integridad y activadores de eliminación/actualización [Usar]
    3. Crear y modificar esquemas de base de datos usando SQL DDL [Usar].
    4. Implementar restricciones de integridad a nivel de esquema [Usar].
    5. Diseñar y crear índices apropiados para rendimiento [Evaluar].
    5.22.4.5. Construcción de Consultas (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

    Referencias Bibliográficas: (Ramakrishnan and Gehrke, 2002; Beaulieu, 2009)

    Temas

    1. Consultas SQL complejas: subconsultas anidadas, subconsultas correlacionadas.
    2. Funciones de agregación y operaciones GROUP BY.
    3. Operaciones de conjunto: UNION, INTERSECT, EXCEPT.
    4. Operaciones JOIN: inner, outer, natural, cross joins.
    5. Manipulación de datos: INSERT, UPDATE, DELETE.
    6. Control de transacciones: COMMIT, ROLLBACK, SAVEPOINT.

    Aprendizaje esperado (Learning Outcomes)

    1. Determinar cuándo una consulta SQL anidada está correlacionada o no [Usar]
    2. Componer una consulta SQL para actualizar una tupla en una relación [Usar]
    3. Formular consultas complejas con múltiples joins y subconsultas [Usar].
    4. Aplicar agregación para análisis de datos y generación de informes [Usar].
    5. Implementar operaciones de modificación de datos con control de transacciones [Evaluar].
    5.22.4.6. Bases de Datos Relacionales (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

    Referencias Bibliográficas: (Ramakrishnan and Gehrke, 2002; Elmasri and Navathe, 2015)

    Temas

    1. Introducción a la teoría de dependencias funcionales
    2. Teoría de Normalización:
      1. Descomposición de un esquema; propiedades de unión sin pérdida y preservación de dependencias de una descomposición
      2. Formas normales (BCNF)
      3. Desnormalización (para eficiencia) enumerate
      4. Dependencias funcionales y reglas de inferencia.
      5. Formas normales: 1FN, 2FN, 3FN, FNBC.
      6. Algoritmos de descomposición: sin pérdida de join y que preserva dependencias.
      7. Consideraciones prácticas en normalización.

      Aprendizaje esperado (Learning Outcomes)

      1. Describir cómo la teoría de dependencias funcionales generaliza la noción de clave [Familiarizarse]
      2. Detectar qué forma normal produce una descomposición dada [Usar]
      3. Identificar dependencias funcionales en esquemas relacionales [Usar].
      4. Normalizar relaciones a FNBC [Evaluar].
      5. Evaluar descomposiciones para sin pérdida de join y preservación de dependencias [Evaluar].
      5.22.4.7. Internos de DBMS (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

      Referencias Bibliográficas: (Ramakrishnan and Gehrke, 2002; Bernstein et al., 1987)

      Temas

      1. 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. Propiedades ACID: Atomicidad, Consistencia, Aislamiento, Durabilidad.
          5. Serializabilidad y serializabilidad por conflicto.
          6. Control de concurrencia basado en bloqueos: bloqueo en dos fases.
          7. Detección y prevención de interbloqueos.
          8. Niveles de aislamiento y sus compensaciones.

          Aprendizaje esperado (Learning Outcomes)

          1. Describir las cuatro propiedades para un gestor de transacciones correcto [Familiarizarse]
          2. Esbozar el principio de serializabilidad [Familiarizarse]
          3. Explicar las propiedades ACID y su importancia [Usar].
          4. Analizar programaciones de transacciones para serializabilidad [Evaluar].
          5. Aplicar protocolos de bloqueo para control de concurrencia [Usar].
          5.22.4.8. Seguridad y Privacidad de Datos (8 horas) [Habilidades AG-C09,AG-C12] ↑ Volver arriba

          Referencias Bibliográficas: (Ramakrishnan and Gehrke, 2002; Elmasri and Navathe, 2015)

          Temas

          1. Diferencias entre seguridad de datos y privacidad de datos
          2. Información de identificación personal (PII) y su protección
          3. Consideraciones éticas para asegurar la seguridad y privacidad de los datos
          4. Seguridad de bases de datos: autenticación, autorización, encriptación.
          5. Ataques de inyección SQL y prevención.
          6. Introducción a bases de datos NoSQL y big data.
          7. Gobernanza de datos y cumplimiento normativo.

          Aprendizaje esperado (Learning Outcomes)

          1. Describir las diferencias en los objetivos para seguridad de datos y privacidad de datos [Familiarizarse]
          2. Identificar y mitigar riesgos asociados con diferentes enfoques para proteger datos [Usar]
          3. Implementar medidas básicas de seguridad de bases de datos [Usar].
          4. Prevenir vulnerabilidades de inyección SQL [Evaluar].
          5. Discutir consideraciones éticas en la recolección y uso de datos [Evaluar].

          5.22.5. Referencias Bibliográficas ↑ Volver arriba

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

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

          Elmasri, R. and Navathe, S. B. (2015). Fundamentals of Database Systems. Pearson, 7th edition.

          Beaulieu, A. (2009). Learning SQL. O'Reilly Media, 2nd edition.

          Bernstein, P. A., Hadzilacos, V., and Goodman, N. (1987). Concurrency Control and Recovery in Database Systems. Addison-Wesley.

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

          Escanea para abrir en tu teléfono