Вы находитесь на странице: 1из 11

Introduccin a MDX

MultiDimensional eXpressions. Es el lenguaje que se usa para hacer consultas a cubos OLAP [http://en.wikipedia.org/wiki/Olap]
No existe ningn estandard todava. Y ya que lo invent Microsoft [http://technet.microsoft.com/es-es/library/ms145506.aspx] pues se
toma como base el trabajo que hicieron ellos. Yo para estos primeros pasos voy a usar el cubo mondrian [http://mondrian.pentaho.org]
que tengo a mano [http://juantxu.net:8080/jjmondrian/testpage.jsp?query=mondrian].
Para poder trabajar con su contenido aqu tienes el estructura:
cubo_hipotecas
Dimensiones:
tiempo
jerarquas:
tiempo
niveles:
anyo
trimestre
mes
tipo_finca
jerarquas:
tipo_finca
niveles:
super tipo
tipo
Medidas:
cantidad
importe
si es una relacin de fincas hipotecadas. y?.
Estructura de una consulta MDX
MDX se parece a SQL. El esquema de la consulta es parecido. Si mediante un select SQL obtienes una tabla unidimensional con datos
que se extienden a lo largo. Mediante MDX obtenemos una tabla bidimensional con datos que se extienden a lo largo y ancho.
La consulta bsica de MDX es el select.
SELECT
algo ON ROWS
algo ON COLUMNS
FROM
cubo
WHERE
condicion
Un ejemplo de una consulta bsica es el siguiente:
Que puedes probar tu mismo aqui [http://juantxu.net:8080/jjmondrian/testpage.jsp?query=mondrian] (apretando al botn de MDX)!!!!.
Conceptos Bsicos
A continuacin un poco de teora basada en esta [http://technet.microsoft.com/es-es/library/ms144884.aspx] pgina
Dimensin
Una dimensin es una coleccin de atributos que se relacionan mediante una jerarqua y que se relacionan a su vez con los hechos de
la dimensin de medidas.
Atributo o Nivel de dimensin
Un atributo de dimensin est enlazado a una o ms columnas de una tabla de dimensiones y contiene miembros. Un atributo de
dimensin puede contener nombres de clientes, de meses o de productos.
Miembro
Un miembro es un valor de un atributo de dimensin, incluida la dimensin de medidas. Un miembro de una jerarqua puede ser un nivel
hoja, un miembro primario, un miembro de datos o un miembro (All).
Medida
Una medida es un valor de una tabla de hechos; tambin se denomina hecho. Por lo general, tambin se hace referencia a un valor de
la dimensin de medidas como miembro. Las medidas suelen ser valores numricos, pero tambin pueden ser valores de cadena.
Dimensin de medidas
Una dimensin de medidas es la dimensin que contiene todas las medidas de un cubo. Una dimensin de medidas en un tipo especial
de dimensin en la que los miembros se suelen agregar (generalmente mediante la suma o el recuento) de acuerdo con el miembro
actual de cada atributo de dimensin con el cual existe una medida especificada.
Grupo de medida
Un grupo de medida es una coleccin de medidas relacionadas de un cubo. Un cubo puede contener varios grupos de medida.
Miembro (All)
El miembro (All) es el valor calculado de todos los miembros de una jerarqua de atributo o una jerarqua definida por el usuario.
Miembro calculado
Un miembro calculado es un miembro de dimensin que se define y calcula en tiempo de consulta. Un miembro calculado puede definirse
en una consulta de usuario o en el script de clculo MDX; se almacena en el servidor. Un miembro calculado corresponde a las filas de
la tabla de dimensiones de la dimensin en la que se definen.
Miembro de datos
Un miembro de datos es un miembro secundario asociado a un miembro primario en una jerarqua de elementos primarios y secundarios.
Un miembro de datos contiene el valor de datos de su miembro primario, en lugar del valor agregado de los miembros secundarios del
elemento primario.
Miembro primario
Un miembro primario es un miembro de una jerarqua de elementos primarios y secundarios que contiene el valor agregado de sus
elementos secundarios.
Miembro hoja
Un miembro hoja es un miembro de una jerarqua que no posee miembros secundarios.
Miembro secundario
Un miembro secundario es un miembro de una jerarqua situado por debajo del nivel superior.
Atributo clave
El atributo clave de una dimensin de base de datos es el atributo al cual estn vinculados (directa o indirectamente) todos los
atributos que no son clave de la dimensin. El atributo clave tambin suele ser el atributo de granularidad.
Atributo de granularidad
El atributo de una dimensin de cubo que vincula una dimensin con los hechos de un grupo de medida de la dimensin de medidas. Si
el atributo de granularidad y el atributo clave son atributos diferentes, los atributos que no son clave deben vincularse, directa o
indirectamente, con el atributo de granularidad. Dentro de un cubo, el atributo de granularidad define la granularidad de una dimensin.
El nivel mnimo.
Jerarqua de atributo
Una jerarqua de atributo es una jerarqua de miembros de atributo que contiene los siguientes niveles:
Un nivel hoja que contiene cada miembro de atributo distintivo; cada miembro del nivel hoja tambin se conoce como miembro
hoja.
Niveles intermedios si la jerarqua de atributo es una jerarqua de elementos primarios y secundarios.
Un nivel (All) opcional que contiene el valor agregado de los miembros hoja de la jerarqua de atributo; el miembro del nivel (All)
tambin se conoce como miembro (All).
Tuplas
Una tupla identifica de forma exclusiva a una celda segn una combinacin de miembros. Una tupla puede estar compuesta de uno o
mas miembros de la dimensin medidas aunque solo uno de cada una de las dems dimensiones del cubo.
select [Measures].[cantidad] ON COLUMNS,
[tiempo].[mes].members ON ROWS
from [cubo_hipotecas]
Ejemplos:
Especificacion Regla Sintaxis
Miembro nico / Dimensin nica Listar nica dimensin [Dimension].[Member]
Miembros Mltiples / Dimensines Mltiples Los miembros se envuelven con parentesis () ([Dim1].[Miembro], [Dim2].[Miembro], [Dim3].[Miembro])
Conjuntos o Sets
Un conjunto o Set es un conjunto ordenado de tuplas con la misma dimensionalidad. Se utilizan llaves {} para designar un conjunto de
tuplas.
select
-- primer conjunto de medidas
{[Measures].[cantidad], [Measures].[importe]}
ON COLUMNS,
{
( -- tupla multi-dimensional
[tiempo.tiempo].[todo], [tipo_finca].[todo]
)

} ON ROWS
from [cubo_hipotecas]
Eje
Un eje (axis) es un grupo, o coleccin, de miembros de una o ms dimensiones, organizado como tuplas.
select {[Measures].[cantidad], [Measures].[importe]} ON COLUMNS,
-- se puede tambien especificar un miembro concreto
{[tiempo.tiempo].[2006]} ON ROWS
from [cubo_hipotecas]
Operadores
Los operadores bsicos son las llaves {} , las comas , y los dos puntos :
Llaves
Ls llaves sirven para distinguir conjuntos ( sets ) y son necesarias para envolver tuplas siempre que las listemos explcitamente.
MDX usa las llaves para empaquetar un conjunto de componentes como ya hemos visto anteriormente.
select
{ -- conjunto 1
[Measures].[cantidad], [Measures].[importe]
} ON COLUMNS,
-- tupla no necesario
[tiempo.tiempo].[2006]

ON ROWS
from [cubo_hipotecas]
fijate que si quitasemos las llaves del conjunto de las columnas la consulta fallara ya que MDX no sabra reconocer el conjunto.
Comas
Las comas (,) sirve para listar, una tras otra, un conjunto de tuplas. Las comas han sido ampliamente usadas a lo largo de este
tutorial.
Dos puntos
Los dos puntos (:) indican a MDX un rango. El caso mas sencillo de ver es el del tiempo:
select {[Measures].[cantidad], [Measures].[importe]} ON COLUMNS,
-- esto recoger desde el 2006 hasta el 2008 ambos incluidos
{[tiempo.tiempo].[todo].[2006] : [tiempo.tiempo].[todo].[2008]} ON ROWS
from [cubo_hipotecas]
Probar las consultas
Todas las consultas estan basadas en este cubo:
Cubo: cubo_hipotecas
Dimensiones
Dimensin : tiempo
Jerarqua:
Nivel : anyo
Nivel : trimestre
Nivel : mes
Dimensin : tipo_finca
Jerarqua:
Nivel : super tipo
Nivel : tipo
Medida : cantidad
Medida : importe
Todas las consultas se pueden porbar en esta url [http://juantxu.net:8080/jjmondrian/testpage.jsp?query=mondrian].
Si picas en el botn de MDX:
Obtendrs un cuadro de texto donde ejecutar todas las consultas de esta pgina:
Por ltimo pedirte un poco de paciencia. Ya que trabajas con el Sper Ordenador : Apolonia [http://en.juantxu.net/info]
Volver al ndice de MDX

olap/mdx.txt ltima modificacin: 2014/01/18 14:03 (editor externo)
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Noncommercial-
Share Alike 3.0 Unported [http://creativecommons.org/licenses/by-nc-sa/3.0/]