sábado, 6 de abril de 2013

MODELO DIMENSIONAL


cubo.png
El modelado dimensional es una forma de acercar los datos a la manera en que estos serán convertidos en información útil para los usuarios del negocio. El objetivo final es que estos puedan encontrar de manera intuitiva y rápida la información que necesitan.
La aplicación del modelo dimensional tiene lugar en la fase de diseño lógico, lo que permite la traducción del esquema resultante del diseño conceptual al plano lógico. El modelo dimensional se describe en el año 1996 por Ralph Kimball, como propuesta para el diseño de almacenes de datos (Data Warehouses), partiendo de la visión multidimensional que los usuarios tienen de los datos empresariales cuando se enfrentan a ellos con propósito de análisis (de análisis multidimensional –OLAP– en concreto).
El análisis multidimensional consiste en analizar los datos que hacen referencia a hechos, sean económicos o de otros tipos, desde la perspectiva de sus componentes o dimensiones (utilizando para ello algún tipo de métrica o medida de negocio).
Este modelo tiene en cuenta que para el análisis multidimensional los datos se representan como si estuvieran en un espacio n-dimensional (cubo de datos), permitiendo su estudio en términos de hechos sujetos al análisis (facts, en inglés) y dimensiones que permiten diferentes puntos de vista por los que analizar esos hechos.
La analogía del cubo (recuerde el cubo de Rubik) con la visión multidimensional es válida para comprender el concepto desde un punto de vista gráfico, pero sólo es válido para un modelo de tres dimensiones. Un modelo de más de tres dimensiones suele denominarse hipercubo, y ya resulta más difícil su representación gráfica.

El modelo dimensional distingue tres elementos básicos:

  • Hechos: es la representación en el data warehouse de los procesos de negocio de la organización. Por ejemplo: una venta puede identificarse como un proceso de negocio. Los hechos se podrán reconocer además porque siempre tienen asociada una fecha, y una vez registrados no se modifican ni se eliminan (para no perder la historia).
  • Métrica: son los indicadores de negocio de un proceso de negocio. Aquellos conceptos cuantificables que permiten medir nuestro proceso de negocio. Por ejemplo, en una venta tenemos el importe de la misma y la cantidad vendida. Existen métricas derivadas, como el precio unitario, que se obtiene al dividir el importe total por las unidades vendidas.
  • Dimensión: es la representación en el data warehouse de un punto de vista para los hechos de cierto proceso de negocio. Si regresamos al ejemplo de una venta, para la misma tenemos el cliente que ha comprado, la fecha en la que se ha realizado, el producto vendido,… Estos conceptos pueden ser considerados como vistas para este proceso de negocio. Puede ser interesante recuperar todas las compras realizadas por un cliente, o para un producto o familia de productos, o para un lapso determinado.

Pero ¿qué hay de su representación? Igual que sucede en el modelo relacional, el modelo dimensional adopta el concepto de relación (tabla) como estructura básica del modelo. Pero a diferencia del modelo relacional, que no hace distinción entre relaciones, el modelo dimensional distingue entre relaciones de hecho (tablas de hecho) y relaciones de dimensión (tablas de dimensión).
Los conceptos básicos – hechos, métricas y dimensiones (facts, measures y dimensions) – se representan en el modelo como relaciones (tablas) dentro de un esquema dimensional. Según las técnicas de modelado utilizadas, ese esquema dimensional puede adoptar forma de estrella o de copo de nieve.
El siguiente, es un ejemplo de esquema en estrella para el caso de las ventas diarias en un conjunto de tiendas:
bd.png

Vemos que existe una tabla de hechos en el centro (h_ventas_diarias), y una tabla de dimensión para cada dimensión de análisis que participa de la descripción de ese hecho (dim_xxx).
Las columnas de la tabla de hechos incluyen las dimensiones que identifican el hecho, y los hechos o medidas del negocio. Las columnas en las tablas de dimensión incluyen atributos asociados a cada posible valor de la dimensión.
Los atributos de una dimensión permitirán agrupar los hechos jerárquicamente, para poder consolidar y desagregar las mediciones según se desee. Como ejemplos tenemos:
  • Para la dimensión fecha: año, mes, día, nombre del mes, día de la semana, trimestre, …
  • Para la dimensión producto: tipo de producto, familia, unidad de medida, …

Cuando a una dimensión no se le pueden asociar múltiples atributos, se dice que tenemos una dimensión degenerada, y solo aparecerá como una columna en la tabla de hechos. Por ejemplo, si tuviéramos en nuestro ejemplo una dimensión “Estado de la Venta”, con los posibles valores: “Confirmada”, “Pendiente”, “Cancelada”; en este caso la dimensión serviría solo para separar las ventas según su estado, y no se requieren atributos adicionales.
Eventualmente, pudiera surgir un esquema en estrella integrado solo por una tabla de hechos con dimensiones degeneradas.
Por otro lado, cuando se decide normalizar las tablas de dimensiones para eliminar campos redundantes, tenemos lo que se conoce como esquema en copo de nieve.
bd1.png

El Copo de Nieve es una generalización de la Estrella, por lo que no es necesario tratar de diferenciar uno de otro.
La decisión de normalizar, o no, una tabla de dimensión corresponde a los diseñadores, quienes deberán tener presente que el objetivo es dar respuesta rápida a las consultas de los usuarios, no ahorrar espacio. Generalmente, el espacio que se logra ahorrar al normalizar la dimensión, es insignificante comparado con el volumen de la tabla de hechos, mientras el impacto en los tiempos de respuesta es apreciable.

[editar]

No hay comentarios:

Publicar un comentario