Skip to content

Bases de datos multidimensionales: OLAP vs OLTP

2013 junio 25
by classora

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

OLTP – On-Line Transactional Processing

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:

  • Atomicidad: asegura que la operación se ha realizado correcta y completamente, de forma que no pueda quedar a medias en caso de que surja cualquier error.
  • Consistencia: asegura la integridad de la base de datos, es decir, que solo se ejecutan aquellas operaciones que no van a romper las reglas, restricciones y claves foráneas. La propiedad de consistencia sostiene que cualquier transacción llevará a la base de datos desde un estado válido a otro también válido.
  • Aislamiento: asegura que dos transacciones que afectan a la misma información (tabla, fila o celda) son independientes y no generan errores ni deadlocks. Existen cuatro posibles niveles de aislamiento: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READS y SERIALIZABLE, en función del tipo de bloqueos que se crean para proteger la información.
  • Durabilidad: asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema. Será almacenada en disco, no solo en memoria.

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:

  • Optimizadas para lecturas y escrituras concurrentes: gracias a las propiedades ACID, el acceso a los datos está adaptado para tareas frecuentes de lectura y escritura.
  • Organizadas según la capa de aplicación: las tablas y los datos se estructuran según el software que los maneja: programa de gestión a medida, ERP, CRM, BPM… etc.
  • Adaptadas a cada empresa o departamento: dado que en muchas ocasiones se utiliza software no integrado, los formatos de los datos no suelen ser uniformes en los diferentes departamentos. Es común la falta de compatibilidad y la existencia de islas de datos.
  • Consultas realizadas en SQL, modificaciones en DML: el SQL (Standard Query Language) es el lenguaje de consulta universal para leer bases de datos relacionales (cláusula SELECT), mientras que DML (Data Manipulation Language) es el estándar para realizar modificaciones (cláusulas INSERT, UPDATE y DELETE).
  • Gestión de datos históricos inexistente: el historial de cambios suele limitarse a datos actuales o recientes. Salvo sistemas de backup, o que el software tenga una funcionalidad específica para ello, no se suelen manejar valores históricos para cada campo.

OLAP: On-Line Analytical Processing

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:

  • Indicadores: también denominados métricas o ratios, son los valores numéricos con los que se opera. Por ejemplo: nº de clientes, nº de proveedores, importe de las ventas, nº de ventas, importe de las compras, nº de compras… etc.
  • Dimensiones: son las características por las que se pueden filtrar y cruzar los indicadores. Por ejemplo: tiempo (fijando un determinado día, mes o año), geografía (fijando un determinado país, región o ciudad), proveedor, cliente, modo de pago… etc.

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.

  • Optimizadas para operaciones de lectura: dado que la acción más común es la consulta, estas bases de datos disponen de valores agregados y resultados precalculados que les permiten responder en tiempo récord. Evitar las restricciones ACID les da agilidad.
  • Organizadas según las necesidades analíticas: los datos están estructurados según las áreas de negocio, y los formatos de los datos están integrados de manera uniforme en toda la organización. Se busca evitar islas de datos.
  • Asíncronas: no siempre se actualizan en tiempo real, sino que se suelen alimentar con información procedente de las bases de datos relacionales mediante un proceso de extracción, transformación y carga (ETL).
  • Consultas realizadas en MDX: este lenguaje, MDX (MultiDimensional eXpressions) fue desarrollado inicialmente por Microsoft y adoptado posteriormente como estándar para leer cubos OLAP. Un cliente puede manipular el cubo de distintas formas: rotarlo, rebanarlo cortarlo en dados… etc.
  • Gestión de datos históricos a largo plazo: una de las exigencias analíticas consiste en realizar estudios de evolución a lo largo del tiempo, esto requiere que estas bases de datos mantengan un histórico a largo plazo, normalmente no inferior a cinco años.

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.

Más información

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.

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS