Bases de datos analíticas
Los mandos tácticos y los órganos de gobierno de las empresas necesitan, para tomar sus decisiones, manejar una gran cantidad de información relevante y fiable sobre la operativa de la empresa y sobre su entorno. Toda esta información se encuentra en fuentes heterogéneas y dispersas. Los orígenes de datos pueden ser bases de datos (relacionales o no) y ficheros de estructura variada.
Gran parte de esa información se basa en datos históricos de la operativa diaria de la empresa. Estos datos proceden, generalmente, del procesamiento en línea de transacciones (On Line Transaction Processing –OLTP-). Estos datos se guardan en bases de datos relacionales que están normalizadas. Una base de datos relacional es una colección de relaciones. Una relación es una tabla formada por un conjunto de filas y columnas. Estas tablas se vinculan entre sí mediante campos comunes, que se denominan claves. La normalización es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones de un modelo relacional para evitar la redundancia de los datos, disminuir los problemas de su actualización y garantizar la identidad referencial de los mismos.
Las bases de datos asociadas a los sistemas transaccionales están optimizadas para realizar muchas operaciones de inserción, modificación y borrado de datos por unidad de tiempo. En cambio, resultan muy ineficientes para realizar consultas complejas, en gran parte porque la normalización del modelo referencial hace necesario realizar una gran cantidad de cruces (joins) y consumir mucho código.
Las consultas para toma de decisiones a nivel directivo suelen ser muy complejas, lo cual puede retrasar de forma extraordinaria el procesamiento en línea de transacciones e, incluso llegar a bloquearlo. Por ello, este tipo de consultas, que se denominan analíticas, debe ser realizado en otro entorno distinto, que se denomina procesamiento analítico en línea (On Line Analytical Processsing –OLAP-). Este tipo de procesamiento de la información permite realizar consultas muy complejas de forma rápida y flexible, sin interferir con los sistemas con los sistemas transaccionales.
El procesamiento analítico en línea se realiza sobre lo que se denomina almacén de datos (Data Warehouse), que integra la información procedente tanto de los distintos sistemas transaccionales de la compañía como de otras fuentes, en un formato homogéneo que refleja los indicadores clave asociados a los procesos de negocio de la compañía. El almacén de datos recoge la información procedente de las fuentes mencionadas mediante procesos que se denominan de extracción, transformación y carga.
El almacén de datos corporativo puede organizarse en varios sub-almacenes que estén enfocados a satisfacer las necesidades de áreas de negocio distintas. Estos sub-almacenes reciben el nombre de data mart. Existen dos formas de diseñar el almacén de datos: de arriba abajo, cuando los distintos data marts se definen a partir del almacén de datos, y de abajo a arriba, cuando el almacén de datos surge de la unión de todos los data marts que pueden relacionarse entre sí mediante dimensiones compartidas.
La información para el procesamiento analítico en línea se estructura según un modelo lógico multidimensional, que la organiza en hechos, medidas, dimensiones, jerarquías, niveles y atributos. Los hechos representan la actividad que se quiere analizar. Las medidas muestran información numérica relevante sobre los hechos. Las dimensiones caracterizan la realidad desde algún punto de vista. Los atributos representan información descriptiva de cada dimensión. Estos atributos se suelen agrupar en niveles, que a su vez se agrupan en jerarquías.
El modelo físico con el que se implementa este modelo lógico puede ser multidimensional o relacional. En el primer caso, se habla de procesamiento analítico en línea multidimensional (MOLAP) y, en el segundo, de procesamiento analítico en línea relacional (ROLAP).
El modelo relacional utilizado para el ROLAP está desnormalizado y representa el modelo lógico mediante una tabla central de hechos, que recoge los hechos y las métricas, y varias tablas que representan las dimensiones y cuyas claves principales son claves foráneas de la tabla de hechos. Hay dos variantes de este modelo para los data marts: modelo en estrella, donde cada tabla de dimensión almacena todos sus atributos, y modelo en copo de nieve, donde los niveles de las jerarquías se almacenan en tablas distintas y vinculadas con las de dimensiones. Cuando varios data marts se integran, surge el modelo de constelación de datos, que es el resultado de combinar varios modelos en estrella o copo de nieve que comparten dimensiones.
Los sistemas ROLAP suelen tener una arquitectura cliente-servidor de tres niveles: nivel de bases de datos, nivel aplicación y nivel de presentación. El nivel de aplicación ejecuta las consultas multidimensionales de los usuarios. El análisis multidimensional, en los sistemas ROLAP, requiere un mapeo entre los metadatos OLAP y el modelo físico de la base de datos. Los sistemas MOLAP son similares pero sólo tienen dos niveles porque los dos primeros niveles están dentro de la base de datos multidimensional.
En toda arquitectura OLAP, es necesaria herramienta que permita analizar la información de forma ágil, intuitiva y eficiente. Esta herramienta se denomina Visor OLAP. Los visores OLAP pueden realizar las varias operaciones de navegación: roll-up, que consiste en subir un nivel de agregación en las consultas; drill-down, que es la operación inversa; drill-across, que permite moverse dentro de la misma jerarquía intercalando una dimensión; roll-across, que es la operación contraria a la anterior; slice, que extrae una porción del cubo multidimensional correspondiente a un único valor de una dimensión dada; dice, que define un sub-cubo especificando rangos de valores en una o más dimensiones; pivot, que reorienta el cubo intercambiando filas por columnas, y drill-through, que permite apreciar los datos en su máximo nivel de detalle.
El lenguaje MDX es el lenguaje más utilizado para realizar consultas OLAP. Es relativamente similar al SQL. Análogamente a lo que sucede con las tablas y columnas en el leguaje SQL, las dimensiones, jerarquías y niveles son fundamentales en el lenguaje MDX. Además de navegar y consultar información, este lenguaje permite definir nuevas métricas y miembros que pueden ser útiles para el análisis de datos, mediante la definición de miembros agregados.
Las bases de datos espaciales facilitan el análisis espacial y el mantenimiento de los datos. Las más importantes son los Sistemas de Información Geográfica. Utilizan el álgebra ROSE (RObust Spatial Extension), que utiliza una malla de espacio discretizado.