OLAP Guida all'installazione e all'utilizzo

Viste del DB2 OLAP Server

Quando si crea un'applicazione OLAP e un database multidimensionale, DB2 OLAP Server cataloga la nuova applicazione e il nuovo database e crea un insieme di tabelle relazionali indicate come schema a stella. Inoltre, DB2 OLAP Server crea e gestisce un numero di viste che semplificano l'accesso dell'applicazione SQL ai dati multidimensionali. Utilizzando queste viste, è possibile utilizzare le applicazioni comuni e gli strumenti di interrogazioni standard per accedere ai dati multidimensionali. Alcune applicazioni vengono programmate per usufruire dei dati memorizzati nello schema a stella creato da DB2 OLAP Server.

Il seguente elenco illustra l'insieme completo di viste gestite da DB2 OLAP Server:

Schema di denominazione delle viste

DB2 OLAP Server memorizza tutte le tabelle e le viste nello schema nome utente dove nome utente è l'ID utente assegnato a DB2 OLAP Server. Per gli esempi di SQL in questo capitolo viene utilizzato il nome schema OLAPSERV.

Tutti i nomi vista sono in lettere maiuscole. Non racchiudere i nomi vista tra virgolette. DB2 OLAP Server crea i nomi vista e li memorizza nelle viste di catalogazione. Le applicazioni SQL possono eseguire interrogazioni sui nomi vista dalle viste di catalogazione. La Figura 9 illustra le viste principali di DB2 OLAP Server.

Figura 9. Schema del DB2 OLAP Server


Figure views not displayed.

Utilizzo della vista di catalogazione cubo

Esiste una vista di catalogazione cubo che il DB2 OLAP Server utilizza nello schema nome utente. Tale vista contiene una riga per ciascun cubo. Utilizzare questa vista per ottenere dettagli relativi a tutte le applicazioni OLAP e ai cubi memorizzati in uno schema. La vista di catalogazione cubo cataloga tutte le applicazioni OLAP e i database gestiti da DB2 OLAP Server.

Nome della vista di catalogazione cubo

Il nome della vista catalogazione cubo è CUBECATALOGVIEW. Come tutte le altre viste, anche questa è inserita all'interno dello schema assegnato a DB2 OLAP Server.

Contenuto della vista di catalogazione cubo

La Tabella 14 indica le colonne nella vista di catalogazione cubo.

Tabella 14. Contenuto della vista di catalogazione cubo
Nome Tipo Dimensioni massime Contenuto
App name VarChar 8 Il nome dell'applicazione OLAP contenente il cubo relazionale identificato con Nome cubo.
CubeName VarChar 8 Il nome del database multidimensionale.
CubeViewName VarChar 27 Il nome completo della vista cubo per il database multidimensionale.
FactViewName VarChar 27 Il nome completo della vista fact per il database multidimensionale.
StarViewName VarChar 27 Il nome completo della vista a stella per il database multidimensionale.
AliasIdViewName VarChar 27 Il nome per esteso della vista ID nome alternativo per il database multidimensionale.
LROViewName VarChar 27 Il nome completo della vista LRO per il database multidimensionale.

Interrogazioni della vista di catalogazione cubo tramite istruzioni SQL

Utilizzare questa istruzione SQL per ottenere un elenco di applicazioni OLAP:

SELECT DISTINCT APPNAME FROM OLAPSERV.CUBECATALOGVIEW 

Utilizzare questa istruzione SQL per ottenere un elenco di database multidimensionali nell'applicazione Sample:

SELECT CUBENAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample'

Utilizzare questa istruzione SQL per ottenere i nomi vista per il database multidimensionale Basic nell'applicazione Sample:

SELECT CUBEVIEWNAME,FACTVIEWNAME,STARVIEWNAME,ALIASIDVIEWNAME,LROVIEWNAME 
  FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample' AND CUBENAME='Basic'

Esecuzione di interrogazioni delle informazioni di dimensioni e di membro

La vista cubo e le viste dimensioni contengono informazioni relative alle dimensioni e ai membri in un cubo relazionale. Esiste una vista cubo per ciascun cubo relazionale e una vista dimensioni per ciascuna dimensione all'interno di un cubo relazionale. Queste viste possono essere utilizzate per richiedere molti degli attributi assegnati alle dimensioni e ai membri nel profilo OLAP.

Utilizzo della vista cubo

Esiste una vista cubo per ciascun cubo relazionale gestito dal DB2 OLAP Server. La vista cubo contiene una riga per ciascuna dimensione nel cubo relazionale. Utilizzare questa vista per ottenere informazioni relative alle dimensioni di un cubo.

