Introducción a las bases de datos relacionales - Normalización (Periodo III - Actividad I)

introducción a las bases de datos relacionales

Taller: Normalización de Bases de Datos

Tema: Introducción a las bases de datos relacionales
Subtema: Normalización de bases de datos
Dirigido a: Estudiantes de séptimo de bachillerato
Duración: 2 clases

¿Qué es la Normalización de Bases de Datos?

La normalización es el proceso de organizar los datos de una base de datos para eliminar información repetida (redundante) y asegurar que los datos se almacenen de manera eficiente. Es como organizar tu cuarto: en lugar de tener todo revuelto en un solo lugar, separas las cosas en cajones específicos donde cada cosa tiene su lugar.

Las Formas Normales Más Importantes

Primera Forma Normal (1FN): Cada celda de la tabla debe contener un solo valor, no listas o múltiples datos.

Segunda Forma Normal (2FN): Elimina la información que se repite innecesariamente en diferentes filas.

Tercera Forma Normal (3FN): Separa los datos que dependen de otros datos que no son la clave principal.

Normalización de Bases de datos [tomado de bookdown.org]

Ejemplo 1: Tienda de Libros

Tabla Original (No normalizada):

ID_Venta Cliente Teléfono Libro Autor Precio
001 Juan Pérez 300-1234 Cien años de soledad García Márquez $45,000
002 María López 310-5678 El Principito Saint-Exupéry $25,000
003 Juan Pérez 300-1234 Don Quijote Cervantes $35,000

Problemas: El teléfono de Juan Pérez se repite, desperdiciando espacio.

Después de la normalización:

Tabla Clientes:

ID_Cliente Nombre Teléfono
C001 Juan Pérez 300-1234
C002 María López 310-5678

Tabla Libros:

ID_Libro Título Autor Precio
L001 Cien años de soledad García Márquez $45,000
L002 El Principito Saint-Exupéry $25,000
L003 Don Quijote Cervantes $35,000

Tabla Ventas:

ID_Venta ID_Cliente ID_Libro
001 C001 L001
002 C002 L002
003 C001 L003

Ejemplo 2: Colegio

Tabla Original (No normalizada):

ID_Inscripción Estudiante Grado Materia Profesor Salón
001 Ana García 7A Matemáticas Prof. López 201
002 Ana García 7A Ciencias Prof. Ruiz 105
003 Carlos Mora 7B Matemáticas Prof. López 201

Después de la normalización:

Tabla Estudiantes:

ID_Estudiante Nombre Grado
E001 Ana García 7A
E002 Carlos Mora 7B

Tabla Materias:

ID_Materia Nombre Profesor Salón
M001 Matemáticas Prof. López 201
M002 Ciencias Prof. Ruiz 105

Tabla Inscripciones:

ID_Inscripción ID_Estudiante ID_Materia
001 E001 M001
002 E001 M002
003 E002 M001



Before/After

¿Por qué es Útil la Normalización?

Ventajas:

  1. Elimina redundancia: No se repite la misma información
  2. Ahorra espacio: Menos datos duplicados = menos memoria usada
  3. Facilita actualizaciones: Si cambias el teléfono de un cliente, solo lo cambias en un lugar
  4. Evita inconsistencias: No hay riesgo de tener datos contradictorios
  5. Mejor organización: Los datos están estructurados lógicamente

Normalización de Bases de datos - Infografía [tomado de studocu.com]


Actividad a Desarrollar

Actividad A: Normalización (Dividir tablas grandes)

Ejercicio 1: Normaliza la tabla de pedidos dividiéndola en tres tablas: Clientes, Productos y Pedidos.

Tabla Original (Pedidos - No normalizada):

