Programa Power BI para SunFruits Exports · Módulo 1 · Día 3
Sesión 3 Modelado: esquema estrella
Hechos y dimensiones, relaciones, cardinalidad y tabla calendario
Bloque A · Esquema estrellaBloque B · Relaciones y calendario
2 horas · 2 bloques de 45 min · nivel intermedio–avanzado
Mapa de la sesión
🅰 Bloque A — 45 min
Esquema estrella
Por qué modelar (tabla plana vs modelo)
Hechos vs Dimensiones
El esquema estrella y la granularidad
Normalización vs desnormalización
El modelo objetivo de SunFruits
🅱 Bloque B — 45 min
Relaciones y calendario
Crear relaciones y cardinalidad
Dirección del filtro
Relaciones activas/inactivas y USERELATIONSHIP
Tabla Calendario con DAX
Marcar como tabla de fechas
Partimos de la consulta Ventas y las dimensiones de la Sesión 2.
Objetivos de aprendizaje
Al terminar la sesión vas a poder…
Diseñar
Clasificar tus tablas en hechos y dimensiones y armar un esquema estrella.
Relacionar
Crear relaciones con la cardinalidad y dirección de filtro correctas.
Fechar
Construir y marcar una tabla Calendario para análisis temporal.
💡 Idea fuerza de la sesión
El modelo NO es "juntar todo en una tabla". Es separar lo que mides (hechos) de lo que describe (dimensiones), y conectarlos bien. De eso depende que el DAX sea simple y el reporte rápido.
De dónde venimos (Sesión 2)
Ya tienes
Una tabla Ventas limpia (~4.000 filas)
Dimensiones: Clientes, Productos, Fundos
TipoCambio y Costos listos
Lo que falta
Las tablas están sueltas. Un visual que cruce ventas con producto o cliente aún no funciona bien.
Hoy las conectamos en un modelo coherente.
Bloque A · 45 min
El esquema estrella
Hechos, dimensiones y granularidad
¿Por qué no una sola tabla plana?
Tabla plana (todo junto)
Datos repetidos en millones de filas
Modelo pesado y lento
DAX enredado y frágil
Difícil de mantener
Modelo en estrella
Cada cosa en su tabla, sin repetir
Compresión y rendimiento óptimos
DAX simple y predecible
Escala y se mantiene fácil
Hechos vs Dimensiones
Hechos (Fact)
Registran eventos y números a medir: ventas, kg, montos.
Muchas filas, crecen en el tiempo
Guardan claves + medidas numéricas
SunFruits: Ventas
Dimensiones (Dimension)
Describen el contexto: quién, qué, dónde, cuándo.
Pocas filas, una clave única
Sirven para filtrar y agrupar
SunFruits: Clientes, Productos, Fundos, Calendario
Las dimensiones filtran y agrupan; los hechos se suman.
El esquema estrella
Un hecho central rodeado de dimensiones, conectados por relaciones 1 a muchos.
La "estrella" = hecho al centro, dims alrededor
El lado "uno" siempre es dimensión
El lado "muchos" siempre es el hecho
Esquema estrella: hecho + dimensiones · Microsoft Learn
Granularidad — el nivel de detalle
La granularidad es a qué nivel guarda cada fila el hecho. Debe ser consistente.
En SunFruits
Cada fila de Ventas = una línea de pedido (orden + producto). Esa es nuestra granularidad.
Regla
No mezcles niveles (líneas con totales)
Si necesitas otro nivel, usa otra tabla (ej. Metas por mes/producto)
Las dimensiones describen ese grano
Normalización vs desnormalización
El hecho guarda solo claves
Normalizado: Ventas guarda la clave de producto, no su nombre/categoría.
La dimensión guarda el detalle
Desnormalizado: una sola dimensión Producto con nombre, categoría, color… (mejor que un copo de nieve).
En BI: hechos normalizados (claves) + dimensiones desnormalizadas y planas. Evita el "copo de nieve".
El modelo objetivo de SunFruits
Clientes cliente, país, región
Calendario fecha, año, mes
Productos producto, variedad, categoría
TipoCambio periodo, USD_PEN
VENTAS claves + Cajas, Kg, Monto
Fundos fundo, ubicación, ha
Hecho al centro; cada dimensión se relaciona 1→* con Ventas. Metas queda como tabla aparte para comparativas.
Bloque B · 45 min
Relaciones y tabla calendario
Cardinalidad, dirección de filtro y tiempo
La vista Modelo y crear relaciones
En la vista Modelo ves todas las tablas y sus relaciones como un diagrama.
Arrastra una columna de una tabla a la de otra para crear la relación.
O usa Modelado → Administrar relaciones → Nueva.
Power BI suele autodetectar por nombre de columna.
Crear y administrar relaciones · Microsoft Learn
Opciones de una relación
Cardinalidad y dirección de filtro · Microsoft Learn
Al crear/editar una relación defines:
Cardinalidad (1:*, 1:1, *:*)
Dirección del filtro (única / ambas)
Activa (sí/no)
Al menos una de las tablas debe tener la clave con valores únicos.
Cardinalidad
Tipo
Significado
En SunFruits
Uno a muchos (1:*)
La más común. Un valor en la dimensión, muchos en el hecho.
Productos (1) → Ventas (*)
Uno a uno (1:1)
Un valor único en ambos lados.
Casos puntuales / degeneradas
Muchos a muchos (*:*)
Sin unicidad; úsala con cuidado.
Evítala salvo necesidad real
Regla de oro: el lado "uno" es la dimensión; el lado "muchos" es el hecho.
Dirección del filtro
El filtro fluye de la dimensión hacia el hecho.
Única (single): lo recomendado en estrella. La dimensión filtra al hecho.
Ambas (both): bidireccional. Útil en casos puntuales, pero genera ambigüedad y problemas con RLS.
Por defecto, déjalo en Única.
Filtrado cruzado en estrella · Microsoft Learn
Relaciones activas e inactivas
Solo una relación activa entre dos tablas · Microsoft Learn
Entre dos tablas solo puede haber una relación activa. Las demás quedan inactivas (línea punteada).
Para usar una inactiva en una medida, se activa con USERELATIONSHIP.
// Monto por Fecha Embarque (relación inactiva)
Monto x Embarque =CALCULATE(
[Monto USD],
USERELATIONSHIP(
Ventas[Fecha Embarque],
Calendario[Date]))
Dimensión "role-playing": Fecha Pedido vs Embarque
Ventas tiene dos fechas: Fecha Pedido y Fecha Embarque. Ambas apuntan al Calendario.
Relación activa: Fecha Pedido ↔ Calendario.
Relación inactiva: Fecha Embarque ↔ Calendario (se usa con USERELATIONSHIP).
Alternativa: una segunda tabla Calendario (Calendario Embarque).
Una dimensión Fecha con varias relaciones · Microsoft Learn