Nome vista cubo

Il nome vista cubo deriva dalla colonna CubeViewName della vista di catalogazione cubo.

Contenuto della vista cubo

La Tabella 15 indica le colonne contenute nella vista cubo.

Tabella 15. Contenuto della vista cubo
Nome Tipo Dimensioni Contenuto
DimensionName VarChar 80 Nome dimensioni OLAP
RelDimensionName VarChar 18 Il nome dimensioni di DB2 OLAP Server. Questa colonna contiene il nome di una colonna nella vista a stella o nella vista fact corrispondente a questa dimensione. Il nome dimensione Rel è un nome unico paragonato a tutti gli altri nomi dimensione e nomi membri nelle dimensioni dell'ancora di tale cubo relazionale. Il nome dimensione Rel è una versione modificata del nome dimensioni. Le modifiche che potrebbe essere necessario apportare al nome dimensioni sono:
  • Limitare la lunghezza del nome.
  • Rimuovere o sostituire i caratteri speciali consentiti nei nomi multidimensionali ma non nei nomi relazionali.
  • Modificare i caratteri per creare un unico nome nello spazio nome del cubo relazionale dopo aver apportato tutte le modifiche.
DimensionType Breve numero intero
I valori per questa colonna sono:
  • 0 = dimensione densa
  • 1 = dimensione rada
  • 2 = dimensione dell'ancora
DimensionTag Breve numero intero
I valori per questa colonna sono:
  • 0x00 per nessuna tag
  • 0x01 per Account
  • 0x02 per Tempo
  • 0x04 per Paese
  • 0x08 per Partizione valuta
DimensionId Numero intero
L'ID dimensioni nel profilo OLAP.
DimensionViewName VarChar 27 Il nome per esteso della vista dimensione per questa dimensione.
UDAViewName VarChar 27 Il nome per esteso della vista UDA (User Defined Attribute) per questa dimensione.
RATViewName VarChar 27 Il nome per esteso della vista degli attributi relazionali per questa dimensione.

Esecuzione di interrogazioni della vista cubo tramite le istruzioni SQL

Per accedere ai dati nella vista cubo, l'applicazione deve innanzitutto determinare il nome della vista cubo dalla vista di catalogazione cubo.

Ad esempio, per trovare il nome della vista cubo del database nell'applicazione Sample, interrogare il database utilizzando la seguente istruzione SQL:

SELECT CUBEVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='Sample' AND CUBENAME='Basic'

Il risultato di questa interrogazione é:

OLAPSERV.SAMPBASI_CUBEVIEW

Per elencare i nomi delle dimensioni e i nomi della vista dimensioni corrispondenti per il database Basic:

SELECT DIMENSIONNAME.DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW

Per elencare i nomi delle dimensioni delle dimensioni dense del database:

SELECT DIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE = 0

Per determinare i nomi delle dimensioni non ancora utilizzati per denominare le colonne nella vista a stella:

SELECT RELDIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE <> 2  

Per visualizzare il nome della vista attributi relazionali della dimensione Product:

SELECT RATVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Product'

Nome della vista dimensioni

Il nome vista dimensioni deriva dalla colonna DimensionViewName della vista cubo.

Contenuto della vista dimensioni

La Tabella 16 indica le colonne contenute in una vista dimensioni.

Tabella 16. Contenuto di una vista dimensioni
Nome Tipo Dimensioni Contenuto
MemberName VarChar 80 Il nome del membro.
RelMemberName VarChar 18 Solo le dimensioni dell'ancora. Il nome del membro del DB2 OLAP Server. Tale nome è utilizzato per denominare le colonne nelle viste fact e a stella corrispondenti ai membri delle dimensioni dell'ancora. E' un nome unico paragonato a tutti i nomi membro della dimensione dell'ancora e ai nomi delle dimensioni della non ancora di questo cubo relazionale. Si tratta di una versione modificata del Nome membro. Le modifiche che potrebbe essere necessario apportare al nome membro sono:
  • Limitare la lunghezza del nome.
  • Rimuovere o sostituire i caratteri speciali consentiti nei nomi multidimensionali ma non nei nomi relazionali.
  • Modificare i caratteri per creare un nome unico nello spazio nome di un cubo relazionale, dopo aver apportato le precedenti modifiche
