¿Qué es un “modelo dimensional” y qué tiene que ver con los cubos?
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.

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

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.
Categoría: Definiciones
Palabras clave: DWH
Comentarios: Este artículo tiene 10 comentarios.¡Deja un comentario!
- CarlotaMonday, January 23, 2012
Creo que aclara decir que el modelo dimensional es un modelo lógico ......que se puede implementar con una BBBD relacional o dimensional.
- BI FÁCILMonday, January 23, 2012
Creo que tienes razón, y que mi artículo confunde más que otra cosa.
El término "modelo dimensional" se suele referir también al "modelo lógico", o "capa semántica", o "universo", o "catálogo"...Y creo que ese es el uso más extendido.
En ese sentido, el "modelo dimensional" es un "modelo lógico"... Una manera bonita de presentar la información al usuario (ocultando los detalles físicos de la base de datos).
Y luego ese modelo se puede implementar físicamente como una base de datos relacional o dimensional....
El problema -problema terminológico- es que al modelo físico más cercano al usuario también se suele llamar "modelo dimensional", en contraposición al "modelo relacional" (tal y como hago en: http://www.businessintelligence.info/serie-dwh/importancia-maximo-detalle.html)
¿Realmente existen estas dos acepciones o soy solo yo que la esyo 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?
- CarlotaMonday, January 23, 2012
En mi caso yo creo que llamo modelo dimensional a el modelo logico o conceptual. De hecho un mismo modelo puede servir para diferentes capas semanticas. Con la capa de presentación/universo puede hacerse que diferentes usuarios / perfiles vean el mismo objeto desde dos puntos de vista diferentes siendo la BBDD la misma.
- BI FÁCILMonday, January 23, 2012
Hola Carlota,
Gracias por los comentarios. Una duda, ¿Con qué herramienta de BI trabajas?
- Jose Maria GarciaMonday, January 23, 2012
Aclararía el tema poder trastear con una base de datos multi dimensional, porque las sql las conocemos casi todos. Algún ejemplo de base de datos molap para aprender?
- carlotaMonday, January 23, 2012
He trabajado con Business Object y con Oracle Business Intelligence. (ETL: Informatica Powercenter / oracle warehouse builder)
- carlotaMonday, January 23, 2012
Por cierto hace tiempo trabajé con sybaseIQ que implementa una BBDD multidimensional y las consultas(querys) son con sql-standard.
- Abel González DuránMonday, January 23, 2012
Respondiendo primero a Carlota, creo que una base de datos muy útil para aprender conceptos es PALO (www.palo.net): es open source, va con Excel... En fin, una maravilla para jugar y para aplicaciones sencillas.
Si quieres algo con más chicha, puedes plantearte un Analysis Services de Microsoft o un Essbase de Oracle, pero ya son palabras mayores.
Desde mi punto de vista, un modelo (MODELO) dimensional es un concepto de análisis que puede interpretarse de diferentes formas tecnológicas (ROLAP, MOLAP...).
¿Un cubo es un modelo dimensional? Sí.
¿Un diagrama en estrella es un modelo dimensional? Sí
¿Una base de datos relacional es un modelo dimensional? Normalmente no, pero puede tener partes susceptibles de ello.
Por lo tanto, tendríamos el planteamiento filosófico (Modelo) y su visión física (base de datos multidimensional o cubo) pero todos obedecen al mismo concepto: una necesidad analítica :)
- BI FÁCILThursday, January 26, 2012
José María: Como dice Abel, Analisys Services y PALO son buenas opciones. Por supuesto, la primera es más potente, y tiene muchas más instalaciones (ergo: más documentación, más info, más conocimiento reutilizable...). Aunque PALO también está muy bien!
Abel, me tranquiliza tu comentario. Parece confirmarse que "modelo dimensional" es expresión polisémica.
Ah, ¡Gracias a todos por por los comentarios!
- business intelligence zaragozaWednesday, February 01, 2012
Muy interesante.
