Está en la página 1de 10

INTELIGENCIA DE

NEGOCIOS
Investigacin MDX

Ingeniera en informtica

Alex Gadiel Cortes Garcia


Ingeniera en Informtica
No. Control: 12920296
X semestres

Tuesday, 23 de May de 2017


Introduccin

MDX es un acrnimo de Multidimensional Query Xpression. Este lenguaje fue creado


en 1997 por Microsoft. No es un lenguaje estndar sin embargo diferentes
fabricantes de herramientas OLAP lo han adoptado como estndar. El MDX es en los
sistemas OLAP el equivalente al SQL en los sistemas gestores de bases de datos
relacionales. Eso significa que es el lenguaje a travs del cual podemos explotar la
informacin que reside en los motores OLAP.
Es un lenguaje de consulta ms cercano al lenguaje natural que el SQL sin embargo
tiene funciones y frmulas que lo hacen muy potente para el anlisis de datos. La
principal diferencia del mundo OLAP respecto al mundo relacional radica en que las
estructuras dimensionales estn jerarquizadas y se representan en forma de rbol y
por lo tanto existen relaciones entre los diferentes miembros de las dimensiones.
Este hecho hace que el lenguaje MDX disponga de funciones y atributos especiales
que permiten referenciar los diferentes elementos de las dimensiones con
expresiones como miembros-hijo , miembros-primo, miembros-padre,etc... haciendo
una analoga con los rboles genealgicos. Estas estructuras jerarquizadas son
especialmente tiles para poder visualizar los datos de forma comparada a nivel
temporal.
Tipos de datos MDX

Cuando usa extensiones de minera de datos (DMX) para definir un nuevo modelo de
minera de datos, se debe proporcionar un tipo de datos para cada columna en el modelo. El
tipo de datos describe los datos que usar el algoritmo de minera de datos al generar el
modelo.
Los tipos de datos dependen del algoritmo. Cada algoritmo determina los tipos de datos
admitidos y su uso. Por ejemplo, los siguientes tipos de datos:

Texto
Long
Boolean
Doble
Date

Convenciones de sintaxis de MDX

Convencin Uso

cursiva Indica argumentos proporcionados por el usuario de la sintaxis de MDX.

| (Barra Separa los elementos de sintaxis con corchetes o llaves. Solo se puede
vertical) seleccionar uno de los elementos.

[ ] (Corchetes) Indica los elementos de sintaxis opcionales. No escriba los corchetes.

[,] ...n Indica que el elemento anterior se puede repetir muchas veces. En
algunos casos, los elementos se separan mediante comas.

<>>::= Indica el nombre de un bloque de sintaxis. Esta convencin se utiliza


para agrupar y asignar etiquetas a porciones de sintaxis largas o una
unidad de sintaxis que se puede utilizar en ms de un lugar dentro de
una instruccin. Cada ubicacin en la que se puede utilizar el bloque de
sintaxis se indica con la etiqueta incluida entre corchetes angulares: <>
</> >.
Consultas en MDX

El lenguaje MDX permite realizar consultas con una sintaxis parecida al lenguaje
natural. Para ejemplificar las consultas y la sintaxis imaginemos un cubo de ventas
con las siguientes dimensiones:

Dimensin temporal de las ventas con niveles de ao y mes.


Dimensin productos vendidos con niveles de familia de productos y
productos.
Dimensin de medidas con importe de las ventas y unidades vendidas.

Si queremos obtener por ejemplo el importe de las ventas para el ao 2008 para la
familia de productos lcteos la consulta seria la siguiente:

SELECT { [Medidas].[importe ventas]}


on columns, { [Tiempo].[2008] }
on rows FROM [cubo ventas]
WHERE ([Familia].[lacteos])

Analizando la consulta de ejemplo podemos establecer una analoga con SQL para
explicar mejor la estructura del lenguaje. En primer lugar, tenemos la estructura
idntica general de la consulta con las clusulas SELECT ... FROM ... WHERE que en
MDX se usa idnticamente al SQL especificando en el SELECT un conjunto de
elementos que queremos visualizar, en el FROM indicamos el cubo del que
queremos sacar la informacin y en el WHERE las condiciones de filtrado. Una de las
particularidades del MDX es que la informacin la devuelve en forma tabular
normalmente y debe ser procesada.
En la clusula SELECT se usa la clusula on columns. Esta clusula sirve para
separar los elementos que queremos visualizar en las filas de los que queremos en
las columnas. En la consulta de ejemplo veremos el importe en las columnas y el
tiempo en las filas. Los { } son para permitir listas de elementos en las selecciones
y los [] encapsulan elementos de las dimensiones y niveles.

Principales funciones, opciones y elementos MDX

A nivel de funcionalidades y potencia a la hora de realizar consultas el MDX es


