Sprint 11: Dashboards interactivos para Stakeholders

Contents

Sprint 11: Dashboards interactivos para Stakeholders#

Semana 1: Modelado de Datos#

📊 Clase: Modelado de datos en Power BI#


🎯 Objetivos de la clase#

Al final de esta clase, los estudiantes podrán:

  • Comprender qué es el modelado de datos en Power BI y por qué es una etapa clave del análisis.

  • Diferenciar entre tablas de hechos y tablas de dimensiones.

  • Recordar el papel de las llaves primarias y foráneas dentro del modelo.

  • Identificar los tipos de relaciones según su cardinalidad.

  • Reconocer la importancia de limpiar los datos antes de modelarlos.

  • Comparar el modelo estrella y el modelo snowflake.

  • Entender la dirección del filtro y el estado de las relaciones.

  • Comprender por qué se utiliza una tabla calendario en análisis temporales.


1. ¿Qué es el modelado de datos en Power BI?#

El modelado de datos es el proceso de organizar las tablas y definir cómo se relacionan entre sí dentro de Power BI. El objetivo es construir una estructura lógica que permita:

  • analizar la información correctamente,

  • evitar duplicaciones,

  • mejorar el rendimiento,

  • y crear visualizaciones y métricas confiables.


¿Para qué se usa el modelado?#

El modelado se usa para:

  • conectar tablas entre sí,

  • centralizar la lógica del análisis,

  • evitar inconsistencias en métricas,

  • facilitar filtros y segmentaciones,

  • mejorar la velocidad de cálculo,

  • y hacer el modelo más escalable.

Ejemplo#

Supongamos que una empresa tiene información de:

  • ventas,

  • clientes,

  • productos,

  • fechas.

Si todo estuviera mezclado en una sola tabla gigante, habría muchos datos repetidos.
Por ejemplo, el nombre del cliente se repetiría en cada venta, el nombre del producto también, y lo mismo con la fecha, la ciudad, la categoría, etc.

Eso genera:

  • archivos más pesados,

  • más riesgo de errores,

  • más dificultad para actualizar,

  • peor rendimiento.


2. ¿Por qué usar varias tablas y no una sola?#

Usar varias tablas permite organizar la información por función.

Ventajas de trabajar con varias tablas#

1. Menos redundancia#

2. Mejor mantenimiento#

3. Mejor rendimiento#

4. Mayor claridad analítica#


Ejemplo: una sola tabla vs varias tablas#

Opción 1: una sola tabla#

sale_id

fecha

customer_id

customer_name

city

product_id

product_name

category

quantity

price

Aquí se repiten muchas veces:

  • customer_name

  • city

  • product_name

  • category

Opción 2: modelo con varias tablas#

Tabla de ventas

sale_id

fecha

customer_id

product_id

quantity

price

Tabla de clientes

customer_id

customer_name

city

Tabla de productos

product_id

product_name

category

Este enfoque es más limpio, más eficiente y más profesional.


3. Tipos de tablas: hechos y dimensiones#

En Power BI, normalmente organizamos los datos en dos grandes tipos de tablas:

A. Tabla de hechos#

La tabla de hechos contiene los eventos, movimientos o transacciones que queremos analizar.

Suele incluir:

  • ventas,

  • pedidos,

  • clics,

  • reservas,

  • transacciones,

  • cantidades,

  • ingresos,

  • costos.

Características#

  • Tiene muchas filas.

  • Crece rápido.

  • Contiene métricas numéricas.

  • Se conecta con varias dimensiones.

Ejemplo de tabla de hechos: Sales#

sale_id

date_id

customer_id

product_id

quantity

revenue

Aquí lo importante es que cada fila representa un hecho: una venta.


B. Tabla de dimensiones#

La tabla de dimensiones contiene atributos descriptivos que ayudan a analizar los hechos.

Ejemplos de dimensiones#

  • clientes,

  • productos,

  • fechas,

  • tiendas,

  • regiones.

Características#

  • Tiene menos filas que la tabla de hechos.

  • Describe el contexto.

  • Se usa para filtrar, segmentar y agrupar.

Ejemplo de dimensión: Customers#

customer_id

customer_name

city

segment

Ejemplo de dimensión: Products#

product_id

product_name

category

brand


Resumen rápido#

Tabla de hechos#

Responde preguntas como:

  • ¿cuánto se vendió?

  • ¿cuántas unidades?

  • ¿cuál fue el ingreso?

  • ¿cuántas reservas hubo?

Tabla de dimensiones#

Responde preguntas como:

  • ¿de qué producto?

  • ¿de qué cliente?

  • ¿en qué fecha?

  • ¿en qué ciudad?

  • ¿en qué categoría?


4. Recordemos: llaves primarias y foráneas#

Para relacionar tablas necesitamos identificar columnas clave.

Llave primaria (Primary Key)#

Es una columna que identifica de forma única cada registro en una tabla.

Ejemplo#

En la tabla Customers:

customer_id

customer_name

101

Ana

102

Luis

Aquí customer_id es la llave primaria porque no se repite.


Llave foránea (Foreign Key)#

Es una columna en otra tabla que hace referencia a la llave primaria.

Ejemplo#

En la tabla Sales:

sale_id

customer_id

revenue

1

101

200

2

102

150

3

101

300

Aquí customer_id es una llave foránea porque conecta Sales con Customers.


Idea central#

  • La tabla dimensión suele tener la llave primaria.

  • La tabla de hechos suele tener la llave foránea.

Eso es lo que permite construir relaciones.


5. Cardinalidad de las relaciones#

La cardinalidad indica cómo se relacionan los registros entre dos tablas.


A. Relación 1 a muchos (1:*)#

Es la más común en Power BI.

Significa que:

  • un registro de una tabla puede relacionarse con muchos registros de otra.

Ejemplo#

Customers

customer_id

customer_name

101

Ana

102

Luis

Sales

sale_id

customer_id

revenue

1

101

200

2

101

150

3

102

300

Aquí:

  • un cliente puede tener muchas ventas,

  • pero cada venta pertenece a un solo cliente.

✅ Relación: Customers (1) → Sales (*)


B. Relación 1 a 1 (1:1)#

Significa que:

  • un registro de una tabla se relaciona con un único registro de la otra tabla.

Ejemplo#

Employees

employee_id

name

1

Sara

2

Tomás

Employee_Details

employee_id

birth_date

blood_type

1

1990-01-01

O+

2

1988-03-10

A-

Cada empleado tiene un solo detalle asociado.

✅ Relación: 1 a 1

¿Es común?#

No mucho.
En Power BI, si tienes una relación 1:1, muchas veces conviene preguntarse si ambas tablas podrían estar unidas en una sola.


C. Relación muchos a muchos (:)#

Significa que:

  • varios registros de una tabla se relacionan con varios registros de otra.

Ejemplo clásico#

Un estudiante puede cursar muchas materias.
Una materia puede ser cursada por muchos estudiantes.

Students

student_id

name

1

Ana

2

Luis

Courses

course_id

course_name

10

Matemáticas

20

Historia

No podemos conectarlas directamente de forma limpia porque la relación es múltiple en ambos sentidos.

Se necesita una tabla intermedia#

Enrollments

student_id

course_id

1

10

1

20

2

10

Ahora el modelo funciona así:

  • Students (1) Enrollments (*)

  • Courses (1) Enrollments (*)

Conclusión#

Cuando hay una relación muchos a muchos, normalmente se resuelve con una tabla puente o tabla intermedia.


6. Limpieza antes de modelar#

Antes de crear relaciones, hay que asegurarse de que los datos estén limpios.

Aspectos clave a revisar#


A. Nulos#

Los valores nulos pueden generar problemas si aparecen en columnas clave.

Ejemplo#

Si customer_id tiene nulos en la tabla de ventas:

  • algunas ventas no podrán relacionarse con clientes,

  • los filtros no funcionarán correctamente,

  • pueden aparecer registros “en blanco”.

