Curricula CS-UNI
5.22. CS271. Bases de Datos I (Obligatorio)

5.22. CS271. Bases de Datos I (Obligatorio)

  • Semestre: 4to Sem. Créditos: 4
  • Horas del curso: Teoría: 2 horas; Laboratorio: 4 horas;
  • Prerrequisitos:

    • CS112. Programación Orientada a Objetos I (2do Sem)
    • CS1D1. Estructuras Discretas (2do Sem)

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

5.22.1. Justificación

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

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)

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

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

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Silberschatz 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]

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Elmasri 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]

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Elmasri 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]

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Beaulieu, 2009]

Temas

1.
Formación de Consultas SQL:
a)
Ejecución interactiva de SQL
b)
Ejecución programática de una consulta SQL
2.
Lenguaje de definición de datos: CREATE, ALTER, DROP.
3.
Tipos de datos y restricciones de dominio.
4.
Creación y gestión de índices.
5.
Definición de vistas y vistas materializadas.
6.
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]

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Beaulieu, 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]

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Elmasri and Navathe, 2015]

Temas

1.
Introducción a la teoría de dependencias funcionales
2.
Teoría de Normalización:
a)
Descomposición de un esquema; propiedades de unión sin pérdida y preservación de dependencias de una descomposición
b)
Formas normales (BCNF)
c)
Desnormalización (para eficiencia)
3.
Dependencias funcionales y reglas de inferencia.
4.
Formas normales: 1FN, 2FN, 3FN, FNBC.
5.
Algoritmos de descomposición: sin pérdida de join y que preserva dependencias.
6.
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]

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Bernstein et al., 1987]

Temas

1.
Gestión de Transacciones:
a)
Niveles de Aislamiento
b)
ACID
c)
Serializabilidad
d)
Transacciones Distribuidas
2.
Control de Concurrencia:
a)
Bloqueo en 2 Fases
b)
Estrategias de manejo de bloqueos mutuos
c)
Modelos de consistencia basados en quórum
3.
Propiedades ACID: Atomicidad, Consistencia, Aislamiento, Durabilidad.
4.
Serializabilidad y serializabilidad por conflicto.
5.
Control de concurrencia basado en bloqueos: bloqueo en dos fases.
6.
Detección y prevención de interbloqueos.
7.
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]

Referencias Bibliográficas: [Ramakrishnan and Gehrke, 2002Elmasri 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

[Ramakrishnan and Gehrke, 2002]

[Silberschatz et al., 2019]

[Elmasri and Navathe, 2015]

[Beaulieu, 2009]

[Bernstein et al., 1987]

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

Escanea para abrir en tu teléfono