Cubo OLAP

struttura per la memorizzazione di dati

Un Cubo OLAP è una struttura per la memorizzazione di dati che permette di eseguire analisi in tempi rapidi, superando un limite dei database relazionali.

I database relazionali non sono adatti ad elaborazioni istantanee e alla visualizzazione di una grande mole di dati. Al contrario, sono adatti all'elaborazione di record derivanti dall'esecuzione di transazioni note come OLTP.

Il Cubo OLAP può essere immaginato come un'estensione del foglio di lavoro a due dimensioni. Il cubo OLAP ha da 3 a un arbitrario numero di caratterstiche o dimensioni di analisi.

Ad esempio, una società può essere interessata ad analizzare alcuni dati finanziari per prodotto, per periodo di tempo, per città per tipologie di ricavo di costo, e alla comparazione di questi dati con una previsione di budget. Questi metodi di analisi dei dati sono noti come dimensioni. Poiché in un cubo OLAP possono esserci in generale più di tre dimensioni, il termine più appropriato è quello di ipercubo.

Funzionalità

Il Cubo OLAP è composto da dati numerici, detti misure, che sono categorizzate all'interno di dimensioni.

Lo schema dei metadati del Cubo OLAP può essere creato a partire da uno schema a stella oppure da un insieme di tabelle di un database relazionale. Le misure sono ricavate dai singoli record presenti nella tabella dei fatti dello schema a stella, e le dimensioni sono dedotte dalle dimensioni delle singole tabelle.

Ad esempio i dati finanziari possono essere aggregati per prodotto, località, data, tipologia di costo e ricavo, dato preventivo/consuntivo. Lo schema a stella avrà una tabella per ogni dimensione di analisi, contenente i valori ammissibili, il dominio della variabile: una tabella con tutti i prodotti, una con tutte le tipologie di costo o ricavo, etc.

Le dimensioni di analisi sono tra loro indipendenti, per cui in una database relazionale le tabelle relative alle dimensioni di analisi sono collegate da relazioni molti-a-molti. Il dato numerico è un attributo della relazione fra queste tabelle. Il database relazionale, se le cardinalità dele elazioni sono molti-a-molti, è riconducibile sempre a uno schema a stella.

Nello schema a stella alle tabelle relative alle dimensioni di analisi, se ne aggiunge una centrale, detta dei fatti. Il cubo OLAP è comnposto da una sola sola tabella di n + 1 colonne, dove ogni numero è identificato da un valore per ogni dimensione di analisi.

Nell'esempio, il dato di costo/ricavo in euro sarà identificato dal codice di un prodotto, dal nome di una località, da una data, da una tipologia, da una sigla che indica se è preventivo o consuntivo. Il cubo OLAP sarà un enorme tabella con 5 dimensioni di analisi + 1 colonna per la memorizzazione del dato numerico.

Chiaramente, il database relazionale può contenere più di un dato numerico e il passaggio a uno schema a stella può essere non banale.

Gerarchia

Ciascuno degli elementi di una certa dimensione in può essere categorie stato all'interno di una gerarchia. Una gerarchia è una serie di relazioni padre e figlio, dove tipicamente è l'elemento padre rappresenta il consolidamento degli elementi che sono suoi figli. Gli elementi padre possono essere a loro volta aggregati come figli di un secondo altro padre.

Ad esempio, maggio 2005 può appartenere alla gerarchia del Secondo Quadrimestre 2005, che a sua volta è contenuta nella gerarchia dell'Anno 2005.

Le gerarchie consentono di disporre l'c una retta artistica a differenti livelli di dettaglio, e una navigazione tramite drill-down all'interno delle singole caratteristiche di

Tabelle pivot

La tabella pivot è la reportistica che risulta da una query OLAP elaborata su dati organizzati all'interno di un ipercubo OLAP.

La sorgente dei dati della tabella pivot è una sola, la tabella dei fatti che contiene il dato numerico presente nella tabella pivot e le dimensioni di analisi che lo identificano.

Definizione tecnica

Per la teoria delle basi di dati, un cubo OLAP è una rappresentazione astratta della proiezione di un database relazionale. Data un relazione di cardinalità N, si consideri la proiezione delle variabili X, Ye Z come chiave primaria, e di W come attributo residuo. Si caratterizzino questi come una funzione

W : (X,Y,Z) → W,

dove gli attributi X, Y, e Z corrispondono agli assi del cubo, mentre l'attributo W all'interno della tripla ( X, Y, Z ) corrisponde ai singoli dati che popolano ciascuna cella del cubo.

Poichè un output bidimensionale (riga e colonna) non può rappresentare un vettore a tre dimensioni, è più pratico operare una riduzione delle dimensioni del cubo, e limitarsi a proiettare dei "tagli" del cubo, fissato come costanti uno o più valori di almeno delle sue dimensioni, o di un numero di dimensioni pari a n-2. Per cui, si ottiene:

W : (X,Y) → W,

che elimina una delle chiavi primarie, ma mantiene la stessa informazione e significatività, sebbene fornisca la rappresentazione per un dato valore della variabile Z.