LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
E:\Ricardo Topicos\Ultimo Corte\Tareas 16 Abril
1. TAREAS:
1.- Realizar y gestionar cubos OLAP en Microsoft Excel.
INSTRUCCIONES PARA TRABAJAR CON CUBOS OLAP DESDE EXCEL
Podemos utilizar una base de datos de Microsoft ® ACCESS. En los cubos OLAP podemos
trabajar indistintamente con tablas o con consultas.
Lo primero que tenemos que hacer es establecer la conexión con la base de datos; escogemos,
del menú Datos, Obtener datos externos, Nueva consulta de base de datos:
Escogemos MS Access Database:
Cuando aceptemos nos aparecerá un menú para seleccionar nuestra base de datos:
Una vez seleccionada, aparecerá un asistente que nos indica que tablas o consultas queremos
seleccionar:
2. El asistente nos permite filtrar datos y ordenar según diversos criterios, recomiendo que lo
hagáis directamente en la consulta de la base de datos.
Después de estas opciones es el momento de elegir que queremos un cubo OLAP.
Nos saldrá el mensaje de las ventajas de usar cubos OLAP:
Y comenzará el asistente para cubos OLAP. El primer paso es indicar sobre qué campos
queremos totalizar:
3. El siguiente paso es escoger las dimensiones con las que queremos trabajar
Los campos que reconoce como fecha los descompone además en
Trimestres, Mes o Semana, y Fecha (Día).A continuación hay que escoger si guarda toda la
información del cubo OLAP, el nombre del archivo y el directorio donde lo queremos guardar.
4. Una vez le indiquemos donde lo queremos guardar lo calculará y se abrirá el asistente para
tablas y gráficos dinámicos, aceptamos:
En EXCEL aparece una barra de herramientas de tablas dinámicas:
5. A partir de aquí podemos escoger los campos: los arrastramos y los dejamos caer en la
posición que nosotros queramos. Los calculados serán en la parte central, las fechas es
recomendable situarlos en los campos de columna, y en los de fila podemos situar los
conceptos de gasto, y en los de página los proyectos.
Para pasar al gráfico tan solo tenemos que hacer un clic sobre el icono de gráfico de la barra de
herramientas de tabla dinámica. A partir de este momento funciona igual que una tabla
dinámica.
http://www.banespyme.org/imagesWeb/ArchivoMultimedia/Documentacion/3/cubosolapexc
el.pdf
2.- Consultar la diferencia entre Holap, Molap y Rolap.
Sistemas HOLAP
Los sistemas de soporte a la decisión usando tecnologías de Data Warehouse, se llaman
sistemas OLAP (siglas de On Line Analytical Processing (OLAP). En general, estos sistemas OLAP
deben:
• Soportar requerimientos complejos de análisis
• Analizar datos desde diferentes perspectivas
• Soportar análisis complejos contra un volumen ingente de datos
La funcionalidad de los sistemas OLAP se caracteriza por ser un análisis multidimensional de
datos corporativos, que soportan los análisis del usuario y unas posibilidades de navegación,
seleccionando la información a obtener.
Normalmente este tipo de selecciones se ve reflejada en la visualización de la estructura
multidimensional, en unos campos de selección que nos permitan elegir el nivel de agregación
(jerarquía) de la dimensión, y/o la elección de un dato en concreto, la visualización de los
atributos del sujeto, frente a una(s) dimensiones en modo tabla, pudiendo con ello realizar,
entre otras las siguientes acciones:
Rotar (Swap): 		alterar las filas por columnas (permutar dos dimensiones de análisis)
Bajar (Down): 		bajar el nivel de visualización en las filas a una jerarquía inferior
Detallar (Drilldown): 	informar para una fila en concreto, de datos a un nivel inferior
Expandir (Expand): 	id. anterior sin perder la información a nivel superior para éste y el
resto de los valores
Colapsar (Collapse): 	operación inversa de la anterior.
Para ampliar el glosario sobre exploraciones en análisis OLAP, recomendamos la visita a la
página Internet:en donde se describen en torno a 50 términos relacionados con las
posibilidades de navegación que permiten este tipo de análisis.
Existen dos arquitecturas diferentes para los sistemas OLAP: OLAP multidimensional (MOLAP)
y OLAP relacionales (ROLAP).
Sistemas MOLAP
La arquitectura MOLAP usa unas bases de datos multidimensionales para proporcionar el
análisis, su principal premisa es que el OLAP está mejor implantado almacenando los datos
6. multidimensionalmente. Por el contrario, la arquitectura ROLAP cree que las capacidades OLAP
están perfectamente implantadas sobre bases de datos relacionales
Un sistema MOLAP usa una base de datos propietaria multidimensional, en la que la
información se almacena multidimensionalmente, para ser visualizada
multidimensionalmente.
El sistema MOLAP utiliza una arquitectura de dos niveles: La bases de datos
multidimensionales y el motor analítico.
• La base de datos multidimensional es la encargada del manejo, acceso y obtención del
dato.
• El nivel de aplicación es el responsable de la ejecución de los requerimientos OLAP. El
nivel de presentación se integra con el de aplicación y proporciona un interfaz a través
del cual los usuarios finales visualizan los análisis OLAP. Una arquitectura
cliente/servidor permite a varios usuarios acceder a la misma base de datos
multidimensional.
La información procedente de los sistemas operacionales, se carga en el sistema MOLAP,
mediante una serie de rutinas batch. Una vez cargado el dato elemental en la Base de Datos
multidimensional (MDDB), se realizan una serie de cálculos en batch, para calcular los datos
agregados, a través de las dimensiones de negocio, rellenando la estructura MDDB.Tras
rellenar esta estructura, se generan unos índices y algoritmos de tablas hash para mejorar los
tiempos de accesos a las consultas.
Una vez que el proceso de compilación se ha acabado, la MDDB está lista para su uso. Los
usuarios solicitan informes a través del interface, y la lógica de aplicación de la MDDB obtiene
el dato.
La arquitectura MOLAP requiere unos cálculos intensivos de compilación. Lee de datos
precompilados, y tiene capacidades limitadas de crear agregaciones dinámicamente o de hallar
ratios que no se hayan precalculados y almacenados previamente.
Sistemas ROLAP
La arquitectura ROLAP, accede a los datos almacenados en un Data Warehouse para
proporcionar los análisis OLAP. La premisa de los sistemas ROLAP es que las capacidades OLAP
se soportan mejor contra las bases de datos relacionales.
7. El sistema ROLAP utiliza una arquitectura de tres niveles. La base de datos relacional maneja
los requerimientos de almacenamiento de datos, y el motor ROLAP proporciona la
funcionalidad analítica.
• El nivel de base de datos usa bases de datos relacionales para el manejo, acceso y
obtención del dato.
• El nivel de aplicación es el motor que ejecuta las consultas multidimensionales de los
usuarios.
• El motor ROLAP se integra con niveles de presentación, a través de los cuales los
usuarios realizan los análisis OLAP.
Después de que el modelo de datos para el Data Warehouse se ha definido, los datos se cargan
desde el sistema operacional. Se ejecutan rutinas de bases de datos para agregar el dato, si así
es requerido por el modelos de datos.
Se crean entonces los índices para optimizar los tiempos de acceso a las consultas.
Los usuarios finales ejecutan sus análisis multidimensionales, a través del motor ROLAP, que
transforma dinámicamente sus consultas a consultas SQL. Se ejecutan estas consultas SQL en
las bases de datos relacionales, y sus resultados se relacionan mediante tablas cruzadas y
conjuntos multidimensionales para devolver los resultados a los usuarios.
La arquitectura ROLAP es capaz de usar datos precalculados si estos están disponibles, o de
generar dinámicamente los resultados desde los datos elementales si es preciso. Esta
arquitectura accede directamente a los datos del Data Warehouse, y soporta técnicas de
optimización de accesos para acelerar las consultas. Estas optimizaciones son, entre otras,
particionado de los datos a nivel de aplicación, soporte a la desnormalización y joins múltiples.
ROLAP vs. MOLAP (Comparativa)
Cuando se comparan las dos arquitecturas, se pueden realizar las siguientes observaciones:
• El ROLAP delega la negociación entre tiempo de respuesta y el proceso batch al diseño
del sistema. Mientras, el MOLAP, suele requerir que sus bases de datos se
precompilen para conseguir un rendimiento aceptable en las consultas,
incrementando, por tanto los requerimientos batch.
• Los sistemas con alta volatilidad de los datos (aquellos en los que cambian las reglas de
agregación y consolidación), requieren una arquitectura que pueda realizar esta
8. consolidación ad-hoc. Los sistemas ROLAP soportan bien esta consolidación dinámica,
mientras que los MOLAP están más orientados hacia consolidaciones batch.
• Los ROLAP pueden crecer hasta un gran número de dimensiones, mientras que los
MOLAP generalmente son adecuados para diez o menos dimensiones.
• Los ROLAP soportan análisis OLAP contra grandes volúmenes de datos elementales,
mientras que los MOLAP se comportan razonablemente en volúmenes más reducidos
(menos de 5 Gb)
Por ello, y resumiendo, el ROLAP es una arquitectura flexible y general, que crece para dar
soporte a amplios requerimientos OLAP. El MOLAP es una solución particular, adecuada para
soluciones departamentales con unos volúmenes de información y número de dimensiones
más modestos.
http://www.csi.map.es/csi/silice/DW2251.html
3.- Consultar, Leer, Entender el lenguaje MDX para la realización de
consultas de cubos en algún gestor.
Que es MDX
MDX es un acrónimo de Multidimensional Query eXpression. Este lenguaje fue creado en
1997 por Microsoft. No es un lenguaje estándar sin embargo diferentes fabricantes de
herramientas OLAP (entre ellos Mondrian) lo han adoptado como estandard de hecho.
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 través del cual podemos explotar la
información que reside en los motores OLAP y satisfacer las consultas analíticas de las que
hemos hablado en el capítulo introductorio.
Es un lenguaje de consulta más cercano al lenguaje natural que el SQL sin embargo tiene
funciones y formulas que lo hacen muy potente para el análisis de datos.
La principal diferencia del mundo OLAP respecto al mundo relacional radica en que las
estructuras dimensionales están 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 analogía con los
árboles genealógicos.
Estas estructuras jerarquizadas son especialmente útiles para poder visualizar los datos de
forma comparada a nivel temporal pero de las dimensiones temporales y sus particularidades
ya hablaremos en otro capítulo.
Principales aspectos de la sintaxis de MDX
El lenguaje MDX permite realizar consultas con una sintaxis parecida al lenguaje natural.
Para ejemplificar las consultas y la sintaxis trabajaremos con un ejemplo de un cubo.
Imaginamos un cubo de ventas con las siguientes dimensiones:
Dimensión temporal de las ventas con niveles de año y mes.
Dimensión productos vendidos con niveles de familia de productos y productos.
Dimensión de medidas con importe de las ventas y unidades vendidas
9. Mi primera consulta
Si queremos obtener por ejemplo el importe de las ventas para el año 2008 para la familia de
productos lácteos la consulta sería la siguiente:
SELECT
{ [Medidas].[importe ventas]}
on columns,
{ [Tiempo].[2008] }
on rows
FROM [cubo ventas]
WHERE ([Familia].[lacteos])
Analogía con SQL
Analizando la consulta de ejemplo podemos establecer una analogía con el SQL para explicar
mejor la estructura del lenguaje. En primer lugar tenemos la estructura idéntica general de la
consulta con las cláusulas SELECT... FROM... WHERE que en MDX se usa idénticamente al SQL
especificando en el select un conjunto de elementos que queremos visualizar, en el from
indicamos el cubo del que queremos sacar la información y en el where las condiciones de
filtrado.
Una de las particularidades del MDX es que la información la devuelve en forma tabular
normalmente y debe ser procesada. Si os fijáis en la cláusula select se usa la clausula on
columns. Esta cláusula 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 jerárquicas 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 dimensión tenemos comandos
como:
[Familia].[lácteos].CurrentMember : Permite acceder al miembro actual
[Familia].[lácteos].Children : Permite acceder a los hijos de la familia de los lácteos
[Familia].[lácteos].prevMember: Permite acceder al miembro anterior de la dimensión.
Por otro lado existen diferentes funciones que permiten realizar cálculos 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 número 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 mínimo el especificado( S).
Except (conjunto_a,conjunto_b): Obtener la diferencia entre dos conjuntos.
Finalmente comentar que en MDX también están implementadas muchas funciones
matemáticas y estadísticas que permiten enriquecer los análisis. Encontramos entre muchas
otras funciones como:
AVG
COUNT
VARIANCE
VARIANCEn y todas las funciones trigonométricas (Seno, Coseno, tangente,etc...)
10. PeriodsToDate
Funcionalidad: Devuelve un conjunto de miembros del mismo nivel que un miembro
determinado, empezando por el primer miembro del mismo nivel y acabando con el miembro
en cuestión, de acuerdo con la restricción del nivel especificado en la dimensión de tiempo.
Sintaxis: <Conjunto> PeriodsToDate(<Nivel>, <Miembro>)
Ejemplo: PeriodsToDate([Tiempo].[Mensual].[Semestre],[Tiempo].[Mensual].[Mes].[Agosto
2009]
El siguiente ejemplo devolveria el conjunto de meses desde agosto de 2009 hasta el final del
semestre es decir julio y agosto de 2009.
Existen funciones especiales para simplificar el uso de PeriodsToDate en sus versiones más
comunes y son las siguientes:
WTD(<Miembro>): Devuelve los miembros de la misma semana del miembro
específicado.
MTD(<Miembro>): Devuelve los miembros del mismo mes del miembro
específicado.
QTY(<Miembro>): Devuelve los miembros del mismo trimestre del miembro
específicado.
YTD(<Miembro>): Devuelve los miembros del mismo año del miembro
específicado.
ParallelPeriod
Funcionalidad: Devuelve un miembro de un periodo anterior en la misma posición relativa que
el miembro especificado.
Sintaxis: <Miembro> ParallelPeriod (<Nivel>, <Expresión numérica>, <Miembro>)
Ejemplo: ParallelPeriod ([Tiempo].[Mes].[Semestre], 3,
[Tiempo].[Mensual].[Mes].[Junio 2009]) El siguiente ejemplo devolvería diciembre 2007 que es
el equivalente al último mes del semestre retrocediendo 3 semestres en el tiempo.
Hay más funciones de tiempo pero con estas sólo pretendo ilustrar el concepto y la utilidad de
estas funciones. Cada uno deberá buscar la función que necesite para realizar sus cálculos y
funcionalidades en sus cubos.
http://www.enricbiosca.es/arxius/Tutorial_MDX.pdf
11. Instituto Tecnológico Superior
De Lerdo
Materia:
Tópicos Avanzados de Base de Datos
TAREAS:
• Consultar como se realiza y gestiona los cubos OLAP en Microsoft Excel.
• Diferencias de Holap, Rolap y Molap
• Consultar, Leer y Entender el lenguaje MDX para la realización de consultas en
algún gestor que lo permita.
• Estructura o modelo de cubos.
Alumna:
Dora Yoscelina Marrufo Ramírez
Carrera:
Lic. De Informática
Titular de la materia:
Ing. Ricardo Bustamante
21de Abril del 2010
Cd. Lerdo Durango