Você está na página 1de 50

Universidade Federal de Pernambuco

Centro de Informtica
Graduao em Cincia da Computao

MDX+: Uma Linguagem de Consulta


Multidimensional com Anlise Horizontal, Vertical
e Estatstica
Trabalho de Graduao

Thiago de Moraes Brayner

Recife, Dezembro de 2008

Universidade Federal de Pernambuco


Centro de Informtica
Graduao em Cincia da Computao

MDX+: Uma Linguagem de Consulta


Multidimensional com Anlise Horizontal, Vertical
e Estatstica
Trabalho de Graduao
Thiago de Moraes Brayner

Trabalho apresentado ao Programa de


Graduao em Cincia da Computao
do Centro de Informtica da
Universidade Federal de Pernambuco
como requisito parcial para a obteno
do grau de Bacharel em Cincia da
Computao.

Orientadora: Dr Valria Cesrio Times


Co-Orientador: Paulo Caetano da Silva
Recife, Dezembro de 2008

Agradecimentos

Agradeo a todos os meus colegas da turma 2004.2 que nesses quatro anos e
meio de curso estiveram comigo a batalha da graduao.
Agradeo a minha famlia pelo apoio incondicional, em especial minha me pela
fora e luta.
Professora Valria Times, que me orientou e incentivou no desenvolvimento
deste trabalho.
A Paulo Caetano da Silva pela ajuda e contribuio neste trabalho.

Resumo
No mundo moderno e globalizado em que vivemos, torna-se necessrio a
utilizao de ferramentas que proporcionem aos gerentes e diretores executivos,
uma melhor anlise sobre os dados das empresas e grandes corporaes.
Ferramentas OLAP possibilitam diversas formas de anlise dos dados, extraindo
informaes relevantes para a tomada de deciso estratgica. Porm, no
contemplam certos tipos de anlise amplamente utilizados, como anlise por meio
de ndices, anlise vertical, horizontal e percentil. Este trabalho prope uma
extenso da linguagem MDX, que possibilite esses tipos de anlise.
Palavras-chave: Sistemas de Suporte Deciso, MDX, anlise por meio
de ndices, anlise vertical, anlise horizontal.

Sumrio
1.

Introduo ....................................................................................................... 1
1.1. Motivao.................................................................................................... 1
1.2. Objetivos ..................................................................................................... 2
1.3. Estrutura do Documento ............................................................................. 2

2. Conceitos Bsicos ............................................................................................... 4


2.1. Sistemas de Suporte Deciso.................................................................. 4
2.2. Sistemas de Data Warehouse .................................................................... 5
2.3. OLAP .......................................................................................................... 6
2.4. MDX ............................................................................................................ 9
2.5. Mondrian ................................................................................................... 10
2.6. Concluso ................................................................................................. 13
3.

Tipos de Anlise............................................................................................ 14
3.1. Anlise por meio de ndices ...................................................................... 14
3.2. Anlise Vertical ......................................................................................... 15
3.3. Anlise Horizontal ..................................................................................... 16
3.4. Anlise Estatstica..................................................................................... 17
3.5. Concluso ................................................................................................. 19

4.

MDX+ ............................................................................................................ 20
4.1. Requisitos de MDX+ ................................................................................. 20
4.2. Arquitetura MDX+ ..................................................................................... 21
4.2.1.

Camada de Apresentao .................................................................... 22

4.2.2.

Camada de Processamento ................................................................. 23

4.2.3.

Camada de Armazenamento ................................................................ 24

4.3. Processamento de consultas MDX+ ......................................................... 26


4.4. Sintaxe ...................................................................................................... 27
4.5. Operadores de Criao de Fatos Calculados ........................................... 28
4.5.1.

Operador CriarFatoCalculado............................................................29

4.5.2.

Operador CriarFatoCalculadoRecursivo............................................29

4.6. Operadores UDF (Anlise Vertical/Horizontal e Percentil)........................ 30

4.6.1. Anlise Vertical ....................................................................................... 31


4.6.2.

Anlise Horizontal ................................................................................. 32

4.5.3. Operador Percentil ................................................................................... 34


5. Estudo de Caso ................................................................................................. 35
5.1

Data Mart Financeiro ................................................................................ 35

5.2

Utilizando MDX+ com Data Mart Financeiro ............................................. 36

5.2.1

Criao ndice RentabilidadeAtivo ........................................................ 36

5.2.2

Anlise Vertical ..................................................................................... 37

5.2.3

Anlise Horizontal................................................................................. 37

5.2.4

Anlise Percentil ................................................................................... 38

6. Concluso.......................................................................................................... 40
6.1

Principais Contribuies............................................................................ 40

7. Bibliografia......................................................................................................... 41

Lista de Figuras
Figura 2.1: Exemplo de Cubo de dados.................................................................. 8
Figura 2.2. Resultado da consulta MDX exibida no Quadro 2.2............................ 10
Figura 2.3. Arquitetura do Mondrian.......................................................................12
Figura 3.1: Exemplo de Anlise Vertical................................................................ 15
Figura 3.2: Exemplo de Anlise Horizontal............................................................ 16
Figura 4.1. Arquitetura da Linguagem MDX+.........................................................20
Figura 4.2. Tela de criao de fatos calculados.....................................................21
Figura 4.3: Camada de processamento MDX+.......................................................23
Figura 4.4. Processo de execuo de consultas utilizando operadores MDX+......25
Figura 4.5 Diagrama de Classes da Linguagem MDX+..........................................26
Figura 4.6. Estrutura hierrquica das classes de renderizao..............................27

Lista de Quadros
Quadro 2.1 Exemplo de uma Consulta MDX..........................................................10
Quadro 3.1 ndice de participao de capitais de terceiros (PCT) ........................15
Quadro 4.1 Gramtica EBNF da linguagem MDX+ ...............................................26
Quadro 4.2 Gramtica EBNF da linguagem MDX+ ...............................................27
Quadro 4.3 Criao do fato calculado PrecoMedio. ..............................................29
Quadro 4.4 Criao do fato calculado x................................................................. 29
Quadro 4.5 Exemplo de consulta MDX com operador AnaliseVertical.................. 32
Quadro 4.6 Exemplo de consulta MDX com operador AnaliseHorizontal............. 33
Quadro 4.7 Exemplo de consulta MDX com operador AnalisePercentil ............... 34

1. Introduo
Este captulo exibe as motivaes para a realizao do trabalho descrito neste
documento, lista os principais objetivos das atividades de pesquisa realizadas
e define a estrutura deste documento.

1.1. Motivao
No mundo globalizado e competitivo de hoje, cada vez mais se faz necessrio
o uso de ferramentas que possibilitem uma melhor anlise sobre os dados das
empresas e grandes corporaes facilitando dessa forma, a tomada de deciso.
Nas mais variadas reas do conhecimento, comum a utilizao de ndices
para a extrao de informao para a realizao de certas anlises sobre os
dados. ndices podem ser comparados com valores padres para se obter
prognsticos, e tambm, com resultados obtidos por outras organizaes para se
verificar tendncias e fornecer subsdios para o processo de tomada de deciso.
Anlises comparativas desses ndices podem ser feitas utilizando conceitos
estatsticos como o percentil, que possibilita a gerao de uma distribuio
estatstica dos dados para permitir comparaes mais precisas.
Duas outras tcnicas comumente utilizadas para a tomada de decises
estratgicas so Anlise Vertical e Anlise Horizontal dos dados. A anlise vertical
demonstra a relao existente entre os valores de um conjunto com um dos seus
valores. J a anlise horizontal permite acompanhar a evoluo de uma
determinada informao ao longo de um perodo de tempo, tomando a informao
de um perodo de tempo como base.
Ferramentas OLAP (Online Analytical Processing Processamento Analtico
On Line) so bastante utilizadas por organizaes e fornecem um mtodo de

acessar, visualizar, e analisar dados corporativos com alta flexibilidade e


desempenho. Porm, no foi encontrada uma ferramenta OLAP na literatura de
banco de dados e no mercado que permita ao usurio, a criao de seus prprios
ndices e o uso destes trs tipos de anlise citados acima.

1.2. Objetivos
Esse trabalho tem como objetivo a extenso de uma linguagem de consulta
multidimensional, que possibilite ao usurio a criao de ndices para que uma
melhor anlise dos dados das organizaes possa ser realizada. A linguagem
proposta visa permitir a construo de ndices baseados em outros anteriormente
definidos, possibilitando o reuso e fornecendo maior flexibilidade aos usurios da
linguagem. Est tambm no escopo deste trabalho, a incorporao de operadores
de anlise vertical, anlise horizontal, assim como a incluso do operador
estatstico percentil, na linguagem MDX estendida.
Para o desenvolvimento da linguagem e de tais operadores, foi utilizado o servidor
OLAP Mondrian e seu recurso UDF(User Defined Functions) que permite a criao
de novos operadores para a linguagem MDX e seu uso em consultas a dados
multidimensionais.

1.3. Estrutura do Documento


Este documento est estruturado da seguinte forma:

Captulo 2 Conceitos Bsicos: Esse captulo discute os conceitos


introdutrios e apresenta as tecnologias utilizadas para a realizao desse
trabalho. Este captulo discorre sobre Sistemas de Suporte Deciso,
Sistemas de Data Warehouse, ferramentas OLAP, a linguagem de consulta
a dados multidimensionais MDX, e sobre o Mondrian, que foi o servidor

OLAP escolhido para a implementao da linguagem de consulta estendida


e dos operadores de anlise propostos.

Capitulo 3 Tipos de Anlise: Define e exemplifica os tipos de anlise


abordados por este trabalho, dando uma viso geral do seu funcionamento
e da sua importncia no processo de tomada de deciso.
Captulo 4 Implementao da Linguagem: Nesse captulo, apresentada
a arquitetura do processador da linguagem de consulta estendida assim
como a descrio de sua sintaxe para criao de novos ndices. So
tambm apresentados os operadores de anlise vertical, horizontal e
estatstico, criados a partir do recurso UDF do Mondrian.

Captulo 5 Estudo de Caso: Nesse captulo,

apresentada

uma

aplicao prtica dos operadores definidos nesse trabalho. Estes


operadores esto inseridos no contexto de uma anlise financeira de uma
organizao.

Captulo 6 Concluso: So apresentadas as consideraes finais e os


trabalhos futuros relacionados.

2. Conceitos Bsicos
Neste Captulo, so discuitidas tanto as tecnologias quanto os conceitos bsicos
considerados importantes para o desenvolvimento deste trabalho, tais como
Sistemas de Suporte Deciso, Sistemas de Data Warehouse e Ferramentas
OLAP. Finalmente, as caractersticas principais da linguagem de consulta MDX e
do servidor OLAP Mondrian so tambm listadas neste captulo.

2.1. Sistemas de Suporte Deciso


As tradicionais aplicaes On-Line Transaction Processing (OLTP),
responsveis pela manipulao de dados operacionais, utilizados na realizao
das tarefas cotidianas das empresas, no so capazes de suprir as necessidades
dos usurios na realizao de anlises estratgicas. Desta forma, a partir da
necessidade de gerentes e diretores executivos das empresas para extrarem
informaes relevantes para a tomada de deciso estratgica para suas
organizaes, surgiram os Sistemas de Suporte Deciso (SSD).
SSD possibilitam o gerenciamento e a anlise, de forma eficiente e
consistente, de grandes bases de dados permitindo inferir informaes e novos
conhecimentos que auxiliam usurios a compreender o comportamento dos dados
de negcio de uma organizao. Essas informaes possibilitam que executivos
tomem decises estratgicas no intuito de melhor conduzir seu negcio, tomando
decises com mais eficincia, prevendo tendncias e indicando fatos que
poderiam passar desapercebidos por muito tempo. Assim, o principal objetivo dos
Sistemas de Suporte Deciso fornecer informaes relevantes ao processo de
tomada de decises estratgicas de uma organizao.
SSD diferenciam-se dos sistemas de suporte operacional pelo fato de que,
enquanto os modelos de dados dos sistemas para suporte deciso so

orientados por assunto (modelo estrela ou flocos de neve [1], [2]), os modelos de
dados dos sistemas operacionais so orientados por transaes (modelo de
entidade e relacionamento [3], [2]). Assim, para implementar um Sistema de
Suporte Deciso eficiente, faz-se necessrio dividir a arquitetura de dados da
organizao em dois ambientes de banco de dados [2]: (1) um especfico para
dados operacionais: estes bancos por via de regra j existem e tm aplicao e
muitas operaes j pr-definidas e (2) o outro, para suporte deciso estes
bancos normalmente possuem uma arquitetura de Data Warehouse e so
construdos a partir dos dados existentes nas bases de dados operacionais da
organizao.
Muitas tecnologias podem ser empregadas para a implementao de
sistemas de suporte deciso, entre elas Data Warehouse e OLAP, que sero
descritas a seguir.

2.2. Sistemas de Data Warehouse


As informaes contidas nos tradicionais sistemas orientados transao
no suprem as necessidades de consultas dos gerentes das empresas que
precisam gerar relatrios gerenciais acessando dados de longos perodos
histricos, muitas vezes de vrios anos. Esse tipo de informao deve ser
armazenada em um outro tipo de base de dados, dedicado exclusivamente para
esse tipo de tarefa.
Um Data Warehouse uma coleo de dados orientada por assuntos,
integrada, variante no tempo, e no voltil, que tem por objetivo dar suporte aos
processos de tomada de deciso [4]. Ela armazena os dados extrados do
ambiente de produo da empresa, que foram selecionados e depurados, tendo
sido otimizados para o processamento de consulta de apoio deciso e no para
o processamento de transaes. Alm disso, ela possibilita o acesso a

informaes confiveis, com rapidez e garantia de manuteno da qualidade dos


dados.
Portanto, um DW um grande banco de dados, atualizado com pouca
freqncia e que normalmente construdo a partir de dados provenientes de
vrias fontes de dados diferentes. Ele Funciona como um provedor de
informaes de uma organizao, pois concentra todas as informaes
estratgicas e histricas, extradas dos sistemas transacionais. Assim, sistemas
de DW se baseiam em modelos multidimensionais, os quais fornecem uma grande
ajuda para as reas de negcio, apoiando e melhorando o processo de tomada de
decises.

2.3. OLAP
OLAP uma tecnologia de software que permite que analistas, gerentes e
executivos recuperem os dados de uma forma rpida, consistente e com acesso
interativo para uma grande variedade de possveis vises multidimensionais da
informao gerada pela empresa. Mais sucintamente, OLAP um conjunto de
funcionalidades

que

tem,

como

principal

objetivo,

facilitar

anlise

multidimensional [4].
DW e OLAP so tecnologias complementares, enquanto DW responsvel
pela forma como os dados esto armazenados, sistemas OLAP so responsveis
por extrair a informao de forma rpida, permitindo aos usurios, a anlise de
inmeros cenrios, no importando como e onde esses dados esto fisicamente
armazenados, independente de ser em um DW ou no.
Segundo [5], aplicaes OLAP devem atender doze regras bsicas, entre
as quais est o conceito de viso multidimensional que se tornou a caracterstica
fundamental para o desenvolvimento desse tipo de aplicao. A viso
multidimensional consiste na realizao de consultas que fornecem dados a
respeito de medidas de desempenho, decompostas por uma ou mais dimenses
6

dessas medidas. Alm disto, os dados destas consultas podem tambm ser
filtrados pela dimenso e/ou pelo valor da medida.
Estas vises multidimensionais so providas em funo da estrutura
dimensional do DW e podem ser compreendidas como eixos e pontos de um
espao multidimensional, no qual cada eixo pode ser visto como uma dimenso ou
perspectiva (e.g. tempo, rea geogrfica, tipo de transao financeira) e os
pontos, como um valor medido e correspondente interseo desses eixos [6].
A representao da realidade, construda a partir de um modelo multidimensional,
obtida com base em um conjunto de conceitos. Os conceitos bsicos modelados
so fatos, medidas, dimenses e hierarquias. As definies de tais conceitos so
dadas a seguir.

Fato: um dado de interesse para o processo de tomada de decises,


sendo importante que se tenham aspectos dinmicos associados a ele,
para que seja possvel o registro de uma evoluo com o passar do tempo.
Um fato pode se referir, por exemplo, a transaes de troca de estoque,
emprstimos e operaes bancrias. Portanto, a escolha de fatos pode ser
baseada na periodicidade mdia de mudanas ou em algo de interesse
especfico para o analista.

Medida: tambm chamada de varivel ou mtrica, a propriedade numrica


de um fato e descreve um dos seus aspectos quantitativos de interesses
para a anlise. A razo das medidas serem geralmente dados numricos
que elas so utilizadas computacionalmente. Um exemplo de medida em
um controle de vendas a quantidade de unidades vendidas de certo
produto.

Dimenso: uma propriedade de um fato com um domnio finito e descreve


uma das suas perspectivas de anlise. No exemplo de controle de vendas,
dimenses tpicas podem ser: produto, cliente e tempo. Recomenda-se que
pelo menos uma das dimenses de um fato, represente a informao
temporal.

Nvel de dimenso: uma propriedade, com domnio finito, de uma


dimenso. Por exemplo: um produto pode ser descrito por seu tipo,
categoria e marca; um cliente, por sua cidade e pas. Os relacionamentos
entre nveis de dimenses so expressos por hierarquias.

Hierarquia: uma rvore direcionada e com raiz em uma dimenso, cujos


ns so todos os nveis dessa dimenso, e cujos arcos simbolizam relaes
um-para-muitos entre os pares de nveis da dimenso. As hierarquias
determinam como eventos primrios podem ser agregados em secundrios
e selecionados significativamente para o processo de tomada de deciso.

Membro: um elemento que pertence dimenso. Cada nvel da hierarquia


tem seu grupo de membros. Por exemplo, o nvel ano da dimenso tempo
pode ser representado pelos membros 2006, 2007 e 2008.

Cubo: a estrutura onde os dados esto armazenados e onde


processada a anlise multidimensional dos dados atravs de consultas.
Cada clula do cubo representa um valor ou uma medida. A Figura 2.1
exibe um exemplo de uma metfora visual de um cubo com trs dimenses.

Figura 2.1: Exemplo de um cubo de dados

2.4. MDX
Sistemas OLAP utilizam linguagens de consulta para realizar a extrao de
informao em grandes volumes de dados, dessa forma ajudando as empresas na
tomada de deciso.
MDX (Multidimensional Expressions) uma linguagem de consulta criada
pela Microsoft Corporation em 1998, para a utilizao com o SQL Server OLAP
Services como parte da especificao OLE DB/OLAP API. Ela permite que o
usurio consulte cubos multidimensionais, retornando como resultado da consulta,
conjuntos de clulas multidimensionais contendo dados desses cubos. Com a
sintaxe MDX, torna-se muito fcil a aplicao dos operadores OLAP tradicionais,
como o caso das operaes de agregao e desagregao (e.g. Roll-UP, DrillDown e Group-By), e operaes para a navegao do cubo de dados (e.g.
Membres, Ancestor e Children), fornecendo vises configurveis dos dados em
diferentes ngulos e nveis de agregao. Ela similar linguagem padro para
consultas em sistemas relacionais SQL (Structured Query Language) em muitos
aspectos, porm, no uma extenso desta linguagem [7]. Ela permite a
especificao de at 128 eixos em uma consulta. Porm bastante incomum a
utilizao de mais de trs dimenses. MDX extensvel, permitindo aos usurios,
a criao e o registro de novas funes que manipulam dados multidimensionais.
MDX tornou-se a linguagem padro para aplicaes analticas e utilizada
por inmeras companhias, tanto aquelas que trabalham com OLAP no lado
servidor como Applix, Microstrategy, SAS, SAP, Whitelight, NCR, quanto por
companhias que trabalham com OLAP no lado cliente como Panorama, Proclarity,
Cognos, Business Objects, Brio, Crystal. Por essas razes, ela a linguagem de
consulta para sistemas OLAP que foi escolhida para o desenvolvimento do
trabalho descrito neste documento.
O Quadro 2.1 mostra um exemplo simples de uma consulta MDX: Esse
exemplo realiza uma consulta ao cubo Sales especificado pelo comando FROM e

retorna uma tabela contendo a quantidade de unidades vendidas de produtos nas


lojas do estado da Califrnia e no ano de 1997. A Figura 2.2 ilustra o resultado
desta consulta MDX.

Quadro 2.1. Exemplo de uma Consulta MDX.

SELECT {[Time].[Year].[1997] } ON COLUMNS,


{[Store].[Store Country].[USA].[CA].Children} ON ROWS
FROM Sales
WHERE ([Measures].[Unit Sales])

Figura 2.2. Resultado da consulta MDX exibida no Quadro 2.1

Existe na literatura de banco de dados alguns trabalhos que propem


extenses de MDX em diversos tipos de aplicaes. Entre elas, podemos citar a
extenso de MDX com operadores espaciais, visando integrar funcionalidades
OLAP com as de Sistemas de Integrao Geogrfico (SIG) [12]. Porm, no se
tem conhecimento at o momento, sobre a existncia de propostas que estendam
MDX para permitir os tipos de anlise aqui propostos.

2.5. Mondrian
Mondrian um servidor OLAP, de domnio pblico e de cdigo aberto que
fi desenvolvido pela Pentaho Corporation [8] e que processa consultas
formuladas na linguagem MDX. Os dados processados pelo Mondrian so

10

mantidos em bancos de dados relacionais e seus resultados so apresentados em


formato multidimensional. Ele foi desenvolvido na linguagem Java, sendo
independente de plataforma, e podendo ser utilizado em diferentes sistemas
operacionais.
Por ser de cdigo aberto, o Mondrian permite a incorporao de novas
funcionalidades ao servidor. Ele tambm disponibiliza um recurso para estender a
linguagem MDX, denominado UDF (User-Defined Functions). A partir do uso de
UDF, o usurio pode criar novos operadores que posteriormente podem ser
usados em consultas MDX. Por esses motivos, o Mondrian foi escolhido como
ferramenta OLAP para o desenvolvimento do trabalho proposto aqui.
A

arquitetura

apresentao,

do Mondrian

camada

contm

dimensional,

quatro

camada

camadas:

estrela

camada

de

camada

de

armazenamento. Cada uma de suas camadas detalhada a seguir.

A camada de apresentao a camada de interao com o usurio e nela,


so encontradas as funcionalidades disponveis e a forma como o usurio
final pode interagir para submeter novas consultas. Os conjuntos de dados
multidimensionais podem ser apresentados como pivot tables, ou como
grficos estticos em diversos formatos (e.g. pizza, linha, barra). Ela
tambm contm ferramentas avanadas de visualizao, tais como mapas
interativos e grficos dinmicos.

A camada dimensional responsvel por fazer o parsing, e por validar e


executar consultas MDX. A consulta avaliada em diferentes fases. As
dimenses contidas nos eixos so computadas primeiro e por ltimo, os
valores de cada clula so calculados.

A terceira camada a estrela, e responsvel por manter uma cache


contendo um conjunto de valores de medida em memria. Ao receber uma

11

solicitao de consulta da camada dimensional, a cache consultada, e


caso ela tenha o valor solicitado, ele ser retornado, caso contrario, a
camada de armazenamento invocada.
A camada de armazenamento formada pela base de dados relacional na
qual so feitas as consultas OLAP.
A arquitetura do Mondrian ilustrada pela Figura 2.3.

Figura 2.3. Arquitetura do Mondrian

12

2.6. Concluso
Este captulo apresentou os principais conceitos introdutrios relativos a este
trabalho. Desde conceitos bsicos como SSD, passando por definies de DW, e
OLAP. Em seguida foi apresentada a linguagem padro de consulta a dados
multidimensionais, chamada MDX e ento, algumas de suas extenses foram
discutidas, e por ltimo, o servidor OLAP Mondrian utilizado para a implementao
do trabalho foi descrito.
A seguir, sero discutidos os tipos de anlise propostos por esse trabalho,
apresentando uma viso geral da sua funcionalidade e enfatizando sua
importncia no processo de tomada de deciso.

13

3. Tipos de Anlise
Este captulo discute a importncia dos quatro tipos de anlise propostos nesse
trabalho como um complemento de consultas OLAP tradicionais. Inicialmente,
apresentada a anlise por meio de ndices, seguida pela discusso sobre anlise
vertical e horizontal e por ltimo, o uso de algumas anlises estatsticas para se
obter comparaes mais precisas detalhado.

3.1. Anlise por meio de ndices


ndices so utilizados para anlise de dados em uma variedade de contextos.
Tais ndices podem ser comparados com ndices de perodos anteriores ou
ndices de outras companhias, dessa forma contribuindo para o processo de
tomada de deciso.
ndices so relaes que se estabelecem entre valores de uma mesma
grandeza e suas aplicaes se justificam quando se deseja ter uma anlise mais
precisa dos dados, visto que a observao de certas relaes ou alguns
percentuais mais significativa do que a anlise pura e simples dos dados
disponibilizados nos relatrios [9].
Uma boa anlise no aquela realizada em cima de um grande nmero de
ndices. Melhores resultados podem ser obtidos a partir da escolha de um grupo
de ndices com boa representatividade, que permitam anlises mais precisas.
Como exemplo de ndices, podemos destacar os ndices econmicos e financeiros
das empresas. Um exemplo desse tipo de ndice o que mede a participao de
capitais de terceiros (PCT), que calculado em relao ao Patrimnio Lquido,
retratando a dependncia da empresa em relao aos recursos externos. O
ndice PCT apresentado no Quadro 3.1.

14

Quadro 3.1. ndice de participao de capitais de terceiros (PCT)

PCT = ((PC + ELP) / PL) x 100


Sendo:
PC = Passivo Circulante
ELP = Exigvel a Longo Prazo
PL = Patrimnio Lquido

3.2. Anlise Vertical


A Anlise Vertical (AV) determina a participao de um item em relao ao
grupo que ele faz parte. AV envolve a anlise de elementos relativos sempre a um
mesmo perodo e gerando os percentuais de cada item analisado. A Figura 3.1
demonstra um exemplo desse tipo de anlise no contexto de gastos na rea de
sade pblica. ilustrada a participao de cada item no total gasto, evidenciando
a participao significativa que os gastos em assistncia mdica tm em relao
aos demais

Gastos do Governo Federal em programas


de Sade no ano de 2000
Vigilncia Sanitria

R$ 22.131.591

2.46%

Cont. Doenas Transmissveis

R$ 60.845.395

6.76%

Assistncia Mdica

R$ 816.936.457

90.78%

Total

R$ 899.913.443

100,00%

Figura 3.1. Exemplo de Anlise Vertical

AV nos informa sobre a participao de uma determinada despesa em


relao a um total, mas no nos diz se houve aumento ou diminuio em relao
ao valor base considerado. Para responder esse tipo de pergunta, se faz

15

necessria uma anlise complementar denominada de Anlise Horizontal, que


definida na prxima seo.

3.3. Anlise Horizontal


A Anlise Horizontal (AH) uma tcnica que permite acompanhar a
evoluo de um elemento no decorrer de um determinado perodo de tempo. Essa
evoluo evidenciada comparando-se o valor de um fato com o seu valor
correspondente a um perodo anterior, que podemos chamar de perodo base. AH
procura responder perguntas como:

Quanto aumentou ou diminuiu do valor de cada item?

Quais so os valores dos itens que mais aumentaram ou os que


mais diminuram em um dado perodo de tempo?

A Figura 3.2 exibe um exemplo desse tipo de anlise no contexto de gastos na


rea de sade pblica. A partir de tal anlise, podemos identificar: (1) um
crescimento de quase 200% nos gastos em vigilncia sanitria em 1999, em
relao a 1998, e (2) tendncias como a de queda nos investimentos no controle
de doenas transmissveis e (3) crescimento dos gastos em assistncia mdica, a
partir do ano de 1999.

Gastos do Governo Federal em programas de Sade


1998

1999

2000

Vigilncia Sanitria

9.570.883

100%

28.592.237

199%

22.131.591

-23%

Cont. Doenas Transmissveis

82.871.010

100%

74.481.857

-10%

60.845.395

-18%

Assistncia Mdica

443.537.520

100%

642.100.381

45%

816.936.457

27%

Figura 3.2. Exemplo de Anlise Horizontal

Os resultados obtidos por meio da anlise horizontal devem ser


interpretados com reserva, porque nem sempre os maiores valores percentuais de
16

aumento so os mais significativos [10]. o caso do aumento de 199% em 1999,


nos gastos com vigilncia sanitria, que representa um acrscimo de R$
19.021.354, enquanto o de assistncia mdica, teve um crescimento bem menor,
de apenas 45%, porm um acrscimo nos gastos de R$ 198.562.861. Este ltimo
um aumento bem mais significante do que o com vigilncia sanitria.
Por comparar valores de perodos diferentes, fatores externos podem
influenciar nos resultados da anlise. No exemplo da Figura 3.2, a inflao de
cada ano tem que ser levada em considerao, antes de se fazer a anlise.
necessrio transformar todos os itens em valores associados a uma mesma data,
para que possamos determinar a evoluo real dos gastos.
Embora apresentem novas possibilidades de anlise para ferramentas
OLAP, estes dois tipos de anlise apresentados acima no so suficientes para
termos uma anlise comparativa entre ndices de empresas diferentes. Uma
aplicao para este tipo de anlise a avaliao da situao financeira de uma
dada empresa em relao de outras empresas, que so do mesmo segmento,
para saber, por exemplo, sua posio no mercado, ajudando os gerentes na
tomada de deciso. A funo Rank da linguagem MDX permite determinar a
posio de determinado membro em relao a um conjunto de outros membros.
Informa, por exemplo, a posio de classificao de uma empresa na venda de
materiais esportivos na regio nordeste do Brasil. Essa posio calculada,
comparando os valores absolutos de uma determinada medida desses membros.
Porm, existem conceitos estatsticos que permite a extrao de valores-padro
que possibilitem anlises mais detalhadas, por exemplo, se uma empresa est
entre os 10% das empresas que mais cresceram no ano passado. A anlise
estatstica descrita na seo seguinte.

3.4. Anlise Estatstica


A anlise estatstica prov meios que possibilitam anlises comparativas entre
ndices de perodos diferentes e ndices pertencentes a outras instituies. Essa

17

anlise feita extraindo-se ndices-padro que so usados como referncia.


Tomando como exemplo o ndice pluviomtrico de uma determinada regio,
podemos descobrir se esse ndice se encontra acima ou abaixo da mdia dos 200
demais lugares pesquisados. Outros elementos estatsticos mais interessantes
podem ser utilizados como a moda, a mediana e o decil. A Mediana uma medida
de localizao que representa o centro da distribuio dos dados. Por exemplo, se
entre os funcionrios de uma determinada empresa, a mediana de salrio for R$
2.400,00, aquele que receber remunerao acima disto, estar entre a metade dos
funcionrios mais bem remunerados da empresa. Porm, para anlises mais
detalhadas e precisas, faz-se necessrio, a comparao com mais de um ndicepadro. O operador decil utiliza nove ndices-padro, o que permite uma anlise
mais detalhada dos dados.
Utilizando o decil, o universo das informaes dividido em fatias, cada uma
com 10% dos elementos. Assim, atravs de decis, obtm-se uma idia prxima de
como se distribuem os elementos. No exemplo citado acima, os 200 ndices
pluviomtricos comparados podem ser dispensados, e passa-se a trabalhar com
apenas nove decis [11]. A Figura 3.3 ilustra a diviso do conjunto de informaes
em uma distribuio normal representado o decil.

Figura 3.3 Distribuio do universo em 9 fatias

18

3.5. Concluso
Este captulo exibiu uma discusso sobre anlise vertical, anlise horizontal e
anlise por meio de ndices. Os tipos de anlise vistos neste captulo so de
extrema importncia quando objetivamos uma anlise mais precisa dos dados.
Portanto, a extenso de ferramentas OLAP com estas anlises aumenta o
universo de consultas de suporte deciso realizadas pelos usurios. No prximo
captulo ser apresentada uma extenso de MDX com operadores que permitem
esses tipos de anlise.

19

4. MDX+
Este captulo apresenta a especificao da linguagem MDX+, uma extenso
de MDX para prover recursos que permitam as anlises discutidas no captulo 3.
Discute as caractersticas da linguagem proposta, sua arquitetura e tambm a
sintaxe e a semntica dos operadores de anlise.

4.1. Requisitos de MDX+


MDX+ uma extenso da linguagem de consulta padro para sistemas
OLAP, e oferece funes que permitem ao usurio a possibilidade de anlise
vertical, horizontal e percentil dos dados multidimensionais e tambm a criao de
ndices de anlise, e sua utilizao por consultas MDX.
MDX+ foi implementada utilizando a linguagem de programao orientada a
objetos Java, mantendo-a independente de plataforma por poder ser utilizada em
diferentes sistemas operacionais. A linguagem foi desenvolvida estendendo o
servidor OLAP Mondrian, que possibilita a incorporao de novas funcionalidades
e criao de funes definidas pelo usurio. Ela prov aos usurios anlise por
meio de ndices, atravs da criao de Fatos Calculados. Um Fato Calculado
definido neste trabalho como a representao de uma expresso aritmtica
aplicada a membros e medidas de um cubo de dados multidimensional.
Os fatos calculados so armazenados para permitir o uso em consultas MDX e
tambm para possibilitar a criao de Fatos Calculados definidos a partir de outros
anteriormente criados, sem a necessidade de reprocessar o cubo. MDX+ tambm
adiciona operadores de anlise Vertical, Horizontal e Percentil ao servidor
Mondrian, a partir do seu recurso UDF.

20

4.2. Arquitetura MDX+


A arquitetura de MDX+ dividida hierarquicamente em trs camadas:
camada

de

apresentao,

camada

de

processamento

camada

de

armazenamento. So responsveis respectivamente pela interface grfica com o


usurio, criao de fatos calculados / processamento de consultas utilizando fatos
calculados e armazenamento dos ndices definidos. Cada uma destas camadas
responsvel por disponibilizar um determinado conjunto de servios especficos
camada diretamente superior. A arquitetura em camadas foi escolhida, pois cada
camada representa um subsistema independente dos outros, permitindo, por
exemplo, a substituio da camada de apresentao por uma outra mais
condizente com um determinado contexto, sem afetar o restante da hierarquia do
sistema. A Figura 4.1 ilustra a arquitetura do processador da linguagem MDX+.
As prximas sees detalham cada uma das trs camadas citadas anteriormente,
descrevendo os servios oferecidos por cada uma delas.

Figura 4.1. Arquitetura da Linguagem MDX+.

21

4.2.1. Camada de Apresentao