RelMemberID Numero intero Nessuno L'ID di DB2 OLAP Server per questo membro. Questo ID viene utilizzato per collegare la tabella dimensioni alla tabella fact.
ParentRelId Numero intero Nessuno L'ID relazionale di primo grado del membro nel profilo OLAP. Il valore è NULL per il membro di livello superiore.
LeftSiblingRelId Numero intero Nessuno L'ID relazionale di pari livello posto a sinistra del membro nel profilo OLAP. Questo valore è NULL per i membri che non hanno un pari livello posto a sinistra.
Status Numero intero Nessuno Lo status di questo membro può contenere una combinazione di:
  • 0x0000= Riservato
  • 0x0001= per un membro impostato su 'Never share'
  • 0x0002= per un membro impostato su 'Label only'
  • 0x0004 = per un membro impostato su 'Shared member'
  • 0x0008 = Riservato
  • 0x0010 = per un membro di primo grado con un singolo di secondo grado o un membro di primo grado con un unico di secondo grado con un operatore di aggregazione. (Tutti gli altri di secondo grado hanno l'operatore 'no-op').
  • 0x0020 = per un membro impostato su 'Dynamic Calc And Store'
  • 0x0040= per un membro impostato su 'Dynamic Calc'
  • 0x0080= Riservato
  • 0x0100= Riservato
  • 0x02000= per un membro di primo grado con uno dei suoi membri di secondo grado condiviso
  • 0x04000= per un membro regolare
CalcEquation Long VarChar (workstation); VarChar (OS/390) 32700 (workstation); 250 (OS/390) L'equazione di calcolo predefinita per i membri di calcolo. Da notare che l'equazione di calcolo predefinita non è l'equazione utilizzata per calcolare il valore del membro qualora venisse specificato un calcolo diverso nello script di calcolo utilizzato per calcolare il cubo relazionale.
UnarySymbol Breve numero intero Nessuno Il simbolo di calcolo unario:
  • 0 = Aggiungere
  • 1 = Sottrarre
  • 2 = Moltiplicare
  • 3 = Dividere
  • 4 = Percentuale
  • 5 = Nessuna operazione
AccountsType Numero intero Nessuno Questo attributo viene utilizzato solo per la dimensione account. Può contenere una combinazione dei seguenti valori:
  • 0x0000 = Do not mask on zero or missing value
  • 0x4000 = Mask on missing value
  • 0x8000 = Mask on zero value
  • 0x0001 = Balance First
  • 0x0002 = Balance Last
  • 0x0004 = Percent
  • 0x0008 = Average
  • 0x0010 = Unit
  • 0x0020 = Details only
  • 0x0040 = Expense
NoCurrencyConv Breve numero intero Nessuno Impostazione conversione valuta:
  • 0x0000 = Utilizzare conversione valuta
  • 0x0001 = No currency conversion
Nome membro valuta VarChar 80 Il nome di un membro dal cubo valuta associato a questo membro.
GenerationNumber Numero intero Nessuno Il numero di generazione per questo membro.
GenerationName VarChar 80 Il nome di generazione per questo membro.
LevelNumber Numero intero
Il numero di livello per questo membro.
LevelName VarChar 80 Il nome del livello per questo membro.
nome tabella alternativo Esiste una colonna di nomi alternativi per ciascuna tabella di nomi alternativi OLAP utilizzata nel profilo. VarChar 80 Il nome alternativo per questo membro in una tabella nomi alternativi associata OLAP. Se non viene fornito alcun nome alternativo per un membro, questo valore è nullo. Consultare Utilizzo delle viste ID nomi alternativi.
nome colonna attributi relazionali Esiste una colonna di attributi relazionali per ogni UDA RatCol. Il tipo di dati specificato quando è stata creata la colonna attributi relazionali. La dimensione specificata quando è stata creata la colonna attributi relazionali. Il valore dell'attributi relazionali per questo membro.

Esecuzione di interrogazione di un nome dimensione tramite le istruzioni SQL

Per accedere ai dati in una vista dimensioni, l'applicazione deve innanzitutto determinare il nome della vista dimensioni dalla vista cubo.

Ad esempio, per trovare il nome della vista dimensioni per la dimensione "Time" nel database, si interroga il database utilizzando la seguente istruzione SQL:

SELECT DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Time'

Il risultato dell'interrogazione può essere il seguente: OLAPSERV.SAMPBASID_TIME

Elenco dei nomi membro tramite SQL

Per elencare i nomi membro per la dimensione Time:

SELECT MEMBERNAME FROM OLAPSERV.SAMPBASID_TIME

Viste fact e a stella

Il DB2 OLAP Server crea e conserva due viste della tabella fact dello schema a stella:

Vista fact
Esiste una vista fact per ciascun cubo gestito dal DB2 OLAP Server. La vista fact è una vista semplice della tabella fact. La tabella fact contiene i dati multidimensionali. Utilizzare questa vista per accedere direttamente ai dati multidimensionali dalle applicazioni SQL che gestiscono i collegamenti richiesti alle viste dimensione.

Vista a stella
Esiste una vista a stella per ciascun cubo gestito dal DB2 OLAP Server. La vista a stella collega la tabella fact ad ogni vista dimensioni contenuta nello schema a stella. Questa vista fornisce un accesso semplice di SQL ai dati multidimensionali ed è ideale per interrogazioni mirate per l'utilizzo, a scopo generale, degli strumenti di interrogazione che non gestiscono i collegamenti richiesti per le viste dimensioni.

Dal momento che una tabella fact contiene valori con diversi livelli di aggregazione, assicurarsi che l'insieme di membri selezionati in ciascuna dimensione abbia lo stesso livello di aggregazione quando si scrive una applicazione SQL per l'aggregazione. In caso contrario, le aggregazioni saranno errate. Un modo di rispettare questa richiesta è di includere una restrizione sul campo numero generazione o sul campo numero livello nella tabella dimensioni.

La tabella fact creata dal DB2 OLAP Server ha una colonna per ciascuna dimensione non ancora e una colonna per ciascun membro della dimensione dell'ancora che memorizza i dati. La tabella fact corrispondente al profilo utilizzato nella Figura 9 ha le seguenti colonne:

Le colonne dimensioni memorizzano gli ID membro che fanno riferimento ai membri di ciascuna dimensione non ancora. E' possibile mettere in corrispondenza gli ID membro con nomi membro utilizzando le viste dimensioni. Le colonne membro dell'ancora hanno memorizzato i valori dei dati attuali. E' possibile mettere in corrispondenza i membri dimensione dell'ancora con le colonne della vista fact utilizzando la vista dimensione per la dimensione dell'ancora.

Il DB2 OLAP Server utilizza nomi interni per le colonne della tabella fact e ID interni per i membri. La vista fact sostituisce i nomi della colonna interna con i nomi dimensioni e membro, ma non mette in corrispondenza gli ID membro della colonna dimensioni con i nomi membro. La vista a stella sostituisce i nomi della colonna interna con i nomi membro e dimensioni e mette in corrispondenza gli ID membro della colonna dimensioni con i nomi membro collegando la tabella fact alle tabelle dimensioni.

Se si accede alla vista fact o a stella dalle applicazioni SQL e si eseguono interrogazioni mirate, la corrispondenza più naturale si ottiene specificando la dimensione account come dimensione dell'ancora, sebbene sia possibile specificare come dimensione dell'ancora qualsiasi dimensione densa.

Nome vista fact

Il nome vista fact deriva dalla colonna FactViewName della vista di catalogazione cubo.

Contenuto vista fact

La vista fact contiene un numero variabile di colonne di due tipi:

Colonne dimensioni
Una colonna per ciascuna dimensione non di ancora

Colonne membro dell'ancora
Una colonna per ciascun membro dimensione dell'ancora che memorizza i dati

La Tabella 17 indica i dettagli relativi ai due tipi di colonne nella vista fact.

Tabella 17. Contenuto della vista fact
Nome Tipo Contenuto
Per le colonne dimensioni:

Il nome breve della dimensione viene preso dalla colonna RelDimensionName della vista cubo.

Numero intero ID membro Rel del membro di questa dimensione.
Per colonne membro dell'ancora:

Il nome membro del membro deriva dalla colonna RelMemberName della vista dimensione della dimensione dell'ancora.

Double I valori dei dati per questa cella.

Esecuzione di interrogazioni della vista fact in UNIX e Windows NT tramite istruzioni SQL

Per accedere ai dati in una vista fact, l'applicazione deve innanzitutto determinare il nome della vista fact dalla vista di catalogazione cubo.

Ad esempio, per trovare il nome della vista fact per il database Basic nell'applicazione Sample, si deve utilizzare la seguente istruzione:

SELECT FACTVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='Sample' AND CUBENAME='Basic'

Il risultato dell'interrogazione é:

OLAPSERV.SAMPBASI_FACTVIEW

Se l'applicazione conserva traccia dei valori RelMemberID per i membri, è possibile eseguire l'interrogazione della vista fact direttamente. Ad esempio, per selezionare i valori dei dati per il prodotto (Product) con RelMemberId 3 (100-20), in market con RelMemberId 2 (East), tempo (Time) con RelMemberID 4 (Q3):

SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_FACTVIEW 
  WHERE PRODUCT=3 AND MARKET=2 AND TIME=4

Più comunemente, le interrogazioni eseguite per la vista fact includono collegamenti con le viste dimensione. Una interrogazione che utilizza i collegamenti equivalente all'interrogazione precedente é:

SELECT PROFIT,SALES,COGS
    FROM OLAPSERV.SAMPBASI_FACTVIEW,
         OLAPSERV.SAMPBASID_TIME,
         OLAPSERV.SAMPBASID_MARKET,
         OLAPSERV.SAMPBASID_PRODUCT,
   WHERE OLAPSERV.SAMPBASID_TIME.MEMBERNAME='Q3'
     AND OLAPSERV.SAMPBASID_PRODUCT.MEMBERNAME='100-20'
     AND OLAPSERV.SAMPBASID_MARKET.MEMBERNAME='East'
     AND OLAPSERV.SAMPBASI_FACTVIEW.TIME=OLAPSERV.SAMPBASID_TIME.RELMEMBERID
     AND OLAPSERV.SAMPBASI_FACTVIEW.PRODUCT=OLAPSERV.SAMPBASID_PRODUCT.RELMEMBERID
     AND OLAPSERV.SAMPBASI_FACTVIEW.MARKET=OLAPSERV.SAMPBASID_MARKET.RELMEMBERID

Nome vista a stella

Il nome vista a stella deriva dalla colonna StarViewName della vista di catalogazione cubo.

Contenuto della vista a stella

La vista a stella contiene un numero variabile di colonne di due tipi:

Colonne dimensioni
Una colonna per ciascuna dimensione non di ancora

Colonne membro dell'ancora
Una colonna per ciascun membro dimensione dell'ancora

La Tabella 18 indica i dettagli relativi ai due tipi di colonne nella vista a stella.


Tabella 18. Contenuto della vista a stella
Nome Tipo Contenuto
Per le colonne dimensioni:

Il nome breve della dimensione viene preso dalla colonna RelDimensionName della vista cubo.

VarChar(80) Nome membro.
Per colonne membro dell'ancora:

Il nome membro del membro deriva dalla colonna RelMemberName della vista dimensione della dimensione dell'ancora.

Double I valori dei dati per questa cella.

Esecuzione di interrogazioni della vista a stella in UNIX e Windows NT tramite istruzioni SQL

Per accedere ai dati nella vista a stella, l'applicazione deve innanzitutto determinare il nome della vista a stella dalla vista di catalogazione cubo.

Ad esempio, per trovare il nome della vista a stella per il database Basic nell'applicazione Sample, si deve utilizzare la seguente istruzione:

SELECT STARVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='SAMPLE' and CUBENAME='BASIC'

Il risultato di questa interrogazione può essere il seguente: OLAPSERV.SAMPBASI_STARVIEW

Per selezionare i valori dei dati per il prodotto (Product) 100-10, nel market centrale,(Central) durante il primo trimestre:

SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE PRODUCT='100-10' AND MARKET='Central' AND TIME='Q1'

Per selezionare tutti i prodotti che hanno perso profitti nella regione centrale, durante il secondo quarto:

SELECT PRODUCT,PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET='Central' AND TIME='Q2' AND PROFIT < 0

Non tutti i membri della vista a stella sono allo stesso livello gerarchico; creare quindi le interrogazioni attentamente quando si utilizza SQL per eseguire le operazioni di aggregazione. I membri selezionati in una dimensione devono essere allo stesso livello per evitare aggregazioni doppie.

Ad esempio, la seguente istruzione SQL indica i membri selezionati a diversi livelli nella vista a stella. Alcune vendite vengono conteggiate due volte poiché sono stati aggregati due livelli di somma.

SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET IN ('Central','Illinois') AND
      PRODUCT='100' AND
      TIME IN ('Q1','1996')
 

Presupponendo che Illinois sia parte della regione Central e che Q1 sia parte del 1996, questa interrogazione è visualizzata nelle figure PROFIT sia nel livello state e region che in quello quarter e year sommati. Dal momento che la region Central include già i dati Illinois, i dati Illinois e Q1 sono calcolati due volte nella somma. Se si desidera correggere l'SQL affinché sommi le vendite per i due stati nella regione centrale durante due diversi trimestri, è possibile utilizzare il seguente esempio:

SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET IN ('Indiana','Illinois') AND
      PRODUCT='100' AND
      TIME IN ('Q1','Q2')
 


[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]