Ejemplo y ejercicio 1: 1FN
1. 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 |
Ampliar
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 |
2. 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.
3. 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 |
Ampliar
4. 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.
5. Preguntas para reflexión o práctica: #
- ¿Qué clave primaria podrías usar en esta tabla normalizada?