ID_Pedido Fecha_Pedido ID_Cliente Nombre_Cliente Ciudad_Cliente ID_Producto Nombre_Producto Precio_Unitario Cantidad
101 20-08-2025 CLI-01 Ana Pérez Medellín PROD-A4 Portátil 2,500,000 1
102 20-08-2025 CLI-02 Carlos Ramírez Bogotá PROD-B1 Teclado 350,000 1
103 21-08-2025 CLI-03 Sofía Gómez Cali PROD-C0 Monitor 1,800,000 1
104 21-08-2025 CLI-01 Ana Pérez Medellín PROD-D0 Mouse 120,000 1
105 22-08-2025 CLI-04 Luis Martínez Barranquilla PROD-E3 Silla Gamer 950,000 1
106 22-08-2025 CLI-02 Carlos Ramírez Bogotá PROD-A4 Portátil 2,500,000 1
107 23-08-2025 CLI-05 Laura Díaz Bogotá PROD-F1 Audífonos 450,000 2
108 23-08-2025 CLI-03 Sofía Gómez Cali PROD-G2 Cámara Web 280,000 1
109 24-08-2025 CLI-01 Ana Pérez Medellín PROD-H0 Disco Externo 320,000 1
110 24-08-2025 CLI-02 Carlos Ramírez Bogotá PROD-B1 Teclado 350,000 2

Crea estas tres tablas normalizadas:

Tabla Clientes:

ID_Cliente Nombre_Cliente Ciudad_Cliente
CLI-01 Ana Pérez Medellín

Tabla Productos:

ID_Producto Nombre_Producto Precio_Unitario
PROD-A4 Portátil 2,500,000

Tabla Pedidos:

ID_Pedido Fecha_Pedido ID_Cliente ID_Producto Cantidad
101 20-08-2025 CLI-01 PROD-A4 1

Ejercicio 2: Normaliza la tabla de reservas dividiéndola en las tablas: Clientes, Destinos, Pasajeros, Viajes y Reservas.

Tabla Original (Reservas - No normalizada):

id_reserva fecha_reserva nombre_cliente apellido_cliente email_cliente destino_viaje pais_destino precio_total nombre_pasajero1 apellido_pasajero1
1 2025-10-05 Carlos Sánchez c.sanchez@email.com Playa del Carmen México 1500 Carlos Sánchez
2 2025-10-06 Ana Gómez a.gomez@email.com Roma Italia 1200 Ana Gómez
3 2025-10-06 Carlos Sánchez c.sanchez@email.com París Francia 1800 Carlos Sánchez
4 2025-10-07 Luis Pérez l.perez@email.com Playa del Carmen México 1500 Luis Pérez
5 2025-10-08 Ana Gómez a.gomez@email.com Roma Italia 1200 Ana Gómez
6 2025-10-09 Carlos Sánchez c.sanchez@email.com Playa del Carmen México 1500 Carlos Sánchez
7 2025-10-10 Ana Gómez a.gomez@email.com París Francia 1800 Ana Gómez
8 2025-10-11 Pedro Torres p.torres@email.com Cancún México 1400 Pedro Torres
9 2025-10-12 Luis Pérez l.perez@email.com Roma Italia 1200 Luis Pérez
10 2025-10-13 Pedro Torres p.torres@email.com París Francia 1800 Pedro Torres

Crea estas cinco tablas normalizadas:

Tabla Clientes:

id_cliente nombre apellido email
1 Carlos Sánchez c.sanchez@email.com

Tabla Destinos:

id_destino nombre_destino pais
1 Playa del Carmen México

Tabla Pasajeros:

id_pasajero nombre apellido
1 Carlos Sánchez

Tabla Viajes:

id_viaje id_destino precio fecha_reserva
1 1 1500 2025-10-05

Tabla Reservas:

id_reserva id_cliente id_viaje id_pasajero
1 1 1 1

Actividad B: Integración (Unir tablas pequeñas)

Ejercicio 3: A partir de las tablas Autores, Libros, Préstamos y Usuarios, crea la tabla Vista_Prestamos_Completos.

Tablas Base:

Tabla Autores:

ID_Autor Nombre_Autor Nacionalidad
1 Mario Vargas Llosa Peruana
2 Gabriel García Márquez Colombiana
3 Octavio Paz Mexicana
4 Jorge Luis Borges Argentina
5 Isabel Allende Chilena

Tabla Libros:

