MultiDimensional eXpressions

MultiDimensional eXpressions è un linguaggio informatico usato nelle interrogazioni di tipo OLAP - On-Line Analytical Processing per scorrere dimensionalmente il Cubo OLAP del Data Mart in un Data Warehouse.

Sintatticamente somiglia al linguaggio SQL(linguaggio adottato per le interrogazioni in database relazionali), ma ha una semantica diversa. In alcuni aspetti risulta essere verboso e ridondante, tuttavia è possibile omettere nelle espressioni regolari alcune parti significative, la cui interpretazione è basata su regole di default.

MDX non è un linguaggio di interrogazione in senso stretto: permette di calcolare, a partire da un cubo, un dataset che ha una struttura simile a un cubo.

Dimensioni e attributi dimensionali si chiamano livelli. I valori delle dimensioni e degli attributi dimensionali si dicono membri (per denotare un membro le [ ] sono facoltative).

[STORE].[ALL].[Italia].[EmiliaRomagna].[RE] : percorso completo
[STORE].[RE] : Se il membro "RE" è univoco nella dimensione STORE
[CITY].[RE] : Se il livello CITY è univoco in tutte le dimensioni del cubo

Una tupla è una ennupla di membri denotati tra parentesi ( ), la cui tupla è costituita da un membro per cui la sua dimensione individua un evento primario (in altri termini è una tupla corrispondente al pattern primario).

([data].[05/05/2015], [prodotto].[brilli], [store][DiCasa])

Un evento secondario è individuato da una tupla corrispondente a un pattern secondario (nell'esempio sottostante corrispondente al pattern: {Data, Prodotto}):

([data].[05/05/2015], [prodotto].[brilli])

Esempio query MDX

[modifica | modifica wikitesto]

L'esempio corrente mostra l'uso dell'istruzione SELECT. Questa query ritorna il risultato contenuto tra gli importi del membro "Vendite Negozio" contenuti nel 2002 e 2003 nello stato della California.

SELECT
   { [Measures].[Vendite Negozio] } ON COLUMNS,
   { [Data].[2002], [Data].[2003] } ON ROWS
FROM Vendite
WHERE ( [Store].[USA].[CA] )

Differenze con un linguaggio per interrogazione di un database relazionale

[modifica | modifica wikitesto]
  • La clausula WHERE non prevede operatori logici espliciti, l'unico operatore è l'AND definito ponendo in virgola più membri(Esempio: { [Date].[2002], [Date].[2003] } ON ROWS)
  • Le condizioni possono essere specificate alternativamente alla clausula where, direttamente nella select
  • Specifichiamo lo scorrimento multidimensionale con "ON COLUMNS" e "ON ROWS".
Controllo di autoritàLCCN (ENsh2002008553 · J9U (ENHE987007558928105171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica