(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

DP-600: implementar tablas de referencia/desnormalizadas en modelos semánticos

João Barros 28 de October de 2026 5 min de lectura

Voy a explicar cómo implementar tablas de referencia desnormalizadas (lookup/denormalized reference tables) en un modelo semántico Power BI/Fabric. Esta habilidad es importante para el examen DP-600 porque demuestra capacidad para optimizar modelos y, en la práctica, reduce la complejidad de las consultas y mejora el rendimiento de los informes.

Qué necesitas saber

Una tabla de referencia desnormalizada reúne información que, en fuentes operacionales, está repartida por varias tablas relacionadas. En el contexto de modelos semánticos (import mode o DirectQuery), desnormalizar algunas entidades puede:

  • Reducir el número de joins en runtime;
  • Simplificar el modelo para usuarios finales y para medidas DAX;
  • Mejorar el rendimiento de los informes al reducir cardinalidad y travesías de relaciones.

Ejemplo sencillo: en lugar de enlazar una tabla fact_vendas con una tabla cliente y otra tabla morada mediante claves, puedes construir una tabla cliente_desnormalizada que incluya cliente_id, nome_cliente, cidade, país. Así, los informes que solo necesitan ciudad y país consultan la tabla desnormalizada directamente, sin múltiples joins.

Cómo funciona (paso a paso)

Voy a explicar un flujo práctico para crear e integrar una tabla de referencia desnormalizada en Fabric/Power BI Desktop:

  1. Identificar candidatos para la desnormalización:

    • Busca queries o informes con muchas joins o filtros sobre atributos repartidos.
    • Prioriza entidades con alta cardinalidad o joins que aparecen en páginas críticas de informes.
  2. Elegir la granularidad y los atributos:

    Incluye solo los campos necesarios para informes y medidas. Evita campos volátiles que cambian con frecuencia (eso aumenta el mantenimiento).

  3. Construir la tabla de referencia en la capa correcta:

    Es preferible construirla en el proceso ETL/ELT (Synapse, Data Factory, Power Query) antes de cargarla en el modelo. Sin embargo, puede hacerse en Power Query si el volumen es pequeño.

  4. Ejemplo en Power Query (Power BI Desktop):

    let
      Clientes = Sql.Database("servidor", "db"){[Schema="dbo",Item="Clientes"]}[Data],   Moradas = Sql.Database("servidor", "db"){[Schema="dbo",Item="Moradas"]}[Data],   Merge = Table.NestedJoin(Clientes, {"cliente_id"}, Moradas, {"cliente_id"}, "Morada", JoinKind.LeftOuter),   Expanded = Table.ExpandRecordColumn(Merge, "Morada", {"cidade","pais"}, {"cidade","pais"}),   SelectCols = Table.SelectColumns(Expanded, {"cliente_id","nome_cliente","cidade","pais"}) in   SelectCols

    Este script realiza una unión entre Clientes y Moradas y expande solo las columnas necesarias, creando una tabla desnormalizada.

  5. Cargar al modelo y crear relaciones:

    Sustituye relaciones múltiples entre la fact y varias dimensiones por una relación única entre la fact y la tabla desnormalizada. Mantén relaciones de 1 a muchos con cardinalidad correcta y dirección de filtrado adecuada.

  6. Actualizar medidas y evitar ambigüedad:

    Revisa medidas DAX que usaban las tablas originales; ajusta nombres de columnas si es necesario. Evita columnas duplicadas con el mismo significado.

  7. Documentar y gestionar actualizaciones:

    Registra la decisión de desnormalización y define un proceso de actualización (ETL/Refresh incremental) para mantener los datos consistentes.

En la práctica — consejos y buenas prácticas

Algunas orientaciones prácticas al implementar estas tablas:

  • No desnormalizar todo: la mejora de rendimiento tiene un coste de mantenimiento y mayor tamaño del dataset.
  • Para DirectQuery, evita desnormalización que cree filas agregadas muy grandes; puede perjudicar la ejecución remota.
  • Usa columnas de clave natural o surrogate keys según el patrón de tu entorno; mantienen unicidad e integridad.
  • Si la fuente se actualiza con frecuencia, considera crear la tabla desnormalizada en el Data Warehouse/OneLake para centralizar la lógica y compartirla con otros equipos.

Errores comunes

Algunas trampas típicas al desnormalizar:

  • Desnormalizar campos volátiles: incluir atributos que cambian frecuentemente (ej.: estado civil) implica una gran sobrecarga de mantenimiento.
  • Duplicar sin gestionar claves: crear duplicación de valores sin clave única puede llevar a conteos y sumas incorrectas en las medidas.
  • Desnormalizar indiscriminadamente para reducir cardinalidad: a veces la cardinalidad aumenta (ej.: unir tablas con many-to-many inadvertidos) y degrada el rendimiento.

Cómo practicar

Para practicar esta habilidad de forma segura y alineada con la certificación:

  • Haz los laboratorios del practice assessment OFICIAL de Microsoft (gratuitos) para DP-600 — se centran en las skills measured y son el recurso recomendado para entrenamiento práctico.
  • Consulta la study guide oficial de Microsoft (gratuita) para DP-600 para ver el contexto de las skills measured y ejercicios sugeridos.
  • En un entorno de desarrollo (Power BI Desktop, Fabric), crea un pequeño dataset con fact_vendas, clientes y moradas e implementa la tabla desnormalizada usando Power Query o ELT; mide la diferencia de tiempo de refresh y de renderizado de páginas antes/después.

En resumen

  • Las tablas de referencia desnormalizadas reducen joins y simplifican el modelo, mejorando la experiencia del usuario.
  • La decisión de desnormalizar debe equilibrar rendimiento, mantenimiento y frecuencia de actualización de los datos.
  • Construye estas tablas preferentemente en la capa ETL/ELT y documenta el proceso para garantizar consistencia.
  • Practica con los recursos oficiales: el Practice Assessment y la study guide de Microsoft son gratuitos y recomendados para la preparación del DP-600.