Desarrollador de Bases de Datos y SQL: pregunta de entrevista
¿Cuándo normalizas o desnormalizas datos?
Normaliza datos transaccionales para evitar anomalías y mantener una fuente de verdad; desnormaliza deliberadamente por rendimiento medido o analítica, con propietario y sincronización fiable.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
La normalización elimina la redundancia para que cada hecho se guarde una vez: la dirección de un cliente vive en una fila, y cambiarla no puede dejar una copia obsoleta en otro sitio. Es el valor por defecto correcto para datos transaccionales porque evita anomalías de actualización y mantiene los invariantes aplicables con restricciones. La desnormalización copia o precalcula datos para abaratar lecturas concretas, y es un intercambio deliberado: cada copia necesita dueño, ruta de sincronización y tolerancia al retraso. Pertenece a esquemas de informes, cachés y modelos de lectura, o a una ruta caliente donde un coste de join medido lo justifica, nunca como forma inicial de la fuente de verdad.
Ejemplo
Un sistema de pedidos guarda los datos del cliente una vez y los une al leer; un warehouse de informes mantiene una tabla de pedidos desnormalizada con nombre y segmento del cliente copiados, reconstruida cada noche desde la fuente normalizada. Cuando el join de cinco tablas de la página de checkout midió 80 ms, se añadió un resumen de pedido materializado con total mantenido por trigger solo para esa página, documentado como dato derivado con su regla de refresco.
Errores frecuentes
- Desnormalizar el esquema transaccional desde el principio por un rendimiento imaginado.
- Copiar un campo en tres tablas sin proceso que las mantenga sincronizadas.
- Normalizar un esquema de informes, de modo que cada panel necesita un join de doce tablas.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.