Qué hacer#

  • identificar si el nulo tiene sentido,

  • corregirlo si es un error,

  • reemplazarlo o eliminarlo según el caso.


B. Duplicados#

Si una columna que debería ser única tiene duplicados, la relación puede fallar.

Ejemplo#

En una dimensión Products, product_id debería ser único.
Si se repite, ya no actúa como llave primaria válida.

Qué hacer#

  • revisar duplicados,

  • consolidar registros,

  • eliminar repeticiones si son errores.


C. Transformaciones#

Antes de modelar, también conviene revisar:

  • tipos de datos,

  • nombres de columnas,

  • formato de fechas,

  • espacios extra,

  • mayúsculas/minúsculas,

  • consistencia en códigos.

Ejemplos típicos#

  • 001 en una tabla y 1 en otra.

  • fechas guardadas como texto.

  • IDs con espacios ocultos.

  • nombres de categorías escritos de distintas formas.


Regla práctica#

Antes de crear relaciones, verificar siempre:

  • que las columnas clave tengan el mismo tipo de dato,

  • que la tabla del lado “1” no tenga duplicados,

  • que no haya nulos problemáticos en las llaves,

  • que los valores realmente coincidan entre tablas.


7. Modelo estrella vs modelo snowflake#


A. Modelo estrella (Star Schema)#

Es el modelo recomendado en Power BI.

Consiste en:

  • una tabla de hechos en el centro,

  • varias tablas de dimensiones alrededor.

Esquema#

           Dim_Customers
                 |
                 |
Dim_Date ---- Fact_Sales ---- Dim_Products
                 |
                 |
             Dim_Stores

alt text

Ventajas#

  • Es más fácil de entender.

  • Funciona mejor en Power BI.

  • Simplifica medidas y filtros.

  • Suele dar mejor rendimiento.


B. Modelo snowflake#

Es una extensión del modelo estrella, donde algunas dimensiones se dividen en más tablas relacionadas.

Ejemplo#

En lugar de tener una sola tabla Products con product_name, category y brand, podríamos tener:

  • Products

  • Categories

  • Brands

Esquema#

               Dim_Category
                    |
                    |
Dim_Customers   Dim_Products ---- Fact_Sales ---- Dim_Date
                    |
                    |
                Dim_Brand

Diferencia clave#

Modelo estrella#

Las dimensiones están más desnormalizadas.
La información descriptiva suele estar concentrada en una sola tabla.

Modelo snowflake#

Las dimensiones están más normalizadas.
Hay más tablas y más relaciones entre dimensiones.


¿Cuál se prefiere en Power BI?#

Generalmente, el modelo estrella.

¿Por qué?#

Porque:

  • es más simple,

  • es más intuitivo,

  • filtra mejor,

  • complica menos las medidas,

  • y suele dar mejor rendimiento.

¿Entonces el snowflake no se usa?#

Sí se puede usar, pero normalmente solo cuando existe una razón clara para hacerlo.


6. Dirección del filtro#

La dirección del filtro define cómo se propaga un filtro de una tabla a otra.


Dirección simple#

En un modelo estrella, lo habitual es que el filtro vaya:

de la dimensión hacia la tabla de hechos

Ejemplo#

Si filtras la categoría “Electrónica” en Dim_Products, ese filtro afecta a Fact_Sales.

Eso permite analizar:

  • ventas de productos electrónicos,

  • ingresos por categoría,

  • cantidad vendida por marca.


Dirección bidireccional#

También existe la opción de filtrar en ambos sentidos.

Riesgos#

  • puede generar ambigüedad,

  • puede producir resultados inesperados,

  • complica el modelo,

  • puede afectar el rendimiento.

Regla general#

Usar single direction como opción principal.
Usar both directions solo cuando sea necesario y se entienda bien el impacto.


7. Estado de las relaciones: activas e inactivas#

En Power BI, una relación puede estar:

  • activa

  • inactiva


Relación activa#