potente como el SQL aunque su objetivo est orientado a temas de comparaciones,
relaciones jerrquicas entre elementos,etc... Una de las funcionalidades que
distinguen al MDX es el acceder a los elementos utilizando estructura de rbol. As
para un Determinado nivel de una dimensin tenemos comandos como:
[Familia].[lcteos].CurrentMember : Permite acceder al miembro actual
[Familia].[lcteos].Children : Permite acceder a los hijos de la familia de los lcteos
[Familia].[lcteos].prevMember: Permite acceder al miembro anterior de la
dimensin
Por otro lado, existen diferentes funciones que permiten realizar clculos y
complementar las consultas como por ejemplo:
CrossJoin(conjunto_a,conjunto_b): Obtiene el producto cartesiano de dos conjuntos
de datos.
BottomCount(conjunto_datos,N): Obtener un nmero determinado de elementos de
un conjunto, empezando por abajo, opcionalmente ordenado.
BottomSum(conjunto_datos,N,S): Obtener de un conjunto ordenado los N elementos
cuyo total es como mnimo el especificado( S).
Except(conjunto_a,conjunto_b): Obtener la diferencia entre dos conjuntos.
Finalmente comentar que en MDX tambin estn implementadas muchas funciones
matemticas y estadsticas que permiten enriquecer los anlisis. Encontramos entre
muchas otras funciones como: AVG COUNT VARIANCE VARIANCEn y todas las
funciones trigonomtricas (Seno,Coseno,tangente,etc...)

Instrucciones para scripting de MDX (MDX)

Tema Descripcin

CALCULAT Calcula un subcubo y opcionalmente determina el orden de resolucin de las


E dimensiones incluidas en el subcubo.

CASE Permite obtener condicionalmente valores especficos de varias


comparaciones.

EXISTING Exige que un conjunto especificado se evale en el contexto actual.

FREEZE Bloquea los valores de celda de un subcubo especificado a sus valores


actuales.

IF Ejecuta una instruccin si la condicin es true.

SCOPE Limita el mbito de las instrucciones MDX especificadas a un subcubo


especificado.
Instrucciones de definicin de datos de MDX (MDX)

Tema Descripcin

ALTER CUBE Altera la estructura de un cubo especificado.

CREATE ACTION Crea una accin que puede asociarse con un objeto subordinado,
cubo, dimensin, o jerarqua.

CREATE CELL Crea un clculo que evala una expresin multidimensional (MDX)
CALCULATION para un conjunto especificado de tuplas en un cubo.

CREATE GLOBAL Crea y rellena un cubo guardado de forma local basado en un subcubo
CUBE de un cubo del servidor. No es necesaria una conexin al servidor para
conectarse al cubo almacenado de forma local.

CREATE MEMBER Crea un miembro calculado.

CREATE SESSION Crea y rellena un cubo disponible para todas las consultas de la misma
CUBE sesin basado en cubos del servidor.

CREATE SET Crea un conjunto con nombre para un cubo especfico.

CREATE Redefine el espacio del cubo de un cubo o subcubo especificado a un


SUBCUBE subcubo especificado.

DROP ACTION Elimina una accin especfica de un cubo especificado.

DROP CELL Quita el clculo de celda especificado.


CALCULATION

DROP MEMBER Quita un miembro calculado.

DROP SET Quita un conjunto con nombre.

DROP SUBCUBE Quita un subcubo especificado y revierte la definicin del cubo o


subcubo definido previamente con el nombre especificado.

REFRESH CUBE Actualiza la cach de cliente para un cubo.

Instrucciones de manipulacin de datos de MDX (MDX)


Tema Descripcin

CALL Ejecuta un procedimiento almacenado que no devuelve ningn valor en


el mbito actual u, opcionalmente, en un cubo especificado.

CLEAR Quita todos los clculos del cubo y devuelve el cubo al paso de clculo
CALCULATIONS 0.

SELECT Recupera datos de un cubo especificado.

UPDATE CUBE Actualiza el valor de una celda hoja o de una celda no hoja especificada
en un cubo, asignando opcionalmente el valor de una celda no hoja
especificada a travs de las celdas hoja dependientes.

Funciones

Existen varias funciones en lenguaje DMX. Las funciones expanden los resultados de una
consulta de prediccin a fin de incluir informacin que permita describir la prediccin con
mayor nivel de detalle. Las funciones tambin brindan mayor control sobre la manera en la
que se devuelven los resultados de la prediccin. En la tabla siguiente se proporcionan
vnculos a recursos para ayudarle a entender cmo utilizar las funciones en DMX.

Funcin Descripcin

BottomCount (DMX) Devuelve una tabla que contiene las ltimas filas del elemento
n de la expresin de tabla, en orden decreciente, segn una
expresin de rango.

BottomPercent (DMX) Devuelve una tabla que contiene el nmero ms pequeo de


filas del nivel ms bajo que cumplen con una expresin de
porcentaje especificada, en orden ascendente de rango en
funcin de una expresin de rango.

BottomSum (DMX) Devuelve una tabla que contiene el nmero ms pequeo de


filas del nivel ms bajo que cumplen con una expresin de
suma especificada, en orden ascendente de rango en funcin
de una expresin de rango.

