Modelado dimensional: diseño de modelo

Clase 15 de 26Curso de Data Warehousing y Modelado OLAP

Resumen

¿Cómo diseñar un modelo dimensional?

Diseñar un modelo dimensional es crucial para traducir los registros transaccionales en información útil para la toma de decisiones empresariales. En esta clase, veremos cómo crear tablas, identificar relaciones, y asignar atributos a las distintas dimensiones, siempre respetando las reglas de negocio.

¿Qué es una regla de negocio?

Una regla de negocio establece las transformaciones que los datos deben cumplir para satisfacer las necesidades de la empresa. Un ejemplo clásico es la necesidad de consolidar campos de nombres separados en un solo campo de nombre completo. Otra regla podría ser condensar un campo de observación extenso o adicionarle atributos a un vendedor según ciertos criterios. Estas reglas son integradas en el ETL para reflejarse en el modelo dimensional.

¿Cómo se hace la diagramación del modelo?

Utilizamos herramientas como DbDiagram para diagramar el modelo de datos basado en las dimensiones y hechos identificados previamente. Comenzamos creando tablas para las dimensiones como la de clientes y productos, definiendo atributos y estableciendo sus tipos de datos.

Aquí un ejemplo en DbDiagram:

Table dwh.DimClientes {
  IdCliente int
  CodigoCliente varchar
  NombreCliente varchar
  ApellidoCliente varchar
  NombreCompleto varchar
  NumContactoCelular varchar
  NumContactoCasa varchar
  NumTrabajo varchar
  CiudadVivienda varchar
}

Definimos cada campo según las reglas de negocio, y revisamos las bases de datos para asegurarnos del acceso a toda la información necesaria.

¿Cómo se estructura la tabla de hechos?

La tabla de hechos, en este caso FacVentas, contiene las métricas y los IDs de las dimensiones. La estructura incluye un ID de venta, IDs de cliente y producto como claves, y las métricas identificadas como cantidad vendida, valor, descuento y valor neto.

Table dwh.FacVentas {
  IdVenta int [pk, increment]
  IdCliente int [ref: > dwh.DimClientes.IdCliente]
  IdProducto int [ref: > dwh.DimProductos.IdProducto]
  CantidadVendida int
  Valor decimal
  Descuento decimal
  ValorNeto decimal
}

Es importante destacar que no es necesario crear relaciones físicas en bases de datos en modelos dimensionales, ya que las dimensiones pueden emplearse en múltiples modelos.

¿Cómo establecer relaciones virtuales?

Aunque no se requieren relaciones físicas, al diseñar en herramientas de modelado, es útil definir relaciones virtuales para visualizar mejor cómo las tablas se relacionan.

Por ejemplo, conectar IdCliente de una dimensión con el mismo campo en la tabla de hechos para entender la interconexión de datos:

Ref dwh.DimClientes.IdCliente > dwh.FacVentas.IdCliente
Ref dwh.DimProductos.IdProducto > dwh.FacVentas.IdProducto

¿Qué sigue después de diseñar el modelo?

Una vez que el diseño básico del modelo está completado, se pueden añadir más dimensiones como vendedores y geografía para enriquecer el modelo. Esto permite abarcar más escenarios de negocio y realizar análisis más completos.

Te animamos a que experimentes incorporando estas dimensiones faltantes y compartas tu propuesta y resultados. Continuar extendiendo el modelo afina tu habilidad de diseño y mejora las capacidades analíticas del data warehouse.