Modelado logico relacional de bases de datos
Enunciado:
Un supermercado desea organizar su inventario y registrar las compras de sus clientes. Actualmente, tiene una tabla que registra las compras en el siguiente formato:
| ID_Compra | Cliente | Teléfono | Productos | Precios | Cantidades | Fecha_Compra |
|---|---|---|---|---|---|---|
| 1 | Ana Pérez | 777-777-777 | Manzanas, Naranjas | 1.5, 2.0 | 2, 3 | 2024-11-20 |
| 2 | Pedro López | 888-888-888 | Plátanos, Peras, Melón | 1.0, 1.2, 3.5 | 4, 2, 1 | 2024-11-21 |
| 3 | Marta Sánchez | 999-999-999 | Uvas | 2.5 | 1 | 2024-11-22 |
Problemas detectados:
- Valores multivalorados o repetidos: Los productos, precios y cantidades están representados como listas en una sola celda.
- Dificultad para realizar consultas: No es posible consultar cada producto, precio o cantidad individualmente porque están combinados en un solo campo.
- No cumple la 1FN: Cada celda debe contener un único valor atómico (no listas o conjuntos).
Tareas:
- Identifica los valores multivalorados o no atómicos.
- Reestructura la tabla para cumplir con la 1FN.
Resolución:
Tabla inicial (no cumple 1FN):
| ID_Compra | Cliente | Teléfono | Productos | Precios | Cantidades | Fecha_Compra |
|---|---|---|---|---|---|---|
| 1 | Ana Pérez | 777-777-777 | Manzanas, Naranjas | 1.5, 2.0 | 2, 3 | 2024-11-20 |
| 2 | Pedro López | 888-888-888 | Plátanos, Peras, Melón | 1.0, 1.2, 3.5 | 4, 2, 1 | 2024-11-21 |
| 3 | Marta Sánchez | 999-999-999 | Uvas | 2.5 | 1 | 2024-11-22 |
Paso 1: Identificar los valores no atómicos
- Los campos Productos, Precios y Cantidades contienen listas de valores, lo que rompe la 1FN.
- Estos valores deben ser divididos en filas individuales.
Paso 2: Crear la tabla normalizada
Tabla normalizada (cumple 1FN):
| ID_Compra | Cliente | Teléfono | Producto | Precio | Cantidad | Fecha_Compra |
|---|---|---|---|---|---|---|
| 1 | Ana Pérez | 777-777-777 | Manzanas | 1.5 | 2 | 2024-11-20 |
| 1 | Ana Pérez | 777-777-777 | Naranjas | 2.0 | 3 | 2024-11-20 |
| 2 | Pedro López | 888-888-888 | Plátanos | 1.0 | 4 | 2024-11-21 |
| 2 | Pedro López | 888-888-888 | Peras | 1.2 | 2 | 2024-11-21 |
| 2 | Pedro López | 888-888-888 | Melón | 3.5 | 1 | 2024-11-21 |
| 3 | Marta Sánchez | 999-999-999 | Uvas | 2.5 | 1 | 2024-11-22 |
Explicación del resultado:
- Celdas atómicas: Cada celda contiene un único valor, cumpliendo el requisito de la 1FN.
- Repetición controlada: Los datos como el cliente y la fecha de compra se repiten por cada producto en una compra, pero esto es aceptable en la 1FN.
- Facilidad de consulta: Ahora se pueden realizar consultas por productos, precios, clientes o fechas de manera más sencilla.
Preguntas para reflexión o práctica:
- ¿Qué clave primaria podrías usar en esta tabla normalizada?
Planteamiento del problema
Una empresa tiene la siguiente tabla para registrar información sobre sus empleados y sus habilidades. Actualmente, la tabla no cumple con la Primera Forma Normal (1FN) porque contiene valores no atómicos:
ID_Empleado Nombre Habilidades Departamento 1 Juan Pérez Excel, SQL, Power BI Finanzas 2 María Gómez Java, Spring Boot IT 3 Luis García Python, Pandas, NumPy Data Science Loading...
Instrucciones
- Analiza la tabla proporcionada y entiende por qué no está en 1FN.
- Genera el diagrama relacional de la tabla normalizada.
Loading...