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