A camada de apresentao representada pela interface grfica com
usurio. Ela constituda por dois componentes independentes. O primeiro deles
o Criador de Fato Calculado que permite a criao de novos fatos calculados de
forma rpida e intuitiva. O segundo, responsvel por renderizar e permitir a
visualizao dos resultados obtidos a partir de consultas MDX, que utilizam os
operadores de anlise providos por MDX+. Ambos os componentes disponibilizam
uma interface Web, e por esse motivo, podem ser acessados remotamente a partir
de um browser, sem a necessidade de instalao de softwares auxiliares.
O componente Criador de Fato Calculado oferece ao usurio, uma interface
amigvel para a criao de novos fatos calculados visando seu posterior uso em
consultas MDX. O componente disponibiliza uma lista de fatos calculados j
criados e possibilita a visualizao dos mesmos e seu uso na criao de novos
fatos calculados.
O Visualizador de Resultados responsvel por disponibilizar ao usurio,
os resultados gerados atravs da execuo de consultas especificadas com
operadores de anlise MDX+. Estes resultados, so visualizados a partir de uma
planilha de resultado especfica para cada operador de anlise. A Figura 4.3 ilustra
o resultado de uma consulta utilizando o operador estatstico percentil, que neste
exemplo divide o conjunto de dados em trs fatias.

22

Figura 4.3. Resultado de consulta com o operador percentil.

4.2.2. Camada de Processamento


A camada de Processamento o ncleo do processador da linguagem
estendida e responsvel por analisar e verificar a corretude da especificao de
novos fatos calculados. responsvel tambm pelo processamento de consultas
envolvendo os fatos calculados criados por MDX+. Esta camada formada por
trs componentes, o Analisador Lxico e Sinttico, o Analisador Semntico e o
Parser de Consultas os quais so detalhados a seguir.
O Analisador Lxico e Sinttico tem como principal responsabilidade, analisar a
seqncia de caracteres dados como entrada. Ele verifica possveis erros de
sintaxe, classificando a string de entrada que representa a definio do novo
ndice, como pertencente ou no linguagem. Um possvel erro de sintaxe pode
ser a utilizao de um comando inexistente em sua gramtica EBNF. O Analisador
Semntico valida, por exemplo, o tipo dos argumentos passados como parmetro.

23

A Figura 4.4 ilustra a seqncia de aes realizadas na camada de


processamento quando o analisador lxico, sinttico e semntico est em
execuo.

Figura 4.4: Camada de processamento MDX+

O Analisador Lxico transforma o texto dado como entrada em uma seqncia de


tokens. Os tokens representam palavras (e.g. smbolos, identificadores, palavraschave, pontuao) extradas da string de entrada. Os tokens identificados so
utilizados como entrada para o Analisador Sinttico, que responsvel por avaliar
sua corretude. O Analisador verifica a seqncia de tokens para determinar a
estrutura das frases, verificando se um determinado identificador sintaticamente
vlido, ou seja, se pertencem especificao da EBNF de MDX+. Caso seja
vlido, o Analisador Semntico invocado para verificar se o comando est de
acordo com as restries contextuais da linguagem MDX+. Por exemplo, se o tipo
de um determinado valor passado como parmetro est correto.
O Parser de Consultas o mdulo responsvel pela transformao das consultas
que utilizam fatos calculados. O resultado deste parser uma consulta MDX
vlida, que envida para o servidor OLAP para ser processada.

4.2.3. Camada de Armazenamento


A camada de armazenamento responsvel por gerenciar a persistncia e
a posterior recuperao dos fatos calculados criados. Os fatos so armazenados
em arquivo e podem ser reutilizados por usurios diferentes do autor dos fatos.
24

Os mdulos que compem a arquitetura do processador de MDX+ e que foram


descritos nas sees anteriores so representados no diagrama de classes
ilustrado na Figura 4.5.

Figura 4.5 Diagrama de Classes da Linguagem MDX+

As

classes

AnalisadorLexico,

ParserOperador,

ParserExpressao

ParserConsulta constituem a camada de Processamento. O AnalisadorLexico


realiza a tarefa de quebrar a string de entrada em tokens, para facilitar o
processamento dos analisadores sintticos. O ParserOperador invocado para
realizar a anlise nos tokens. A avaliao da expresso aritmtica processada e

25

avaliada pela classe ParserExpresso. A classe FatoCalculado constituda por


uma identificador e uma objeto do tipo Expresso, que pode ser uma
ExpressaoUnaria ou ExpressaoBinaria.
A estrutura hierrquica das classes responsveis pela renderizao das
planilhas de resultado das consultas apresentada pela Figura 4.6. Ela formada
por uma superclasse GenericRender e 3 subclasses especficas uma para cada
operador de anlise de MDX+.

Figura 4.6. Estrutura hierrquica das classes de rederizao.

4.3. Processamento de consultas MDX+


O processo de execuo de consultas MDX+ ilustrado pela Figura 4.7, e
descrito segundo a seqncia de passos listados a seguir.
1. Uma string representando a consulta MDX submetida ao servidor Mondrian, a
partir de sua interface grfica de consultas.
2. A string de entrada enviada camada de processamento MDX+, que realiza
anlise lxica, dividindo a string em diversos tokens. Os tokens so enviados ao
Analisador Sinttico que verifica a existncia de seqncias de tokens
pertencentes especificao da gramtica EBNF de MDX+. Caso encontre, o
Analisador Semntico processa tais seqncias com o objetivo de valid-las. Por

26

ltimo, o parser de consultas invocado para realizar a transformao em uma


consulta MDX vlida.
3. A consulta transformada retornada ao processador de consultas do Mondrian,
responsvel por analisar, avaliar e executar a consulta MDX.

Figura 4.7 Processo de execuo de consultas utilizando operadores MDX+

4.4. Sintaxe
A linguagem MDX estendida oferece uma sintaxe simples e ao mesmo tempo
rica, que permite a criao de fatos calculados representando expresses

27

aritmticas construdas a partir da utilizao de seis operadores aritmticos:


adio, subtrao, multiplicao, diviso, potncia e raiz ensima. Estes
operadores foram implementados por serem considerados como o conjunto bsico
de operaes aritmticas.
O Quadro 4.1 contm a especificao formal da sintaxe da linguagem
descrita na EBNF (Extended Backus-Naur Form), uma metalinguagem utilizada
para definir linguagem proposta de maneira formal e baseada em um conjunto de
regras.

Quadro 4.1 Gramtica EBNF da linguagem MDX+

Declaracao ::= Operador


Operador ::= Identificador ( ListaParametros )
ListaParametros ::= [ ]
| Parametro
| Parametro , ListaParametros
Parametro ::= Termo
| Expressao
Expressao ::= ExpressaoUnaria
| ExpressaoBinaria
ExpressaoUnaria ::= Termo
| Identificador
ExpressaoBinaria ::= Expressao Operador Expressao
Operador ::= + | - | * | / | ^ | raiz
Termo ::= int
| real
| string

4.5. Operadores de Criao de Fatos Calculados


Nesta seo apresentada a sintaxe, semntica e exemplos de uso dos
operadores utilizados na criao de fatos calculados.

28

4.5.1. Operador CriarFatoCalculado


ndices podem ser criados a partir da funo CriarFatoCalculado.
Sintaxe:
CriarFatoCalculado(<Expressao>, <Identificador>)

Semntica:
A funo CriarFatoCalculado recebe dois parmetros. O primeiro o mais
importante e representa a expresso aritmtica do fato calculado. Ela especifica a
forma como o ndice calculado. O segundo parmetro uma string que
especifica o identificador do ndice. MDX+ no permite dois fatos calculados com o
mesmo identificador. Ao executar essa funo um fato calculado criado e
armazenado, podendo ser usado por consultas MDX.