Es la relación que Power BI utiliza por defecto en visualizaciones y medidas.

Ejemplo#

Una tabla de ventas puede tener dos columnas de fecha:

  • order_date

  • ship_date

Y ambas podrían conectarse a la tabla calendario.

Pero Power BI solo permite una relación activa a la vez entre dos tablas en ese contexto.


Relación inactiva#

Es una relación que existe en el modelo, pero no se usa por defecto.

En la vista de modelo suele mostrarse con línea punteada.

Ejemplo#

  • Relación activa: Fact_Sales[order_date] Dim_Date[date]

  • Relación inactiva: Fact_Sales[ship_date] Dim_Date[date]

Esto es útil cuando una misma tabla necesita conectarse a la tabla calendario por más de una fecha.


8. La tabla calendario#

La tabla calendario es una tabla de dimensiones que contiene una fila por cada fecha.

Es fundamental para trabajar correctamente con análisis temporales.


¿Por qué no usar directamente la fecha de la tabla de hechos?#

Porque una tabla calendario:

  • organiza mejor el tiempo,

  • permite crear jerarquías de fecha,

  • facilita comparaciones por mes, trimestre y año,

  • soporta funciones de inteligencia de tiempo,

  • mantiene continuidad temporal aunque no haya registros todos los días.


Ejemplo de tabla calendario#

date

year

month

month_name

quarter

day

2024-01-01

2024

1

Enero

Q1

1

2024-01-02

2024

1

Enero

Q1

2


¿Qué columnas suele incluir?#

Una buena tabla calendario puede incluir:

  • fecha,

  • año,

  • mes,

  • nombre del mes,

  • número de mes,

  • trimestre,

  • semana,

  • día,

  • día de la semana,

  • indicador de fin de semana,

  • año-mes.


Beneficios de usarla#

Con una tabla calendario puedes analizar:

  • ventas por mes,

  • crecimiento interanual,

  • acumulados,

  • comparación contra el mes anterior,

  • tendencias en el tiempo.


9. Ejemplo completo de modelo#

Supongamos que tenemos estas tablas:

Fact_Sales#

sale_id

date_id

customer_id

product_id

revenue

Dim_Customers#

customer_id

customer_name

city

segment

Dim_Products#

product_id

product_name

category

brand

Dim_Date#

date_id

date

month

year


Relación esperada#

Dim_Customers (1) ---- (*) Fact_Sales (*) ---- (1) Dim_Products
                               |
                               |
                               (1)
                            Dim_Date

Este es un ejemplo de modelo estrella.


10. Buenas prácticas de modelado en Power BI#

  • Construir modelos tipo estrella siempre que sea posible.

  • Evitar tablas gigantes con demasiada redundancia.

  • Mantener las relaciones simples y claras.

  • Revisar nulos y duplicados antes de modelar.

  • Verificar que las llaves tengan tipos de datos compatibles.

  • Usar una tabla calendario.

  • Evitar relaciones muchos a muchos si pueden resolverse con una tabla puente.

  • Minimizar el uso de filtros bidireccionales.

  • Nombrar tablas y columnas de forma clara.


Manos a la obra:

Ejemplo 1: Descarga aquí

Ejercicio 2: Descarga aquí


11. Resumen final#

Ideas clave de la clase#

  • El modelado de datos organiza las tablas y sus relaciones para analizar mejor la información.

  • Es mejor usar varias tablas bien estructuradas que una sola tabla gigante.

  • Las tablas de hechos almacenan eventos o transacciones.

  • Las tablas de dimensiones almacenan información descriptiva.

  • Las relaciones se construyen usando llaves primarias y foráneas.

  • La cardinalidad puede ser 1 a muchos, 1 a 1 o muchos a muchos.

  • Antes de modelar, hay que limpiar nulos, duplicados y formatos inconsistentes.

  • El modelo estrella es el más recomendado en Power BI.

  • La dirección del filtro y el estado de las relaciones afectan cómo se comporta el modelo.

  • La tabla calendario es esencial para análisis de tiempo.