Jerarquías

Serie DWH
viernes, 12 de junio de 2009

Las dimensiones se agrupan en jerarquías mediante relaciones uno-a-muchos. Una población agrupa a muchos clientes. Una provincia agrupa a muchas poblaciones. Una región está formada por varias provincias. Etcétera. Las jerarquías típicas, que aparecen en cualquier sistema Business Intelligence, son:

  • Jerarquía geográfica o de clientes (país del cliente/región/ciudad/cliente)
  • Jerarquía de producto (marca/familia/producto/presentación)
  • Jerarquía comercial (país/zona/punto de venta)
  • Jerarquía temporal (año/trimestre/mes/día)

Relación jerárquica de trabajadores en un sistema Business Intelligence

Evidentemente, pueden existir jerarquías adicionales, o incluso puede haber diferentes maneras de jerarquizar una misma información. En particular, es habitual la existencia de diferentes jerarquías de producto (lo que es una "pesadez" muchas veces necesaria, otro día lo comentaré…).

Esta manera de visualizar jerárquicamente la información resulta muy natural y cómoda para los usuarios de negocio.

Y, como siempre, podemos cometer errores modelizando las jerarquías. Éste es el error número 10 de esta serie sobre cómo construir un datawarehouse:

Error 10: Dividir las jerarquías y los niveles de las jerarquías en múltiples dimensiones

Existen dos maneras principales de modelizar las jerarquías:

  • Modelo en estrella: Donde una única tabla contiene toda la información de la jerarquía.
  • Modelo copo de nieve: Donde se crea una tabla para cada nivel de la jerarquía

En la base de datos de presentación (también llamado modelo dimensional) del DWH debe preferirse siempre el modelo en estrella. Es decir, debe crearse una única tabla para cada jerarquía. La misma tabla de PRODUCTOS debe tener toda la información relativa a los productos (presentación, producto, familia, marca).

El modelo dimensional es el que ataca nuestra herramienta de Business Intelligence, por lo que interesa que las consultas generadas sean sencillas (con pocas tablas y pocas relaciones). El modelo en estrella es perfecto para conseguir este objetivo. Además, desaparece el problema que generan las diferentes jerarquías en que se pueden agrupar los productos.

Sin embargo, por desgracia, no siempre es posible tener un modelo en estrella perfecto. La herramienta de explotación puede requerir normalizar parte de una jerarquía en una tabla independiente. Esta limitación aparece cuando diferentes "hechos" están definidos con diferente granularidad. Por ejemplo, las ventas están a nivel de "producto", pero los objetivos de venta se marcan a nivel de "familia". En este caso, muchas herramientas BI exigirán la existencia de una tabla de FAMILIAS.

Finalmente, es importante destacar que además del "modelo dimensional" el DWH debe mantener un modelo normalizado de la información (llamado "modelo relacional"). En este otro modelo, la información sí que debe estar normalizada, unificada y limpia.