Exemplos:
O Quadro 4.2 apresenta um exemplo simples de criao de um fato calculado
denominado PrecoMedio. Aps a sua criao, o fato calculado PrecoMedio poder
ser utilizado na definio de outros fatos e tambm em consultas MDX

Quadro 4.2 Criao do fato calculado PrecoMedio.

CriarFatoCalculado (([Medida].[Total Vendido] / [Medida].[Unidades Vendidas])',


PrecoMedio)

4.5.2. Operador CriarFatoCalculadoRecursivo


Alguns tipos de ndice so por definio de natureza recursiva. Isto significa
que eles podem ser definidos a partir da definio deles prprios. MDX+ permite a

29

criao

dessa

categoria

de

ndices

atravs

do

operador

CriarFatoCalculadoRecursivo.

Sintaxe:
CriarFatoCalculadoRecursivo (<Expressao>, <ValorNumerico>, <ValorNumerico>,
<String>)

Semntica:
A funo CriarFatoCalculadoRecursivo recebe 4 parmetros. O primeiro deles a
expresso aritmtica do fato calculado. O segundo parmetro um valor numrico
que representa o valor inicial do ndice. O terceiro um valor numrico que
representa a quantidade de iteraes que sero realizadas pelo ndice sobre ele
prprio. O quarto parmetro uma string que especifica o identificador do ndice.

4.6. Operadores UDF (Anlise Vertical/Horizontal e Percentil)


Para a criao de uma nova funo MDX usando UDF, necessrio a
criao

de

uma

classe

que

implemente

interface

mondrian.spi.UserDefinedFunction. Essa interface oferece sete mtodos que


especificam a sintaxe e a semntica da nova funo e devem ser obrigatoriamente
implementados. So eles:

getDescription() - Essa funo retorna uma descrio do novo operador


MDX, e serve para facilitar o entendimento da funcionalidade do operador.

getName() - Define o nome do operador. Esse mtodo utilizado pelo


Mondrian para reconhecer as funes usadas na consulta MDX.

getReservedWords() - Permite a definio de palavras reservadas e que


no podero ser utilizadas em nenhum outro operador definido com o
recurso UDF.

30

getSyntax() - Define como o Mondrian vai tratar essa nova UDF.

GetParameterTypes() - Esse mtodo define quais so os tipos dos


argumentos que devem ser passados como parmetro para o novo
operador. O Mondrian oferece vrios tipos bsicos j definidos como por
exemplo: MemberType, SetType, LevelType e NumericType, representando
respectivamente um membro, um conjunto de membros, um nvel da
hierarquia de uma dimenso e um valor numrico. Ele permite a criao de
novos tipos dados, atravs da interface mondrian.olap.type.

getReturnType() - Define o tipo de retorno do operador. Esse tipo pode ser


qualquer um dos tipos j mencionados no item anterior ou um novo item
definido pelo usurio.

execute() - Mtodo mais importante da UDF.

responsvel pelo

processamento do operador propriamente dito. Ele recebe como parmetro,


os argumentos da funo e os processa, retornando assim, os resultados
esperados.
Para criar os operadores de anlise vertical e horizontal e o operador
percentil, foi necessrio utilizar a interface do mondrian.spi.UserDefinedFunction
descrita acima. Nas prximas sees so detalhadas a sintaxe e semntica de
cada um desses operadores.

4.6.1. Anlise Vertical


O operador Anlise Vertical permite uma anlise comparativa entre um
conjunto de membros em relao a um valor de referncia.

31

Sintaxe:
AnaliseVertical(<Member>, <MemberSet>)
O operador recebe dois parmetros: O primeiro o membro de referncia e ser o
valor relativo a esse membro que ser usado no clculo do percentual dos demais
membros. O segundo parmetro um conjunto contendo os membros em que se
quer saber a participao de cada um em relao ao membro de referncia, o qual
deve estar contido neste conjunto.

Semntica:
O operador retorna como resposta uma tabela contendo o valor absoluto e
percentual de participao dos membros contidos no segundo parmetro com
relao ao primeiro parmetro.
O Quadro 4.4 mostra um exemplo de consulta MDX utilizando o operador
AnaliseVertical. Essa consulta retorna a porcentagem de participao de cada
estado americano no total de unidades vendidas ao longo do ano de 2008.

Quadro 4.4. Exemplo de consulta MDX com operador AnaliseVertical

SELECT {[Time].[Year].[2008]} ON COLUMNS,


{AnaliseVertical([Store].[StoreCountry].[USA],
{[Store].[Store Country].[USA].Members}) } ON ROWS
FROM Sales
WHERE ([Measures].[Unit Sales])

4.6.2.

Anlise Horizontal

Esse operador permite a comparao de um determinado item ao seu valor


em um perodo anterior.

32

Sintaxe:
AnaliseHorizontal(<Member>, <MemberSet>, NumericType)
O operador recebe trs parmetros: O primeiro (<Member>) o perodo de
referncia e ser o valor relativo a esse membro que utilizaremos no clculo do
percentual dos demais membros. O segundo parmetro (<MemberSet>) um
conjunto contendo os membros em que se quer saber a evoluo em relao ao
valor de referncia. J o terceiro parmetro uma expresso que ser usada para
transformar os valores dos membros do segundo parmetro em valores presentes
de uma mesma data.

Semntica:
O operador retorna como resposta, uma tabela contendo o valor absoluto e
percentual dos valores dos membros contidos no segundo parmetro com relao
ao primeiro parmetro, levando em considerao a expresso passada no terceiro
parmetro.
O Quadro 4.5 demonstra um exemplo de consulta MDX utilizando o operador
AnaliseHorizontal. A consulta retorna a evoluo das vendas das lojas do estado
da Califrnia de 2007 e 2008, aplicando o ndice de correo 1.04 aos valores das
vendas.

Quadro 4.5. Exemplo de consulta MDX com operador AnaliseHorizontal

SELECT {[Time].[Year].[2007], [Time].[Year].[2008]} ON COLUMNS,


{AnaliseHorizontal([Time].[Year].[2007], {[Store].[Store Country].
[USA].[CA].Children}, 1.04)} ON ROWS
FROM Sales
WHERE ([Measures].[Store Sales])

33

4.5.3. Operador Percentil


O operador percentil permite uma anlise estatstica para os dados
multidimensionais.

Sintaxe:
AnalisePercentil(<MemberSet>, <MemberSet>, NumericType)
O operador recebe trs parmetros. O primeiro um conjunto contendo os objetos
para os quais se quer ter uma anlise comparativa. O segundo parmetro um
conjunto de membros utilizados para a criao dos percentis. Finalmente, o
terceiro e ltimo parmetro um valor numrico que informa a quantidade de
parties em que o universo ser dividido.

Semntica:
O operador retorna como resposta uma tabela representando a distribuio
estatstica construda a partir dos membros especificados no segundo parmetro e
da quantidade de parties descrita no terceiro parmetro. Ele tambm informa a
posio de cada membro do primeiro parmetro no universo da distribuio.
O Quadro 4.6 mostra um exemplo do uso desse operador em uma consulta MDX.
A consulta retorna a posio em relao quantidade de unidades vendidas das
cidades de Tacoma e Seattle em comparao com as outras cidades dos USA. A
consulta gera uma distribuio do universo dividida em nove posies.

