¿Qué es un “modelo dimensional” y qué tiene que ver con los cubos?

Definiciones
lunes, 23 de enero de 2012

He recibo un mail de una amable lectora –todas y todos lo sois- y plantea una pregunta que le ha surgido al leer alguno de los artículos de este blog sobre Business Intelligence. Me dice:

Leyendo toda la información que anda dando vueltas, puedo decirte que tu blog es el que me ha traído más claridad, ya que me confunde mucho la terminología que se utiliza. No entiendo mucho qué significa el modelo relacional y el modelo dimensional del DW, y como si fuera poco, tampoco entiendo qué papel juegan los "cubos" en todo esto.

Aunque no lo aclara, entiendo que lo pregunta después de leer algún artículo de la serie sobre “Cómo construir un datawarehouse”. Tal vez éste: “Máximo nivel de detalle”. O tal vez otro.

Entiendo su duda. Muchas veces damos –doy- cosas por supuestas, cosas que son desconocidas por los usuarios de BI, y que por lo tanto merecen una aclaración. Vamos allá.

Una base de datos con “modelo dimensional” es una base de datos que tiene una estructura adecuada para resolver consultas analíticas. Se trata de modelos sencillos que aseguran unos buenos tiempos de respuesta, y que se corresponden bastante con el lenguaje de negocio de los usuarios. Las herramientas de BI se conectan al “modelo dimensional” del DWH. Típicamente, se implementa con alguna de estas dos opciones:

  • Opción A: En una base de datos relacional.
  • Opción B: En una base de datos multidimensional.

En el caso de que utilices una base de datos relacional (esto es: una base de datos normal y corriente de las de toda la vida), construirás el “modelo dimensional” utilizando una estructura en estrella, o una estructura en copo de nieve.

Un ejemplo de modelo dimensional en una base de datos relacinoal siguiendo el paradigma de modelado en estrella.

Y si utilizas una base de datos multidimensional, construirás “cubos”, y utilizarás una tecnología específica para estos menesteres (con sus ventajas e inconvenientes).

Representación de un modelo dimensional en una base de dato multidimensional. Es un cubo. Fuente: http://www.profinmexico.com/boletines/cubo.jpg

Se llama “modelo dimensional”, creo, porque para su creación/definición se hace un estudio sobre los datos de la empresa, identificando las “dimensiones”, y analizando como las dimensiones se relacionan entre sí (creando jerarquías), y como se relacionan con las tablas de hecho (creando “estrellas” o “cubos”).

En resumen, el “modelo dimensional” es el modo óptimo de organizar los datos en los sistemas de Business Intelligence, y puede hacerse mediante bases de datos relacionales (ROLAP), o utilizando bases de datos multidimensionales (MOLAP).

¿Qué os parece esta definición? ¿Lo complico innecesariamente? ¿O simplifico en exceso? ¿Qué es para vosotros el “modelo dimensional” de un DWH?

No es la primera vez que se tratan estos temas en el blog, en la categoría de “Definiciones” encontrarás otros artículos sobre el tema.

Y, sin duda, este artículo quedaría cojo si no mencionase que Kimball y Inmon tuvieron mucho que ver en la popularización de estas metodologías. Recomiendo esta magnífica entrada de Roberto Espinosa para ampliar los conceptos de modelado multidimensional. O en esta presentación que también hablan del modelado dimensional.

ACTUALIZACIÓN: En los comentarios, Carlota indica que el modelo dimensional es un modelo lógico… Y creo que tiene razón. Es común referirse a la “capa semántica” como “modelo dimensional”, o “modelo conceptual”… Incluso puede ser que esa sea la acepción más extenidida. Ya no lo sé. ¿Realmente existen estas dos acepciones o soy solo yo que la estoy liando?

Pregunto:

  • ¿A la capa semántica de vuestra herramienta BI le llamáis "modelo dimensional"?
  • ¿El equipo técnico que trabaja en el DWH llama "modelo dimensional" a la base de datos o esquema del DWH a la que se conecta la herramienta de BI?

Tal vez incluso he interpretado mal a Carlota… En fin… :-)

Prometo un artículo más interesante, y menos tostón, para esta noche.