Clster (DMX) Devuelve el clster que tiene la mayor probabilidad de


contener el caso de entrada.

ClusterProbability (DMX) Devuelve la probabilidad de que el caso de entrada


pertenezca al clster.
Funcin Descripcin

Existe (DMX) Devuelve true si el conjunto de resultados que devuelve la


instruccin SELECT especificada contiene al menos una fila.

IsDescendant (DMX) Indica si el nodo actual desciende del nodo especificado.

IsInNode (DMX) Indica si el nodo especificado contiene el caso.

IsTestCase (DMX) Indica si un caso pertenece al conjunto de casos de prueba.

IsTrainingCase (DMX) Indica si un caso pertenece al conjunto de casos de


entrenamiento.

Lag (DMX) Devuelve el intervalo entre la fecha del caso actual y la ltima
fecha que figura en los datos.

Predecir (DMX) Realiza una prediccin sobre una columna especfica.

PredictAdjustedProbabilit Devuelve la probabilidad ajustada de la columna de prediccin


y (DMX) especificada.

PredictAssociation (DMX) Predice los miembros de asociaciones en una columna.

PredictCaseLikelihood Devuelve la probabilidad de que un caso de entrada se ajuste


(DMX) dentro del modelo existente. Esta funcin slo puede utilizarse
con modelos de clsteres.

PredictHistogram (DMX) Devuelve una tabla que representa el histograma de una


columna especificada.

PredictNodeId (DMX) Devuelve el valor de NodeID de un caso seleccionado.

PredictProbability (DMX) Devuelve la probabilidad de la columna especificada.

PredictSequence (DMX) Predice los siguientes valores de una secuencia.

PredictStdev (DMX) Recupera el valor de desviacin estndar de una columna


especificada.

PredictSupport (DMX) Devuelve el valor admitido de la columna.

PredictTimeSeries (DMX) Predice los valores futuros de una serie temporal.

PredictVariance (DMX) Devuelve el valor de varianza de la columna especificada.

RangeMax (DMX) Devuelve el valor ms alto del depsito predicho que fue
Funcin Descripcin

descubierto para una columna de datos discretos especificada.

RangeMid (DMX) Devuelve el valor medio del depsito predicho que fue
descubierto para una columna de datos discretos especificada.

RangeMin (DMX) Devuelve el valor ms bajo del depsito predicho que fue
descubierto para una columna de datos discretos especificada.

StructureColumn (DMX) Devuelve el valor de la columna de estructura de minera de


datos de la tabla especificada.

TopCount (DMX) Devuelve una tabla que contiene un nmero especificado de


filas del nivel ms alto, en orden descendente de rango en
funcin de una expresin de rango.

TopPercent (DMX) Devuelve una tabla que contiene el nmero ms pequeo de


filas del nivel ms alto que cumplen con una expresin de
porcentaje especificada, en orden descendente de rango en
funcin de una expresin de rango.

TopSum (DMX) Devuelve una tabla que contiene el nmero ms pequeo de


filas del nivel ms alto que cumplen con una expresin de
suma especificada, en orden descendente de rango en funcin
de una expresin de rango.
Conclusin

En la presente investigacin hemos presentado a modo de introduccin cmo realizar


una Consulta MDX, los tipos de datos, convenciones y las diferentes funciones que
componen su estructura y su sintaxis.

Despus de lo cual podemos darnos cuenta que lo nico que tienen en


comn MDX y SQL es su fin: obtener datos, por lo dems, la diferencia es total, desde
la estructura de las sentencias o comandos (sintaxis), hasta la concepcin o enfoque
que debemos tener en mente en uno y en otro lenguaje. Mientras que SQL fue
diseado para pensar slo en filas y columnas, en MDX las filas y columnas hacen
referencia a las dos primeras dimensiones de un modelo o cubo de datos.

Un conocimiento avanzado del Lenguaje MDX nos permitir poder Disear y Desarrollar
Cubos de muy completos, as como poder explotar la informacin de nuestros Cubos de
una forma muy eficiente. Por ello, es muy recomendable para cualquier Consultor de
Analysis Services, disponer de un nivel avanzado del Lenguaje MDX.

Fuentes de informacin

Tutorial MDX autor: Enric Biosca www.enricbiosca.es


MDX solutions with Microsoft SQL Server Analysis Services 2005 and Hyperion
Essbase, George Spofford and others, Editorial Wiley
www.mondrian.pentaho.org
http://en.wikipedia.org/wiki/Multidimensional_Expressions
http://msdn.microsoft.com/es-es/library/ms145595.aspx
http://www.guillesql.es/Articulos/MDX_Miembros_Calculados_Conjuntos_con_Nombre
s.aspx
http://www.dataprix.com/manual-mdx/ti/introduccion-consulta-lenguaje-
multidimensional-mdx
https://anibalgoicochea.com/2012/08/23/referencias-sobre-mdx/

También podría gustarte