Quadro 4.6. Exemplo de consulta MDX com operador AnalisePercentil

SELECT {[Measures].[Unit Sales]} ON COLUMNS,


{AnalisePercentil({[Store].[Store Country].[USA].[WA].[Tacoma], [Store].[Store
Country].[USA].[WA].[Seattle]}, {Descendants([Store].[Store Country].[USA], 2)},
9)} ON ROWS
FROM Sales

34

5. Estudo de Caso
Este captulo apresenta o estudo de caso utilizado para a validao deste
trabalho. Sero apresentados os resultados obtidos a partir dos experimentos
realizados em um data mart financeiro.

5.1

Data Mart Financeiro

Para demonstrar os resultados desse trabalho foi escolhido um Data Mart com
dados financeiros, por ser um contexto que utiliza uma grande variedade de
ndices para a anlise da situao econmica e financeira das empresas. A Figura
6.1 ilustra o cubo de dados multidimensional deste data mart.

Figura 5.1 Cubo de dados multidimensional de um data mart financeiro.

35

5.2

Utilizando MDX+ com Data Mart Financeiro

Esta seo descreve a utilizao dos operadores de anlise vertical,


horizontal e percentil e tambm a criao de ndices a partir do uso de MDX+.

5.2.1 Criao ndice RentabilidadeAtivo


A rentabilidade do ativo um ndice que informa quanto a empresa obtm
de lucro com relao ao investimento total. Este ndice calculado dividindo o
lucro lquido pelo ativo da empresa.
O Quadro 5.1 apresenta o cdigo de criao do ndice RentabilidadeAtivo.

Quadro 5.1 Cdigo de criao do ndice RentabilidadeAtivo.

CriarFatoCalculado('([EstruturaContabil].[Lucro Liquido] / [EstruturaContabil].[Ativo])',


'RentabilidadeAtivo')

Quadro 5.2 Consulta MDX utilizando o ndice RentabilidadeAtivo.

SELECT {[Tempo].[ano].[2007]} ON COLUMNS,


{DESCENDANTS ( [Empresa].[Brasil].[So Paulo], [razao social])} ON ROWS
FROM Cubo_Financeiro
WHERE (RentabilidadeAtivo)

Figura 5.2 Resultado da consulta do Quadro 5.2.

36

5.2.2 Anlise Vertical


O Quadro 5.3 e a Figura 5.3 mostram a utilizao de anlise vertical para saber a
porcentagem de participao dos itens do ativo operacional no ano de 2008.

Quadro5.3 Consulta MDX utilizando operador AnaliseVertical

SELECT {[Tempo].[ano].[2008]} ON COLUMNS,


{AnaliseVertical([EstruturaContabil].[Ativo].[Ativo Operacional], {[EstruturaContabil].
[Ativo].[Ativo Operacional].Children})} ON ROWS
FROM Financeiro

Figura 5.3 Resultado da consulta do Quadro 5.3

5.2.3 Anlise Horizontal


O operador AnaliseHorizontal utilizado na consulta MDX do Quadro 5.4
descreve a evoluo dos ativos financeiro, operacional e permanente ao longo dos
anos de 2006 a 2008. A Figura 5.4 descreve o resultado desta consulta.
Quadro5.4 Consulta MDX utilizando operador AnaliseHorizontal

SELECT {[Tempo].[ano].Members} ON COLUMNS,

37

{AnaliseHorizontal([Tempo].[ano].[2006], {[EstruturaContabil].[Ativo].Children}, 1)}


ON ROWS
FROM Financeiro
WHERE ([Empresa].[Brasil].[Pernambuco].[Jaboato].[Empresa3])

Figura 5.4 Resultado da consulta do Quadro 5.4

5.2.4 Anlise Percentil


O Quadro 5.5 ilustra um exemplo de uma consulta MDX utilizando o
operador AnalisePercentil e o ndice RentabilidadeAtivo. A Figura 5.5 demonstra o
resultado desta consulta.

Quadro5.5 Consulta MDX utilizando operador AnaliseHorizontal

SELECT {RentabilidadeAtivo} ON COLUMNS,


{AnalisePercentil({[Empresa].[Brasil].[Pernambuco].[Recife].[Empresa3]},
Descendants([Empresa].[Brasil], [razao social]), 3)} ON ROWS
FROM Financeiro

38

Figura 5.5 Resultado da consulta do Quadro 5.5

39

6. Concluso
Este trabalho props a criao de uma extenso para a linguagem padro
de consulta a dados multidimensional MDX, que possibilite ao usurio a criao de
ndices e anlises vertical, horizontal e percentil dos dados.
A implementao da linguagem MDX+ envolveu a construo de um
compilador capaz de realizar anlises lxica, sinttica e semntica dos comandos
da linguagem, assim como o mdulo responsvel por renderizar os resultados das
consultas MDX envolvendo operadores de anlise horizontal, vertical e percentil.

6.1

Principais Contribuies

A principal contribuio deste trabalho foi a especificao da linguagem


MDX+. Ela permite uma forma simples de criao de ndices e seu
armazenamento para o posterior uso em consultas analticas e tambm a
construo de novos operadores de anlise utilizando o recurso UDF do Servidor
OLAP Mondrian, desta forma, permitindo aos usurios uma melhor anlise sobre
os dados, contribuindo para o processo de tomada de deciso.

40

7. Bibliografia
[1] Inmon, W. Building the DataWarehouse, 4th edn. John Wiley and Sons (2005)
[2] Kimball, R., Ross, M.: The DataWarehouse Toolkit. John Wiley and Sons
(2002).
[3] R. Elmasri e S. B. Navathe. Fundamentals of Database Systems. AddisonWesley, Hardcover, 3rd edition, 1999.
[4] INMON, W.H, WELCH, J. D., GLASSEY, K. L. Gerenciando Data Warehouse.
So Paulo: Makron Books, 1999. 375p.
[5] Codd, E.: Providing OLAP (on-line analytical processing) to user-analysts: an IT
mandate. Tech. rep.,E.F. Codd and Associates (1993)
[6] Fidalgo. R. N. JDCI: Uma API Java para disponibilizao e integrao de
servios OLAP, Dissertao de Mestrado, Cin/UFPE, 2000.
[7]. MSDN. Microsoft Developer Network: http://msdn.microsoft.com/ptbr/library/ms144884.aspx
[8] Pentaho Open Source Business Intelligence: http://www.pentaho.com/
[9] ZOLET, J. P.; LOZECKYI, J. - Concesso de Crdito para Micro e Pequena
Empresa
[10] UP-TO-DATE N294 Como Elaborar e analisar uma anlise vertical e
horizontal das demonstraes financeiras.
[11] Matarazzo, D. C. (2003), Anlise Financeira de Balanos, Editora. Atlas, So
Paulo
[12] Worboys, M. e Duckham, M. (2004). "GIS: A Computing Perspective", 2nd
Edition. CRC Press

41

Assinaturas

_________________________________
Orientadora: Dr Valria Cesrio Times

______________________________
Co-Orientador: Paulo Caetano da Silva

__________________________________
Aluno: Thiago de Moraes Brayner

42

Você também pode gostar