Las bases de datos multidimensionales son una variación del modelo relacional que utiliza cubos OLAP para organizar los datos y expresar las relaciones entre ellos. Las principales ventajas de este tipo de bases de datos son la versatilidad para cruzar información y la alta velocidad de respuesta. Esto las convierte en herramientas básicas para soluciones de Business Intelligence o de Big Data, donde el análisis de los datos resulta crucial.
En general, estamos acostumbrados a trabajar con bases de datos orientadas a transacciones (conocidas como bases de datos OLTP). A continuación veremos las principales diferencias con las bases de datos multidimensionales (conocidas como bases de datos OLAP).
Los sistemas OLTP son bases de datos relacionales (RDBMS) orientadas a transacciones. Una transacción es una secuencia de operaciones llevada a cabo por una base de datos de manera atómica. Las operaciones pueden ser de cuatro tipos diferentes: SELECT
, INSERT
, DELETE
y UPDATE
. Al tratarse de un proceso atómico, cada transacción solo tiene dos posibles finales: commit (si se han llevado a cabo correctamente todas las operaciones) o rollback (cuando una operación de la secuencia ha fallado, en cuyo caso hay que deshacer los cambios producidos por el resto de las operaciones de la transacción y alertar del error). Las transacciones son el pilar de prácticamente cualquier programa de gestión o página web del mundo. Su necesidad se ve muy clara, por ejemplo, en el sector de la banca.
Garantizando las transacciones: las características ACID
Para que una base de datos OLTP pueda asegurar las transacciones es necesario que sea ACID compliant. ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability:
READ UNCOMMITTED
, READ COMMITTED
, REPEATABLE READS
y SERIALIZABLE
, en función del tipo de bloqueos que se crean para proteger la información.Propiedades de las bases de datos OLTP
Los sistemas OLTP son la versión tradicional de una base de datos: se diseñan utilizando un modelo entidad-relación, se implementan en los motores típicos de base de datos (Oracle, SQLServer, MySQL… etc.) y dan soporte a la mayor parte del software del mercado:
SELECT
), mientras que DML (Data Manipulation Language) es el estándar para realizar modificaciones (cláusulas INSERT
, UPDATE
y DELETE
).Los sistemas OLAP son bases de datos orientadas al procesamiento analítico. Este análisis suele implicar, generalmente, la lectura de grandes cantidades de datos para llegar a extraer algún tipo de información útil: tendencias de ventas, patrones de comportamiento de los consumidores, elaboración de informes complejos… etc.
Representando la información: los cubos OLAP
Un cubo OLAP no es más que un vector de varias dimensiones. Desde un punto de vista relacional, puede verse como una tabla de hechos (fact table) que tiene dos tipos de columnas:
Las columnas correspondientes a las dimensiones tienen claves foráneas a tablas de dimensión, que generalmente son tablas de maestros con clave-valor (esquema en estrella) o tablas organizadas en jerarquías (esquema en copo de nieve) como: ciudad – provincia – país.
En general suele resultar necesario dimensionar la volumetría de los cubos para conseguir que generen los informes deseados, y monitorizar su tamaño para garantizar que los resultados se obtienen en el tiempo esperado. En este sentido suele resultar fundamental tener en cuenta dos características básicas: la cardinalidad del cubo, posibles combinaciones de todos los valores de todas las dimensiones, y la granularidad del cubo, nivel de detalle máximo de los datos, o lo que es lo mismo, nivel de agregación mínimo de la información.
Propiedades de las bases de datos OLAP
Así como los sistemas OLTP son típicos para bases de datos convencionales y data warehouses, los sistemas OLAP son propios de los datamarts.
Tipos de persistencia OLAP
En los orígenes de la tecnología OLAP la mayor parte de las compañías asumió que la única solución para una aplicación OLAP era un modelo de almacenamiento no relacional. Sin embargo, otras compañías no tardaron en descubrir que a través del uso de estructuras de base de datos (esquemas de estrella y de copo de nieve), índices y el almacenamiento de agregados, se podrían utilizar sistemas de administración de bases de datos relacionales (RDBMS) para el OLAP.
Estos vendedores llamaron a esta tecnología OLAP relacional (ROLAP). En consecuencia, las primeras compañías adoptaron entonces el término OLAP multidimensional (MOLAP). Ambos conceptos, MOLAP y ROLAP, se explican con más detalle en los siguientes párrafos. Las implementaciones MOLAP normalmente tienen mejor rendimiento y velocidad que la tecnología ROLAP, pero tienen problemas de escalabilidad. Por otro lado, las implementaciones ROLAP son más escalables y son frecuentemente atractivas a los clientes debido a que aprovechan las inversiones en tecnologías de bases de datos relacionales preexistentes.
Sistemas MOLAP: la información procedente de los sistemas operacionales se carga en el sistema MOLAP mediante una serie de rutinas por lotes. Una vez cargado el dato elemental en la Base de Datos multidimensional (MDDB), se realizan una serie de cálculos para obtener los datos agregados, a través de las dimensiones de negocio, rellenando la estructura MDDB.
Tras rellenar esta estructura, se generan unos índices y algoritmos de tablas hash para mejorar los tiempos de accesos a las consultas. Una vez que el proceso de compilación se ha acabado, la MDDB está lista para su uso. Los usuarios solicitan informes a través de la interfaz, y la lógica de aplicación de la MDDB obtiene el dato.
La arquitectura MOLAP requiere unos cálculos intensivos de compilación. Lee de datos precompilados, y tiene capacidades limitadas de crear agregaciones dinámicamente o de hallar ratios que no se hayan precalculados y almacenados previamente.
Sistemas ROLAP: los usuarios ejecutan sus análisis multidimensionales, a través del motor ROLAP, que transforma dinámicamente sus consultas a consultas SQL. Se ejecutan estas consultas SQL en las bases de datos relacionales, y sus resultados se relacionan mediante tablas cruzadas y conjuntos multidimensionales para devolver los resultados a los usuarios.
La arquitectura ROLAP es capaz de usar datos precalculados si estos están disponibles, o de generar dinámicamente los resultados desde los datos elementales si es preciso. Esta arquitectura accede directamente a los datos del datawarehouse, y soporta técnicas de optimización de accesos para acelerar las consultas. Estas optimizaciones son, entre otras, particionado de los datos a nivel de aplicación, soporte a la desnormalización y joins múltiples.
Sistemas HOLAP: un desarrollo un poco más reciente ha sido la solución OLAP híbrida (HOLAP), la cual combina las arquitecturas ROLAP y MOLAP para brindar una solución con las mejores características de ambas: desempeño superior y gran escalabilidad. Un tipo de HOLAP mantiene los registros de detalle (los volúmenes más grandes) en la base de datos relacional, mientras que mantiene las agregaciones en un almacén MOLAP separado.
Como en otras ocasiones, si te interesa conocer más información sobre este tema no dudes en contactar con nosotros para que te enviemos documentación adicional. Cuenta con Classora Technologies para estar informado sobre bases de datos multidimensionales.
Trackbacks and Pingbacks