DAX: Introducción a las relaciones del Modelo Tabular

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

coponieve

  • Estrella – Modelo Denormalizado. Todas las tablas de búsquedas o dimensiones apuntan directamente a la tabla de hechos

Modelo

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)
  • 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.

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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.