ID_Libro Titulo ID_Autor Año_Publicacion
101 Cien años de soledad 2 1967
102 La ciudad y los perros 1 1963
103 La casa de los espíritus 5 1982
104 El laberinto de la soledad 3 1950
105 Ficciones 4 1944

Tabla Usuarios:

ID_Usuario Nombre_Usuario
22 Ana
23 Carlos
24 María
25 Luis
26 Sofía

Tabla Prestamos:

ID_Prestamo ID_Libro ID_Usuario Fecha_Prestamo
5001 101 22 15-09-2025
5002 105 26 16-09-2025
5003 102 24 17-09-2025
5004 104 23 18-09-2025
5005 103 22 19-09-2025

Crea esta tabla integrada:

Tabla Vista_Prestamos_Completos:

ID_Prestamo Nombre_Usuario Titulo_Libro Nombre_Autor Fecha_Prestamo
5001 Ana Cien años de soledad Gabriel García Márquez 15-09-2025

Ejercicio 4: Usando las tablas Estudiantes, Profesores, Cursos e Inscripciones, forma la tabla Reporte_Inscripciones.

Tablas Base:

Tabla Estudiantes:

ID_Estudiante Nombre_Estudiante
E001 Ana García
E002 Carlos Mora
E003 María López
E004 Luis Pérez
E005 Sofía Ruiz

Tabla Profesores:

ID_Profesor Nombre_Profesor
P001 Prof. Martínez
P002 Prof. González
P003 Prof. Rodríguez
P004 Prof. Hernández
P005 Prof. López

Tabla Cursos:

ID_Curso Nombre_Curso ID_Profesor
C001 Matemáticas P004
C002 Ciencias P003
C003 Español P003
C004 Inglés P002
C005 Historia P001

Tabla Inscripciones:

ID_Inscripcion ID_Estudiante ID_Curso
I001 E004 C005
I002 E001 C003
I003 E005 C003
I004 E002 C002
I005 E003 C001

Crea esta tabla integrada:

Tabla Reporte_Inscripciones:

ID_Inscripcion Nombre_Estudiante Nombre_Curso Nombre_Profesor
I001 Luis Pérez Historia Prof. Martínez

Nota: Para la sustentación, cada pareja explicará su proceso de resolución y justificará sus decisiones.

Ejercicio 5: Sistema de Plataforma de Streaming de Películas.

Esta tarea consiste en integrar múltiples tablas normalizadas en dos etapas:

  1. Etapa Intermedia: Integrar pares de tablas relacionadas
  2. Etapa Final: Integrar las tablas intermedias en una tabla maestra

Clave del éxito: Presta especial atención a los nombres de las columnas en los encabezados de las tablas integradas, ya que estos revelan qué información se debe extraer de cada tabla base.

Tablas Base:

Tabla peliculas:

pelicula_id titulo año_lanzamiento duracion_min director_id estudio_id genero_id
1 El Laberinto del Fauno 2006 118 1 1 1
2 Pulp Fiction 1994 154 2 2 2
3 El Resplandor 1980 146 3 3 3
4 Parasite 2019 132 4 4 1
5 Mad Max: Fury Road 2015 120 5 5 4
6 La Forma del Agua 2017 123 1 6 1
7 Django Unchained 2012 165 2 7 8
8 2001: Odisea del Espacio 1968 149 3 8 5
9 Memories of Murder 2003 131 4 9 6
10 Interstellar 2014 169 6 7 5

Tabla directores:

director_id nombre_director nacionalidad año_nacimiento especialidad_genero premios_oscar
1 Guillermo del Toro Mexicana 1964 Fantasia 3
2 Quentin Tarantino Estadounidense 1963 Drama 2
3 Stanley Kubrick Estadounidense 1928 Terror 1
4 Bong Joon-ho Surcoreana 1969 Drama 4
5 George Miller Australiana 1945 Accion 0
6 Christopher Nolan Britanica 1970 Ciencia Ficcion 1

Tabla estudios:

