Ejercicio: Normalización de turnos médicos
Este ejemplo muestra cómo normalizar datos de una clínica donde los turnos incluyen información repetida
de pacientes, médicos y servicios médicos.
1. Tabla original (sin normalizar)
| TurnoID | Fecha | Paciente | DNI |
Médico | Especialidad | Servicios | Costos |
| 1 | 2024-03-01 | Juan Pérez | 40111222 |
Dr. Gómez | Cardiología |
ECG, Consulta | 3000, 8000 |
| 2 | 2024-03-02 | Ana Torres | 38999888 |
Dr. López | Dermatología |
Biopsia | 15000 |
| 3 | 2024-03-01 | Juan Pérez | 40111222 |
Dr. Gómez | Cardiología |
Consulta | 8000 |
Problemas detectados
- Múltiples servicios por turno → datos no atómicos.
- Paciente y médico se repiten.
- Costos no están vinculados a servicios de forma correcta.
- Información redundante de especialidades.
2. Primera Forma Normal (1FN)
| TurnoID | Fecha | Paciente | DNI |
Médico | Especialidad | Servicio | Costo |
| 1 | 2024-03-01 | Juan Pérez | 40111222 | Dr. Gómez | Cardiología | ECG | 3000 |
| 1 | 2024-03-01 | Juan Pérez | 40111222 | Dr. Gómez | Cardiología | Consulta | 8000 |
| 2 | 2024-03-02 | Ana Torres | 38999888 | Dr. López | Dermatología | Biopsia | 15000 |
| 3 | 2024-03-01 | Juan Pérez | 40111222 | Dr. Gómez | Cardiología | Consulta | 8000 |
Problemas restantes
- Paciente repetido.
- Médico repetido.
- Especialidad depende del médico → dependencia transitiva futura.
3. Segunda Forma Normal (2FN)
Tabla Turnos
| TurnoID | Fecha | PacienteID | MedicoID |
| 1 | 2024-03-01 | 1 | 1 |
| 2 | 2024-03-02 | 2 | 2 |
| 3 | 2024-03-01 | 1 | 1 |
Pacientes
| PacienteID | Nombre | DNI |
| 1 | Juan Pérez | 40111222 |
| 2 | Ana Torres | 38999888 |
Médicos
| MedicoID | Nombre | Especialidad |
| 1 | Dr. Gómez | Cardiología |
| 2 | Dr. López | Dermatología |
DetalleTurnos
| TurnoID | Servicio | Costo |
| 1 | ECG | 3000 |
| 1 | Consulta | 8000 |
| 2 | Biopsia | 15000 |
| 3 | Consulta | 8000 |
4. Tercera Forma Normal (3FN)
Servicios
| ServicioID | Nombre | Costo |
| 1 | ECG | 3000 |
| 2 | Consulta | 8000 |
| 3 | Biopsia | 15000 |
DetalleTurnos Actualizado
| TurnoID | ServicioID |
| 1 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 2 |
5. Modelo final
Tablas Finales
- Turnos: TurnoID, Fecha, PacienteID, MedicoID
- Pacientes: PacienteID, Nombre, DNI
- Médicos: MedicoID, Nombre, Especialidad
- Servicios: ServicioID, Nombre, Costo
- DetalleTurnos: TurnoID, ServicioID
Beneficios
- Se eliminan duplicaciones de pacientes y médicos.
- La información de servicios está centralizada.
- Modelo totalmente escalable y mantenible.
- Ideal para reportes, facturación y analítica.