# Cub OLAP

Un cub OLAP, Online Analytical Processing o processament Analític en Línia, terme encunyat per Edgar Frank Codd d'EF Codd & Associates, encarregat per Arbor Programari (actualment Hyperion Solutions), és una base de dades multidimensional, en la qual l'emmagatzematge físic de les dades es fa en un vector multidimensional. Els cubs OLAP es poden considerar com una ampliació de les dues dimensions d'un full de càlcul.
Sovint es pensava que tot el que els usuaris poden voler d'un sistema d'informació es podria fer d'una base de dades relacional. No obstant això, Codd va ser un dels precursors de les bases de dades relacionals, per la qual cosa les seves opinions van ser i són respectades.

## Introducció

La proposta de Codd consistia a realitzar una disposició de les dades en vectors per permetre una anàlisi ràpida. Aquests vectors són anomenats cubs. Disposar les dades en cubs evita una limitació de les bases de dades relacionals, que no són molt adequades per a l'anàlisi instantània de grans quantitats de dades. Les bases de dades relacionals són més adequades per registrar dades provinents de transaccions (conegut com a OLTP o processament de transaccions en línia). Encara que hi ha moltes eines de generació d'informes per a bases de dades relacionals, aquestes són lentes quan s'ha d'explorar tota la base de dades.
Per exemple, una empresa podria analitzar algunes dades financeres per producte, per període, per ciutat, per tipus d'ingressos i de despeses, i mitjançant la comparació de les dades reals amb un pressupost. Aquests paràmetres en funció dels quals s'analitzen les dades es coneixen com a dimensions. Per accedir a les dades només és necessari indexar-les a partir dels valors de les dimensions o eixos.
El fet d'emmagatzemar físicament les dades d'aquesta manera té els seus pros i contres. Per exemple, en aquestes bases de dades les consultes de selecció són molt ràpides (de fet, gairebé instantànies). Però un dels problemes més grans d'aquesta forma d'emmagatzematge és que una vegada poblada la base de dades no pot canviar-se'n l'estructura. Per a això seria necessari redissenyar el cub.
En un sistema OLAP hi pot haver més de tres dimensions, per la qual cosa els cubs OLAP també reben el nom de hipercubs. Les eines comercials OLAP tenen diferents mètodes de creació i vinculació d'aquests cubs o hipercubs (vegeu Tipus d'OLAP a l'article sobre OLAP).

## Un exemple

Un analista financer podria voler veure les dades de diferents maneres, per exemple, visualitzant-les en funció de totes les ciutats (que podrien figurar en l'eix d'abscisses) i tots els productes (en l'eix d'ordenades), i això podria ser per a un període determinat, per a la versió i el tipus de despeses. Després d'haver vist les dades d'aquesta forma particular l'analista podria voler veure aleshores les dades d'una altra manera i poder fer-ho de forma immediata. El cub podria adoptar una nova orientació perquè les dades apareguin ara en funció dels períodes i el tipus de cost. A causa que aquesta reorientació implica resumir una quantitat molt gran de dades, la nova vista de les dades s'ha de generar de manera eficient per no malgastar el temps de l'analista, és a dir, en qüestió de segons, en lloc de les hores que serien necessàries en una base de dades relacional convencional.

## Dimensions i jerarquies

Cadascuna de les dimensions d'un cub OLAP es pot resumir mitjançant una jerarquia. Per exemple, si es considera una escala (o dimensió) temporal "Maig de 2005" es pot incloure en "Segon trimestre de 2005", que, al seu torn, s'inclou a "Any 2005". De la mateixa manera, una altra dimensió d'un cub que reflecteixi una situació geogràfica, les ciutats es poden incloure en regions, països o regions mundials; els productes podrien classificar-se per categories, i les partides de despeses podrien agrupar-se en tipus de despeses. En canvi, l'analista podria començar en un nivell molt resumit, com per exemple el total de la diferència entre els resultats reals i el pressupostat, per posteriorment descendir en el cub (en les seves jerarquies) per poder observar amb un major nivell de detall que li permeti descobrir en el cub els llocs en els quals s'ha produït aquesta diferència, segons els productes i períodes.