estudio_id nombre_estudio pais_origen año_fundacion presupuesto_promedio tipo_distribucion
1 Estudios del Toro Mexico 2001 15000000 Internacional
2 Miramax Estados Unidos 1979 25000000 Global
3 Warner Bros Estados Unidos 1923 50000000 Global
4 CJ Entertainment Corea del Sur 1995 8000000 Regional
5 Village Roadshow Australia 1986 35000000 Internacional
6 Fox Searchlight Estados Unidos 1994 20000000 Global
7 The Weinstein Company Estados Unidos 2005 30000000 Global
8 MGM Estados Unidos 1924 40000000 Global
9 Sidus Pictures Corea del Sur 1999 5000000 Regional

Tabla generos:

genero_id nombre_genero popularidad_score target_edad origen_historico
1 Fantasia 85 13+ Literatura Medieval
2 Drama 92 16+ Teatro Griego
3 Terror 78 18+ Folclore Gotico
4 Accion 88 13+ Epopeyas Heroicas
5 Ciencia Ficcion 82 12+ Literatura Visionaria
6 Thriller 86 16+ Novela Negra
8 Western 65 15+ Frontera Americana

Tabla actores:

actor_id nombre_actor nacionalidad_actor año_nacimiento_actor especializacion cache_promedio
1 Ivana Baquero Española 1994 Drama Infantil 500000
2 John Travolta Estadounidense 1954 Comedia/Drama 8000000
3 Jack Nicholson Estadounidense 1937 Terror/Drama 12000000
4 Song Kang-ho Surcoreana 1967 Drama Social 2000000
5 Tom Hardy Britanica 1977 Accion 7000000
6 Sally Hawkins Britanica 1976 Drama/Romance 3000000
7 Jamie Foxx Estadounidense 1967 Drama/Comedia 6000000
8 Keir Dullea Estadounidense 1936 Ciencia Ficcion 1000000
9 Matthew McConaughey Estadounidense 1969 Drama/Ciencia Ficcion 9000000
10 Leonardo DiCaprio Estadounidense 1974 Drama 25000000

Tabla reparto:

reparto_id pelicula_id actor_id tipo_papel orden_creditos
1 1 1 Protagonista 1
2 2 2 Protagonista 1
3 3 3 Protagonista 1
4 4 4 Protagonista 1
5 5 5 Protagonista 1
6 6 6 Protagonista 1
7 7 7 Protagonista 1
8 8 8 Protagonista 1
9 9 4 Protagonista 1
10 10 9 Protagonista 1
11 2 10 Secundario 2
12 5 1 Secundario 3

Tabla criticas:

critica_id pelicula_id plataforma_critica puntuacion fecha_critica critico_especializado
1 1 Rotten Tomatoes 95 2006-10-11 SI
2 2 IMDB 89 1994-10-14 NO
3 3 Metacritic 87 1980-05-23 SI
4 4 Rotten Tomatoes 99 2019-05-30 SI
5 5 IMDB 81 2015-05-15 NO
6 6 Metacritic 92 2017-12-01 SI
7 7 Rotten Tomatoes 87 2012-12-25 SI
8 8 IMDB 83 1968-04-03 NO
9 9 Metacritic 90 2003-05-02 SI
10 10 Rotten Tomatoes 72 2014-11-07 SI

EJERCICIOS DE INTEGRACIÓN

ETAPA INTERMEDIA - Integraciones 2 a 2 con lógica de valor agregado:

Ejercicio 1: Tabla “peliculas_enriquecidas”

Lógica: Las películas necesitan información de sus directores para entender mejor su contexto artístico.
Integra peliculas + directores (la película se enriquece con datos del director)

pelicula_id titulo año_lanzamiento duracion_min estudio_id genero_id nombre_director nacionalidad_director especialidad_genero premios_oscar
1 El Laberinto del Fauno 2006 118 1 1 Guillermo del Toro Mexicana Fantasia 3

Por qué esta integración: Enriquece cada película con el perfil artístico de su director.

Ejercicio 2: Tabla “reparto_protagonistas”

Lógica: Necesitamos identificar quiénes son los protagonistas de cada película con su información completa.
Integra actores + reparto (solo protagonistas: tipo_papel = ‘Protagonista’)

pelicula_id nombre_actor_principal nacionalidad_actor año_nacimiento_actor especializacion_actor cache_promedio tipo_papel
1 Ivana Baquero Española 1994 Drama Infantil 500000 Protagonista

Por qué esta integración: Identifica los actores protagonistas con su información personal y profesional.

Ejercicio 3: Tabla “peliculas_con_casting”

Lógica: Las películas enriquecidas (con directores) necesitan información de sus protagonistas.
Integra peliculas_enriquecidas + reparto_protagonistas (usando pelicula_id)

pelicula_id titulo año_lanzamiento duracion_min estudio_id genero_id nombre_director especialidad_genero premios_oscar nombre_actor_principal nacionalidad_actor cache_promedio
1 El Laberinto del Fauno 2006 118 1 1 Guillermo del Toro Fantasia 3 Ivana Baquero Española 500000

Por qué esta integración: Combina información creativa (director) con información de casting (protagonista).
IMPORTANTE: Mantenemos estudio_id y genero_id para la siguiente integración.

ETAPA FINAL:

Ejercicio 4: Tabla “catalogo_completo_streaming” (Tabla Final)

Lógica: Las películas con casting necesitan información del estudio y género para completar el catálogo.
Integra peliculas_con_casting + estudios + generos (usando estudio_id y genero_id)

pelicula_id titulo año_lanzamiento duracion_min nombre_director nacionalidad_director especialidad_genero_director premios_oscar nombre_actor_principal nacionalidad_actor cache_promedio nombre_estudio pais_origen presupuesto_promedio nombre_genero popularidad_score target_edad
1 El Laberinto del Fauno 2006 118 Guillermo del Toro Mexicana Fantasia 3 Ivana Baquero Española 500000 Estudios del Toro Mexico 15000000 Fantasia 85 13+

Por qué esta integración: Completa el catálogo con información integral de cada película incluyendo:

  • Información básica: título, año, duración
  • Equipo creativo: director con su perfil completo
  • Casting principal: actor protagonista con su información
  • Contexto de producción: estudio y género con sus características

Resultado final: 10 filas (una por cada película) con información completa e integrada para análisis del catálogo de streaming.


Rúbrica de Evaluación

Criterio Excelente (5.0) Sobresaliente (4.5) Aceptable (4.0) Básico (3.5) Insuficiente (3.0)
Comprensión conceptual Explica perfectamente qué es normalización y sus ventajas Explica bien la normalización con ejemplos claros Entiende la normalización pero con algunas dudas Comprensión básica del concepto No comprende el concepto
Aplicación práctica Resuelve todos los ejercicios correctamente Resuelve la mayoría con pequeños errores Resuelve la mitad correctamente Resuelve algunos con ayuda No logra resolver los ejercicios
Trabajo en equipo Ambos participan activamente y se complementan Buena colaboración con participación equilibrada Trabajan juntos pero uno participa más Participación desigual pero funcional No hay trabajo colaborativo
Sustentación Explica claramente todo el proceso y justifica decisiones Explica bien con justificaciones apropiadas Explica lo básico correctamente Explica con dificultad pero entiende No puede explicar el trabajo
Presentación Organizado, limpio y completo Bien organizado con pequeños detalles Organización aceptable Desorganizado pero completo Incompleto y desorganizado

Recursos Complementarios

  • Video: “Normalización de Bases de Datos en 10 minutos” - Canal EduTech Colombia
  • Artículo: “Formas Normales Explicadas Fácilmente” - TecnoAprender.com
  • Herramienta práctica: MySQL Workbench (versión educativa gratuita)

Tiempo estimado de trabajo: 90 minutos por clase
Modalidad: Trabajo en parejas con sustentación individual

Comments

Popular posts from this blog

Periodo II - Actividad II - (Powtoon) - Parte II

Modelo entidad-relación y diagrama entidad-relación (Periodo III - Actividad II)

Periodo II - Actividad I - (Powtoon) - Parte I