Escolar Documentos
Profissional Documentos
Cultura Documentos
Centro de Informtica
Graduao em Cincia da Computao
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
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.
4.2.2.
4.2.3.
Operador CriarFatoCalculado............................................................29
4.5.2.
Operador CriarFatoCalculadoRecursivo............................................29
5.2
5.2.1
5.2.2
5.2.3
Anlise Horizontal................................................................................. 37
5.2.4
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
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.
apresentada
uma
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.
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.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.
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
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
arquitetura
apresentao,
do Mondrian
camada
contm
dimensional,
quatro
camada
camadas:
estrela
camada
de
camada
de
11
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.
14
R$ 22.131.591
2.46%
R$ 60.845.395
6.76%
Assistncia Mdica
R$ 816.936.457
90.78%
Total
R$ 899.913.443
100,00%
15
1999
2000
Vigilncia Sanitria
9.570.883
100%
28.592.237
199%
22.131.591
-23%
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%
17
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.
20
de
apresentao,
camada
de
processamento
camada
de
21
22
23
As
classes
AnalisadorLexico,
ParserOperador,
ParserExpressao
25
26
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
28
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
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.
de
uma
classe
que
implemente
interface
30
responsvel pelo
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.
4.6.2.
Anlise Horizontal
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.
33
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.
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
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.
35
5.2
36
37
38
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
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