## Dispersió en cubs OLAP

Vincular o enllaçar cubs és un mecanisme per superar la dispersió. Aquesta es produeix quan no s'emplenen totes les cel·les del cub amb dades (escassetat de dades o valors nuls). El temps de processament és tan valuós que s'ha d'adoptar la manera més efectiva de sumar zeros (els valors nuls o no existents). Per exemple, els ingressos poden estar disponibles per a cada client i producte, però les dades dels costos poden no estar disponibles amb aquesta quantitat d'anàlisi. En lloc de crear un cub dispers, de vegades és millor crear un altre cub diferent, però vinculat, en el qual un subconjunt de les dades es poden analitzar amb gran detall. La vinculació assegura que les dades dels dos cubs mantinguin una coherència.

## Accés i càlcul d'un cub OLAP
### Definició tècnica

En teoria de bases de dades, un cub OLAP és una representació abstracta de la projecció d'una relació d'un sistema de gestió de bases de dades relacionals (RDBMS). Donada una relació d'ordre N, es considera la possibilitat d'una projecció que disposa dels camps X, I, Z com a clau de la relació i de W com a atribut residual. Categoritzant això com una funció s'ha de:
    W: (X,I,Z) → W
Els atributs X, I, Z es corresponen amb els eixos del cub, mentre que el valor de W retornat per cada tripleta (X, I, Z) es correspon amb la dada o element que s'emplena en cada cel·la del cub.
A causa que els dispositius de sortida (monitors, impressores, ...) només compten amb dues dimensions, no poden caracteritzar fàcilment quatre dimensions, és més pràctic projectar "llesques" o seccions de les dades del cub (es diu projectar en el sentit clàssic vector-analític de reducció dimensional, no en el sentit de SQL, encara que els dos conceptes són clarament anàlegs), tals com l'expressió:
    W: (X,I) → W
Encara que no es conservi la clau del cub (en faltar el paràmetre Z), pot tenir algun significat semàntic, no obstant això, també pot ser que una secció de la representació funcional amb tres paràmetres per a un determinat valor de Z també resulti d'interès.
La motivació que hi ha darrere d'OLAP torna a mostrar de nou el paradigma dels informes de taules creuades dels sistema de gestió de base de dades dels 80. Es pot desitjar una visualització a l'estil d'un full de càlcul, on els valors de X es troben en la fila $1, els valors d'I apareixen en la columna $A, i els valors de W: (X,I) → W es troben en les cel·les individuals a partir de la cel·la $B2 i des d'aquí, cap avall i cap a la dreta. Si bé es pot utilitzar el Llenguatge de Manipulació de Dades (o DML) de SQL per mostrar les tuplas (X,I,W), aquest format de sortida no és tan desitjable com l'alternativa de taules creuades. El primer mètode requereix que es faci una cerca lineal per a cada parell (X,I) dau, per determinar el corresponent valor de W, mentre que el segon permet realitzar una cerca més convenient que permet localitzar el valor W en la intersecció de la columna X apropiada amb la fila I corresponent.
S'ha desenvolupat el llenguatge MDX (MultiDimensional eXpressions o expressions multidimensionales) per poder expressar problemes OLAP de forma fàcil. Encara que és possible traduir algunes de les seves sentències a SQL tradicional, sovint calen expressions SQL poc clares fins i tot per a les sentències més simples del MDX. Aquest llenguatge ha estat acollit per la gran majoria dels proveïdors de OLAP i s'ha convertit en norma de fet per a aquests sistemes.

## Referències

* ↑ «Just What Are Cubes Anyway? (A Painless Introduction to OLAP Technology)». Msdn.microsoft.com. [Consulta: 25 juliol 2012].

## Vegeu també

* Mineria de dades