Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta Actividad Protocolo Individual (30%) FORMATO DE ENTREGA: Desarrollar la actividad sobre este mismo documento editable para unificar el formato del desarrollo y entrega de la actividad, es decir, responde sobre cada punto, sin borrar ninguno, punto que no se desarrolle no se puede borrar del documento. Documento en PDF respondiendo todos ítem o puntos de la actividad (en el mismo orden descrito en este documento) Agregar una página al inicio para cada una de las siguientes secciones: ● Presentación: Título de la actividad, asignatura, semestre, código del alumno, nombre completo, nombre del docente, Nombre de la IES (UdeC), fecha. ● Introducción: repaso rápido sobre el contenido del documento ● Objetivos: de aprendizaje ● Justificación: Beneficio de aprendizaje ● Video de sustentación (el estudiante debe garantizar que el video no esté privado para que se pueda acceder, ver, escuchar y comentar) RECOMENDACIONES PARA DESARROLLAR LA ACTIVIDAD ● Lee cuidadosamente cada pregunta. ● Busca las respuestas por varios medios, indaga, cuestiona las respuestas, realiza inferencias, relación, conexión, comparaciones, similitudes, diferencias de conceptos, así es que se ejecuta el verdadero conocimiento y da como resultado la inteligencia y dejando a una lado la memorización temporal y deficiente. ● Realiza síntesis y redacta las respuestas con con esas síntesis, pero que sea generada por tu capacidad cerebral, de lo contrario estarías perdiendo de manera absurda tu valioso tiempo. ● Elabora el documento con las respuesta tomando como base este mismo documento, siguiendo el mismo orden y nomenclatura de las preguntas. ● Explica lo más importante un video en que sustentes los conocimientos adquiridos. Actividad Académica:Actividad Académica: Normalización de Bases de Datos Objetivo Comprender y aplicar el proceso de normalización de bases de datos relacionales , identificando dependencias funcionales y aplicando las diferentes formas normales para diseñar estructuras lógicas coherentes, eficientes y libres de redundancia, a partir de un caso de estudio real. Objetivos Específicos 1. Conceptuales (Saber) ○ Definir el concepto de normalización según distintos autores y comprender su importancia en el diseño de sistemas de bases de datos relacionales. Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta ○ Explicar los principios teóricos que sustentan la normalización, incluyendo las dependencias funcionales, las claves primarias, foráneas y las anomalías de actualización. ○ Describir las características, reglas y objetivos de cada una de las formas normales (1FN, 2FN, 3FN y BCNF). ○ Reconocer los beneficios y limitaciones del proceso de normalización en diferentes contextos de diseño de bases de datos. 2. Procedimentales (Saber hacer) ○ Analizar un modelo de datos inicial (DER o MR) para detectar redundancias, dependencias parciales y transitivas. ○ Aplicar paso a paso el proceso de normalización sobre el caso de estudio “Sistema de Gestión de Finanzas Familiares” , transformando las tablas hasta alcanzar al menos la Tercera Forma Normal (3FN). ○ Elaborar el modelo relacional normalizado , identificando las claves primarias y foráneas que garanticen la integridad referencial del sistema. ○ Justificar las decisiones de diseño tomadas durante el proceso de normalización mediante argumentos técnicos y lógicos. 3. Actitudinales (Saber ser) ○ Fomentar la rigurosidad y precisión en el análisis y diseño de bases de datos como base de la calidad del software. ○ Desarrollar una actitud crítica frente a los modelos de datos desorganizados o redundantes, proponiendo soluciones estructuradas. ○ Valorar la normalización como una práctica esencial para la construcción de sistemas escalables, mantenibles y consistentes. ○ Promover el trabajo colaborativo en la revisión de modelos y la toma de decisiones de diseño en equipo. Competencias que desarrolla la actividad Tipo de competencia Descripción Cognitiva Comprende los fundamentos teóricos y conceptuales de la normalización y las formas normales. Procedimental Aplica correctamente las reglas de normalización en el diseño lógico de una base de datos relacional. Actitudinal Muestra disciplina y pensamiento lógico en la construcción de modelos de datos coherentes y bien estructurados. Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta Evidencias esperadas ● Documento o presentación con: ○ DER inicial del caso de estudio. ○ Modelo relacional (MR) antes y después de la normalización. ○ Explicación del proceso de normalización (1FN → 2FN → 3FN). ○ Argumentación de las decisiones tomadas. ● Respuestas al cuestionario de análisis y reflexión. ● Conclusión personal sobre la utilidad de la normalización en proyectos reales. Actividad Académica: Normalización de Bases de Datos Introducción a la normalización de Bases de datos relacionales Aquí tienes la Actividad Académica sobre Normalización de Bases de Datos , estructurada con rigor pedagógico, coherente con el nivel universitario (cursos de Programación o Bases de Datos I/II), y centrada en el caso práctico del Sistema de Gestión de Finanzas Familiares que ya usas en tus talleres anteriores. Incluye teoría con referencias, ejemplos, caso aplicado y guía de preguntas para el desarrollo del ejercicio. 1. Fundamentos Teóricos Definiciones por autores ● Elmasri y Navathe (2016): “La normalización es un proceso formal que busca organizar los datos de una base de datos relacional para reducir la redundancia y mejorar la integridad de los datos.” (Referencia: Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7th ed.). Pearson.) ● Silberschatz, Korth y Sudarshan (2020): “La normalización proporciona un conjunto de reglas basadas en dependencias funcionales que permiten diseñar esquemas de tablas sin redundancias innecesarias y con una estructura lógica consistente.” (Referencia: Silberschatz, A., Korth, H. F., & Sudarshan, S. (2020). Database System Concepts (7th ed.). McGraw-Hill.) ● Date (2004): “El objetivo de la normalización es garantizar que cada relación represente un solo concepto y que la información se almacene una sola vez, eliminando anomalías en inserciones, eliminaciones y actualizaciones.” (Referencia: Date, C. J. (2004). An Introduction to Database Systems (8th ed.). Addison-Wesley.) Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta Definición conceptual La normalización es una técnica de diseño lógico que busca organizar los datos de un Sistema de Bases de Datos Relacionales (SBDR) para evitar redundancias , preservar la integridad y facilitar el mantenimiento Cuando diseñamos una base de datos sin normalizar, corremos el riesgo de que una misma información aparezca duplicada en varias tablas, lo que genera inconsistencias. El proceso de normalización se basa en análisis de dependencias funcionales (relaciones entre atributos) y se aplica de forma iterativa , pasando por diferentes niveles o formas normales (1FN, 2FN, 3FN, BCNF, etc.), donde cada una mejora la estructura de la anterior. En otras palabras, la normalización transforma un modelo lógico cargado de redundancias en un modelo eficiente, sin pérdida de información ni anomalías. La normalización es un proceso sistemático del diseño lógico de bases de datos relacionales que busca organizar los datos de manera eficiente, eliminando redundancias y garantizando la integridad de la información. Su objetivo es estructurar las tablas y relaciones de tal forma que cada dato se almacene una sola vez , evitando inconsistencias y mejorando el rendimiento lógico del sistema. En términos simples, normalizar es pasar de un modelo de datos "caótico o redundante" a uno ordenado, coherente y consistente , aplicando reglas formales llamadas formas normales Las bases de datos relacionales (SBDR) se basan en el modelo propuesto por Edgar F. Codd (1970) , quien estableció que la información debía organizarse en relaciones (tablas) donde cada fila representa una tupla (registro) y cada columna un atributo (característica). Sin embargo, no basta con tener los datos en tablas; es necesario que dichas tablas estén bien estructuradas Aquí surge la necesidad de la normalización , que es una aplicación práctica de la teoría de dependencias funcionales y forma normal propuesta también por Codd y ampliada posteriormente por Boyce , Fagin , y otros autores. Conceptos clave relacionados Concepto Definición Redundancia Repetición innecesaria de datos dentro de una o varias tablas. Dependencia funcional Relación entre dos atributos cuando el valor de uno depende del valor de otro. Ejemplo: Cédula → Nombre Anomalía de inserción Problema que ocurre cuando no se puede insertar un dato sin incluir otro no relacionado. Anomalía de eliminación Se pierde información importante al eliminar un registro. Anomalía de actualización Se deben modificar múltiples registros para cambiar un único dato. Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta Clave primaria (PK) Atributo o conjunto de atributos que identifica de forma única cada registro. Clave foránea (FK) Atributo que referencia una clave primaria en otra tabla para mantener la integridad referencial. El problema de la redundancia Cuando una base de datos se diseña sin aplicar criterios de normalización, los mismos datos se repiten en múltiples lugares . Esto provoca: ● Desperdicio de espacio. ● Dificultad para mantener la coherencia. ● Riesgo de inconsistencias (un mismo cliente con nombres distintos en tablas diferentes). ● Lentitud en actualizaciones masivas. Por ejemplo: En un sistema de finanzas familiares, si el nombre de cada miembro se repite en cada registro de ingreso y gasto, cualquier cambio (como corregir una letra o apellido) debe hacerse en muchos lugares. Cuando una base de datos no está normalizada: ● Se repite información (redundancia). ● Aumenta el tamaño innecesario del almacenamiento. ● Surgen anomalías de actualización , como tener que modificar el mismo dato en múltiples lugares. ● Se generan anomalías de eliminación , donde al borrar un dato se pierde información relacionada. ● Es más difícil mantener la coherencia de los datos. La normalización resuelve este problema dividiendo las tablas complejas en entidades más simples , relacionadas entre sí mediante claves. Cada tabla representa una sola entidad o concepto (por ejemplo: Miembro , Ingreso , Gasto ), y los vínculos entre ellas preservan la coherencia. La estructura resultante: ● Reduce errores humanos. ● Asegura integridad referencial. Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta ● Facilita las consultas SQL y las actualizaciones. ● Hace que la base sea más adaptable ante cambios futuros. En general: ● Divide las tablas complejas en varias más pequeñas, manteniendo relaciones lógicas entre ellas. ● Elimina datos duplicados y dependencias no necesarias. ● Asegura que cada atributo dependa de la clave primaria y nada más. ● Preserva la integridad referencial mediante claves foráneas. ● Facilita las operaciones CRUD (crear, leer, actualizar, eliminar) sin inconsistencias. La normalización no es un acto único , sino un proceso gradual que pasa por niveles llamados formas normales (FN) Cada forma normal corrige las deficiencias de la anterior: 1. Primera Forma Normal (1FN) → Elimina grupos repetidos. 2. Segunda Forma Normal (2FN) → Elimina dependencias parciales. 3. Tercera Forma Normal (3FN) → Elimina dependencias transitivas. 4. BCNF (Forma Normal de Boyce-Codd) → Perfecciona la 3FN garantizando que todas las dependencias partan de claves. 5. 4FN y 5FN (opcional) → Eliminan dependencias multivaluadas y uniones redundantes (usadas en contextos avanzados). . Las formas normales en detalle Primera Forma Normal (1FN) Regla: Todos los atributos deben ser atómicos (no divisibles). No deben existir listas, grupos repetidos ni atributos multivalorados. Ejemplo (no normalizado): Miembro Ingresos Juan 1200000, 500000 Solución (1FN): Miembro Ingreso Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta Juan 1200000 Juan 500000 Segunda Forma Normal (2FN) Regla: Todos los atributos no clave deben depender de toda la clave primaria , no de una parte. Aplica cuando hay clave compuesta Ejemplo: idMiembro idIngreso NombreMiembro Monto Aquí “NombreMiembro” depende solo de idMiembro , no de la clave completa ( idMiembro + idIngreso ). Se separa: Tabla Miembro: (idMiembro, NombreMiembro) Tabla Ingreso: (idIngreso, idMiembro, Monto) Tercera Forma Normal (3FN) Regla: Ningún atributo no clave puede depender de otro atributo no clave (se eliminan dependencias transitivas). Ejemplo: idMiembro Ciudad Departamento 1 Cartagena Bolívar “Departamento” depende de “Ciudad”, no directamente de la clave. Se crea una tabla aparte: Tabla Ciudad: (idCiudad, nombreCiudad, departamento) Tabla Miembro: (idMiembro, idCiudad) Forma Normal de Boyce-Codd (BCNF) Regla: Para toda dependencia funcional X → Y, el conjunto X debe ser una clave candidata. Elimina casos especiales que 3FN no resuelve. Cuarta y Quinta Forma Normal (4FN y 5FN) Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta Se aplican en bases de datos complejas (como sistemas académicos o ERP), donde existen dependencias multivaluadas o redundancias de unión. En entornos empresariales comunes (como finanzas familiares, ventas, inventarios), la 3FN o BCNF son suficientes. Ventajas ● Reduce la redundancia. Elimina la redundancia y los datos duplicados. ● Evita anomalías de actualización, eliminación e inserción. ● Mejora la integridad referencial y consistencia de los datos. Reduce el riesgo de inconsistencias. ● Facilita las consultas y el mantenimiento. Facilita el mantenimiento y la modificación del esquema. ● Mejora la escalabilidad lógica del sistema. Aumenta la claridad del modelo lógico. Desventajas ● Aumenta el número de tablas y relaciones, lo que puede afectar el rendimiento en consultas complejas. ○ Puede aumentar la cantidad de tablas y relaciones, haciendo más complejas las consultas JOIN. ● Requiere mayor conocimiento teórico y planificación. ○ Requiere un nivel de abstracción mayor, lo que puede dificultar la comprensión inicial para estudiantes o usuarios finales. ● En sistemas analíticos o de reportes, puede no ser conveniente por la necesidad de desnormalización (agregación de datos). ○ En sistemas de análisis (BI o Data Warehouses), puede ser más eficiente desnormalizar para mejorar el rendimiento. La normalización no es solo una técnica mecánica , sino una disciplina de diseño lógico que busca modelar la realidad de manera coherente Así como en la vida real cada objeto tiene su propia identidad y atributos, en una base de datos cada tabla debe representar una sola entidad , sin mezclar conceptos. La calidad del modelo de datos determina directamente la calidad del sistema de información. Una base mal normalizada genera sistemas frágiles, costosos de mantener y propensos a errores. Por ello, dominar la normalización es un paso esencial para formar desarrolladores capaces de construir soluciones sólidas y confiables. I. Fundamentos del modelo relacional y la normalización 1. ¿Qué es una base de datos relacional (SBDR) y cuáles son sus elementos principales? 2. ¿Quién fue Edgar F. Codd y qué aportes realizó al modelo relacional? 3. ¿Qué problema buscaba resolver Codd con la introducción de las formas normales? 4. ¿Qué significa el término normalización dentro del diseño de bases de datos? Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta 5. ¿Por qué se considera que la normalización es una técnica formal dentro del diseño lógico de un SBDR? 6. ¿Qué relación existe entre el modelo relacional y la teoría de conjuntos o relaciones matemáticas? 7. ¿Qué es una relación (tabla), una tupla (registro) y un atributo (columna) en el modelo relacional? 8. ¿Qué se entiende por redundancia de datos y por qué es un problema? 9. ¿Qué son las anomalías de actualización, inserción y eliminación? 10. ¿Qué es una dependencia funcional y cuál es su papel en la normalización? 11. ¿Qué diferencia existe entre una dependencia funcional completa , parcial y transitiva ? 12. ¿Qué significa que un atributo sea atómico en una tabla? 13. ¿Qué son las claves primaria, foránea y candidata, y qué función cumple cada una? 14. ¿Qué se entiende por integridad referencial y cómo se garantiza en una base de datos relacional? 15. ¿Por qué la normalización mejora la integridad y consistencia de los datos? II. Comprensión del proceso de normalización 16. ¿Cuáles son los objetivos principales del proceso de normalización? 17. ¿Qué tipo de problemas se presentan en una base de datos sin normalizar? 18. ¿Cómo se identifican las dependencias funcionales dentro de una tabla? 19. ¿Por qué se considera que las dependencias funcionales son el punto de partida de la normalización? 20. ¿Cuáles son los pasos básicos para normalizar una base de datos desde un modelo no normalizado? 21. ¿Qué características debe cumplir una tabla para estar en Primera Forma Normal (1FN) ? 22. ¿Por qué se dice que la 1FN busca la atomicidad de los datos ? 23. ¿Qué características debe cumplir una tabla para estar en Segunda Forma Normal (2FN) ? 24. ¿Qué significa que un atributo dependa de toda la clave primaria y no de una parte de ella? 25. ¿Qué características debe cumplir una tabla para estar en Tercera Forma Normal (3FN) ? 26. ¿Qué diferencia existe entre eliminar una dependencia parcial y eliminar una dependencia transitiva? 27. ¿Qué condiciones adicionales establece la Forma Normal de Boyce-Codd (BCNF) respecto a la 3FN? 28. ¿Qué son las formas normales superiores (4FN y 5FN) y en qué contextos se aplican? Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta 29. ¿Por qué en la práctica la mayoría de los sistemas se normalizan hasta la 3FN o BCNF? 30. ¿Qué ventajas prácticas tiene aplicar normalización en el diseño de bases de datos? 31. ¿Qué desventajas o limitaciones puede tener un modelo excesivamente normalizado? 32. ¿Por qué la normalización es un proceso iterativo y no un estado absoluto? III. Aplicación de la normalización 33. ¿Cómo se transforma una tabla no normalizada a la 1FN? 34. ¿Qué transformaciones se deben realizar para eliminar dependencias parciales y alcanzar la 2FN? 35. ¿Qué pasos se siguen para eliminar dependencias transitivas y llegar a la 3FN? 36. ¿Cómo se representa formalmente una dependencia funcional (notación X → Y)? 37. ¿Qué criterios se deben aplicar para decidir cuándo dividir una tabla durante la normalización? 38. ¿Qué consecuencias puede tener mantener una dependencia parcial o transitiva sin eliminarla? 39. ¿Cómo se documentan los cambios estructurales producidos durante la normalización? 40. ¿Qué métodos pueden emplearse para verificar que un modelo cumple una determinada forma normal? 41. ¿Cómo se garantiza la integridad referencial tras la división de tablas durante el proceso de normalización? 42. ¿Qué herramientas o diagramas se pueden utilizar para representar gráficamente el proceso de normalización? 43. ¿Cómo se aplicaría la normalización en un sistema de control académico (estudiantes, cursos, matrículas)? 44. ¿Cómo se aplicarían las formas normales en una base de datos de ventas con clientes, productos y facturas? 45. ¿Cómo aplicarías la normalización en el Sistema de Gestión de Finanzas Familiares del caso de estudio? 46. ¿Qué cambios estructurales realizarías en una tabla que mezcla datos de ingresos, gastos y miembros? 47. ¿Cómo se identifica la clave compuesta y su impacto en la 2FN? 48. ¿Qué relación existe entre el proceso de normalización y el diseño del modelo relacional (MR)? 49. ¿Qué errores comunes cometen los diseñadores novatos al intentar normalizar una base de datos? 50. ¿Qué estrategias ayudan a mantener la claridad del modelo al aplicar las distintas formas normales? IV. Análisis, evaluación y reflexión crítica Actividad Unidad 3 - Protocolo individual Asignatura : Bases de datos 1 Programa : Ingeniería del software IES : Universidad de Cartagena Tutor : John Carlos Arrieta Arrieta 51. ¿Qué diferencias conceptuales y estructurales existen entre la 1FN, 2FN y 3FN? 52. ¿Por qué una tabla puede estar en 1FN pero no en 2FN? 53. ¿Cómo puede comprobarse empíricamente que una base de datos está normalizada correctamente? 54. ¿Qué sucede cuando se normaliza incorrectamente una tabla (por ejemplo, dividiendo atributos que dependen entre sí)? 55. ¿Qué impacto tiene la normalización sobre el rendimiento de las consultas SQL con joins múltiples? 56. ¿Qué criterios deben considerarse antes de decidir una desnormalización parcial por razones de rendimiento? 57. ¿Cómo afecta la normalización al mantenimiento y escalabilidad de un sistema de información? 58. ¿Por qué la normalización es esencial para el modelado conceptual, lógico y físico de una base de datos? 59. ¿Qué relación existe entre la normalización y la calidad del software en general? 60. ¿Cómo se equilibra el nivel de normalización con las necesidades de rendimiento y usabilidad? 61. ¿Qué riesgos implica mantener una base de datos desnormalizada en sistemas colaborativos o multiusuario? 62. ¿Qué beneficios de la normalización se evidencian al realizar auditorías o migraciones de datos? 63. ¿En qué medida el proceso de normalización contribuye a la reducción de costos de mantenimiento? 64. ¿Qué estrategias existen para enseñar y aplicar la normalización en contextos educativos o profesionales? 65. ¿Por qué la normalización puede considerarse una práctica de “higiene de datos”? 66. ¿Qué ejemplos del mundo real muestran las consecuencias de no aplicar la normalización correctamente? 67. ¿Cómo influye la normalización en la calidad de los reportes y estadísticas generadas por un sistema? 68. ¿Qué reflexiones personales puedes plantear sobre el valor de la normalización en tu desarrollo profesional? 69. ¿Qué recomendaciones harías a un equipo de desarrollo que diseña una base de datos sin aplicar normalización? 70. ¿Por qué dominar la normalización es fundamental para cualquier futuro ingeniero de software o analista de datos?