Este escrito forma parte de la serie: Escenarios de Modelado con DAX
Algunos de los recursos que he consultado sobre Modelado tabular y DAX los podemos encontrar en Modelos tabulares y DAX – Recursos
Cuando introduje la serie, en la entrada Introducción a DAX, comenté que DAX es el lenguaje de expresiones que permite trabajar con Modelos Tabulares, para enriquecerlo y consultarlo. Un modelo tabular está compuesto por tablas y sus relaciones.
Los modelos pueden ser de distintos tipos:
- Única tabla – Clásico de Excel, especialmente, antes de MS Office Excel 2013. No se recomienda en lo absoluto, afecta bastante al rendimiento a partir del millón de filas.
- Copo de nieve – Modelo Normalizado. Existen enlaces entre las tablas de búsquedas o dimensiones que no apuntan directamente a la tabla de hechos
- Estrella – Modelo Denormalizado. Todas las tablas de búsquedas o dimensiones apuntan directamente a la tabla de hechos
En DAX el modelo estrella es óptimo !!!!!
Veamos aspectos a tener en cuenta para comprender el funcionamiento de las relaciones
- En la relación, las dos tablas no tienen el mismo rol
- Lado Uno vs lado Muchos
- Geografía (lado Uno) vs Clientes (lado Muchos) 1:M (del ejemplo Copo de nieve)
- Lado Uno vs lado Muchos
- Las columnas de unión, claves o llaves
- En el lado Uno, valores únicos, suele coincidir con la clave de la tabla. No admite repetidos.
- La relación puede formar una cadena
- Categoría->Subcategoría->Producto (del ejemplo Copo de nieve)
- La dirección de la relación, define el filtrado automático
- No se admiten relaciones sobre múltiples columnas (restricción del motor)
- Una columna de una tabla puede relacionarse con más de una columna de otra tabla; pero solamente existirá una relación activa en cada momento.
Hablemos del modelo tabular sobre el que estamos trabajando y más concretamente, de las relaciones que existen entre las tablas de nuestro modelo.
La tabla Ventas es la tabla de Hechos, es el centro de nuestro Modelo tabular.
- Ventas, tiene más filas que ninguna otra, ya que almacena la información de las transacciones. por ejemplo: órdenes, facturación, presupuestos, líneas de contabilidad, contratos, acciones formativas, expedientes, pólizas, servicios realizados (telefonía, por ejemplo), en fin, los hechos, las métricas que estamos analizando y en nuestro caso, las ventas. Almacena columnas que permiten la relación con las tablas Productos, Fechas y Clientes y columnas con las métricas: CantidadETL, Precio y Coste.
- Ventas, es a la que apuntan todos los filtros.
- Cuando se calculan las medidas, se trabaja con las filas visibles, en dependencia de los filtros aplicados
- Se relaciona con todos desde el lado Muchos y los filtros en el modelo tabular se propagan del lado Uno al lado Muchos.
- Cada Venta se corresponde a un único Cliente y único Producto (M:1)
Las tablas Productos, Fechas y Clientes son tablas de búsquedas o de dimensiones
- Contienen las columnas que nos van a servir para fragmentar, segmentar o clasificar el resultado de las métricas almacenadas en Ventas
- Se relacionan con la tabla Ventas desde el lado Uno
- Crean los filtros necesarios, que se propagarán a Ventas, por la relación Uno a Muchos.
-
- Un Producto se puede vender cero, una o Muchas veces (1:M)
- Un Cliente puede comprar cero, una o Muchas veces (1:M)
-
Toda esta teoría es necesaria para poder comprender la necesidad y la funcionalidad de las funciones de navegación o relación, así como otros aspectos en los que el diseño del modelo tabular, sus tablas y relaciones influyen directamente en el código DAX que escribamos para enriquecer el modelo y dar respuesta a los requisitos de negocio.
Espero que resulte de utilidad #HappyDAXing !!! 🙂
En la próxima entrada vamos a ver ejemplo de cómo trabajar con las relaciones y los cálculos DAX en Modelos tabulares con Power BI