Pós-Graduação em Ciência da Computação
Um Método para Seleção e Materialização de Visões
com Assinaturas OLAP e Reactive GRASP-PR
Por
Andresson da Silva Firmino
Dissertação de Mestrado
Universidade Federal de Pernambuco
www.cin.ufpe.br/~posgraduacao
RECIFE, MAIO DE 2013
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMÁTICA
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
ANDRESSON DA SILVA FIRMINO
Um Método para Seleção e Materialização de Visões com Assinaturas OLAP e Reactive GRASP-PR
ESTE TRABALHO FOI APRESENTADO À PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIA DA COMPUTAÇÃO.
ORIENTADOR(A): Valéria Cesário Times
RECIFE, MAIO DE 2013
Catalogação na fonte
Bibliotecária Jane Souto Maior, CRB4-571
Firmino, Andresson da Silva Um método para seleção e materialização de visões com assinaturas OLAP e reactive GRASP-PR / Andresson da Silva Firmino. - Recife: O Autor, 2013. Xii, 93 f.: il., fig. Orientador: Valéria Cesário Times.
Dissertação (mestrado) - Universidade Federal de Pernambuco. CIn, Ciência da Computação, 2013. Inclui referências e apêndice. 1. Banco de Dados. 2. Processamento multidimensional. 3. Otimização. 4. Avaliação de desempenho. I. Times, Valéria Cesário (orientador). II. Título. 025.04 CDD (23. ed.) MEI2013 – 128
Dissertação de Mestrado apresentada por Andresson da Silva Firmino à Pós
Graduação em Ciência da Computação do Centro de Informática da Universidade
Federal de Pernambuco, sob o título “Um Método para Seleção e Materialização de
Visões com Assinaturas OLAP e Reactive GRASP com Path Relinking” orientada
pela Profa. Valéria Cesário Times e aprovada pela Banca Examinadora formada
pelos professores:
______________________________________________
Prof. Ricardo Martins de Abreu Silva
Centro de Informática / UFPE
______________________________________________
Prof. Lucídio dos Anjos Formiga Cabral
Departamento de Informática / UFPB
_______________________________________________
Profa. Valéria Cesário Times
Centro de Informática / UFPE
Visto e permitida a impressão.
Recife, 24 de maio de 2013
___________________________________________________
Profa. Edna Natividade da Silva Barros Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.
Dedico essa conquista a meus pais!
A coroa dos pais são os filhos, a glória dos filhos são seus pais.
iv
Agradecimentos
A elaboração deste trabalho representa, certamente, um marco em minha vida.
Por essa razão, eu me vejo na obrigação de agradecer a todos que me acompanharam e
me fizeram, de alguma maneira, chegar até aqui.
Primeiramente, agradeço a Deus, pois sem Ele nada poderia fazer. Agradeço aos
meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me
fazendo seguir em frente durante todos os momentos difíceis em minha vida. Sou grato
por suas posições firmes que modelaram meu caráter, me mostraram o caminho e por
todo seu imenso carinho e amor, a mim dedicados.
À minha irmã Andresa Firmino, que apesar das brigas e discussões, sempre
torceu por mim, me apoiou e me acompanhou durante toda a jornada. A você Andresa,
meus agradecimentos. À minha noiva Etiane Melo, uma constante fonte de alívio e
motivação nos momentos exaustivos, a minha gratidão por seu amor, apoio e
compreensão. Para você, um beijo de muito amor.
Aos meus amigos e irmãos de orientação Rodrigo Mateus e Carolina Torres.
Obrigado pelas suas prontas e constantes disponibilidades em me ajudar, me ensinar,
me aconselhar, me corrigir e compartilhar os bons momentos.
Aos meus amigos, consultores e colegas de trabalho André Machado, Rafael
Lima, César Lima, Diogo Anderson, Thalles Robson. Meu obrigado pela amizade, pelo
companheirismo e principalmente, pelas produtivas discussões. Em especial, ao Diogo
Anderson muito obrigado pela sua colaboração no enriquecimento deste trabalho.
Sou muito grato aos professores do Centro de Informática da Universidade
Federal de Pernambuco que contribuíram de alguma forma para meu crescimento. Ao
Professor Fernando Fonseca, pessoa fundamental na construção da minha carreira
acadêmica, minha profunda gratidão pelos seus ensinamentos, não só como docente,
mas como exemplo de ser humano. Também sou grato aos Professores Thiago Siqueira
(IFSP), Ricardo Ciferri (UFSCAR), Cristina Ciferri (USP), Lucídio Cabral (UFPB) e
Ricardo Martins (UFPE) por seu apoio técnico e motivacional na construção deste
trabalho.
Agradeço em especial à Professora Valéria Times não só pelo seu apoio,
incentivo, entusiasmo e pronta disponibilidade, constantemente manifestados, mas
v
também pela confiança em mim depositada, quero manifestar a minha profunda e
sincera gratidão. As suas reflexões e críticas, surgidas do seu saber, experiência e
competência profissional, guiaram-me na realização deste trabalho. Deus te recompense
pelo bem que fizeste a mim e a todos que tiveram a honra de ser seu orientando.
A todos, família, amigos e colegas pelos seus incentivos e conselhos o
meu muitíssimo obrigado.
"Podemos escolher o que semear, mas somos obrigados a colher
aquilo que plantamos"
Provérbio chinês
vii
Resumo
A materialização de visões promove a redução do tempo de execução de
consultas multidimensionais. No entanto, a materialização de uma visão possui um
custo associado que quando somado ao custo de materialização de outras visões pode
exceder certos limiares de custo de armazenamento de um dado ambiente. Surge então o
Problema de Seleção de Visões (PSV) que consiste em selecionar as melhores visões
dado um certo limiar de custo. Diversas soluções na literatura foram propostas para
tentar resolver este problema. O foco das soluções propostas para o PSV são a
construção de algoritmos de otimização para seleção de visões e a especificação de
custos para as visões e critérios para seleção. Todavia, de acordo com o nosso
conhecimento, nenhuma das propostas na literatura considera todo o ciclo de um
ambiente real de análise multidimensional, que consiste na execução de consultas,
seleção de visões e materialização das visões. Então, esse trabalho especifica um
método de seleção e materialização de visões por meio de Assinaturas OLAP e
algoritmos de otimização baseados na meta-heurística GRASP, Reactive GRASP e
GRASP com Path-Relinking, visando maximizar o desempenho das consultas OLAP.
Palavras-chave: Assinaturas OLAP, Seleção de Visões Materializadas, Algoritmos de
Otimização.
viii
Abstract
The materialization of views promotes the reduction of execution time of
multidimensional queries. However, the materialization of a view has certain costs that
when added to the costs of materializing other views, then the resulting costs can exceed
the storage costs thresholds of a given environment. Thus, there is the Problem of
Selecting Views (PSV), which consists in selecting the best views given a cost
threshold. Several solutions have been proposed in literature to try to solve this
problem. The focus of the proposed solutions for PSV is the construction of
optimization algorithms for the selection of views and specification of costs for views
and selection criteria. However, to the best of our knowledge, none of the proposals in
the literature encompasses the entire cycle of a real environment of multidimensional
analysis, which consists in the execution of queries, views selection and materialization
of views. Thus, this work specifies a method of selecting and materializing views by
means of OLAP signatures and optimization algorithms based on the GRASP, Reactive
GRASP and GRASP with Path-Relinking meta-heuristics, aiming to maximize the
performance of OLAP queries.
Keywords: OLAP Signatures, Selection of Materialized Views, Optimization
Algorithms
ix
Lista de Figuras
Figura 2.1: Exemplo de esquema estrela .................................................................................. 10
Figura 2.2: Exemplo de esquema floco de neve ....................................................................... 10
Figura 2.3: Exemplo de cubo de dados .................................................................................... 11
Figura 2.4: Exemplo dimensões e hierarquias .......................................................................... 11
Figura 2.5: Exemplo de Grafo de Derivação ............................................................................ 13
Figura 2.6: Modelagem Matemática do PSV ........................................................................... 17
Figura 2.7: Meta-heurística GRASP ........................................................................................ 19
Figura 2.8: Exemplo de funcionamento do Path-Relinking ...................................................... 20
Figura 2.9: Algoritmo Colônia de Formigas ............................................................................ 22
Figura 3.1 Esquema Conceitual Proposto ................................................................................ 33
Figura 3.2: Algoritmo Extrator de Dado Multidimensional ...................................................... 36
Figura 3.3: Algoritmo Gerador de Vértices .............................................................................. 37
Figura 3.4: Exemplo de Assinatura OLAP ............................................................................... 39
Figura 3.5: Cálculo do Benefício do Vértice ............................................................................ 40
Figura 3.6: Algoritmo GRASP (G) .......................................................................................... 41
Figura 3.7: Algoritmo Reactive GRASP (RG) ......................................................................... 42
Figura 3.8: Algoritmo Reactive GRASP com Path-Relinking .................................................. 44
Figura 3.9: Algoritmo Path-Relinking ..................................................................................... 45
Figura 3.10: Algoritmo Fase Construtiva do GRASP ............................................................... 47
Figura 3.11: Lista Restrita dos Candidatos LRC ...................................................................... 48
Figura 3.12: Algoritmo da Fase de Busca Local ...................................................................... 50
Figura 3.13: Exemplo de atributos para criação de tabela de materialização ............................. 52
Figura 3.14: Exemplo de script de criação de tabela de materialização ..................................... 52
Figura 3.15: Atributos utilizados para carga da tabela de materialização .................................. 53
Figura 3.16: Exemplo de script de carga da tabela de materialização ....................................... 53
Figura 4.1: Resultados da Calibração....................................................................................... 59
Figura 4.2: Calibração do Limite de Gulosidade θ ................................................................... 60
Figura 4.3: Calibração do Limite de Gulosidade Busca Local ϑ ............................................... 60
Figura 4.4: Calibração do Número de Tentativas de Trocas τ ................................................... 60
Figura 4.5: Avaliação Espacial de 1.25%................................................................................. 61
Figura 4.6: Avaliação Espacial de 2.5% .................................................................................. 62
Figura 4.7: Avaliação Espacial de 5% ..................................................................................... 62
Figura 4.8: Avaliação Espacial de 10% ................................................................................... 62
x
Figura 4.9: Avaliação Espacial de 20% ................................................................................... 63
Figura 4.10: Avaliação Espacial de 40%.................................................................................. 63
Figura 4.11: Avaliação Espacial de 60%.................................................................................. 63
Figura 4.12: Diferença Percentual das Médias sobre o Algoritmo G ........................................ 64
Figura 4.13: Ganho Percentual da Nova Busca Local .............................................................. 65
Figura 4.14: Variância por Espaço Disponível para Materialização .......................................... 66
Figura 4.15: Resultado do TTTP ............................................................................................. 68
Figura 4.16: Resultado do DTTTP........................................................................................... 69
Figura 4.17: Resultado do DTTTP com Zoom ......................................................................... 69
xi
Sumário
Introdução ............................................................................................................................... 1
1.1. Contextualização .......................................................................................................... 2
1.2. Motivação .................................................................................................................... 4
1.3. Objetivos ...................................................................................................................... 5
1.4. Estrutura da dissertação ............................................................................................... 6
Fundamentação Teórica ......................................................................................................... 8
2.1. Introdução .................................................................................................................... 9
2.2. Estruturas Multidimensionais de Dados ........................................................................ 9
2.3. Assinaturas OLAP ........................................................................................................ 15
2.4. O Problema de Seleção de Visões (PSV) ...................................................................... 16
2.5. Algoritmos de Otimização ........................................................................................... 17
2.5.1. GRASP - Greedy Randomized Adaptive Search Procedure ...................................... 18
2.5.1.1. Path-Relinking ................................................................................................ 19
2.5.1.2. Reactive Grasp ............................................................................................... 20
2.5.2. ACO - Ant Colony ................................................................................................... 21
2.6. Trabalhos Correlatos .................................................................................................. 22
2.6.1. Restrições de Seleção ............................................................................................ 23
2.6.2. Heurística de Seleção ............................................................................................. 24
2.6.3. Configuração de Seleção ........................................................................................ 26
2.6.4. Estrutura de Dados de Seleção............................................................................... 27
2.6.5. Considerações ....................................................................................................... 28
2.7. Conclusão ................................................................................................................... 29
Novo Método de Seleção e Materialização de Visões OLAP ................................................ 31
3.1. Introdução .................................................................................................................. 32
3.2. Esquema Conceitual de Dados .................................................................................... 32
3.3. Fases do Método Proposto ......................................................................................... 34
3.3.1. Extração de Dado Multidimensional ...................................................................... 34
3.3.2. Construção das Assinaturas OLAP .......................................................................... 38
3.3.3. Seleção das Visões ................................................................................................. 39
3.3.3.1. Critérios de Seleção ........................................................................................ 39
3.3.3.2. Algoritmos de Otimização Propostos .............................................................. 40
3.3.4. Materialização das Visões ...................................................................................... 51
xii
3.4. Conclusão ................................................................................................................... 54
Análise Experimental ............................................................................................................ 55
4.1. Introdução .................................................................................................................. 56
4.2. Configuração do Ambiente ......................................................................................... 56
4.3. Calibração dos Parâmetros ......................................................................................... 58
4.4. Avaliação dos Algoritmos ............................................................................................ 60
4.4.1. Espaço Disponível para Materialização .................................................................. 61
4.4.2. Tempo de Execução dos Algoritmos ....................................................................... 66
4.4.3. Redução do Tempo de Execução de Consultas ....................................................... 69
4.5. Conclusão ................................................................................................................... 71
Considerações Finais............................................................................................................. 74
5.1. Resumo do Trabalho ................................................................................................... 75
5.2. Principais Contribuições.............................................................................................. 75
5.3. Trabalhos Futuros ....................................................................................................... 78
Referências ............................................................................................................................ 80
Apêndice A - Esquema Conceitual Ampliado ...................................................................... 89
Apêndice B - Esquema Multidimensional da Base de Dados ............................................... 90
Capítulo 1 – Introdução 1
Capítulo 1 Introdução
Este capítulo discorre sobre a contextualização do domínio abordado, a motivação do
estudo realizado e os objetivos do trabalho aqui documentado, além de exibir uma
breve descrição da forma na qual este documento está estruturado.
Capítulo 1 – Introdução 2
1.1. Contextualização
Em um ambiente cada vez mais dinâmico e volátil, é essencial para as empresas
identificarem comportamentos e tendências sobre seu ambiente de negócio, pois
necessitam tomar decisões imediatas em situações emergentes, a fim de se manterem
fortes e competitivas no mercado, tendo em mente que, uma decisão tomada antes dos
concorrentes pode ser decisiva na liderança do mercado.
Portanto, a necessidade de informações rápidas e confiáveis incentiva a
realização de pesquisas sobre mecanismos para armazenar e manipular os dados
apropriadamente, visando agilizar o processo decisório. Como resultados dessas
pesquisas, têm-se os chamados Sistemas de Suporte a Decisão (SSD). SSD são
ferramentas computacionais e interativas, concebidas para auxiliar os tomadores de
decisão na extração de informações úteis a partir da combinação de dados, com o intuito
de identificar e resolver problemas e tomar decisões. Destacam-se como tecnologias de
SSD, o Data Warehouse (DW) (WREMBEL e KONCILIA, 2006) e as ferramentas
OLAP (On-Line Analytical Processing) (BACHEGA, PEREIRA e POLITANO, 2006).
DW é definido como “uma coleção de dados empresariais, orientados a assuntos,
integrados, mostrando a variabilidade no tempo e não voláteis” (INMON, 1996). O DW
integra grande quantidade de dados de diversas fontes em uma visão única, padronizada,
historizada e centralizada. Os dados do DW são organizados por esquemas (estrela ou
floco de neve) que facilitam o armazenamento e processamento dos dados. Esta
organização de dados permite que os usuários executem, de modo mais eficiente,
relatórios, análises e consultas sobre os dados armazenado do DW. Consultas analíticas
e multidimensionais (consultas OLAP) são submetidas por meio de ferramentas OLAP,
que por sua vez, recuperam os dados do DW e concedem aos tomadores de decisão,
uma visão dos dados sobre diferentes níveis de detalhes por meio de operações como
rollup, drilldown, pivoting e slice and dice (CHAUDHURI e DAYAL, 1997). Estas
operações são aplicadas sobre a metáfora visual de uma estrutura, denominada cubo de
dados, que organiza a informação segundo várias perspectivas de análise (dimensões,
hierarquias e níveis) definidas pelos analistas estratégicos e empresariais e para um
determinado fato de análise (informação de interesse de negócio).
Capítulo 1 – Introdução 3
As consultas OLAP são respondidas a partir de operações de seleção, junção e
agregação feitas sobre a base de dados segundo uma perspectiva de análise (visão).
Estas duas últimas operações representam grandes consumidores de tempo e recursos de
processamento, especialmente se aplicadas a grandes volumes de dados. No entanto,
consultas OLAP devem ser respondidas em um curto intervalo de tempo, já que a
qualidade das decisões, produtividade e satisfação dos tomadores de decisão dependem
fortemente da velocidade com a qual estas consultas são atendidas.
Por isso, diversas soluções têm sido propostas na literatura para maximizar o
desempenho do processamento de consultas analíticas. Dentre essas soluções, recentes
estudos mostram a importância da agregação parcial de estruturas multidimensionais
para aumento de velocidade da execução de consultas OLAP (KHAN e AZIZ, 2010).
Esta área de agregação parcial tem despertado o interesse da comunidade de pesquisa, e
principalmente, no que diz respeito à identificação do que deve ser parcialmente
agregado, ou seja, na definição sobre quais porções de dados (i.e. visões) devem ser
agregadas (i.e. materializadas).
Visões materializadas armazenam dados agregados e pré-computados para
eliminar a sobrecarga associada a custosas operações de junção e agregações de dados
exigidas por consultas analíticas. Assim, dado um certo limiar de custo de
armazenamento, há uma necessidade de selecionar as melhores visões para serem
materializadas, ou seja, visões que sejam compatíveis com os requisitos de
armazenamento e forneçam o menor tempo de resposta para processar consultas OLAP.
Várias soluções têm sido propostas por pesquisadores para resolver esse problema, que
é conhecido na literatura como Problema Seleção de Visões (PSV). Estas soluções
incluem a definição de algoritmos de otimização para a seleção de visões,
especificações de custos para as visões e a escolha de critérios para seleção.
Como o PSV trata-se de um problema reconhecidamente NP-Hard
(HARINARAYAN, RAJARAMAN e ULLMAN, 1996), diversos algoritmos de
otimização com variados critérios de seleção foram propostos. Alguns destes critérios
de seleção são obtidos a partir de um perfil de usuário OLAP, também conhecido por
Assinaturas OLAP (A-OLAP). Define-se A-OLAP como sendo um conjunto de
informações extraídas a partir de históricos de consultas OLAP feitas por usuários para
fins específicos.
Capítulo 1 – Introdução 4
O projeto de pesquisa aqui descrito enquadra-se na abordagem estática do PSV,
i.e visões são selecionadas estaticamente, materializadas e mantidas até que mudanças
sejam necessárias. A abordagem estática é mais apropriada em cenários nos quais é
conhecido de antemão o escopo de consultas de um usuário. Como nesta pesquisa faz-se
uso do histórico de consultas OLAP de um usuário, a abordagem estática é adotada.
Assim, esta pesquisa propõe um método de seleção e materialização de visões por meio
de um perfil de consulta OLAP (Assinatura OLAP) e algoritmos de otimização
baseados na meta-heurística GRASP, visando maximizar o desempenho destas
consultas.
1.2. Motivação
É de grande importância o tempo de reposta das consultas OLAP para a
qualidade das tomadas de decisões empresariais. Este tempo de resposta pode ser
influenciado por diversos fatores, principalmente pela disponibilidade dos dados, pois
no momento da submissão de uma consulta, faz toda a diferença se esta consulta já
possui os dados pré-agregados ou não. A necessidade de redução no tempo de resposta
das consultas OLAP é atendida por meio de visões materializadas. No entanto, isto
requer que haja uma decisão sobre quais visões devem ser materializadas, tornando o
PSV, o alvo de vários estudos na literatura.
O ciclo de execução das consultas multidimensionais se estende desde a
captação das consultas do usuário para a construção da Assinatura OLAP, até a
materialização de visões. Entretanto, a maioria dos estudos sobre PSV, encontrados na
literatura, não abrange todo este ciclo ou não especifica e implementa todo o ciclo de
execução de consultas multidimensionais.
Diversas estruturas de dados são propostas e utilizada pelas abordagens
existentes para capturar as relações entre as visões, tais como Lattice de Visões
(NADEAU e TEOREY, 2002), (LIN e KUO, 2004), (KUMAR e HAIDER, 2011); DAG
(Directed Acyclic Graph) ou Tree (BARIL e BELLAHSÉNE, 2003), (YOUSRI,
AHMED e EL-MAKKY, 2005), (DERAKHSHAN, STANTIC, et al., 2008); Wavelet
(SMITH, LI e JHINGRAN, 2004); Matrizes ou Vetores (AOUICHE, EMMANUEL
JOUVE e DARMONT, 2006), (HUNG, HUANG, et al., 2007); VSCG (View Selection
Cost Graph) (ZHOU, XU, et al., 2008). Nestas abordagens, existe um custo
Capítulo 1 – Introdução 5
computacional para a construção e manutenção dessas estruturas durante a execução dos
algoritmos de otimização. Isto se deve pelo acoplamento entre a estrutura e a lógica de
seleção definida pelo algoritmo de seleção de visões. Além deste custo computacional, o
acoplamento prejudica a flexibilidade da seleção de visões nestas abordagens, pois
como uma estrutura de dados é necessária, todo novo algoritmo de otimização que
possa ser adotado na seleção de visões demanda uma customização para funcionar com
a estrutura de dados utilizada na abordagem de otimização escolhida.
Além disso, até então, não se tem conhecimento sobre a utilização da meta-
heurística GRASP (Greedy Randomized Adaptive Search Procedure), na construção de
algoritmos de otimização para a seleção de visões. Ademais, GRASP é uma heurística
híbrida que combina as características da heurística gulosa e do procedimento de busca
local. Finalmente, GRASP tem se destacado como uma das heurísticas mais
competitivas em termos da qualidade das soluções alcançadas (FESTA e C., 2009). Por
estas razões, a metaheurística GRASP foi adotada no trabalho descrito neste documento.
Foi identificada a necessidade de definição de um método para seleção e
materialização de visões que diferente das outras abordagens existentes: (1) Mantenha
informações sobre as consultas OLAP previamente executadas, e também armazene
informações sobre o esquema do cubo de dados utilizado para processar as consultas;
(2) Defina como o histórico de consultas e as informações sobre o esquema do cubo de
dados são armazenados e subsequentemente usados para selecionar e materializar
visões; (3) Desacople a estrutura de dados usada da lógica de seleção; e (4) Utilize
como algoritmo de otimização para a seleção das visões, algoritmos baseados na meta-
heurística GRASP.
1.3. Objetivos
O objetivo principal deste trabalho é propor um método de seleção e
materialização de visões por meio de Assinaturas OLAP e algoritmos de otimização
baseados na meta-heurística GRASP, visando maximizar o desempenho das consultas
OLAP. Para contribuir com o objetivo principal desse trabalho, os objetivos específicos
são:
(1) Propor um esquema conceitual de dados para representação das assinaturas OLAP.
As informações concernentes às assinaturas OLAP caracterizarão, ao longo do
Capítulo 1 – Introdução 6
tempo e para um dado usuário, as consultas submetidas pelo usuário para um cubo
de dados particular. Como resultado, os elementos mais significativos do cubo de
dados são também identificados e representados no esquema conceitual proposto.
(2) Propor um método de seleção e materialização de visões que abrangerá todo o ciclo
de execução de uma análise multidimensional. Este método utilizará o esquema
conceitual de dados, citado no item anterior, para geração de conhecimento sobre
quais visões são mais benéficas e estão associadas ao escopo de consultas do
usuário. Estas visões devem ser selecionadas, e o esquema conceitual de dados deve
também fornecer informações para a materialização das visões selecionadas;
(3) Especificar e implementar algoritmos de otimização baseados na meta-heurística
GRASP para a seleção das visões OLAP.
(4) Realização de experimentos para validação do método, como também realizar
comparações entre os algoritmos de otimização propostos nesta dissertação e outros
algoritmos de otimização existentes na literatura.
1.4. Estrutura da dissertação
Esta dissertação está organizada como segue:
Capítulo 2 – Fundamentação teórica: introduz os principais conceitos envolvidos no
domínio abordado. Apresenta os trabalhos relacionados ao presente trabalho na intenção
de fundamentar o leitor acerca do estado da arte sobre o tema estudado.
Capítulo 3 – Método de Seleção e Materialização de Visões: este capítulo
primeiramente apresenta os conceitos e as propriedades do esquema conceitual proposto
para a representação das assinaturas OLAP e dos elementos do cubo de dados. Em
seguida, é mostrado o método de seleção e materialização de visões proposto, que é
estruturado em quatro fases. Neste capítulo, também é definido como o esquema
conceitual proposto é utilizado no novo método de seleção e materialização de visões.
Além disso, os algoritmos de otimização propostos são também aqui definidos.
Capítulo 4 – Análise Experimental: neste capítulo são discutidos os resultados dos
testes efetuados para análise e avaliação da solução proposta para seleção e
materialização de visões..
Capítulo 1 – Introdução 7
Capítulo 5 – Considerações Finais: nesse capítulo, são apresentadas as principais
contribuições do trabalho desenvolvido além de indicar os caminhos para as próximas
pesquisas do domínio abordado.
Capítulo 2 – Fundamentação Teórica 8
Capítulo 2 Fundamentação Teórica
Este capítulo destina-se a apresentar a fundamentação teórica relacionada à proposta
apresentada nesta dissertação. Conceitos básicos acerca de Estruturas
Multidimensionais de Dados, Assinaturas OLAP, Problema de Seleção de Visões (PSV),
Algoritmos de Otimização são listados e é exibida uma análise sobre o estado da arte
relativo ao desenvolvimento de soluções para o PSV.
Capítulo 2 – Fundamentação Teórica 9
2.1. Introdução
Este capítulo discorre sobre os conceitos relacionados com o trabalho descrito
neste documento. Além disso, ele objetiva apresentar o estado da arte sobre o
desenvolvimento de soluções para o PSV.
Este capítulo está organizado como segue. Na Seção 2.2, são apresentadas,
juntamente com seus conceitos, características sobre estruturas multidimensionais de
dados. A Seção 2.3 discute sobre a importância do uso de assinaturas em ambientes
OLAP que motiva a elaboração do esquema conceitual para armazenamento de
assinaturas OLAP, que é proposto nesta dissertação. Já os conceitos relacionados com o
PSV são apresentados na Seção 2.4. Enquanto a Seção 2.5 aborda e descreve sobre
algoritmos de otimização, a Seção 2.6 apresenta uma discussão sobre o estado da arte
acerca do desenvolvimento de soluções para o PSV. Por fim, algumas conclusões estão
dispostas na Seção 2.7.
2.2. Estruturas Multidimensionais de Dados
As estruturas multidimensionais de dados são o componente central dos sistemas
OLAP. São elas que organizam os dados oriundos do DW em várias perspectivas de
análise (dimensão, hierarquia, níveis), definidas pelos analistas estratégicos sobre um
determinado fato de análise. Dois esquemas principais são adotados para a organização
dos dados no DW: o esquema estrela e o floco-de-neve. O primeiro consiste geralmente
no arranjo de dois tipos de tabelas (fatos e dimensão) em um banco de dados relacional
(arquitetura ROLAP), de modo que uma tabela de fatos com uma chave composta é
associada a várias tabelas de dimensão, cada uma com uma chave primária. Uma tabela
de fatos é a tabela que contém as chaves estrangeiras das tabelas de dimensão e os
atributos de medida que representam as métricas de interesse do negócio. Os valores das
medidas são obtidos por meio de operações de agregação com base na chave composta
da tabela de fatos. Já as tabelas de dimensões são tabelas que armazenam, por meio de
colunas, as descrições textuais (atributos) das dimensões do negócio. No esquema
estrela, ilustrado pela Figura 2.1, está representado o armazenamento de dados, em
tabelas, relacionando o fato da venda com as dimensões Produto, Cliente e Tempo.
Capítulo 2 – Fundamentação Teórica 10
Figura 2.1: Exemplo de esquema estrela
O esquema floco-de-neve é uma extensão do esquema estrela e sua principal
característica é a normalização das dimensões. Na Figura 2.2, as dimensões cliente e
produto estão normalizadas, respectivamente, em relação às informações sobre cidade e
categoria. Apesar deste esquema possuir a vantagem de manutenção e menor espaço
físico das tabelas de dimensões, o esquema estrela é preferível ao floco-de-neve por sua
estrutura não normalizada que é mais eficiente por requerer menos operações de
junções.
Figura 2.2: Exemplo de esquema floco de neve
Conceitualmente, as estruturas multidimensionais permitem que ferramentas
OLAP manipulem os dados como se estes pertencessem a um cubo de dados,
exemplificado na Figura 2.3. A metáfora visual usada para visualização dos dados
multidimensionais consiste em um cubo de dados. Uma estrutura multidimensional com
três dimensões (cubo) é de fácil compreensão, porém a visualização de uma estrutura
multidimensional com mais de três dimensões (chamado de hipercubo ou multicubo) se
torna mais difícil. Assim, a designação simplista de cubo de dados é mais usual, mesmo
quando denota uma estrutura multidimensional com mais de três dimensões, devido,
Capítulo 2 – Fundamentação Teórica 11
simplesmente, à sua empatia visual. Cada célula do cubo representa um fato. Um fato é
descrito por uma série de medidas (valores numéricos localizados dentro da célula),
cujos valores são caracterizados por uma combinação de coordenadas (membros das
dimensões). Por exemplo, como mostrado na Figura 2.3, a célula correspondente à
combinação do produto P3 com o cliente C3 e tempo T1 representa o fato mensurado
como 81.
Figura 2.3: Exemplo de cubo de dados
Figura 2.4: Exemplo dimensões e hierarquias
A dimensão é um conceito essencial, pois cada dimensão do cubo representa um
tema de interesse no qual as medidas de desempenho de uma dada atividade de negócio
estão inseridas. As dimensões possuem dois propósitos principais: a seleção de dados e
o agrupamento em um dado nível. Por exemplo, o usuário pode analisar apenas os
dados das dimensões desejadas (e.g. as dimensões Produto e Tempo sendo usadas na
Capítulo 2 – Fundamentação Teórica 12
seleção dos dados) ou pode agrupar informações por níveis (e.g. mostra-se o valor
agregado pelo nível ano, mês ou dia da dimensão temporal).
Uma dimensão está organizada sob a forma de uma ou mais hierarquias. Uma
hierarquia é uma estrutura em árvore que organiza os membros de uma dimensão em
um ou mais níveis. Cada nível representa um nível de detalhe de interesse que permite a
visualização dos fatos em uma dada perspectiva de análise ou em um nível de
detalhamento. Para cada par dimensão/nível, tem-se um conjunto de instâncias que são
membros da dimensão. Para exemplificar, a Figura 2.4 exibe três dimensões cada qual
com suas respectivas hierarquias. A dimensão tempo tem os níveis: Ano, Mês, Dia.
Para o par tempo/mês pode-se ter as instâncias: Abril, Maio, Junho, que são membros
da dimensão temporal.
O esquema multidimensional representa a relação entre os dados e as estruturas
multidimensionais, ou seja, especifica a localização dos dados que comporão as
dimensões, os níveis e os membros. Um aspecto importante ao se definir o esquema
multidimensional é saber quais tipos de análises (perspectivas) sobre os dados são
relevantes a fim de que estas perspectivas atendam às necessidades de análise do
negócio. As perspectivas (visões sobre os dados) são associadas diretamente às
combinações existentes entre os níveis das dimensões. Por exemplo, a visão que permite
obter os fatos por cidade do cliente, por produto e por mês, consiste na combinação de
três níveis de cada dimensão e é representada por “Cidade x Produto x Mês” ou
(CiPM). Outro exemplo de visão consiste na omissão de uma das dimensões para obter
os fatos por produto e por ano, representado por “Produto x Ano” ou (-PM), no qual o
símbolo - denota a ausência da dimensão Cliente.
Uma visão possui um grau de granularidade sobre dados, que corresponde ao
nível de detalhe da visão. A granularidade é maior (ou mais grossa) se o nível de
combinação dos valores das dimensões é mais alto, por exemplo, “Cidade x Tipo x Mês
(CiTM)”, ou menor (ou mais fina), por exemplo “Cliente x Produto x Dia (CPD)”, se o
nível de combinação dos valores das dimensões é mais baixo. Uma granularidade mais
grossa corresponde a um menor nível de detalhes e consequentemente, implica em um
menor volume de dados, já uma granularidade mais fina corresponde a um maior nível
de detalhes e logo, gera um maior volume de dados.
Existe um relacionamento de dependência entre visões, no qual uma visão de
granularidade mais grossa pode ser obtida por uma visão de granularidade mais fina,
Capítulo 2 – Fundamentação Teórica 13
simplesmente agregando os valores ao longo da hierarquia. Por exemplo, a visão
(CiTM) pode ser obtida a partir da visão (CPD), agregando-se os valores de todos os
clientes por cidade; agregando-se os valores de todos os produtos por tipo; e agregando-
se os valores de todos os dias por mês.
Figura 2.5: Exemplo de Grafo de Derivação
A estrutura de dados que contém as visões e os relacionamentos de dependências
entre elas é denominada lattice de visões ou grafo de derivação (HARINARAYAN,
RAJARAMAN e ULLMAN, 1996). Um grafo de derivação G é um par (V, A) de
conjuntos disjuntos de vértices V e arcos A. V(G) representa as visões, enquanto A(G)
representa um conjunto de relações de dependência entre estas visões. A Figura 2.5
ilustra um exemplo de grafo de derivação, de acordo com as dimensões e os níveis da
Figura 2.4, mas considerando apenas os dois níveis de maior e menor posição
hierárquica por dimensão.
O lattice de visões representa o conjunto de todas as agregações possíveis
(cálculo de todos os agrupamentos possíveis) obtidas a partir de um dado esquema
dimensional. Por sua vez, uma visão corresponde à agregação de um conjunto de dados
para uma determinada combinação de níveis de detalhes.
O resultado de uma consulta analítica não precisa, essencialmente, do cálculo e
armazenamento (total ou parcial) das agregações do lattice de visões. Os dados das
tabelas definidas no esquema dimensional (tabela de fatos e tabela de dimensões), que
denotam um maior nível de detalhe, podem ser utilizados, acessando para isso, o DW.
Entretanto, as operações de leitura e agregação sobre estes dados podem consumir
muito tempo, já que uma grande quantidade de registros pode ser envolvida nas
operações, mesmo se índices forem usados. Por isso, os dados da consulta analítica
Capítulo 2 – Fundamentação Teórica 14
podem ser previamente calculados e armazenados, para que o resultado da consulta seja
obtido mais rapidamente. Estes dados pré-computados representam visões
materializadas.
A diferença entre uma visão e uma visão materializada é que a visão representa
uma abstração sobre quais dados e sobre como eles devem ser agregados, enquanto uma
visão materializada consiste na concretização da abstração, ou seja, significa que os
dados correspondentes à visão se encontram calculados e materializados. Uma consulta
(q1) do tipo: exibir o valor total das vendas para cada cliente e respectivo produto
comprado pode ser respondida pela materialização da visão (CP-) exibida na Figura 2.5.
Outra consulta (q2), exibir o valor das vendas por cliente pode ser respondida pela
materialização da visão (C--). Mas se a visão (C--) não estivesse materializada a
consulta q2 poderia se respondida pela materialização da visão (CP-), pois uma
operação de agregação por cliente na visão materializada (CP-) poderia ser realizada.
Mesmo com o custo associado à operação de agregação sobre (CP-) para responder a
consulta q2, o tempo de processamento é menor do que por meio das tabelas do DW,
pois em (CP-) os dados estão sumarizados, ou seja, em menor quantidade.
Uma consulta pode ser respondida a partir do acesso a diferentes visões
materializadas, pois a partir de uma visão pode-se obter (derivar) outra visão. O
caminho de obtenção de uma visão a partir de uma existente é representado pelo grafo
de derivação ilustrado na Figura 2.5. É possível solucionar a consulta (q2) por meio de
(CP-) ao invés de usar (C--), porque existe uma aresta direcionada de (CP-) à (C--) no
grafo de derivação, ou seja, é possível derivar (C--) a partir de (CP-). Assim,
conhecendo as visões materializadas e os seus relacionamentos e custos, é simples
identificar a visão que pode ser utilizada para responder uma dada consulta.
Em síntese, diz-se que a materialização das visões é condição de desempenho
num sistema de processamento analítico. Todavia, a materialização tem um preço: o
espaço de armazenamento, o tempo de cálculo e de materialização, e o tempo de
atualização, já que as alterações das tabelas do DW deverão ser refletidas em todas e
quaisquer visões materializadas. Desta forma, existe um problema de pesquisa em
aberto que consiste em identificar quais visões deve-se materializar. Este tópico de
pesquisa será mais detalhado na Seção 2.4.
Capítulo 2 – Fundamentação Teórica 15
2.3. Assinaturas OLAP
Perfil de usuário, resumidamente, é uma coleção de dados que armazena a
descrição das características de um determinado usuário. Um perfil corresponde à
assinatura de um dado indivíduo, pois um perfil consiste na representação digital e
explícita da identidade de uma dada pessoa (ALFONSECA e RODRÍGUEZ, 2003).
Assinaturas são utilizadas para identificar ou representar indivíduos. Exemplos de
sistemas computacionais que fazem uso destas assinaturas são: redes sociais (Orkut,
MySpace, Facebook, LinkedIn); sistemas operacionais (Microsoft Windows Profile);
setores comerciais para estratégias de marketing sobre clientes; e setores financeiros
para concessão de créditos e prevenção de fraudes (EDGE e SAMPAIO, 2009) e
(HILDEBRANDT e GUTWIRTH, 2008). Existem diversas metodologias para a
geração de perfis de usuário e seu processo de aplicação inclui a definição e a
manutenção de assinaturas como uma forma prática de caracterizar ao longo do tempo,
o comportamento de um dado indivíduo, num dado ramo de atividade.
Um usuário OLAP realiza uma série de consultas analíticas com o intuito de
responder a um estudo que tem em mente, por exemplo, um analista que deseja perceber
a evolução das vendas de carros em várias lojas espalhadas pelo país. Para chegar a esse
resultado o usuário pode começar com consultas parciais, por exemplo, “Quais as lojas
mais rentáveis do último trimestre?”. Em seguida ele pode querer saber: “Quais os
carros mais vendidos nessas lojas?” e continua submetendo consultas até obter o que
lhe interessa. As consultas OLAP realizadas são o indicativo do que realmente é
relevante para o usuário em um dado momento. A distribuição da frequência de
repetição de cada consulta efetuada corresponde a um histórico de execução de
consultas do usuário e tê-lo em consideração na hora da decisão sobre a escolha de qual
visão deve ser materializada é muito importante, pois a escolha é feita de acordo com o
que realmente é importante para o usuário. Assim, assinaturas OLAP (A-OLAP) são um
conjunto de informações extraídas a partir do registro histórico de consultas OLAP
feitas por usuários para fins específicos. A-OLAP são utilizadas para melhorar o
desempenho do processamento de consultas, como atestam alguns trabalhos (SAPIA,
1999), (PARK, KIM e LEE, 2003), (GUPTA, 1997) , (SOUTYRINA e FOTOUHI,
1997),(BARALIS, PARABOSCHI e TENIENTE, 1997), (HORNG, CHANG, et al.,
1999) , (LIN e KUO, 2004), (DE ALBUQUERQUE LOUREIRO, 2006), (KALNIS,
MAMOULIS e PAPADIAS, 2002) e(KUMAR e HAIDER, 2011).
Capítulo 2 – Fundamentação Teórica 16
2.4. O Problema de Seleção de Visões (PSV)
Estudos mostram a magnitude do ganho em tempo de execução de consultas
multidimensionais que são solucionadas por meio da agregação parcial do cubo de
dados (KHAN e AZIZ, 2010). Como visto na Seção 2.2, a materialização de
determinadas visões aumenta o desempenho total ou parcial de algumas consultas.
Porém, a agregação total do cubo de dados, ou seja, a materialização de todas as visões
para ganho de desempenho não é factível. Em casos reais, é impossível a agregação
total. A materialização de cada visão tem um preço associado: espaço de
armazenamento, tempo de cálculo de materialização e tempo de atualização. Além
disso, o número de visões possíveis é dado pela fórmula , na qual é o
número de níveis por hierarquia da dimensão e é o número de dimensões existentes
no cubo. A computação desta fórmula resulta em uma explosão combinatória. Por se
tratar de um produtório, o número de visões possíveis para um dado esquema
multidimensional exibe uma grande combinação de valores possíveis. No exemplo da
Figura 2.5, no qual existem dois níveis por dimensão, têm-se visões. Mas
se tivermos cinco dimensões, cada uma com quatro níveis, têm-se
visões possíveis.
Em meio à impossibilidade da materialização total dos dados, é importante
definir quais visões devem ser materializadas e como selecioná-las. Está indagação deu
origem a um problema de maior relevância em sistemas OLAP, conhecido na literatura
como Problema de Seleção de Visões (PSV) (KHAN e AZIZ, 2010). O PSV é um
problema reconhecido como NP-Hard (HARINARAYAN, RAJARAMAN e
ULLMAN, 1996) e de natureza combinatória, já que o espaço de busca da solução do
problema é constituído a partir de combinações entre visões que serão e não serão
materializadas. Se o número de visões possíveis é muito grande, o número de suas
possíveis combinações é muito maior. Por exemplo, com 1024 visões possíveis têm-se
soluções possíveis. A procura da solução por meio de pesquisa
exaustiva no espaço de soluções implicaria em um número igual de iterações. Mesmo
que cada iteração tenha a duração de apenas, o processo teria a duração de
anos.
Em resumo, o PSV é um problema de otimização combinatória, no qual se tem
um conjunto V de visões possíveis do cubo C. É essencial encontrar o subconjunto
que maximize o benefício (ou minimize o custo) total das consultas realizadas
Capítulo 2 – Fundamentação Teórica 17
sobre C. A modelagem matemática do PSV é exibida na Figura 2.6, a qual corresponde
a formulação do Problema da Mochila (Knapsack Problem). Seja o
conjunto das visões a serem escolhidas para materialização. Denota-se como a
variável de decisão que indica com valor igual a 1 se a visão foi escolhida para ser
materializada e 0 caso contrário. Seja o beneficio da materialização da visão e o
espaço físico necessário para o armazenamento da visão . O problema consiste em
encontrar um subconjunto de de modo a obter o maior valor de benefício
considerando como restrição um valor C, que representa o espaço de armazenamento
disponível para a materialização das visões selecionadas.
Figura 2.6: Modelagem Matemática do PSV
2.5. Algoritmos de Otimização
Problemas de otimização surgem em quase todas as áreas, desde a área de
desenvolvimento científico até áreas de aplicação industrial. Eles emergem quando a tarefa
é encontrar a melhor dentre muitas soluções possíveis para um dado problema, desde que
exista uma noção clara de como avaliar a qualidade da solução. Contrariamente a outros
problemas de otimização, os problemas de caráter combinatório têm um número finito de
soluções candidatas. Assim, uma forma óbvia de resolução seria a enumeração de todas as
soluções candidatas, comparando-as. Infelizmente, para a maioria destes problemas, esta
abordagem não é praticável, já que o número de soluções possíveis é simplesmente
exponencial. Este é o caso do PSV.
Esta é a razão pela qual pesquisadores têm concentrado esforços na utilização de
heurísticas para solucionar problemas de complexidade exponencial (HYLOCK e
CURRIM, 2013), (KUMAR e HAIDER, 2011), (KHAN e AZIZ, 2010). Uma heurística
consiste em uma técnica inspirada em processos intuitivos que procura uma boa solução a
um custo computacional aceitável, sem, no entanto, estar capacitada a garantir a obtenção
Capítulo 2 – Fundamentação Teórica 18
da solução ótima, bem como garantir quão próximo está a solução obtida da solução ótima.
O desafio é produzir, em tempo reduzido, soluções tão próximas quanto possível da solução
ótima. Muitos esforços têm sido feitos nesta direção e heurísticas muito eficientes e
flexíveis foram desenvolvidas para diversos problemas. As meta-heurísticas, que são
heurísticas de propósito geral, podem ser facilmente adaptadas para resolução de diversos
problemas. Dentre os procedimentos enquadrados como meta-heurísticas que surgiram ao
longo das últimas décadas, destacam-se: Algoritmos Genéticos, GRASP, Colônia de
Formigas, Redes Neurais, Recozimento Simulado (Simulated Annealing) e Religamento de
Caminho (Path-Relinkg) (GENDREAU e POTVIN, 2010). Nas seções seguintes,
heurísticas, que foram adotadas nos experimentos reportados neste documento são
explicadas detalhadamente.
2.5.1. GRASP - Greedy Randomized Adaptive Search Procedure
As meta-heurísticas são uma das alternativas mais promissoras para a solução
aproximada de problemas de elevado nível de complexidade computacional. Dentre as
meta-heurísticas existentes, GRASP (Greedy Randomized Adaptive Search Procedure),
proposto por (FEO e RESENDE, 1995), tem se destacado como uma das mais
competitivas em termos da qualidade das soluções alcançadas (FESTA e C., 2009). A
meta-heurística GRASP é um processo iterativo, no qual cada iteração consiste,
resumidamente, em repetir dois passos até que certo critério de parada seja atingido,
como ilustra a Figura 2.7. O primeiro passo, a fase construtiva, consiste em gerar uma
solução inicial de boa qualidade por meio de uma heurística gulosa aleatorizada. O
segundo passo, a fase de busca local, consiste em melhorar a solução inicial por meio de
uma busca local e atualizar a melhor solução encontrada até então.
Muitas técnicas podem ser acopladas ao GRASP no intuito de aperfeiçoar a
heurística GRASP. Nas próximas seções, duas dessas técnicas Path-Relinking (PR) e
Reactive GRASP são descritas.
GRASP ( )
Entrada: uma lista de vértices ( ),
Saída: melhor solução encontrada
1 melhorSolucao ;
2 ENQUANTO critério de parada não for satisfeito FAÇA
3 solucao FaseConstrução(
' );
Capítulo 2 – Fundamentação Teórica 19
4 solucao FaseBuscaLocal(
' , solucao); 5 AtualizarSolucao(solucao, melhorSolucao);
6 RETORNE melhorSolucao;
Figura 2.7: Meta-heurística GRASP
2.5.1.1. Path-Relinking
O Path-Relinking (PR) (RESENDE e RIBEIRO, 2005) consiste em uma
estratégia de busca de soluções que explora o caminho de conexão entre duas soluções:
uma chamada de solução origem e outra chamada de solução alvo. Partindo de uma
solução origem, faz-se nela movimentos de adição e/ou remoção de elementos, de modo
que a cada movimento realizado, i.e a cada passo, a solução origem se torne cada vez
mais semelhante à solução alvo. Todo o caminho de conexão é percorrido quando a
solução origem se torna idêntica à solução alvo. O objetivo desta técnica consiste em
encontrar, durante a realização dos passos, uma solução que seja melhor do que as
soluções extremas deste caminho.
Uma forma de realizar o PR é por meio de passos do tipo forward, no qual a
solução de melhor valor dentre as duas soluções é atribuída como solução alvo, ou seja,
o passo consiste em fazer um movimento, tendo como solução origem, a solução de
menor valor e tendo como solução alvo, a solução de maior valor. A outra forma é por
meio de passo do tipo backward, no qual a solução de menor valor dentre as duas
soluções é atribuída como solução alvo, ou seja, o passo consiste em realizar um
movimento, tendo como solução origem, a solução de maior valor e tendo como solução
alvo, a solução de menor valor. Outra forma de proceder é por meio de passos do tipo
mixed, no qual os dois passos (forward e backward) são utilizados intercaladamente.
Quando há uma grande concentração de soluções muito boas próximas à solução
origem no caminho explorado pelo Path-Relinking, explorar apenas frações do caminho
pode produzir soluções quase tão boas quantas aquelas encontradas por explorar o
caminho de conexão inteiro. Desta forma, também existe a versão Truncated do PR, na
qual não é percorrido todo o caminho de conexão entre as duas soluções iniciais. Em
vez de explorar o caminho inteiro, o Truncated PR só explora uma parte do caminho
existente entre duas soluções e, consequentemente, leva uma fração menor do tempo
para ser executado. O Truncated PR pode ser aplicado nos tipos forward, backward ou
mixed. Isto produz mais três variantes do PR: forward truncated, backward truncated e
mixed truncated.
Capítulo 2 – Fundamentação Teórica 20
Para ilustrar o funcionamento do Path-Relinking é exibido na Figura 2.8 duas
soluções: uma solução origem e uma solução alvo. Seis passos foram necessários para
realizar o religamento entre a solução origem e a solução alvo. Para a realização do
primeiro passo (P1), um leque com seis opções de movimento foi gerado para se chegar
à solução alvo. Então, as seis opções foram analisadas e o terceiro movimento foi
selecionado como o melhor movimento. No segundo passo (P2), cinco opções de
movimento foram geradas e foi selecionado o quarto movimento. Em seguida, no
terceiro passo (P3), quatro opções de movimento foram geradas e o segundo movimento
foi selecionado. No último passo (P6), a solução alvo foi atingida e cinco soluções
foram produzidas durante o religamento: S1, S2, S3, S4, S5. A melhor dentre as cinco
soluções é retornada pelo Path-Reliking.
Figura 2.8: Exemplo de funcionamento do Path-Relinking
2.5.1.2. Reactive Grasp
Os algoritmos baseados na meta-heurística GRASP recebem, além dos dados de
entrada peculiares ao problema sendo otimizado, os valores dos parâmetros de
configuração do algoritmo. Estes valores regulam a execução eficiente do algoritmo
segundo os dados de entrada do problema. Desta forma, para cada conjunto de dado de
entrada distinto, é necessária a realização da calibração destes parâmetros. Visando
eliminar o custo associado à calibração dos parâmetros, são propostos em (FEO e
RESENDE, 1995), (RIOS-MERCADO e FERNANDEZ, 2009), (BOUDIA, LOULY e
PRINS, 2007), (KAMKE, ARROYO e DOS SANTOS, 2009), (DENG e BARD, 2011),
versões reativas do GRAP (Reactive GRASP). Estas versões propõem mecanismos de
auto-configuração dos parâmetros de entrada que regulam os procedimentos do
algoritmo ao longo da execução. No contexto do PSV, a versão reativa melhora o
dinamismo do método proposto neste documento, pois não é necessária, internamente,
Capítulo 2 – Fundamentação Teórica 21
uma etapa para a escolha dos melhores valores para os parâmetros de configuração do
algoritmo de seleção. Além disso, a atribuição destes valores pelo usuário OLAP pode
não ser satisfatório, pois necessitaria do seu entendimento sobre os parâmetros e
requereria a realização de testes experimentais para escolha dos melhores valores. Por
isso, este trabalho propõe um novo algoritmo de seleção de visões baseados na versão
reativa da meta-heurística GRASP.
2.5.2. ACO - Ant Colony
A meta-heurística de otimização por Colônia de Formigas, ou simplesmente
Colônia de Formigas (Ant Colony Optimization Metaheuristic - ACO), tem sido
aplicada em problemas de otimização (DORIGO e BLUM, 2005) e no domínio do PSV
(SONG e GAO, 2010). Esta meta-heurística emula o comportamento de um conjunto de
formigas que cooperam entre si para solucionar um problema de otimização. A
cooperação entre as formigas se dá por meio do feromônio depositado por cada formiga
ao se deslocar no espaço de busca, permitindo que o rastreamento desta substância
possa ser usado como informação por outras formigas. Além das atividades das
formigas, a meta-heurística inclui o procedimento de evaporação da trilha de feromônio.
A evaporação de feromônio é o processo pelo qual o feromônio depositado pelas
formigas decresce ao longo do tempo. Isto é necessário para evitar uma convergência
prematura do algoritmo em uma região subótima.
Na Figura 2.9, uma implementação da meta-heurística Colônia de Formigas
aplicada ao PSV é exibida. Nesta implementação, o algoritmo recebe como parâmetros
de entrada: a lista de visões candidatas à materialização (Ψ), o espaço disponível para
materialização das visões (δ), a taxa de evaporação do feromônio (ρ), o número de
formigas que saem de um caminho inicial (π) e a quantidade total de feromônio
depositado ao longo do caminho (Q). Este último valor é igual ao número total de
visões encontradas em (Ψ). representa um movimento (trecho) do local i ao local j.
Um local i ou j representa uma solução no espaço de soluções do problema. é a
quantidade de feromônio depositada por todas as formigas no trecho (i, j).
Inicialmente a quantidade total de feromônio em cada trecho (i,j) possui o
mesmo valor, e é igual a 1. A melhor solução até então encontrada é vazia, ou seja,
inicialmente tem-se que nenhuma visão foi adicionada. Na linha 5, para obtenção de
uma rota (solução), uma visão v é escolhida como ponto inicial da rota, ou seja, v é a
Capítulo 2 – Fundamentação Teórica 22
primeira visão adicionada à solução. Em seguida, cada trecho (i,j) que compõe a rota é
criado pela adição de uma visão de índice j à solução, tendo no trecho anterior
adicionado a visão de índice i. Obtida a rota s pela formiga k, na linha 7, é feita a
comparação entre a melhor solução corrente (melhor_solucao) e a solução s. Caso o
benefício de s seja maior que o de melhor_solucao, então melhor_solucao passa a
armazenar a solução presente em s. Além disso, na linha 8, é atribuído o feromônio
depositado pela formiga k em todos os trechos percorridos por ela. Antes que o ciclo da
linha 4 se repita, ou seja, antes que uma nova rota seja traçada pela próxima formiga, na
linha 10, é executada a evaporação do feromônio. Por fim, quando o critério de parada é
atingido, a melhor solução até então encontrada é retornada.
2
5
8
9
10
Figura 2.9: Algoritmo Colônia de Formigas
2.6. Trabalhos Correlatos
Diversas abordagens têm sido propostas para o problema de seleção de visões
(PSV) (HYLOCK e CURRIM, 2013), (KHAN e AZIZ, 2010). Nelas são utilizados,
Capítulo 2 – Fundamentação Teórica 23
como critério de seleção, o custo de processamento das consultas e/ou o custo de
manutenção das visões. Estes critérios envolvem a combinação de fatores associados à
visão, tais como: espaço físico, frequência de utilização, frequência de atualização,
custo de manutenção, planos de execução de consultas e utilização de índices nas
tabelas de materialização.
Outras abordagens, em menor quantidade, são encontradas na literatura para
outros domínios do PSV, que utilizam como fontes de dados, bases de dados não
convencionais tais como: banco de dados XML (TANG, YU, et al., 2009); banco de
dados espaciais (LI, WANG e LIU, 2006), (YU, ATLURI e ADAM, 2006), (YU,
ATLURI e ADAM, 2005); e banco de dados distribuído no qual as visões se encontram
dispersas em diferentes servidores (BAUER e LEHNER, 2003),(KARDE e THAKARE,
2010), (DE ALBUQUERQUE LOUREIRO, 2006).
Para uma análise sistêmica das abordagens encontradas na literatura, para
seleção e materialização de visões OLAP, os trabalhos foram agrupados em quatro
classes de análise segundo: (1) as restrições de seleção, Seção 2.6.1; (2) a heurística de
seleção, Seção 2.6.2; (3) a configuração de seleção, Seção 2.6.3; e (4) a estrutura de
dados de seleção, Seção 2.6.4. Por fim, na Seção 2.6.5, são feitas as considerações
sobres estas quatro classes de análise relacionando-as à abordagem proposta neste
documento.
2.6.1. Restrições de Seleção
As abordagens estão agrupadas segundo as restrições adotadas por elas para
limitar o número de visões a serem materializadas.
Espaço Físico de Materialização: critério de seleção presente na maioria das
abordagens. A quantidade de visões a serem materializadas é limitada ao espaço físico
disponível para materialização das visões selecionadas.
Custo de Manutenção da Visões: o conjunto de visões escolhido para
materialização não pode ter o seu custo de manutenção de visões maior que um valor de
custo de manutenção de visões especificado (ASHADEVI e BALASUBRAMANIAN,
2009),(GUPTA e MUMICK, 1999), (HUNG, HUANG, et al., 2007) (TALEBIAN e
KAREEM, 2010), (TALEBIAN e KAREEM, 2009), (YU, YAO, et al., 2003),
(YUHANG, QI e WEI, 2010). Este custo de manutenção de visões pode ser mensurado
em termos do tempo de atualização ou do número de atualizações realizadas.
Capítulo 2 – Fundamentação Teórica 24
Número de Visões: um número k de visões é informado. O conjunto de visões
selecionado para materialização deve possuir cardinalidade menor ou igual ao número k
(DHOTE e ALI, 2007), (KALNIS, MAMOULIS e PAPADIAS, 2002), (VIJAY
KUMAR e GHOSHAL, 2009), (KUMAR e HAIDER, 2010), (KUMAR e HAIDER,
2011), (KUMAR, HAIDER e KUMAR, 2011a), (KUMAR, HAIDER e KUMAR,
2010a).
Sem Restrição: não utiliza restrições sobre a quantidade de visões a serem
materializadas. Este critério de seleção está presente na maioria dos trabalhos. O
objetivo é tentar encontrar um conjunto de visões de custo mínimo (CHIRKOVA, LI e
LI, 2006), (DERAKHSHAN, H., et al., 2006), (DERAKHSHAN, STANTIC, et al.,
2008), (YANG, KARLAPALEM e LI, 1997), (YANG, KARLAPALEM e LI, 1997),
(ZHANG, YAO e YANG, 2001), (ZHANG, YAO e YANG, 1999).
2.6.2. Heurística de Seleção
As abordagens também podem ser classificadas segundo a heurística de
otimização adotada nos algoritmos de seleção de visões, como mostrado a seguir.
Heurística Gulosa: técnica que sempre escolhe o que parece ser a melhor
solução no momento, fazendo uma escolha ótima local, na esperança de que esta
escolha obtenha a solução ótima global (AOUICHE, EMMANUEL JOUVE e
DARMONT, 2006), (CHAN, LI e FENG, 1999), (GUPTA, 1997), (GUPTA,
HARINARAYAN, et al., 1997), (HARINARAYAN, RAJARAMAN e ULLMAN,
1996), (VIJAY KUMAR e GHOSHAL, 2009), (KUMAR e HAIDER, 2010), (KUMAR
e HAIDER, 2011), (KUMAR, HAIDER e KUMAR, 2011a), (KUMAR, HAIDER e
KUMAR, 2010a), (LI e FENG, 2001), (NADEAU e TEOREY, 2002), (SHUKLA,
DESHPANDE e NAUGHTON, 1998), (UCHIYAMA, RUNAPONGSA e TEOREY,
1999). É uma técnica de fácil implementação que produz resultados rápidos e eficientes.
Contudo, ela possui uma clara desvantagem: a produção de um número muito limitado
de soluções, ou seja, dada uma entrada, a solução gerada sempre é a mesma. Isto se
deve ao fato de as decisões gulosas tomadas, em passos iniciais do processo construtivo
da solução, restringirem fortemente as possibilidades em fases posteriores, muitas vezes
determinando movimentos muito pobres nas fases finais do processo de construção, o
que, usualmente, leva a soluções subótimas (máximos e mínimos locais).
Capítulo 2 – Fundamentação Teórica 25
Heurística de Busca Aleatória: técnica que consiste em percorrer o espaço de
soluções de modo a encontrar boas soluções por meio de movimentos (pseudo)
aleatórios (DERAKHSHAN, H., et al., 2006),(DERAKHSHAN, STANTIC, et al.,
2008), (KALNIS, MAMOULIS e PAPADIAS, 2002),(PHUBOON-OB e
AUEPANWIRIYAKUL, 2007). Nesta classe, encontra-se uma subclasse de técnicas
bioinspiradas. São técnicas baseadas no comportamento de populações para solucionar
problemas, tais como: Colônia de Formigas (SONG e GAO, 2010); Enxame de
Partículas (DE ALBUQUERQUE LOUREIRO, 2006), (SUN e WANG, 2009); Salto
de Rãs (LI, QIAN, et al., 2010). As suas principais vantagens são conseguir evitar
máximos e mínimos locais e gerar um número elevado de soluções. Todavia, ela possui
a desvantagem de que dependendo do grau de aleatoriedade no movimento de busca, as
soluções podem ser muito dispersas e distantes da solução ótima.
Heurísticas Evolucionárias: técnica inspirada na evolução biológica de
indivíduos. O objetivo é evoluir soluções de modo a encontrar soluções ótimas ou
subótimas (HORNG, CHANG, et al., 1999), (LAWRENCE, 2006), (LEE e HAMMER,
2001), (TALEBIAN e KAREEM, 2010), (TALEBIAN e KAREEM, 2009), (YU, YAO,
et al., 2003), (ZHANG, YAO e YANG, 2001), (ZHANG, YAO e YANG, 1999). Ela
possui a vantagem de apresentar soluções bem melhores que as outras heurísticas. Suas
principais desvantagens são a dificuldade de codificação do problema e a exigência de
um maior custo computacional que as demais heurísticas.
Heurísticas Híbridas: utiliza a combinação de técnicas citadas acima. O objetivo
desta heurística é explorar boas propriedades de diferentes técnicas de modo a resolver
os problemas de modo mais eficiente. Em geral, as abordagens híbridas apresentam
melhores resultados do que as heurísticas puras. Como exemplo, tem-se as seguintes
abordagens: guloso mais genético (LIN e KUO, 2004), (LIN e KUO, 2000), (WANG e
ZHANG, 2005); Busca Aleatória com Heurística Clonal (YUHANG, QI e WEI, 2010);
Genético e Busca Aleatória (ZHOU, XU, et al., 2008), (ZHANG, SUN e WANG, 2009)
.
Heurísticas Específicas: são abordagens que não se encontram em qualquer das
quatro classes citadas anteriormente. Estas heurísticas foram concebidas para atender a
modelos específicos do problema de seleção de visões (AFONIN, 2008), (AFRATI,
DAMIGOS e GERGATSOULIS, 2009), (AFRATI, CHIRKOVA, et al., 2007),
(ASHADEVI e BALASUBRAMANIAN, 2009),(BARIL e BELLAHSÉNE, 2003),
Capítulo 2 – Fundamentação Teórica 26
(CHIRKOVA, LI e LI, 2006), (DHOTE e ALI, 2007), (DOBBIE e LING, 2000), (GOU,
YU e LU, 2006), (GOU, YU, et al., 2003), (GUPTA e MUMICK, 1999), (HUNG,
HUANG, et al., 2007), (LIANG, WANG e ORLOWSKA, 2001), (LIGOUDISTIANOS,
SELLIS, et al., 1999), (LIN, YANG, et al., 2007), (LUEBCKE, GEIST e BUBKE,
2008), (SERNA-ENCINAS e HOYO-MONTANO, 2007), (SMITH, LI e JHINGRAN,
2004), (SOUTYRINA e FOTOUHI, 1997), (THEODORATOS, 2000),
(THEODORATOS e SELLIS, 1999), (THEODORATOS e BOUZEGHOUB, 2000),
(VALLURI, VADAPALLI e KARLAPALEM, 2002), (YANG, KARLAPALEM e LI,
1997), (YANG, KARLAPALEM e LI, 1997), (YOUSRI, AHMED e EL-MAKKY,
2005), (ZHOU, GE, et al., 2009), (ZHOU, WU e GE, 2008). Em algumas dessas
abordagens têm-se a garantia de obter soluções ótimas, mas para isso, o número de
visões deve ser pequeno para viabilizar a construção da solução, o que torna a sua
aplicação inviável, em casos reais, nos quais o número de visões é elevado.
2.6.3. Configuração de Seleção
As abordagens encontradas também podem ser agrupadas segundo a
configuração de seleção: estática, dinâmica e híbrida. A abordagem estática é aquela nas
quais as visões são selecionadas estaticamente, materializadas e mantidas até uma futura
necessidade de modificação da janela de materialização. Esta abordagem representa a
maior parte das abordagens encontradas, devido a sua simplicidade em relação à
abordagem dinâmica e por se adequar melhor aos cenários no quais se conhece
previamente o escopo de consultas realizadas pelo usuário. Já para cenários nos quais as
consultas efetuadas mudam constantemente, ou que por algum motivo não é factível
especificar um escopo de consultas, a abordagem dinâmica é adequada. Na abordagem
dinâmica, a visões são selecionadas durante a execução de consultas, promovendo a
inclusão e a remoção dinâmica de visões no conjunto de visões atualmente
materializadas (GONG e ZHAO, 2008), (HOSE, KLAN e SATTLER,
2009),(LAWRENCE e RAU-CHAPLIN, 2006), (PHAN e LI, 2008),
(RAMACHANDRAN, SHAH e RAGHAVAN, 2005), (XU, THEODORATOS, et al.,
2007), (YIN, YU e LIN, 2007),(ZHOU, LARSON, et al., 2007), (ZHOU, GE, et al.,
2009a). A abordagem hibrida mescla os dois princípios. A idéia é dividir as visões entre
um conjunto estático e um conjunto dinâmico e realizar a permuta entre esses dois
conjuntos durante a execução das consultas (SHAH, RAMACHANDRAN e
RAMACHANDRAN, 2006).
Capítulo 2 – Fundamentação Teórica 27
2.6.4. Estrutura de Dados de Seleção
Outro agrupamento das abordagens encontradas consiste na definição da
estrutura de dados utilizada por elas para capturar as relações entre as visões:
Lattice de Visões: (BARALIS, PARABOSCHI e TENIENTE, 1997),
(HARINARAYAN, RAJARAMAN e ULLMAN, 1996), (JAMIL e MODICA, 2001),
(VIJAY KUMAR e GHOSHAL, 2009),(KUMAR e HAIDER, 2010),(KUMAR e
HAIDER, 2011),(KUMAR, HAIDER e KUMAR, 2011a), (KUMAR, HAIDER e
KUMAR, 2010a), (LIN e KUO, 2004),(LIN e KUO, 2000), (NADEAU e TEOREY,
2002), (SHUKLA, DESHPANDE e NAUGHTON, 1998), (TALEBIAN e KAREEM,
2010), (TALEBIAN e KAREEM, 2009), (YUHANG, QI e WEI, 2010)
DAG (Directed Acyclic Graph) ou Árvores: (BARIL e BELLAHSÉNE, 2003),
(DERAKHSHAN, H., et al., 2006), (DERAKHSHAN, STANTIC, et al., 2008),
(DHOTE e ALI, 2007), (GOU, YU e LU, 2006), (GOU, YU, et al., 2003), (GUPTA,
1997), (HORNG, CHANG, et al., 1999), (LEE e HAMMER, 2001), (LI, QIAN, et al.,
2010), (LIANG, WANG e ORLOWSKA, 2001), (LIGOUDISTIANOS, SELLIS, et al.,
1999), (PHUBOON-OB e AUEPANWIRIYAKUL, 2007), (SUN e WANG, 2009),
(THEODORATOS, 2000), (THEODORATOS e SELLIS, 1999), (Valluri, et al., 2002),
(YANG, KARLAPALEM e LI, 1997), (YANG, KARLAPALEM e LI, 1997),
(YOUSRI, AHMED e EL-MAKKY, 2005), (ZHANG, YAO e YANG, 2001),
(ZHANG, YAO e YANG, 1999), (ZHANG, SUN e WANG, 2009)
Query Graph Model: (LUEBCKE, GEIST e BUBKE, 2008)
Wavelet: (SMITH, LI e JHINGRAN, 2004)
Matrizes ou Vetores: (AOUICHE, EMMANUEL JOUVE e DARMONT, 2006),
(EZEIFE, 1997), (HUNG, HUANG, et al., 2007), (KALNIS, MAMOULIS e
PAPADIAS, 2002).
VSCG (View Selection Cost Graph): (ZHOU, WU e GE, 2008), (ZHOU, XU, et al.,
2008)
Nestas abordagens, devido a utilização de uma estrutura de dados específica para
capturar as relações entre as visões e devido a esta estrutura ser utilizada pelos
algoritmos de otimização para selecionar as visões, tem-se um custo computacional para
a construção e manutenção dessas estruturas durante a execução dos algoritmos de
otimização. Além disso, isto gera um grau de acoplamento entre a estrutura de dados
Capítulo 2 – Fundamentação Teórica 28
escolhida e a lógica de seleção de visões, tornando a lógica dependente da referida
estrutura.
2.6.5. Considerações
Nossa abordagem, utiliza como critério de seleção de uma visão o seu tamanho e
a sua frequência de utilização. O tamanho da visão corresponde ao custo de
processamento para responder uma consulta e também corresponde ao custo de
manutenção da visão. A frequência de utilização também corresponde ao custo de
processamento de consulta, pois visões associadas a consultas muito utilizadas devem
estar materializadas para reduzir o tempo de resposta das consultas. Em nossa
abordagem não foi considerado no critério de seleção, o custo associado a uma técnica
incremental de manutenção das visões. Por outro lado, como em outros trabalhos
(AFONIN, 2008), (AFRATI, CHIRKOVA, et al., 2007), (AFRATI, DAMIGOS e
GERGATSOULIS, 2009), (CHIRKOVA, LI e LI, 2006), (HARINARAYAN,
RAJARAMAN e ULLMAN, 1996), (VIJAY KUMAR e GHOSHAL, 2009), (KUMAR
e HAIDER, 2010), (KUMAR e HAIDER, 2011), (KUMAR, HAIDER e KUMAR,
2011a), (KUMAR, HAIDER e KUMAR, 2010a), (LIN, YANG, et al., 2007),
(LUEBCKE, GEIST e BUBKE, 2008), (SHUKLA, DESHPANDE e NAUGHTON,
2000), (SHUKLA, DESHPANDE e NAUGHTON, 1998), (SMITH, LI e JHINGRAN,
2004), (SOUTYRINA e FOTOUHI, 1997), foi utilizada a técnica de manutenção
integral devido a complexidade requerida para adoção da técnica de manutenção
incremental. Em uma técnica incremental, uma visão v é atualizada a partir de outra
visão w e assim, o cálculo do custo de manutenção de v é dependente do cálculo do
custo de manutenção de w. Já na abordagem integral, as visões são atualizadas
independentemente e logo, o custo de atualização de cada visão é diretamente
proporcional ao seu tamanho.
Analisando as abordagens segundo a restrição de seleção adotada, é visto que
as abordagens que não adotam o espaço físico disponível para materialização como
restrição de seleção, apesar de poderem apresentar boas soluções, suas soluções podem
não ser factíveis, pois podem consumir espaços físicos de materialização além do
desejado ou disponível. Então, nossa abordagem adota como restrição, o espaço físico
disponível para materialização.
Capítulo 2 – Fundamentação Teórica 29
Observando as heurísticas de seleção utilizadas pelas abordagens, tem-se que,
em geral, as abordagens híbridas apresentam resultados melhores por combinarem
qualidades de diferentes técnicas em uma única heurística. Assim, a abordagem
proposta neste trabalho propõe um algoritmo para a seleção de visões baseado na meta-
heurística GRASP, uma heurística hibrida que combina as características da heurística
gulosa e da heurística de busca aleatória.
Sobre a configuração de seleção, a abordagem proposta nesta dissertação é
baseada na concepção de uma configuração estática, uma vez que, um dos objetivos
deste trabalho é construir um escopo de consulta do usuário, aqui denominado por
assinatura, e utilizá-lo para seleção das visões a serem materializadas.
Por fim, analisando a estrutura de dados utilizada para capturar as relações entre
as visões, é possível notar que a abordagem usada nesta dissertação difere das demais
propostas encontradas na literatura, Em nossa abordagem, a estrutura de dados é
separada da lógica de seleção de visões, pois para a lógica de seleção, i.e para o
algoritmo de otimização, é fornecido apenas um conjunto de visões. Desta forma, em
nossa abordagem, pode ser adotado qualquer algoritmo de otimização que resolva o
PSV e tenha como entrada, um conjunto de visões e o espaço disponível para
materialização.
2.7. Conclusão
Neste capítulo, foram exibidos conceitos sobre as estruturas de dados
multidimensionais (cubo, dimensões, hierarquias, níveis, visões e visões materializadas)
e apresentada a importância das suas utilizações na melhoria de desempenho e na
realização de consultas analíticas. Em seguida, foram apresentados os conceitos de
assinaturas OLAP juntamente com a importância do uso delas na seleção e
materialização de visões.
Como visto neste capítulo, a materialização das visões é condição de
desempenho em sistema de processamento analítico. Contudo, devido ao alto custo, em
termos de espaço de armazenamento e manutenção, na maioria dos casos, não é viável a
materialização total de visões de um cubo de dados. Então, neste contexto, foi
apresentado o problema conhecido por “Problema de Seleção de Visões” (PSV) e feita
uma análise sobre os trabalhos encontrados para este problema. Além disso, foram
Capítulo 2 – Fundamentação Teórica 30
descritas algumas heurísticas para seleção de visões que foram usadas na avaliação
experimental deste trabalho.
Apresentados os principais conceitos envolvidos (estruturas de dados
multidimensionais, assinaturas OLAP, PSV e heurísticas de otimização) e os trabalhos
relacionados a esta dissertação, é proposto um método para seleção e materialização de
visões. Este método utiliza heurísticas de otimização e assinaturas OLAP para
selecionar e materializar visões. As assinaturas OLAP armazenam informações sobre o
histórico de consultas do usuário e mantêm informações sobre as estruturas
multidimensionais de dados utilizadas para responder as consultas analíticas. Este
método está descrito no capítulo seguinte.
Capítulo 3 – Método de Seleção e Materialização de Visões 31
Capítulo 3 Novo Método de Seleção e
Materialização de Visões OLAP
Este capítulo discorre sobre o esquema conceitual de dados que é proposto para a
representação de assinaturas OLAP. Estas assinaturas contêm informações sobre o
histórico de consulta do usuário e informações sobre o cubo de dados no qual são
realizadas as consultas. Além disso, este capítulo discorre sobre o método de seleção e
materialização de visões proposto e explica como o esquema conceitual é utilizado pelo
novo método descrito neste capítulo. Finalmente, os algoritmos de otimização
utilizados pelo método proposto para seleção de visões são também aqui definidos.
Capítulo 3 – Método de Seleção e Materialização de Visões 32
3.1. Introdução
Neste capítulo é descrito o método proposto para seleção e materialização de
visões. Este método constrói o escopo de consultas do usuário, aqui denominado por
assinatura OLAP, e utiliza esta assinatura para a seleção das visões por meio de
heurísticas de otimização reativas. Além disso, utiliza a assinatura para a materialização
das visões selecionadas. Este capítulo está organizado da seguinte forma. Na Seção 3.2,
são apresentados os objetivos da aplicação do conceito de assinatura OLAP neste
trabalho e a descrição de como ela é estruturada por meio de um esquema conceitual.
Em seguida, são detalhadas, na Seção 3.3, as quatro fases do método de seleção e
materialização de visões proposto nesta dissertação , e é explicado como o esquema
conceitual é utilizado durante todas as fases do método. Por fim, na Seção 3.4, é
apresentada uma conclusão sobre o método aqui proposto.
3.2. Esquema Conceitual de Dados
O objetivo da assinatura OLAP, aqui proposta, é caracterizar ao longo do tempo,
o comportamento de um dado usuário sobre submissões de consultas multidimensionais
a um determinado cubo de dados. Esta caracterização possibilita identificar os
elementos mais significativos do cubo para o usuário. O conhecimento sobre estes
elementos auxilia o processo de seleção de visões, permitindo escolher as visões mais
benéficas ao escopo de consultas efetuadas pelo usuário. Outro objetivo é, logo após o
processo de seleção, fornecer, em tempo hábil, os dados necessários para a
materialização das visões escolhidas.
O cumprimento destes objetivos se dá por meio da captura e persistência de
informações inerentes ao ambiente OLAP considerado. São informações sobre o
esquema do DW (tabelas, colunas, relacionamentos); o esquema do cubo
multidimensional (dimensões, hierarquias, níveis, medidas); e o mapeamento entre
elementos do cubo multidimensional e elementos do esquema do DW. Além disso,
também são registradas informações resultantes das consultas realizadas.
Definidas as informações que comporão as assinaturas OLAP, é preciso entender
como estas informações estão estruturadas. Para isto, o esquema conceitual usado na
representação das assinaturas é exibido na Figura 3.1. Este esquema conceitual
ampliado pode ser visto no Apêndice A. Neste esquema, o histórico de consultas de um
Capítulo 3 – Método de Seleção e Materialização de Visões 33
usuário sobre um dado cubo de dados compõe uma assinatura OLAP, descrita por um
identificador e um usuário. A assinatura OLAP está associada ao cubo de dados,
caracterizado por um identificador, o nome do cubo, o nome da tabela de fatos cujos
dados foram utilizados para sua geração e um conjunto de medidas. Cada medida do
cubo é descrita por: um identificador, o nome da coluna na tabela de fatos associado à
medida, o tipo do dado da coluna (e.g.: integer ou double), o tamanho da coluna em
bytes e a expressão numérica de agregação para computar o valor desta medida. Por
meio do cubo de dados, é obtido o conjunto resultante da combinação entre níveis de
dimensões distintas, de modo que cada combinação existente represente uma visão
(vértice) que é descrita por um identificador, pelo número estimado de tuplas da visão, e
pelo tamanho em bytes de cada tupla dessa visão. Os níveis possuem uma relação de
precedência com outros níveis para modelar as hierarquias do cubo de dados, e cada um
deles possui as seguintes propriedades: identificador, descrição, nome da tabela de
dimensão associada a este nível, nome da coluna da tabela de dimensão que está
associada a este nível, tipo do dado da coluna, tamanho da coluna em bytes, o conjunto
dos nomes das tabelas utilizadas nas operações de junção e o conjunto das condições de
junção usadas para acessar os dados deste nível. Portanto, as informações sobre
medidas, cubo, níveis e vértices são lidas pelo algoritmo extrator de dados
multidimensionais discutido na Seção 3.3.1, enquanto na Seção 3.3.2, é abordado como
as consultas e assinaturas são utilizadas para armazenar as informações sobre o histórico
de consultas OLAP e o perfil do usuário.
Figura 3.1 Esquema Conceitual Proposto
Capítulo 3 – Método de Seleção e Materialização de Visões 34
De acordo com o esquema conceitual da Figura 3.1, cada consulta do usuário é descrita
por um identificador, uma expressão MDX (MultiDimensional eXpressions)
(WHITEHORN, ZARE e PASUMANSKY, 2005) e pela data na qual foi submetida.
Nosso trabalho é baseado em MDX porque esta linguagem de consulta
multidimensional é considerada um padrão de processamento de consultas OLAP
(WHITEHORN, ZARE e PASUMANSKY, 2005). Para cada consulta submetida pelo
usuário, é incrementado o valor do atributo frequência. Este atributo pertence ao
relacionamento entre a assinatura da consulta e a visão de custo mínimo (visão de
menor tamanho) que atende a esta consulta. Esta informação de frequência é utilizada
para seleção das visões e será explanada na Seção 3.3.3.1.
3.3. Fases do Método Proposto
O novo método proposto para seleção e materialização de visões é composto de
quatro fases: (1) extração de dados e meta-dados do DW e do cubo de dados, e
computação de todos os vértices possíveis deste cubo (Seção 3.3.1); (2) armazenamento
de informações sobre as consultas OLAP submetidas para a construção das assinaturas
OLAP correspondentes (Seção 3.3.2); (3) seleção dos vértices (visões) mais benéficos
para a execução das consultas do usuário (Seção 3.3.3); e (4) materialização das visões
escolhidas (Seção 3.3.4). Cada uma destas fases é detalhada como segue.
3.3.1. Extração de Dado Multidimensional
Esta fase tem por objetivo extrair informações do esquema de mapeamento entre
o DW e o cubo de dados, de modo que sejam criadas, instanciadas e persistidas as
entidades: Cubo, Medida, Nível e Vértice, mostradas no esquema conceitual da Figura
3.1. Isto é realizado pelo algoritmo extrator de dados multidimensional (Figura 3.2).
O algoritmo recebe como entrada o esquema de mapeamento (esquema) pelo
qual as entidades serão criadas. Na linha 1, o procedimento ObterCubos é chamado para
obter um conjunto de instâncias da entidade Cubo a partir de esquema, e armazená-lo na
variável conjCubos. Na linha 3, cada instância i_cubo de conjCubos é persistida. Na
linha 4, um conjunto de instâncias da entidade Medida que é definido em esquema para
i_cubo é lido e escrito na variável conjMedidas, e na linha 5, as instâncias de
conjMedidas e seus correspondentes relacionamentos com i_cubo são salvos. Na linha
6, é obtido o conjunto de dimensões de i_cubo que estão definidas em esquema, e são
Capítulo 3 – Método de Seleção e Materialização de Visões 35
armazenadas na variável conjDimensões. Na linha 7, a variável todosConjNíveis é
criada e instanciada para armazenar todos os conjuntos de níveis de cada dimensão do
cubo i_cubo.
Uma vez armazenadas as informações sobre as entidades Cubo e Medida, o
algoritmo realiza iterações sobre as dimensões encontradas para o cubo (i_cubo). Então,
na linha 9, para cada dimensão i_dim de conjDimensões, é obtido um conjunto de
hierarquias que é salvo em conjHierarquias. Em seguida, na linha 10, a variável
conjNíveisPorDim é criada e instanciada para armazenar o conjunto de níveis de dim.
Para cada hierarquia i_hierarquia de conjHierarquias, um conjunto de instâncias da
entidade Nível é lido de esquema e armazenado na variável conjNíveis (linha 12). Para
cada instância i_nível de conjNíveis são obtidos, na linha 14, os seus respectivos níveis
que o precedem na hierarquia. Em seguida, cada nível i_nivel é armazenado, como
também são armazenados o seu relacionamento com o cubo (i_cubo) e seus
relacionamentos com os níveis precedentes (níveis_precedentes), na linha 15.
Até aqui, todas as informações sobre os níveis foram armazenadas, mas para se
gerar todos os vértices do cubo é preciso ter um conjunto S que possui como elementos,
conjuntos de níveis. Cada conjunto contido em S contém os níveis de cada dimensão do
cubo. Por exemplo, considere que um cubo possua três dimensões Cliente, Produto e
Tempo. Então, o conjunto S terá 3 conjuntos: (1) possui todos os níveis da dimensão
Cliente; (2) possui todos os níveis da dimensão Produto e (3) possui todos os níveis da
dimensão Tempo. No algoritmo de extração, o conjunto S é representado pela variável
todosConjNíveis e cada conjunto que compõe S é representado pela variável
conjNíveisPorDim. Então, na linha 16, todos os níveis da dimensão (i_dim) são
adicionados a conjNíveisPorDim. Em seguida, na linha 17, todos os níveis da dimensão
(i_dim), que estão armazenados em conjNíveisPorDim são adicionados a
todosConjNíveis.
Uma vez armazenadas as entidades Cubo, Medida, e Nível e tendo o conjunto de
conjuntos de níveis do cubo (i_cubo) (denotado por todosConjNíveis), o algoritmo
chama o procedimento ObterVertices (Figura 3.3) para gerar o conjunto de instâncias da
entidade Vértice que representa todas as possíveis visões para o dado cubo de dados
(i_cubo). Na linha 18, este conjunto de visões é atribuído à conjVértices. Finalmente, na
linha 19, são gravadas todas as instâncias de conjVértices, como também para cada
Capítulo 3 – Método de Seleção e Materialização de Visões 36
instância de conjVértices, são armazenados o relacionamento da instância com i_cubo e
os relacionamentos da instância com os níveis que a compõe.
Algoritmo 1: ExtratorDadoMultidimensional (esquema)
Entrada: esquema de mapeamento entre DW e cubos OLAP
Saída:
1 conjCubos ObterCubos(esquema);
2 PARA (i_cube: setOfCubes) FAÇA
3 GravarCubo(i_cubo);
4 conjMedidas ObterMedidas(i_cubo,esquema);
5 GravarMedidas(conjMedidas, i_cubo);
6 conjDimensões ObterDimensões(i_cubo,esquema);
7 todosConjNíveis ;
8 PARA (i_dim : conjDimensões) FAÇA
9 conjHierarquias ObterHierarquias(i_dim,esquema);
10 conjNíveisPorDim ;
11 PARA (i_hierarquia : conjHierarquias) FAÇA
12 conjNíveis ObterNíveis(i_hierarquia, esquema);
13 PARA (i_nível : conjNíveis) FAÇA
14 níveis_precedentes Precedentes(i_nível, i_hierarquia);
15 GravarNível(i_cubo, i_nível, níveis_precedentes);
16 conjNíveisPorDim conjNíveisPorDim conjNíveis;
17 todosConjNíveis todosConjNíveis conjNíveisPorDim;
18 conjVértices ObterVértices(i_cubo, todosConjNíveis);
19 GravarVértices(conjVértices, i_cubo);
Figura 3.2: Algoritmo Extrator de Dado Multidimensional
O procedimento ObterVértices (Figura 3.3) recebe como entrada uma instância
de i_cubo e todas as instâncias da entidade Nível (indicado por todosConjNíveis). Na
linha 1, conjVértices, que representa o conjunto de instâncias da entidade Vértice, é
inicializada com um conjunto vazio. Seu objetivo é armazenar os vértices que irão ser
gerados e retornados pelo algoritmo. Na linha 2, um procedimento é chamado para
calcular o produto cartesiano entre todos os conjuntos de todosConjNíveis. Desta
computação, uma coleção de conjuntos de instâncias da entidade Nível é retornada. Para
gerar uma instância da entidade Vértice, as seguintes informações são necessárias: o
tamanho da linha da visão (o atributo tamanho_da_linha da entidade Vértice), o número
estimado de linhas da visão (o atributo número_de_linhas da entidade Vértice) e o
conjunto de níveis que compõe o vértice (conjVértices).
Capítulo 3 – Método de Seleção e Materialização de Visões 37
O tamanho da linha (tamanho_linha) é dado pela soma de três valores: (1) o
valor de retorno do procedimento CalcTamanhoLinha, que retorna o valor do atributo
tamanho_coluna da instância i_nível; (2) o valor de retorno do procedimento
CalcTamanhoPrecedentes que retorna o somatório dos valores do atributo
tamanho_da_coluna de cada nível que precede a instância i_nível; e (3) o valor de
retorno do procedimento CalcTamanhoMedidas que retorna o somatório dos valores do
atributo tamanho_da_coluna de cada medida associada ao cubo (i_cubo) (linhas 8, 9 e
11).
Algoritmo 2: ObterVértices (i_cubo, todosConjNíveis)
Entrada: um cubo e um conjunto de conjuntos de níveis de cada dimensão
Saída: um conjunto de vértices gerados
1 conjVértices ;
2 combinacaoNíveis ProdutoCartesiano(todosConjNíveis);
3 PARA (conjNíveis: combinacaoNíveis) FAÇA
4 tamanho_linha 0;
5 numero_linhas 1;
6 PARA (i_nível: conjNíveis) FAÇA
7 numero_linhas numero_linhas * CalcNumLinhas(i_nível);
8 tamanho_linha tamanho_linha + CalcTamanhoLinha (i_nível);
9 tamanho_linha tamanho_linha + CalcTamanhoPrecedentes (i_nível);
10 num_estimado_linhas EstimarNumeroLinhas(numero_linhas);
11 tamanho_linha tamanho_linha + CalcTamanhoMedidas (i_cubo);
12 i_vértice CriarVértice(tamanho_linha, num_estimado_linhas, conjNíveis);
13 conjVértices conjVértices i_vértice;
14 RETORNE conjVértices;
Figura 3.3: Algoritmo Gerador de Vértices
Na linha 10, o num_estimado_linhas é obtido por meio de uma estimativa
baseada no número de tuplas da tabela de fatos do cubo de dados i_cubo e no número de
tuplas resultante do produtório entre o número de membros de cada nível contido em
conjNíveis. A estimativa utilizada foi definida em (SHUKLA, DESHPANDE e
NAUGHTON, 1998), e cuja fórmula é dada por , na
qual é o número de tuplas da tabela de fatos e é o número máximo de linhas do
vértice . O valor de é obtido pelo produto da multiplicação entre os elementos
distintos (membros) de cada nível que compõem o vértice. Por exemplo, para o vértice
(CPD) considere que existem para o nível C: 20 clientes, para o nível P: 30 produtos e
para o nivel D: 100 dias. O número máximo de linhas do vértice é dado por
Capítulo 3 – Método de Seleção e Materialização de Visões 38
. Assim, cada instância i_vértice é criada e adicionada à
conjVértices na linha13. Finalmente na linha 14, o conjunto de instâncias de Vértice é
retornado.
3.3.2. Construção das Assinaturas OLAP
Esta fase objetiva gravar informações sobre as consultas OLAP submetidas pelo
usuário e realizar a construção das assinaturas correspondentes. Isto inclui duas
subfases. A primeira subfase consiste na especificação da associação entre um usuário e
um cubo, a partir da qual são armazenados a assinatura e o relacionamento da assinatura
com o cubo (chamado de cubo-assinatura). A segunda subfase consiste na construção
do histórico de consultas do usuário e no rastreamento dos níveis envolvidos nas
consultas, e consequentemente, na identificação dos vértices que quando materializados
poderão responder a tais consultas. Para isto, a partir de cada consulta submetida, é
identificado o usuário que a submete e o cubo ao qual ela se destina. Por meio deste par
(usuário, cubo) é identificada a assinatura à qual a consulta pertence. Desta forma, é
armazenada a consulta e o seu relacionamento com a assinatura identificada.
O resultado de uma consulta é um fato. O fato é um conjunto de valores de
medidas contextualizados por uma combinação de membros das dimensões. Um
membro da dimensão é uma instância de um nível, logo o resultado de uma consulta
está associado a uma combinação de níveis. Portanto, uma consulta pode ser respondida
por vértices, que quando materializados, possuem em sua combinação de níveis, os
níveis associados ao resultado da consulta. Conhecidos estes vértices, é preciso
identificar o vértice de menor tamanho, ou seja, o vértice de custo mínimo para
responder a consulta em questão. Então, registra-se a ocorrência do relacionamento
entre a assinatura da consulta e o vértice de custo mínimo. Caso já exista a ocorrência
do relacionamento, apenas é incrementado o atributo de frequência do referido
relacionamento.
Para exemplificar o funcionamento desta fase, a Figura 3.4 exibe a associação
entre o usuário e o cubo de dados, no qual são feitas suas consultas. Por meio desta
associação, a primeira subfase é realizada. De acordo com esta figura, o usuário possui
um conjunto de consultas {MDX 1, MDX 2, MDX 3, MDX 4} e cada consulta pode ser
respondida, respectivamente, pelas seguintes visões de custo mínimo {VIEW 1, VIEW 2,
Capítulo 3 – Método de Seleção e Materialização de Visões 39
VIEW 3, VIEW 4}. Por exemplo, a consulta MDX 1 obtém os rendimentos pelo
seguintes níveis de detalhe: nação do fornecedor ([S Nation]); cidade do cliente ([C
City]); e marca do produto ([P Brand])). A visão que possui exatamente os dados na
mesma combinação de níveis detalhes é a visão VIEW 1. Ao escolher uma visão que
possui exatamente a mesma combinação de níveis da consulta, implica que esta visão
contém apenas os dados necessários para responder a consulta e desta forma, esta visão
possui o custo mínimo. Além disso, cada consulta possui a seguinte frequência de
execução dentro do histórico de consultas do usuário {MDX 1 = 3, MDX 2= 2, MDX 3
= 3, MDX 4 = 1}, o que implica que para esta assinatura a frequência de utilização de
cada visão é {VIEW 1 = 3, VIEW 2= 2, VIEW 3 = 3, VIEW 4 = 1}. Assim, a partir
disso, é concluída a segunda subfase, e a assinatura gerada possui como propriedades: o
cubo, o usuário, a lista de consultas (histórico) e a lista de frequência de cada visão.
Figura 3.4: Exemplo de Assinatura OLAP
3.3.3. Seleção das Visões
O objetivo desta fase é selecionar os vértices mais benéficos para a execução de
consultas de um dado usuário, tendo por base os dados associados às assinaturas
geradas na fase anterior. Os critérios de seleção serão descritos na Seção 3.3.3.1 e os
algoritmos de otimização adotados para selecionar as visões são explicados na Seção
3.3.3.2.
3.3.3.1. Critérios de Seleção
Os dados armazenados durante a primeira e segunda fase fornecem informações
(valores) sobre os vértices de um cubo associado a uma dada assinatura. Estes valores
Capítulo 3 – Método de Seleção e Materialização de Visões 40
são extraídos e armazenados em um conjunto de quádruplas {id_vertice, tamanho,
benefício, densidade}, que é dado de entrada para o processo de seleção. O primeiro
elemento da quádrupla é o identificador do vértice, pois, após a fase de seleção, é
necessária a identificação dos vértices selecionados para materialização. O segundo é o
tamanho do vértice materializado, que é obtido pelo produto da multiplicação entre os
atributos tamanho_da_linha e número_de_linhas. O terceiro consiste no benefício que o
vértice pode trazer caso venha a ser materializado para auxiliar na execução de
consultas de uma assinatura. O cálculo do benefício de um vértice em uma assinatura
é dado pelas fórmulas descritas na Figura 3.5.
í
ê ê
ê
Figura 3.5: Cálculo do Benefício do Vértice
A frequência de um vértice em uma assinatura, representada pela função
, é obtida por meio do atributo frequência do relacionamento
Assinatura-vértice. Obtidas as frequências, é preciso normalizá-las pela função
, de modo que os resultados tenham valores no intervalo de [0,1],
garantindo a normalização do cálculo do benefício.
Por fim, o quarto elemento da quádrupla, a densidade, é obtido pela razão entre o
benefício e o tamanho do vértice, de modo a considerar: o tamanho e a frequência. A
densidade representa o quão valioso é a materialização do vértice, pois quanto maior for
o benefício e menor for o tamanho ocupado pelo vértice, mais valioso ele é para a
execução das consultas da assinatura. Portanto, a densidade é utilizada como critério de
seleção dos vértices pelos algoritmos de otimização propostos nesta dissertação e
descritos a seguir.
3.3.3.2. Algoritmos de Otimização Propostos
Os algoritmos propostos são baseados nas meta-heurísticas GRASP (G),
Reactive GRASP (RG) e GRASP com Path-Relinking (PR). Todos os algoritmos têm
como ponto de partida, o algoritmo proposto em (FIRMINO, MATEUS, et al., 2011),
aqui denominado por G,e ilustrado na Figura 3.6 (Algoritmo 3.0). A busca local de G
se baseia na escolha aleatória de elementos do conjunto de troca, a fim de que uma
Capítulo 3 – Método de Seleção e Materialização de Visões 41
permutação compatível seja realizada. Ela é dita ser compatível porque não excede o
limiar de armazenamento e gera uma nova solução de melhor valor. No entanto, devido
à baixa probabilidade da permutação ocorrer por causa da escolha aleatória de
elementos, a busca local de G foi substituída e um novo algoritmo, chamado de
Reactive GRASP (RG), foi especificado e é exibido na Figura 3.7 (Algoritmo 3.1. Este
algoritmo RG caracteriza-se por apresentar melhorias na busca local e por apresentar
características reativas. Combinando RG como as variantes do PR {Forward (F),
Forward Truncated (FT), Backward (B), Backward Truncated (BT), Mixed (M) e
Mixed Truncated (MT)}, oito algoritmos no total foram investigados: G, RG, RGF,
RGFT, RGB, RGBT, RGM e RGMT. Os algoritmos recebem como entrada uma lista de
quádruplas, descrita na Seção 3.3.3.1, ordenadas pela densidade. Cada quádrupla da
lista representa um vértice. Vale ressaltar que são processadas pelo algoritmo apenas os
vértices que tiverem benefício maior que zero.
Algoritmo 3.0: GRASP ( , , , , )
Entrada: uma lista de vértices ( ),
espaço disponível para materialização ( ),
grau de gulosidade para definir a LRC ( ),
grau de gulosidade para definir a LRC na busca local ( ),
número de tentativas de trocas feitas na busca local ( )
Saída: melhor solução encontrada
1 melhorSolução ;
2 ENQUANTO critério de parada não for satisfeito FAÇA
3
' ; 4
solução FaseConstrução(' , , );
5 solução FaseBuscaLocal(
' , , , , solução); 6 AtualizarSolução(solução, melhorSolução);
7 RETORNE melhorSolução;
Figura 3.6: Algoritmo GRASP (G)
Na primeira linha do Algoritmo 3.0, a melhor solução é inicializada com um
conjunto vazio de vértices, ou seja, no início do algoritmo, o benefício da melhor
solução é zero. Nas linhas 2 a 7, as iterações do GRASP são realizadas até que o critério
de parada seja atendido. Na linha 3, a variável φ é copiada para φ' a cada início de
iteração, de modo que a cada início de iteração, a lista de vértice seja a mesma, pois a
lista de vértice passada como parâmetro ao procedimento FaseConstrução sofre
Capítulo 3 – Método de Seleção e Materialização de Visões 42
alterações durante a execução do procedimento. Na linha 4, uma solução parcial é
obtida por meio da fase de construção e armazenada na variável solução. Então, na linha
5, por meio da fase de busca local, uma nova solução, a qual é igual a ou melhor que a
solução anterior, é obtida e armazenada na variável solução. Na linha 6, o procedimento
AtualizarSolução é chamado para comparar a melhor solução corrente (melhorSolução)
com a solução obtida na linha anterior (solução). Isto faz com que a solução com o
melhor benefício seja atribuída à melhorSolução. O benefício de uma solução é dado
pela soma do benefício de cada vértice que compõe a solução. Finalmente, no fim das
iterações, na linha 7, a melhor solução até então encontrada, a qual consiste no melhor
conjunto de visões para processar consultas de uma dada assinatura, é retornada.
O Algoritmo 3.1 (RG) é similar ao algoritmo Algoritmo 3.0 (G). Eles diferem
entre si da seguinte maneira. Primeiro, o grau de gulosidade θ antes obtido em G por
passagem de parâmetro, agora é obtido em RG pelo procedimento
ObterGrauGulosidade que reativamente calcula o valor para o grau de gulosidade. Por
fim, RG utiliza uma nova heurística para a fase de busca local que dispensa a utilização
de dois parâmetros (ϑ e τ) utilizados em G.
Algoritmo 3.1: Reactive GRASP ( , )
Entrada: uma lista de vértices ( ),
espaço disponível para materialização ( ),
Saída: melhor solução encontrada
1 melhorSolução ;
2 ENQUANTO critério de parada não for satisfeito FAÇA
3
' ; 4
solução FaseConstrução (' ,ObterGrauGulosidade(), );
5 solução FaseBuscaLocal (
' , , solução);
6 AtualizarSolução(solução, melhorSolução);
7 RETORNE melhorSolução;
Figura 3.7: Algoritmo Reactive GRASP (RG)
O procedimento ObterGrauGulosidade funciona da seguinte maneira.
Inicialmente, é atribuído um valor inicial entre {0,1} para o grau de gulosidade atual θ,
é definido um movimento inicial que pode ser {incrementar (I) ou decrementar (D)} e
um valor v para incremento ou decremento. A cada iteração do algoritmo, é verificado
se a solução atual melhorou em relação a anterior, ou seja, se a solução atual gerada é
Capítulo 3 – Método de Seleção e Materialização de Visões 43
melhor do que a solução anterior. Em caso afirmativo, é realizado o movimento atual,
caso contrário é realizado o movimento oposto. Por exemplo, considere que,
inicialmente, θ = 0, movimento atual = I e v = 0.05. Na iteração consecutiva , foi
verificada uma melhoria na solução gerada, então, foi realizado o movimento atual
computando . Em , também foi verificada
uma melhoria, então θ é incrementado, sendo agora igual a θ = 0.10. O mesmo acontece
em e , então θ é incrementado duas vezes, sendo agora igual a θ = 0.20. Entretanto,
em , verificou-se uma piora na solução gerada, então foi realizado o movimento
oposto de modo que . Em e , foram
verificadas melhorias na solução gerada, continuando o movimento do tipo D, então
foi decrementado duas vezes, sendo agora igual a θ = 0.05. Todavia, em , foi gerada
uma solução pior que a anterior, então realizou-se o movimento oposto, incrementando
o valor de modo que . Assim, comporta-se o
algoritmo ao longo de todas as iterações ajustando θ de acordo com a qualidade das
soluções geradas em tempo de execução.
O Algoritmo 3.2 é resultante da combinação do RG com o Path-Reliking, e é
exibido na Figura 3.8. Este algoritmo, Reactive GRASP com Path-Relinking, na
primeira linha, ele inicializa o conjunto elite £ com vazio. As iterações deste algoritmo
são computadas nas linhas 2 a 10 até que o critério de parada seja atendido. Durante
cada iteração, uma solução resultante da busca local é gerada na linha 5. Na linha 6, se o
conjunto elite £ ainda não estiver cheio, então o método adiciona a solução ao £. Isto é
realizado na linha 10. Se £ estiver cheio, na linha 7, o path-relinking é aplicado, e
depois, para adicionar a solução gerada ao £, o método é chamado na linha 8. Vale
ressaltar que a solução é apenas adicionada se a diferença entre ela e todas as soluções
contidas em £ for maior que o valor retornado pelo procedimento
ObterLimiarDiferença. Esta restrição é importante para preservar a diversidade das
soluções do conjunto elite. O valor obtido reativamente por ObterLimiarDiferença
representa o limiar de diferença entre duas soluções, ou seja, a quantidade mínima de
elementos diferentes entre duas soluções de modo a considerar as duas soluções
suficientemente distintas. Finalmente, no final da iteração, na linha 11, a melhor solução
encontrada no conjunto elite é retornada.
ObterLimiarDiferença funciona da seguinte maneira. Inicialmente, precisa-se ter
pelo menos duas soluções no conjunto elite £, a partir das quais computa-se a diferença
Capítulo 3 – Método de Seleção e Materialização de Visões 44
entre elas e considera-se este valor como o limiar de diferença atual (Δ). A medida que
uma nova solução é adicionada ao conjunto £, o Δ é atualizado pela seguinte
equação . e representam
respectivamente, a melhor solução e a segunda melhor solução presentes em £.
Perceba que o Path-Relinking foi aplicado em nosso algoritmo dentro das
iterações do GRASP, como realizado em (MATEUS, RESENDE e SILVA, 2011). O
objetivo desta aplicação interna do Path-Relinking é executar o Path-Relinking com
bons e diferentes conjuntos elites, pois a durante as iterações do algoritmo o conjunto
elite é ajustado de modo a melhorar o qualidade dos religamentos.
Algoritmo 3.2: Reactive GRASP com PR ( , , )
Entrada: uma lista de vértices ( ),
espaço disponível para materialização ( ),
variante do path-relinking a ser aplicada ( )
Saída: melhor solução encontrada
1 £ ;
2 ENQUANTO critério de parada não for satisfeito FAÇA
3
' ; 4
solução FaseConstrução (' ,ObterGrauGulosidade(), );
5 solução FaseBuscaLocal (
' , , solução); 6 SE (EstáCheio( £ )) ENTÃO
7 solução PathRelinking( £ , solução, );
8 ADD( £ , solução, ObterLimiarDiferença());
9 CASO CONTRÁRIO
10 ADD( £ , solução, ObterLimiarDiferença());
11 RETORNE MAX( £ );
Figura 3.8: Algoritmo Reactive GRASP com Path-Relinking
O processo do path-relinking consiste de uma sequência de passos de religação
de forward e/ou backward. A Figura 3.9 (Algorithm 3.2.1) mostra o pseudocódigo para
o procedimento path-relinking. Inicialmente, uma solução é escolhida aleatoriamente de
£ e é atribuida à variável sol£. Em seguida, nas linhas numeradas de 1 a 3, a solução
passada no parâmetro de entrada do algoritmo (solução) e sol£ são copiadas para sol1 e
sol2, respectivamente, e então solução e sol£ não são modificadas durante a execução
do algoritmo. Na linha 4, inicialmente, a melhor solução até então encontrada pelo PR
(melhorSolução) é inicializada com a solução de melhor valor entre as soluções iniciais
Capítulo 3 – Método de Seleção e Materialização de Visões 45
sol1 e sol2 . Posteriormente, nas linhas 5 a 9, a variável que registra a condição de
truncamento do PR (éCondTruncamento) é inicializada com falso e as informações
sobre qual variante do path-relinking (forward, backard, mixed, forward truncated,
backard truncated, mixed truncated) está sendo utilizada é obtida por meio de ξ.
Algoritmo 3.2.1: PathRelinking ( £ ,solução, ) Entrada: conjunto elite ( £ ),
solução construída na fase de busca local (solução),
path-relinking variant ( )
Saída: melhor solução encontrada
1 £sol SelecionarAleatoriamente(£);
2 sol1 Copiar(solução);
3 sol2 Copiar( £sol );
4 melhorSolução Max(sol1,sol2);
5 éCondTruncamento falso;
6 éTruncated ÉTruncated( );
7 éMixed ÉMixed( );
8 éForward ÉForward( );
9 éBackward ÉBackward( );
10 ENQUANTO ((!éTruncated) OU (éTruncated E NÃO éCondTruncamento))
10 E Diferença(sol1, sol2) != 0) FAÇA
11 SE (éMixed) ENTÃO
12 SE (éPar(count)) ENTÃO
13 Forward(sol1, sol2);
14 CASO CONTRÁRIO
15 Backward(sol1, sol2);
16 CASO CONTRÁRIO SE (éForward) ENTÃO
17 Forward(sol1, sol2);
18 CASO CONTRÁRIO SE (éBackward) ENTÃO
19 Backward(sol1, sol2);
20 melhorSolução AtualizarSolucao(melhorsSolução,sol1, sol2);
21 éCondTruncamento NÃO EstáRazoavelmenteMelhorando();
22 RETORNE melhorSolução;
Figura 3.9: Algoritmo Path-Relinking
Inicializadas todas as variáveis do algoritmo, nas linhas numeradas de 10 a 21,
as iterações do path-relinking são realizadas. A condição de parada do PR é verificada
na linha 10 e ela acontece em dois momentos: (1) a variante utilizada é truncated e a
condição de truncamento foi atingida, i.e éCondTruncamento = verdade; (2) as duas
Capítulo 3 – Método de Seleção e Materialização de Visões 46
soluções são idênticas, i.e Diferença(sol1,sol2)=0, assim todo o caminho de
religamento já foi concluído. Durante as iterações é verificado, na linha 11, se a variante
é do tipo mixed, então os passos forward e backward são aplicados de forma intercalada
nas linhas 12 a 15.
No final de cada iteração, o procedimento AtualizarSolução é chamado para
comparar e retornar a melhor solução corrente entre (melhorSolução) e as soluções sol1
e sol2. Em seguida, a variável éCondTruncamento é atribuída reativamente pelo
procedimento EstáRazoavelmenteMelhorando. Este procedimento retorna se
percentualmente o número de melhorias nas iterações do PR for razoavelmente maior
do que o número de não melhorias. Finalmente, no final das iterações, na linha 22, a
melhor solução até então encontrada é retornada. Os procedimentos Forward e
Backward executam um movimento que pode ser uma troca, adição ou remoção. A
escolha do movimento a ser executado é realizada computando todos os movimentos
possíveis e selecionando o movimento de maior benefício.
Em cada iteração do algoritmo GRASP, o procedimento FaseConstrução é
chamado. O algoritmo do FaseConstrução (Figura 3.10) objetiva gerar uma boa solução
inicial para ser melhorada nas fases seguintes do GRASP. Na primeira linha, a solução
é inicializada com um conjunto vazio de vértices. Nas linhas numeradas de 2 a 9 são
realizadas as iterações enquanto o tamanho da solução não é maior que o espaço
disponível para materialização ( ). Cada iteração desse ciclo
começa com a definição da lista restrita de candidatos LRC. Essa lista é formada pelos
elementos de melhor avaliação pela abordagem gulosa, ou seja, pelos vértices que
possuem maiores densidades. Mais detalhes sobre a LRC serão dados adiante.
Na linha 4, é verificado se existem elementos na LRC para serem adicionados à
solução. Caso exista algum elemento na LRC, na linha 4, o procedimento
SelecionarAleatoriamente é chamado para realizar a escolha aleatória de um vértice o
qual é armazenado na variável . Essa aleatoriedade é o diferencial do GRASP, pois a
escolha dos vértices que compõem a solução é feita de forma semi-gulosa, ou seja, de
forma gulosa, mas também aleatória. Desta forma, são geradas soluções de boa
qualidade, devido à característica gulosa, e diversificadas devido à característica
aleatória. Nas linhas 6 e 7, o vértice selecionado é removido de φ' e em seguida,
adicionado à solução. A linha 9 é alcançada caso não existam elementos na LRC. Isto
significa que não existem mais elementos para serem adicionados à solução, logo o
Capítulo 3 – Método de Seleção e Materialização de Visões 47
clico de iteração é interrompido a partir do redirecionamento para linha 10. Ao término
das iterações, na linha 10, é retornada a solução construída.
Algoritmo 4: FaseConstrução (' , , )
Entrada: uma lista de vértices (
' ), espaço disponível para materialização ( ),
grau de gulosidade para definir a LRC ( )
Saída: melhor solução encontrada
1 solução ;
2 ENQUANTO (Tamanho(solução) < ) FAÇA
3 RCL CriarLRC(
' , , );
4 SE (NÃO EstáVazio(LRC)) ENTÃO
5 SelecionarAleatoriamente (LRC);
6
' ' - ;
7 solução solução ;
8 CASO CONTRÁRIO
9 IR PARA LINHA 10;
10 RETORNE melhorSolução;
Figura 3.10: Algoritmo Fase Construtiva do GRASP
O procedimento CriarRCL inicializa a LRC que será retornada como um
conjunto vazio de vértices. Em seguida, são obtidas, dentre os vértices de φ', os valores
de densidade máxima e a mínima. O limite de gulosidade é dado pela seguinte fórmula
, na qual é o grau de gulosidade e
e são respectivamente, os valores de densidade máxima e a mínima. Este
limite de gulosidade estabelece os elementos que comporão a LRC. São percorridos
todos os vértices em φ' e adicionados à LRC desde que a densidade do vértice não seja
maior que o limite de gulosidade e que seu tamanho somado ao tamanho da solução seja
maior que o espaço disponível para materialização. Caso algum vértice possua
densidade maior que o limite de gulosidade, o procedimento encerra e retorna a LRC
construída.
O processo de obtenção da LRC também pode ser ilustrado graficamente na
Figura 3.11, na qual os extremos da lista representam a densidade máxima e mínima
encontradas nos vértices de φ'. Os itens da esquerda são os vértices que possuem
densidade entre a máxima encontrada e o limite de gulosidade. Em resumo, os vértices
que comporão a LRC, são aqueles cujas densidades estão entre a densidade máxima e o
limite de gulosidade.
Capítulo 3 – Método de Seleção e Materialização de Visões 48
Figura 3.11: Lista Restrita dos Candidatos LRC
A segunda fase do GRASP, fase de busca local objetiva por refinar a solução
obtida na fase de construção para encontrar soluções melhores. Dada uma solução s, a
busca por melhores soluções é feita por meio da busca por soluções vizinhas de modo a
encontrar na vizinhança, soluções melhores que s. A técnica de busca local utilizada em
G consiste em permutar os vértices da solução construída na fase de construção
(solução) com os vértices que não foram escolhidos para compor a solução (os vértices
de φ'). Usando φ' e solução, duas LCRs, ExtRCL e IntRCL, são construídas
respectivamente. ExtRCL consiste nos vértices de φ' com melhor densidade, enquanto
IntRCL é composta dos vértices com menor densidade contidos em solução. O objetivo
é trocar vértices de baixa densidade de solução por vértices de alta densidade que estão
fora de solução.
Diferente da técnica utilizada em G, foi proposta uma nova técnica de busca
local por causa da baixa eficiência das trocas realizadas em G, como falado
anteriormente no início desta seção. O algoritmo da nova técnica é exibido na Figura
3.12. Ele consiste em ordenar os vértices presentes em φ' e solução e localizar
permutações nas listas ordenadas. A ordenação se dá pelo valor do vértice de maneira
decrescente e em caso de empate, pelo tamanho do vértice de maneira ascendente, como
realizado na linha 1. Graças à ordenação dos elementos, é possível conhecer de
antemão, por meio do elemento corrente, se não for possível realizar a troca com ele,
também não será possível realizá-la com os elementos subseqüentes a ele. Na linha 2,
uma lista booleana de tamanho igual à soma dos tamanhos das duas listas (φ' e solução)
é inicializada com todos valores iguais a falso. Esta lista serve para marcar os elementos
que durante a execução foram selecionados para troca (listaSelecionados). Na linha 3,
dois ponteiros são inicializados (posInt e posExt). O posInt é utilizado para percorrer a
Capítulo 3 – Método de Seleção e Materialização de Visões 49
lista ordenada de vértices em solução, do final da lista ao início da lista. O posExt é
utilizado para percorrer a lista ordenada de vértices em φ' do início da lista até o final da
lista. Nas linha 4 e 5, seqüencialmente são inicializadas a variável de controle das
iterações (éParada) e a lista para armazenar as trocas encontradas durante as iterações
(listaTrocas).
Uma vez inicializadas todas as variáveis do algoritmo, as iterações do algoritmo
são executadas da linha 6 à linha 25. No início da iteração, o ponteiro é atualizado, para
apontar para o próximo vértice em φ' que não tenha sido selecionado para troca. Por
meio dos ponteiros e do procedimento Obter, é obtido o vértice que é apontado pelo
ponteiro. Os procedimentos Valor e Tamanho recebem como parâmetro de entrada um
vértice e retornam respectivamente, o valor e o tamanho deste vértice. O procedimento
TamanhoMais retorna o tamanho do vértice somado ao espaço restante em solução. O
espaço restante representa o espaço disponível em solução para receber outros vértices
de modo que o tamanho de solução são seja maior que o espaço disponível para
materialização. O espaço restante é calculado subtraindo o espaço total disponível para
materialização ( ) pelo tamanho de solução. O tamanho de solução é calculado pelo
somatório do tamanho de todos os vértices contidos em solução.
Na linha 10, é verificado se o vértice dentro da solução (ElmInt) possui o mesmo
valor do vértice de fora (ElmExt). Desta forma, caso eles possuam o mesmo valor, na
linha 11, é verificado se ElmInt possui um tamanho maior que ElmExt, e caso positivo,
a troca é registrada (linha 12) pois com a troca tem-se um ganho de espaço restante em
solução sem prejuízo de valor em solução. Entretanto, caso ElmInt não possua tamanho
maior que ElmExt, as iterações cessam (linha 14). Isto ocorre porque devido à
ordenação dos elementos, os próximos elementos a serem percorridos em φ' possuem
tamanho igual ou maior que ElmExt, o que inviabiliza a permutação com qualquer
elemento em φ'. Quando o valor de ElmInt é maior que o valor ElmExt , na linha 15, as
iterações também cessam. Isto acontece por causa da ordenação dos vértices, e os
próximos vértices a serem percorridos em φ' possuem valores iguais ou menores que
ElmExt, e assim inviabilizam qualquer permutação com ElmInt ou qualquer elemento
presente em solução. Na linha 18, se o valor de ElmInt for menor que o de ElmExt e o
tamanho de ElmInt somado ao espaço restante de solução for maior que o tamanho de
ElmExt, a troca é registrada.
Capítulo 3 – Método de Seleção e Materialização de Visões 50
Algoritmo 5: FaseBuscaLocal (' , , solução)
Entrada: uma lista de vértices (
' ), espaço disponível para materialização ( ),
solução construída na fase de busca local (solução),
Saída: solução igual ou melhor que (solução)
1 OrdenarPorValorDescETamanhoAsc(solução,
' ) ;
2 AtribuirATodos(listaSelecionados,falso);
3 posInt NúmeroItens(solução) - 1; posExt 0;
4 éParada false;
5 listaTrocas ;
6 ENQUANTO (NÃO éParada) FAÇA
7 posExt ObterPróximoElementoNãoSelecionado(listaSelecionados,posExt);
8 ElmInt Obter(solução,posInt);
9 ElmExt Obter(
' ,posExt); 10 SE (Valor(ElmInt) = Valor(ElmExt)) ENTÃO
11 SE (Tamanho(ElmInt) > Tamanho(ElmExt)) ENTÃO
12 RegistrarTroca(listaSelecionados, listaTrocas, posInt, posExt)
13 CASO CONTRÁRIO
14 éParada verdade;
15 CASO CONTRÁRIO SE (Valor(ElmInt) > Valor(ElmExt)) ENTÃO
16 éParada verdade;
17 CASO CONTRÁRIO SE (SizePlus(ElmInt) > Tamanho(ElmExt)) ENTÃO
18 RegistrarTroca(listaSelecionados, listaTrocas, posInt, posExt)
19 CASO CONTRÁRIO
20 LocalizarCombinação(posInt, posExt);
21 SE posExt >= NúmeroItens(
' ) ENTÃO 22 posInt posInt - 1;
23 posExt 0;
24 SE posInt < 0 ENTÃO
25 éParada true;
26 RETORNE ExecutarTrocas(listaTrocas,
' , solução);
Figura 3.12: Algoritmo da Fase de Busca Local
Neste ponto do algoritmo, foram feitas comparações sobre o tamanho e o valor
dos vértices ElmInt e ElmExt para averiguar os casos nos quais é possível realizar troca
entre estes vértices. Todavia, ainda existe um caso no qual ElmInt possui valor menor
que ElmExt e o tamanho de ElmInt somado ao espaço restante de solução é menor que o
tamanho de ElmExt, ou seja, ElmExt é muito grande para realizar troca. Neste caso, é
executado, na linha 20, o procedimento LocalizarCombinação. Este procedimento
Capítulo 3 – Método de Seleção e Materialização de Visões 51
busca vértices mais próximos a ElmInt, na lista de ordenação, de maneira a encontrar
uma combinação de vértices que juntos possuam o tamanho superior a ElmExt e valor
menor que ElmExt. Tendo sido encontrada esta combinação, o procedimento
LocalizarCombinação executa internamente o procedimento RegistrarTroca para
registrar a troca. O procedimento RegistrarTroca armazena em listaTrocas as trocas a
serem realizadas e ajusta os ponteiros para continuar a busca por novas permutações. O
ajuste dos ponteiros é feito pelo código das linhas 22 e 23.
No final de cada iteração do algoritmo, é feita a checagem dos ponteiros. Nas
linhas 22 e 23, os ponteiros são ajustados, caso o ponteiro posExt tenha percorrido todos
os elementos em φ' e não tenha encontrado qualquer permutação compatível com
ElmInt atual. Além disso, na linha 25, caso seja verificado que todos os elementos em
solução foram percorridos, i.e posInt < 0, então as iterações cessam. Por fim, o
procedimento ExecutarTrocas realiza todas as trocas registradas em listaTrocas e
retorna a solução resultante das trocas realizadas. Esta solução é o retorno deste
algoritmo.
3.3.4. Materialização das Visões
A última fase consiste na materialização dos vértices escolhidos pela fase
anterior. A materialização de um vértice consiste na construção de uma tabela de dados
e na carga desta tabela com as devidas agregações de dados. Para a construção da tabela
é preciso especificar seu formato. As linhas e colunas da tabela são provenientes das
medidas do cubo e da combinação dos níveis. Cada medida ou nível está associado a
uma coluna de uma tabela da base de dados, como especificado no esquema
multidimensional da base de dados. Desta forma, as colunas da tabela de materialização
são formadas pelas colunas associadas a cada medida do cubo, como também pelas
colunas associadas a cada nível n que compõe o vértice e pelas colunas associadas a
cada nível precedente a n.
Uma vez identificados os níveis e as medidas do vértice a ser materializado, são
obtidos os atributos nome_coluna e tipo_coluna das respectivas entidades. Estes
atributos possibilitarão a construção do script de criação da tabela. Por exemplo,
considere as seguintes medidas e níveis de um vértice, e seus respectivos atributos, que
são ilustrados na Figura 3.13. Por meio destes atributos, é gerado o script de criação da
Capítulo 3 – Método de Seleção e Materialização de Visões 52
tabela materialização_vertice_x, exibido na Figura 3.14, proveniente da combinação
dos níveis: ano, tipo do produto e cliente.
MEDIDAS NOME NOME_COLUMA TIPO_COLUNA
Total das Vendas valor_vendas DOUBLE
Número de Vendas numero_vendas INTEGER
NÍVEIS NOME NOME_COLUMA TIPO_COLUNA
Ano ano SMALLINT
Tipo do Produto nome_tipo VARCHAR(50)
Cliente cliente_nome VARCHAR(120)
Figura 3.13: Exemplo de atributos para criação de tabela de materialização
CREATE TABLE materializacao_vertice_x(
ano SMALLINT NOT NULL,
nome_tipo VARCHAR(50) NOT NULL,
cliente_nome VARCHAR(120) NOT NULL,
total_vendas DOUBLE NOT NULL,
numero_vendas INTEGER NOT NULL );
Figura 3.14: Exemplo de script de criação de tabela de materialização
Tendo sido definido o formato da tabela de materialização, é preciso então, fazer
a carga dos dados na tabela. Os dados armazenados na tabela de materialização são
provenientes de agregações sobre medidas de tabelas de fatos e são resultantes do
agrupamento por uma combinação de níveis. Desta forma, necessita-se conhecer as
colunas associadas às medidas e quais operações de agregação serão realizadas sobre
elas. Sobre os níveis é necessário conhecer as colunas associadas aos níveis e suas
respectivas tabelas de dimensão. Para agrupar as medidas da tabela de fatos pelos
níveis, é preciso realizar operações de junção sobre a tabela de fatos e as tabelas de
dimensão, para obter a coluna associada ao nível. As condições de junção e as tabelas
utilizadas nas operações de junção são armazenadas na primeira fase do método
proposto neste documento. A Figura 3.15 exibe os atributos das entidades Medida e
Nível, necessários para a geração da carga dos dados. Com estes dados, é gerado um
script de carga, como mostra a Figura 3.16.
Capítulo 3 – Método de Seleção e Materialização de Visões 53
MEDIDAS
NOME NOME_COLUMA EXPRESSÃO_AGREGAÇÃO
Total das
Vendas
valor_vendas sum(tb_fato.valor_vendas)
Número
de Vendas
numero_vendas sum(tb_fato.numero_vendas)
NÍVEIS
NAME NOME_COLUNA COLUNA_TABELA TABELAS CONDIÇÃO_JUNÇÃO
Ano ano tempo tempo tb_fato.tempo_id = tempo.id
Tipo do
Produto
nome_tipo produto_tipo produto,
produto_tipo
tb_fato.produto_id =
produto.id; produto.tipo_id =
produto_tipo.id
Cliente cliente_nome cliente cliente tb_fato.cliente_id = cliente.id
Figura 3.15: Atributos utilizados para carga da tabela de materialização
INSERT INTO materializacao_vertice_x
(ano,nome_tipo,cliente_nome,total_vendas,numero_vendas )
SELECT tempo.ano,produto_tipo.nome_tipo,cliente.cliente_nome
,sum(tb_fato.valor_vendas),sum(tb_fato.numero_vendas)
FROM tempo, produto_tipo, cliente, tb_fato
WHERE tb_fato.tempo_id = tempo.id AND tb_fato.produto_id = produto.id AND
produto.tipo_id = produto_tipo.id
AND tb_fato.cliente_id = cliente.id
GROUP BY
tempo.ano,produto_tipo.nome_tipo,cliente.cliente_nome
Figura 3.16: Exemplo de script de carga da tabela de materialização
O script de carga é composto de uma inserção na tabela de materialização por
meio de uma consulta que une os dados distribuídos entre as tabelas envolvidas a partir
Capítulo 3 – Método de Seleção e Materialização de Visões 54
das operações de junção. Posteriormente, agrupam-se os dados pelas colunas dos níveis
e realizam-se as operações de agregação devidas, sobre cada medida.
3.4. Conclusão
Diferente dos outros trabalhos encontrados na literatura, o método proposto para
seleção e materialização de visões abrange todo o ciclo de execução de uma análise
multidimensional. Este ciclo vai deste a submissão de consultas de um dado usuário até
a materialização das visões mais benéficas para o perfil de consultas do usuário.
Uma assinatura é criada com o intuito de caracterizar as consultas de um dado
usuário sobre elementos de um cubo de dados, de modo que estes elementos forneçam
informações para seleção e materialização das visões. Estas informações são
armazenadas com base em um esquema conceitual que foi definido neste capítulo e
utilizado durante as quatro fases do método proposto.
A primeira fase destina-se a obter as informações sobre os esquemas
multidimensionais e os esquemas do DW. A segunda fase consiste na especificação das
assinaturas por meio das quais, nesta fase, são armazenadas as consultas realizadas e são
rastreados os elementos do cubo utilizados pelas consultas. A terceira fase objetiva a
seleção das visões. Durante esta terceira fase, são especificados os critérios de seleção
adotados e como eles são obtidos a partir das assinaturas. Tendo sido listados os
critérios de seleção de visões, foram discutidos os algoritmos de otimização adotados
que se baseiam na meta-heurística GRASP, uma variante Reactive GRASP e uma
versão híbrida GRASP com Path-Relinking. Por fim, a última fase especifica como são
materializadas as visões selecionadas na fase anterior.
No próximo capítulo, serão descritos resultados de experimentos realizados com
os algoritmos de seleção propostos e são exibidas as conclusões sobre os resultados
coletados.
Capítulo 4 – Análise Experimental 55
Capítulo 4 Análise Experimental
Este capítulo especifica o ambiente de teste utilizado nos experimentos efetuados e
descreve as avaliações comparativas realizadas sobre os algoritmos de otimização.
Capítulo 4 – Análise Experimental 56
4.1. Introdução
Este capítulo está organizado da seguinte maneira. A Seção 4.2 descreve a
configuração do ambiente utilizado para avaliar os algoritmos de otimização definidos
neste trabalho. Testes experimentais foram executados para definir os melhores valores
dos parâmetros de configuração dos algoritmos testados e os resultados derivados destes
testes são dados na Seção 4.3. A avaliação sobre o comportamento dos algoritmos e
sobre o comportamento do espaço de solução sob diferentes espaços disponíveis de
materialização é descrita na Seção 4.4.1. Em seguida, na Seção 4.4.2, é investigado o
comportamento dos algoritmos segundo o tempo execução dos algoritmos. A Seção
4.4.3 discorre sobre os resultados obtidos na comparação do tempo gasto para responder
ao histórico de consultas de um usuário, utilizando o conjunto de visões selecionadas
por cada algoritmo avaliado. Por fim, a Seção 4.5 conclui o capítulo com uma discussão
sobre os resultados obtidos nos experimentos.
4.2. Configuração do Ambiente
Os experimentos computacionais foram realizados em um computador com
sistema operacional (Windows 7 Professional 64 bits) e com processador (Intel Core i7
X 980 @ 3.33GHz) com 16GB de memória RAM. O servidor OLAP utilizado foi o
Mondrian versão 3.2.0.13583. O Mondrian é um servidor OLAP de código aberto
escrito na linguagem Java. Ele executa consultas construídas na linguagem MDX, lendo
dados de um banco de dados relacional (RDBMS) e apresentando os resultados em um
formato multidimensional. Por ser código aberto, neste servidor, foi possível incorporar
ao seu processo de execução de consultas analíticas, todo o método de seleção e
materialização de visões que foi descrito no Capítulo 3. O método foi implementado na
linguagem Java objetivando a integração com o Mondrian.
Para persistência dos dados das assinaturas foi utilizado como sistema de
gerenciamento de bancos de dados o PostgreSQL 9.1 O gerador de aleatoriedade foi o
Mersenne Twister encontrado na biblioteca COLT1, disponível no endereço
http://acs.lbl.gov/software/colt/colt-download/releases. As sementes utilizadas foram
obtidas das casas decimais de π (.141592653589793238462643...) tomadas 5 a 5, por
exemplo a semente 1 = 14159, a semente 2 = 26535, a semente 3 = 89793.
Capítulo 4 – Análise Experimental 57
O Star Schema Benchmark (SSB) (O’NEIL, O’NEIL, et al., 2009) foi também
adaptado para aumentar o número de dimensões e níveis, no intuito de ter um grande
número de visões e consequentemente, ter um número maior de consultas diversas. Esta
adaptação foi necessária para investigar a escalabilidade e eficiência dos algoritmos
quando há um amplo conjunto de visões possíveis a serem escolhidas. Com respeito ao
esquema do cubo de dados utilizado nos experimentos, ele está disponível no Apêndice
B. Este esquema multidimensional de dados é composto de 5 dimensões (Part, Supplier,
Customer, Date e CommitDate), 37 níveis e 2 medidas (Lo_Revenue e Lo_SupplyCost).
Este esquema foi criado utilizando a base de dados do SSB com fator de escala 1. A
geração da base produziu, na tabela de fatos, seis milhões de tuplas e os algoritmos da
primeira fase do método (Seção 3.3.1) produziram um total de 17.325 visões possíveis,
cuja materialização consumiria o espaço estimando de 8.346 TB.
A carga de trabalho foi baseada em 1.200.006 submissões de consultas
escolhidas aleatoriamente de 1200 consultas distintas. Estas 1200 consultas, foram
escolhidas aleatoriamente, com semente 1, de um conjunto k de 17.325 consultas
distintas. Cada consulta, em k, foi elaborada de modo a ter uma combinação única de
níveis, e, portanto cada consulta está diretamente associada a apenas uma visão das
17.325 possíveis. O espaço total estimando na materialização das 1.200 visões
associadas às 1.200 consultas distintas do usuário é de 561.2 GB. Dado este espaço
total, é considerado nos experimentos realizados, os seguintes valores percentuais de
espaço disponível de materialização 1,25% = 7GB; 2,5% = 14GB; 5% = 28GB; 10% =
56GB; 20% = 112GB; 40% = 224GB e 60% = 33GB.
Nas avaliações comparativas, o algoritmo ACO (SONG e GAO, 2010) foi
escolhido por ter sido aplicada em diversos problemas de otimização (DORIGO e
BLUM, 2005) e também no PSV (SONG e GAO, 2010). Outro fator de adoção, foi que
o ACO foi avaliado em um cenário de pequeno porte com uma carga de trabalho de 32
consultas distintas, e neste cenário, o ACO apresentou resultados pouco superiores ao G
nos experimentos reportados em (FIRMINO, MATEUS, et al., 2011). Então, é desejado
avaliar o ACO em um cenário de grande porte com uma carga de trabalho maior, i.e.
uma carga de 1200 consultas distintas.
Capítulo 4 – Análise Experimental 58
4.3. Calibração dos Parâmetros
Nove algoritmos foram avaliados nos testes experimentais realizados: ACO
(SONG e GAO, 2010), G (FIRMINO, MATEUS, et al., 2011), RG, RGF, RGFT, RGB,
RGBT, RGM e RGMT. Estes algoritmos recebem com entrada: (1) um conjunto de
visões ( ), (2) espaço disponível par materialização das visões ( ) e (3) dois destes
algoritmos (ACO e G) por não apresentarem a característica reativa, também recebem
como entrada um conjunto de parâmetros de configuração. Os parâmetros de
configuração do ACO são a taxa de evaporação do feromônio (ρ) e o número de
formigas que saem de um caminho inicial (π) como no descrito na Seção 2.5.2. Os
parâmetros do G são (θ) grau de gulosidade utilizado para definir o tamanho da LRC;
(ϑ) grau de gulosidade utilizado para definir a LRC na busca local e (τ) número de
tentativas de trocas na busca local. É importante salientar que as mudanças nos valores
dos parâmetros de configuração afetam a qualidade das soluções geradas pelos
algoritmos, dado o conjunto de entrada e o espaço disponível para materialização. Desta
forma, foi preciso realizar a calibração dos parâmetros para realização dos experimentos
detalhados aqui.
Depois da realização do processo de calibração, são exibidos, na Figura 4.1, os
melhores valores dos parâmetros de configuração dos algoritmos (i.e. para ACO e G),
para a cada valor percentual do espaço de materialização (1,25%, 2,5%, 5%, 10%, 20%,
40% e 60%). Para cada valor de parâmetro avaliado, foram feitas 10 execuções do
algoritmo. Cada execução utilizou como critério de parada: (1) o tempo máximo de
execução igual a 2 minutos; e (2) e o limite de no máximo 1000 iterações sem melhoria
de solução gerada. Além disso, cada execução utilizou como semente de aleatoriedade o
número corresponde a execução. Por exemplo, a execução 1 utilizou a semente 1 cujo
valor é 14159, a execução 2 utilizou a semente 2 cujo valor é 26535 e o mesmo se
repete para as demais. Após as 10 execuções, foi calculada a média das 10 soluções
geradas. Esta média é utilizada para determinar o melhor valor do parâmetro avaliado, e
para caso de desempate utiliza-se o menor tempo médio de execução.
Capítulo 4 – Análise Experimental 59
Figura 4.1: Resultados da Calibração
Para exemplificar a realização da calibração, considere o algoritmo G com
percentual de espaço de materialização igual a 5%. Para o teste do parâmetro θ, os
seguintes valores foram adotados: 0.05, 0.1, 0.2, 0.3, 0.4, 0.5 e os valores dos outros
parâmetros foram fixados em: ϑ = 0 e τ = 0, de modo a avaliar as soluções sem a
influência da busca local. Pode ser observado no gráfico da Figura 4.2 que para valores
maiores e menores que 0.3 há decréscimo na qualidade das soluções. Uma vez
encontrado o melhor valor para θ, foram executados os testes para ϑ com os seguintes
valores 0.05, 0.1, 0.2, 0.3, 0.4, 0.5 e os valores dos outros parâmetros foram fixados em:
θ = 0.3 e τ = 5. Pode ser observado no gráfico da Figura 4.3 que para valores menores
que 0.5, houve um decréscimo na qualidade das soluções.
Uma vez encontrado o melhor valor para ϑ, testes para τ foram executados com
os seguintes valores: 5, 10, 20, 30, 40 e os valores dos outros parâmetros foram fixados
em: θ = 0.3 e ϑ = 0.5. Observa-se no gráfico da Figura 4.4 que para valores do número
de tentativas de troca maiores que 5, houve uma redução na qualidade das soluções.
Também é notado que as melhores soluções se encontram nos valores extremos: 5 e 40.
Isto significa que com valores de tentativa de troca menores, o algoritmo tem mais
chance de gerar novas soluções na fase de construção, aumentando asssim, a
diversidade das soluções e por conseguinte, a probabilidade de encontrar uma boa
solução. Já para valores de tentativa de troca mais elevados, ao invés de encontrar boas
soluções por diversidade, boas soluções são encontradas, consumindo maior tempo na
fase de busca local, lapidando as soluções geradas na fase de construção.
Capítulo 4 – Análise Experimental 60
Figura 4.2: Calibração do Limite de Gulosidade θ
Figura 4.3: Calibração do Limite de Gulosidade Busca Local ϑ
Figura 4.4: Calibração do Número de Tentativas de Trocas τ
4.4. Avaliação dos Algoritmos
Nesta seção, uma análise comparativa entre os nove algoritmos: ACO (SONG e
GAO, 2010), G (FIRMINO, MATEUS, et al., 2011), RG, RGF, RGFT, RGB, RGBT,
Capítulo 4 – Análise Experimental 61
RGM e RGMT é realizada. As análises comparativas foram realizadas com base em três
critérios: (1) avaliação sobre espaço disponível para materialização; (2) avaliação dos
algoritmos sobre o tempo de execução; e (3) avaliação pela redução no tempo de
resposta das consultas analíticas do usuário OLAP. Os resultados obtidos em cada uma
destas análises são mostrados nas Seções de 4.4.1 a 4.4.2, respectivamente.
4.4.1. Espaço Disponível para Materialização
O objetivo desta análise comparativa é avaliar o comportamento dos algoritmos
em diferentes espaços de materialização {1,25%, 2,5%, 5%, 10%, 20%, 40% e 60%}.
Para isto, cada algoritmo foi executado 50 vezes, utilizando como critério de parada o
tempo máximo de 2 minutos e o número de iterações do algoritmo sem melhoria na
qualidade da solução igual a 500000 e utilizando como semente, o número
correspondente ao número da execução. Os algoritmos não reativos (ACO e G)
utilizaram seus respectivos valores de parâmetros que foram obtidos nos experimentos
de calibração descritos na Seção 4.3. Para as 50 execuções, foi calculada a média dos
benefícios das soluções geradas por cada algoritmo nos diferentes espaços de
materialização, como mostra os gráficos da Figura 4.5 à Figura 4.11. Vale ressaltar que
nos gráficos não são exibidos os valores correspondentes ao ACO, pois seus valores
foram muito inferiores aos demais algoritmos {1,25% = 273,202757; 2,5% =
311,653789; 5% = 337,939324; 10% = 409,215141; 20% = 513,354374; 40% =
683,929461 e 60% = 834,61947}, e assim sua inclusão dificultaria a visualização mais
detalhada dos outros algoritmos.
Figura 4.5: Avaliação Espacial de 1.25%
Capítulo 4 – Análise Experimental 62
Figura 4.6: Avaliação Espacial de 2.5%
Figura 4.7: Avaliação Espacial de 5%
Figura 4.8: Avaliação Espacial de 10%
Capítulo 4 – Análise Experimental 63
Figura 4.9: Avaliação Espacial de 20%
Figura 4.10: Avaliação Espacial de 40%
Figura 4.11: Avaliação Espacial de 60%
Uma característica que pode ser notada nos gráficos é que as variantes truncadas
do PR foram na maioria dos casos, melhores que as correspondentes não truncadas,
especialmente na Figura 4.9 e na Figura 4.10. Isto acontece porque em determinados
cenários, não é preciso consumir processamento realizando todo o caminho de
religamento se soluções melhores podem ser encontradas em trechos intermediários do
caminho. Assim, este ganho de processamento pode ser utilizado para gerar novas
soluções na fase de construção ou na fase de busca local da meta-heurística GRASP.
Capítulo 4 – Análise Experimental 64
Outra característica é que o algoritmo RGF, na maioria dos casos, apresentou
resultados inferiores aos demais algoritmos. Isto aconteceu por ele apresentar as
características de uma variante não truncada, como explicado previamente, e também
porque em determinados cenários, a busca sempre ascendente no espaço de soluções ( a
partir de uma solução inferior até uma solução superior) pode não ser proveitosa se
entre as duas extremidades somente existirem soluções que são inferiores às duas
extremidades de busca.
Além disso, uma outra característica a ser observada é que o algoritmo G em
média, apresentou ligeiramente melhores resultados que a sua variante reativa RG. Isto
aconteceu porque o algoritmo G passou por uma fase de calibração, e como
conseguinte, desde o começo de sua execução, é esperado que ele produza boa soluções
pois os seus parâmetros foram calibrados. Entretanto, o algoritmo RG por apresentar
características reativas consome um intervalo de tempo até que os seus parâmetros se
estabilizem, e durante este intervalo, soluções não tão boas podem ser geradas,
reduzindo a média dos valores das soluções geradas. Um fato importante a ser
observado é que a adição da meta-heurística Path Relinking (PR) ao algoritmo RG
promoveu na maioria dos casos, um aumento na qualidade das soluções geradas. Ao
obter-se a média do valor de todas as soluções geradas, para todos os espaços de
materialização avaliados, e ao compararmos percentualmente essas médias com a média
do G, tem-se que os algoritmos reativos são ligeiramente inferiores ao G, como exibido
na Figura 4.12. A maior diferença percentual foi de apenas 0.01152%.
Figura 4.12: Diferença Percentual das Médias sobre o Algoritmo G
Nesta pesquisa, não foram apenas estudadas as médias das soluções geradas,
também foi analisado o ganho na utilização da nova técnica de busca local, descrita na
Capítulo 4 – Análise Experimental 65
Seção 3.3.3.2. Nas 50 execuções desta avaliação foi calculada a média dos GBLs
(Ganho de Busca Local). O GBL é obtido pela Equação I.
(I)
Onde:
i representa o índice das N iterações do algoritmo;
solC indica o valor da solução produzida pela fase de construção;
solM corresponde o valor da solução produzida na fase de busca local.
O GBL representa o ganho promovido pela técnica de busca local do algoritmo
durante a execução. Foram feitas comparações entre o G e os algoritmos reativos que
utilizam a nova busca local. Foi observado que em todos os algoritmos reativos, foi
obtido um acréscimo do GBL comparado ao GBL apresentado pelo G. O menor
aumento percentual foi de 69%, como exibido na Figura 4.13.
Figura 4.13: Ganho Percentual da Nova Busca Local
Um outro estudo foi realizado sobre o comportamento do espaço de soluções, a
partir da atribuição de diferentes valores ao o espaço disponível de materialização
(EDM). Nas 50 execuções desta avaliação foi calculado a variância das soluções
geradas pelos algoritmos nos diferentes EDMs de modo a investigar a diversidade do
espaço de soluções, pois em ambientes de maior diversidade de soluções há uma maior
quantidade de máximos locais no espaço de solução, como também, uma maior
amplitute dos máximos locais. Esta irregularidade no espaço de solução propicia uma
Capítulo 4 – Análise Experimental 66
maior dificuldade para os algoritmos na busca por ótimas ou muito boas soluções, uma
vez que, eles têm maior probabilidade de ficarem presos em ótimos locais.
Ao analisar o gráfico na Figura 4.14, é observado que para EDMs de valores
baixos ou altos, um valor de variância menor que os valores intermediários é obtido.
Isto acontece porque em cenários de pequeno espaço de materialização, o número de
visões que podem ser adicionadas à solução é pequeno, reduzindo a dificuldade do
problema, pois poucas visões precisam ser consideradas na escolha e conseqüentemente,
poucas soluções distintas podem ser geradas. Já para os cenários de grande espaço de
materialização, muitas visões podem ser adicionadas às soluções, devido ao grande
espaço disponível. Inicialmente, um grande número devisões são adicionadas às
soluções, até que a restrição de espaço venha a ser um fator limitante na construção das
soluções. Com o tempo, como um grande número de visões já foi adicionado, resta
apenas um número pequeno de visões a serem escolhidas e por conseqüente, poucas
soluções distintas podem ser geradas. Esta limitação de soluções que podem ser geradas
determina a diversidade das soluções e assim, a irregularidade do espaço de soluções.
Desta forma, foi verificado que o cenário de maior diversidade e conseqüentemente, de
maior dificuldade foi o de EDM igual a 5% por apresentar a maior variância.
Figura 4.14: Variância por Espaço Disponível para Materialização
4.4.2. Tempo de Execução dos Algoritmos
O objetivo destes experimentos é avaliar o comportamento dos algoritmos ao
longo do tempo de execução. Mais precisamente, o objetivo consiste em investigar ao
decorrer do tempo, o quão rápido um dado algoritmo se aproxima da solução ótima.
Como método para esta análise, foi usado a abordagem de TTTP (Time To Target Plot),
um gráfico que exibe a probabilidade (Eixo Y) do algoritmo ter atingido o valor alvo
Capítulo 4 – Análise Experimental 67
num dado instante (Eixo X). Para construção dos gráficos, foi utilizado um sistema
computacional desenvolvido em Perl (AIEX, RESENDE, et al., 2006). De acordo com
os resultados dos experimentos da Seção 4.4.1, sabe-se que o cenário de EDM igual a
5% apresentou a maior complexidade, desta forma, este cenário foi utilizado na
avaliação temporal dos algoritmos. Além disso, também foi encontrado que o maior
valor das soluções geradas foi igual a 415.90958, e assim, este foi considerado o valor
ótimo real conhecido e conseqüentemente, o valor alvo para o TTTP.
Para a coleta dos dados desta avaliação, os experimentos (E1) foram executados
e a seguinte metodologia (M1) foi adotada: cada algoritmo foi executado 100 vezes,
utilizando como critério de parada: a obtenção do valor alvo ou o tempo máximo de 3
minutos e utilizando como semente, o número correspondente à execução. Os
algoritmos não reativos (ACO e G) utilizaram seus respectivos valores de parâmetros
que foran obtidos nos experimentos de calibração descritos na Seção 4.3. O gráfico da
Figura 4.15 exibe o TTTP para os dados coletados do experimento E1. Neste gráfico,
apenas 5 (RGFT, RGB, RGBT, RGM e RGMT) dos 9 algoritmos são exibidos, ou seja,
são mostrados apenas os algoritmos que atingiram o valor alvo em um dado instante.
Além disso, dos 100 pontos que deveriam constar para cada algoritmo, apenas alguns
pontos são mostrados no gráfico (respectivamente 73, 70, 72, 75, 75), ou seja, apenas
em alguns momentos, os algoritmos conseguiram atingir o valor alvo.
Por meio do TTTP é observado que o RGFT, RGM e RGMT mais se aproximam
do eixo da abscissa e assim possuem a característica de estatisticamente se aproximarem
mais rapidamente do valor alvo. Além disso, dentre estes três algoritmos, o RGM e
RGMT conseguiram atingir em um número maior de vezes, o valor alvo. Também foi
observado que, mesmo aumentando o tempo de execução, os algoritmos não
conseguiram atingir o valor alvo, e logo alguns pontos não são plotados no gráfico do
TTTP. Um paliativo para isto seria reduzir o valor alvo de modo que todos os
algoritmos analisados consigam atingir o valor alvo atribuído, e assim, com todos os
pontos plotados no gráfico, realizar análise temporal com um valor alvo menor do que o
real conhecido.
Capítulo 4 – Análise Experimental 68
Figura 4.15: Resultado do TTTP
Como outra forma de analisar o comportamento temporal dos algoritmos, foi
proposto o DTTTP (Distance and Time To Target Plot), o gráfico que mostra ao longo
do tempo (Eixo X), o quão distante do ótimo, em média, as soluções geradas pelos
algoritmos se encontram (Eixo Y). Dessa forma, para todos os algoritmos, todos os
dados foram obtidos e foi usado como valor alvo o ótimo real conhecido (415.90958).
Assim, foram realizados novos experimentos (E2) baseados na metodologia M1 para
coletar os dados para o DTTTP. Os gráficos da Figura 4.16 e da Figura 4.17 mostram
que os algoritmos que apresentam a melhor avaliação temporal, ou seja, possuem a
característica de se aproximarem de forma mais rápida do ótimo foram o RGM, RGBT
e RGMT, ordenadamente. Ao cruzarmos os resultados do TTTP com o DTTTP foi
percebido que os algoritmos: G, RG e RGF; estabilizam e não conseguem atingir o
ótimo. Isto é justificado, pois devido a complexidade do cenário alguns algoritmos
tendem a ficar presos em máximos locais do espaço de solução e apenas alguns
algoritmos associados ao Path-Relinking conseguem atravessar os máximos locais de
modo eficiente e continuar a busca pela solução ótima.
Capítulo 4 – Análise Experimental 69
Figura 4.16: Resultado do DTTTP
Figura 4.17: Resultado do DTTTP com Zoom
4.4.3. Redução do Tempo de Execução de Consultas
Nesta avaliação, as visões selecionadas pelos algoritmos foram materializadas e
foi comparado o tempo gasto para responder ao histórico de consultas do usuário,
utilizando a solução (visões selecionadas) de cada respectivo algoritmo. Desta forma,
para comparação, foram selecionadas a melhor solução produzida pelos algoritmos
reativos (SReactiveGRASP) e a melhor solução produzida pelo algoritmo ACO (SACO).
Os algoritmos selecionaram as visões usando o valor percentual de 5% do espaço total
de materialização. Este cenário de 5% foi usado porque ele foi considerado o de maior
complexidade, como visto na seção 4.4.1 .
Então, para cada solução, foram realizadas 20 execuções para cada consulta c
das 1200 consultas MDX distintas (ou consultas chaves) presente no histórico de
consultas do usuário. Em seguida, foram realizados os cálculos do tempo médio de
execução das 20 execuções para cada uma das 1200 consultas. Por meio do tempo
médio de execução, foi obtido o tempo de execução da consulta c no histórico de
consultas, o qual foi multiplicado pela respectiva freqüência da consulta c no histórico.
Por fim, foi realizada a soma do tempo de execução de cada consulta c no histórico de
consultas, e foi obtido o tempo de execução para responder ao histórico de consultas do
usuário utilizando a solução em questão.
Para investigar a existência de similaridade entre os tempos médios de execução
nas duas soluções, foi realizado o Teste T Pareado (NANCY L. LEECH, 2007), uma
técnica utilizada para comparar as médias de duas amostras, a fim de que as
observações de uma amostra sejam pareadas com observações de outra amostra. Por
Capítulo 4 – Análise Experimental 70
meio de duas amostras X e Y é criado um conjunto D com a diferença entre as medições
de cada amostra . Uma vez construído este conjunto D, é possível
construir um intervalo de confiança para a diferença das médias. A partir deste
intervalo, é possível concluir se estatisticamente as duas amostras são equivalentes. É
importante destacar que para ser válida a aplicação do teste T pareado, as diferenças
entre as médias devem ter uma distribuição aproximadamente normal. Então, para as
consultas chaves foi realizado o Teste de Normalidade Jarque-Bera (JARQUE, BERA,
et al., 1987) para averiguar se as amostras obtidas seguem uma distribuição normal.
Tendo sido atendida a restrição sobre a distribuição normal, foi realizado para cada par
de amostras das duas soluções o Teste T Pareado com intervalo de confiança de 99%.
Com isto pode-se afirmar estaticamente se o tempo médio de execução de uma consulta
c é o mesmo para ambas as soluções. Se isto for comprovado, pode-se considerar o
mesmo valor de tempo médio de execução da consulta c em ambas as soluções.
Neste estudo de similaridade dos tempos médios de execução de consultas, foi
obtido que em 26% (310 de 1200) das consultas o tempo médio de execução é o mesmo
em ambas as soluções. Além disso, foi obtido que para a solução SReactiveGRASP, em
57% (683 de 1200) das consultas, o tempo médio de execução foi o maior e nos 17%
restantes (207 de 1200) das consultas, o tempo médio de execução foi menor. Em
seguida, para cada solução (SReactiveGRASP e SACO) foi obtida a soma do tempo de
execução de cada consulta chave para se obter o tempo de execução necessário para
responder ao histórico de consultas do usuário. Ao se comparar estes dois tempos, foi
observado que a solução SReactiveGRASP proporcionou uma redução de tempo de
10,25% em relação à solução SACO.
Apesar de que em 57% das consultas, a solução SReactiveGRASP tenha obtido
um valor maior para o tempo médio de execução, a qualidade das visões que compõe a
solução SReactiveGRASP, para o histórico do usuário, proporcionou uma redução de
10,25%. Isto aconteceu porque a qualidade está atrelada à razão entre o benefício e o
tamanho das visões selecionadas, ou seja, visões de boa qualidade são aquelas que
possuem em média, um alto benefício para usuário e um baixo valor de tamanho.
Assim, se computarmos a densidade (soma do beneficio divido pela soma do tamanho)
das visões materializadas para os aos dois conjuntos de consultas: 57% e 17%, verifica-
se que a densidade das visões associadas ao 17% é 2,24 vezes maior que as associadas
ao 57%, ou seja, ter visões materializadas que atendam às consultas do conjunto de 17%
Capítulo 4 – Análise Experimental 71
é muito mais importante para a execução de consultas do usuário do que atender às
consultas dos 57% e isto se refletiu na redução de 10,25% proporcionada pelo
SReactiveGRASP.
4.5. Conclusão
Por meio dos testes experimentais realizados, foram feitas 3 avaliações sobre os
algoritmos: Espacial (AE), Temporal (AT) e Tempo de Execução de Consultas (ATEC).
Antes da realização dos experimentos, os algoritmos não reativos (ACO e G) passram
por uma fase de calibração de parâmetros, de modo que os algoritmos executassem
apropriadamente nos experimentos.
Na avaliação espacial (AE), foi estudado o comportamento do espaço de
soluções devido a variações de valores para o espaço disponível de materialização
(EDM). Neste estudo, foi identificado que o EDM de maior complexidade foi o de 5% e
que para valores muito superiores ou inferiores a ele, a complexidade era reduzida. Este
cenário de EDM igual a 5%, por apresentar maior complexidade, foi utilizado nas
demais avaliações (AT e ATEC). Em seguida, o GBL (Ganho da Busca Local), que
representa o ganho promovido pela técnica de busca local dos algoritmos durante a
execução dos mesmos, foi estudado. Neste estudo, foi observado que em todos os
algoritmos reativos, que utilizam a nova busca local proposta, foi obtido um acréscimo
do GBL quando comparado ao GBL do algoritmo G. O menor aumento percentual
obtido foi de 69%. Além disso, foi investigada a utilização da heurística Path-Reliking
(PR). As variantes truncadas do PR apresentaram na maioria dos casos, melhores
soluções que as variantes correspondentes não truncadas. Além disso, a adição da meta-
heurística Path Relinking (PR) ao algoritmo RG promoveu na maioria dos casos,
aumento na qualidade das soluções geradas. Por fim, foi também realizada uma
comparação entre G e os algoritmos reativos. Os algoritmos reativos foram, em média
de valores de soluções geradas, ligeiramente inferiores ao algoritmo G. A maior
diferença percentual foi de apenas 0,01152%.
Na avaliação temporal (AT), foi investigado como no decorrer do tempo, um
dado algoritmo se aproxima da solução ótima (ou valor alvo). Para isto, foi utilizado
primeiramente a técnica TTTP. Ela reportou que apenas 5 algoritmos (RGFT, RGB,
RGBT, RGM e RGMT) conseguiram atingir o valor alvo em um dado instante. Destes 5
Capítulo 4 – Análise Experimental 72
algoritmos, o RGFT, RGM e RGMT mais se aproximam do eixo da abscissa, e assim,
possuem a característica de estatisticamente se aproximarem mais rapidamente do valor
alvo. Além disso, destes 3 algoritmos, o RGM e o RGMT conseguiram atingir em um
número maior de vezes, o valor alvo. Para esta avaliação, uma outra técnica de análise
temporal foi proposta: o DTTTP (Distance and Time To Target Plot). DTTP consiste
em um gráfico que mostra ao longo do tempo (Eixo X), o quão distante do ótimo, em
média, as soluções geradas pelos algoritmos se encontram (Eixo Y). Por meio do
DTTTP, foi observado que os algoritmos que apresentaram melhor comportamento
temporal foram o RGM, RGBT e RGMT, ordenadamente. Ao cruzarmos os resultados
do TTTP com o DTTTP, foi percebido que a maioria dos algoritmos associados ao
Path-Relinking conseguem atravessar os máximos locais do espaço de soluções de
modo eficiente e atingir o ótimo rapidamente.
Na última avaliação, chamada de ATEC, foram materializadas as visões
selecionadas pelos algoritmos e foi comparado o tempo gasto para responder ao
histórico de consultas do usuário, utilizando a solução (conjunto de visões selecionadas)
de cada respectivo algoritmo. Para isto, a melhor solução produzida pelos algoritmos
reativos (SReactiveGRASP) foi comparada com a melhor solução produzida pelo
algoritmo ACO (SACO). Nesta avaliação, foi feita uma análise de similaridade do
tempo médio de execução de cada consulta chave que compõe o histórico de consulta
do usuário. Esta análise indicou que em 26% das consultas o tempo médio de execução
é o mesmo em ambas as soluções. Além disso, para a solução SReactiveGRASP, em
57% das consultas o tempo médio de execução foi maior e nos 17% restantes das
consultas, o tempo médio de execução foi menor. Assim, ao fim desta avaliação, foi
observado que mesmo que em 57% das consultas, a solução SReactiveGRASP tenha
obtido um valor maior para o tempo médio de execução, a qualidade das visões que
compõe a solução SReactiveGRASP, para o histórico do usuário, proporcionou uma
redução de 10,25%, pois ela possui visões de maior valor para o histórico de consultas
do usuário.
Por fim, ao término dos três grupos de avaliações realizadas foi observado que
em todas elas, o algoritmo ACO apresentou resultados inferiores aos algoritmos
baseados na meta-heurística GRASP. Assim, foi observado que para cenários de
pequeno porte, o ACO apresentou bons resultados como visto em (FIRMINO,
Capítulo 4 – Análise Experimental 73
MATEUS, et al., 2011). Entretanto, para cenários de grande porte, o ACO apresentou
baixo desempenho, como visto nos resultados experimentais aqui descritos.
Capítulo 5 – Conclusões 74
Capítulo 5 Considerações Finais
Este capítulo tem como objetivo apresentar as considerações finais sobre os principais
tópicos abordados nesta dissertação, incluindo as contribuições alcançadas e
indicações para trabalhos futuros.
Capítulo 5 – Conclusões 75
5.1. Resumo do Trabalho
As principais definições necessárias ao entendimento do trabalho proposto foram
listadas no Capítulo 2. Já os detalhes do método proposto para seleção e materialização
de visões a partir de assinaturas OLAP foram abordados no Capítulo 3. A fim de
analisar o comportamento do algoritmo de seleção de visões proposto, foram realizados
experimentos sobre os parâmetros de configuração dos algoritmos e testes comparativos
com outros algoritmos de seleção de visões. Os resultados coletados nestes
experimentos foram analisados e estão descritos no Capítulo 4.
O objetivo deste capítulo é mostrar um resumo acerca do trabalho realizado
considerando os principais assuntos abordados neste documento. As principais
contribuições do trabalho são listadas na Seção 5.2, enquanto na Seção 5.3, é feito um
direcionamento para trabalhos futuros com o objetivo de aperfeiçoar o estudo realizado.
5.2. Principais Contribuições
O desenvolvimento desta pesquisa ofereceu contribuições para as áreas de
otimização e sistemas de processamento analítico. Estas contribuições são listadas como
segue.
(i) Especificação do esquema conceitual para representação de Assinaturas
OLAP
Foi proposto um esquema conceitual de dados para representação de assinaturas
OLAP, que consistem em informações sobre o histórico de consulta do usuário e sobre
o cubo de dados nos quais são realizadas as consultas. As informações concernentes às
assinaturas OLAP caracterizam, ao longo do tempo e para um dado usuário, os tipos de
consultas submetidas pelo usuário para um cubo de dados em particular. Esta
caracterização possibilita identificar quais elementos do cubo são mais significativos
para o usuário. O conhecimento sobre estes elementos auxilia o processo da seleção de
visões, permitindo escolher as visões mais benéficas ao escopo de consultas efetuadas
pelo usuário. Outro objetivo é, logo após o processo de seleção, fornecer, em tempo
hábil, os dados necessários para a materialização das visões escolhidas. Este esquema é
importante para a execução do nosso método de seleção e materialização de visões, pois
ele é utilizado em todas em todas as fases do método proposto.
Capítulo 5 – Conclusões 76
(ii) Especificação do método de seleção e materialização de visões
Foi proposto um método de seleção e materialização de visões por meio de um
perfil de consultas (Assinatura OLAP) e algoritmos de otimização baseados nas meta-
heurísticas GRASP, Reactive GRASP (RGRASP) e Path-Relinking (PR), visando
maximizar o desempenho das consultas OLAP. Diferente das outras abordagens, este
método:
(1) Mantém informações sobre as consultas OLAP que foram previamente
executadas, e também armazena informações sobre o esquema do cubo de dados
utilizado para processar as consultas;
(2) Define como o histórico de consultas e informações sobre o esquema do cubo de
dados são armazenados e subsequentemente, usados para selecionar e
materializar visões.
(3) Desacopla a estrutura de dados usada da lógica de seleção (Algoritmo de
Seleção). Isto modulariza o método a fim de que ele possa receber qualquer
algoritmo de otimização como entrada para resolver o PSV, tendo o algoritmo
como entrada um conjunto de visões e o espaço disponível para materialização.
(4) Utiliza como algoritmo de otimização para a seleção das visões, algoritmos
baseados na meta-heurísticas GRASP, Reactive GRASP e Reactive GRASP
com Path Relinking que até então, não se tem conhecimento sobre a utilização
delas no PSV.
Este método abrange todo o ciclo de execução de uma análise multidimensional,
por meio das suas quatro fases: extração de dados multidimensionais, construção de
assinaturas OLAP, seleção de visões e materialização de visões. Este ciclo vai deste a
submissão de consultas de um dado usuário até a materialização das visões mais
benéficas para o perfil de consultas do usuário. O método utiliza o esquema conceitual
de dados na geração de conhecimento sobre quais visões são mais benéficas por estarem
associadas ao escopo de consultas do usuário. Por isso, estas visões são selecionadas, e
o esquema conceitual também fornece informações para a materialização das visões
selecionadas.
(iii) Especificação de Algoritmos de Otimização baseados nas Meta-heurísticas
GRASP, Reactive GRASP e Path-Relinking para o PSV.
Capítulo 5 – Conclusões 77
Foram propostos algoritmos de otimização para seleção de visões baseados nas
meta-heurísticas GRASP, Reactive GRASP e Path-Relinking (PR). Os algoritmos são
provenientes do algoritmo discutido em (FIRMINO, MATEUS, et al., 2011), que é
chamado aqui de (G). Inicialmente, foi especificado um novo algoritmo (RG) resultante
de melhorias na técnica de busca local e na adição da característica reativa ao algoritmo
G original. Além disso, o novo algoritmo RG foi incorporado com as variantes do PR.
Dentre as meta-heurísticas existentes, GRASP foi escolhido por ter se destacado como
uma das mais competitivas em termos da qualidade das soluções alcançadas e, até
então, por não se ter conhecimento sobre a utilização da meta-heurística GRASP, na
construção de algoritmos de otimização para a seleção de visões. GRASP é uma
heurística hibrida que combina as características da heurística gulosa e da heurística
de busca aleatória.
Foi implementado uma versão do nosso método com características reativas, pois,
no contexto do PSV, a utilização da versão reativa de GRASP melhora o dinamismo do
nosso método. Isto foi realizado para permitir a escolha automática dos melhores
valores para os parâmetros de configuração do algoritmo de seleção. A atribuição destes
valores pelo usuário OLAP pode não ser satisfatório, pois necessitaria do seu
entendimento sobre os parâmetros e a realização de testes experimentais para calibração
destes valores. Por fim, para refinar as soluções produzidas pela meta-heurística
GRASP, a técnica de Path-Relinking (PR) foi incorporada ao nosso método.
(iv) Formalização do Cenário de Experimentação
Foi especificado um cenário de experimentação. Este cenário considerou para o
ambiente analítico de dados, o Star Schema Benchmark (SSB). A adaptação do SSB
fez-se necessária para aumentar o número de dimensões e níveis do esquema, no intuito
de se ter um cenário com um amplo número de visões materializadas a serem
consideradas e conseqüentemente, um número maior de consultas analíticas. Na
construção da carga de trabalho, foram escolhidas aleatoriamente 1200 consultas
distintas. Cada consulta, foi elaborada de modo a ter uma combinação única de níveis, e
portanto, cada consulta está diretamente associada a apenas uma visão de todas as
visões possíveis do cenário de experimentação. Assim, o nosso cenário consiste em um
usuário que possui um dado espaço físico para materialização de visões e deseja
otimizar o tempo de resposta de suas consultas. Entretanto, ele não possui espaço
suficiente para materialização de todas visões que contemplam seu histórico de
Capítulo 5 – Conclusões 78
consultas, pois seu histórico é formado por 1.200.006 submissões de consultas no qual
cada consulta foi submetida e escolhida aleatoriamente do conjunto de 1200 consultas
distintas. Neste cenário, foi possível testar o método proposto, pois é necessário mapear
o ambiente analítico das consultas, registrar as consultas realizadas, identificar por
meios de algoritmos de otimização quais são as melhores visões a serem materializadas
e materializar estas visões.
(v) Experimentos de Avaliação e Validação dos Algoritmos.
Foram realizadas três avaliações sobres os algoritmos de otimização para seleção
de visões materializadas: Espacial , Temporal e Tempo de Execução de Consultas. Na
avaliação espacial, foi estudado: (1) o comportamento do espaço de soluções
devido a variações de valores para o espaço disponível de materialização; (2) o
GBL (Ganho da Busca Local), que indica o ganho promovido pela técnica de busca
local dos algoritmos durante a execução; (3) a utilização da heurística Path-Reliking
(PR); (4) comparação entre os algoritmos não-reativos e reativos. Já na avaliação
temporal, foi investigado o comportamento dos algoritmos, ao decorrer do tempo,
com relação a sua aproximação da solução ótima. Por fim, na última avaliação, foi
avaliado o tempo total de execução das consultas do histórico do usuário, utilizando as
visões de duas soluções geradas por dois algoritmos, a fim de averiguar a redução do
tempo de resposta destas consultas.
5.3. Trabalhos Futuros
As principais indicações de trabalhos futuros são discutidas a seguir.
(i) Extensão do método proposto para abordagem dinâmica.
A abordagem deste trabalho é baseada na concepção de uma configuração
estática, uma vez que, um dos objetivos deste trabalho é construir um escopo de
consulta do usuário, aqui denominado por assinatura, e utilizá-lo para seleção das visões
a serem materializadas. Entretanto, há cenários nos quais as consultas efetuadas mudam
constantemente, ou que por algum motivo não seja factível especificar um escopo de
consultas, então pode haver a necessidade de uma abordagem dinâmica do método
proposto.
(ii) Extensão do trabalho para adoção de novos critérios de seleção.
Capítulo 5 – Conclusões 79
Sugere-se que o método proposto seja estendido de modo que outros critérios, além dos
utilizados nesse trabalho, sejam adotados, tais como: plano de processamento de
consulta, utilização de índices nas tabelas de materialização e manutenção de técnica
incremental. Como também, este critérios sejam adotados de maneira multi-objetiva
pelos algoritmos de otimização.
(iii) Extensão do trabalho para DW Geográficos.
SOLAP (Spatial OLAP) é um ambiente integrado para soluções OLAP e SIG (Sistema
de Informação Geográfica), que beneficia o processo de tomada de decisões estratégicas
por ampliar o tipo de processamento de consultas sobre o negócio de uma organização
utilizando um DWG (Data Warehouse Geográfico). DWG são DW com suporte a
atributos espaciais que são usados para armazenar vetores de geometrias e definir
tabelas de dimensões, medidas, hierarquias e membros espaciais. Nesse contexto, é
sugerida uma extensão do método para adoção de visões materializadas de dados
espaciais.
(iv) Extensão do trabalho para DW de Trajetórias.
Muitos sistemas de suporte à decisão necessitam analisar dados de trajetórias de objetos
móveis que são armazenados em Data Warehouse (DW). Exemplos de tais aplicações
incluem o estudo de dados de migração de povos e animais; comportamento de
consumidores fazendo compras; tráfego de carros em vias urbanas; e movimentação de
barcos de pesca marítima (DA SILVA, 2012). Como trabalho futuro, sugere-se um
estudo do PSV no contexto de DW de trajetória de modo a permitir que consultas sobre
um DW de trajetória possam ser realizadas e otimizadas pela seleção e materialização
de visões OLAP sobre trajetórias.
Referências 80
Referências
AFONIN, S. The View Selection Problem for Regular Path Queries. In: LABER, E., et al.
LATIN 2008: Theoretical Informatics. [S.l.]: Springer Berlin Heidelberg, v. 4957, 2008. p.
121-132. ISBN ISBN: 978-3-540-78772-3.
AFRATI, F. et al. View selection for real conjunctive queries. Acta Informatica, v. 44, p.
289-321, 2007.
AFRATI, F.; DAMIGOS, M.; GERGATSOULIS, M. On Solving Efficiently the View Selection
Problem under Bag-Semantics. In: CASTELLANOS, M.; DAYAL, U.; SELLIS, T. Business
Intelligence for the Real-Time Enterprise. [S.l.]: Springer Berlin Heidelberg, v. 27, 2009.
p. 12-28. ISBN ISBN: 978-3-642-03421-3.
AIEX, R. M. et al. TTTPLOTS: A perl program to create time-to-target plots.
Optimization Letters, v. 1, p. 10-1007, 2006.
ALFONSECA, E.; RODRÍGUEZ, P. Modelling users' interests and needs for an adaptive
online information system. Proceedings of the 9th international conference on User
modeling. Berlin, Heidelberg: Springer-Verlag. 2003. p. 76-80.
AOUICHE, K.; EMMANUEL JOUVE, P.; DARMONT, J. Clustering-Based Materialized
View Selection in Data Warehouses. ADBIS. [S.l.]: [s.n.]. 2006. p. 81-95.
ASHADEVI, B.; BALASUBRAMANIAN, R. Optimized Cost Effective Approach for Selection
of Materialized Views in Data Warehousing. Journal of Computer Science \&
Technology, v. 9, n. 1, p. 21-26, 2009.
BACHEGA, S. J.; PEREIRA, N. A.; POLITANO, P. R. Análise do uso da ferramenta OLAP
na melhoria do processo de decisão e suporte à elaboração de estratégias. Bauru, SP.
2006.
BARALIS, E.; PARABOSCHI, S.; TENIENTE, E. Materialized Views Selection in a
Multidimensional Database. VLDB. [S.l.]: [s.n.]. 1997. p. 156-165.
BARIL, X.; BELLAHSÉNE, Z. Selection of Materialized Views: A Cost-Based Approach. In:
EDER, J.; MISSIKOFF, M. Advanced Information Systems Engineering. [S.l.]: Springer
Berlin Heidelberg, v. 2681, 2003. p. 665-680. ISBN ISBN: 978-3-540-40442-2.
BAUER, A.; LEHNER, W. On solving the view selection problem in distributed data
warehouse architectures. Proc. 15th Int. Conf. Scientific and Statistical Database
Management. [S.l.]: [s.n.]. 2003. p. 43-51.
Referências 81
BOUDIA, M.; LOULY, M. A. O.; PRINS, C. A reactive GRASP and path relinking for a
combined production-distribution problem. Comput. Oper. Res., Oxford, UK, UK, v. 34,
n. 11, p. 3402-3419, 2007.
CHAN, G.; LI, Q.; FENG, L. Design and Selection of Materialized Views in a Data
Warehousing Environment: A Case Study. DOLAP. [S.l.]: [s.n.]. 1999. p. 42-47.
CHAUDHURI, S.; DAYAL, U. An overview of data warehousing and OLAP technology.
SIGMOD Rec., New York, NY, USA, v. 26, n. 1, p. 65-74, mar 1997. ISSN ISSN: 0163-
5808.
CHIRKOVA, R.; LI, C.; LI, J. Answering queries using materialized views with minimum
size. VLDB J., v. 15, n. 3, p. 191-210, 2006.
DA SILVA, M. C. T. SWOT: Um Modelo Conceitual para Data Warehouse Semântico de
Trajetória. Centro de Informática - UFPE. Recife. 2012.
DE ALBUQUERQUE LOUREIRO, J. A. Restruturação Dinâmica de Estruturas
Multidimensionais de Dados em Tempo Útil. Universidade do Minho - Escola de
Engenharia. [S.l.]. 2006.
DENG, Y.; BARD, J. F. A reactive GRASP with path relinking for capacitated clustering. J.
Heuristics, v. 17, n. 2, p. 119-152, 2011.
DERAKHSHAN, R. et al. Simulated Annealing for Materialized View Selection in Data
Warehousing Environment. Databases and Applications. [S.l.]: [s.n.]. 2006. p. 89-94.
DERAKHSHAN, R. et al. Parallel Simulated Annealing for Materialized View Selection in
Data Warehousing Environments. In: BOURGEOIS, A.; ZHENG, S. Q. Algorithms and
Architectures for Parallel Processing. [S.l.]: Springer Berlin Heidelberg, v. 5022, 2008.
p. 121-132. ISBN ISBN: 978-3-540-69500-4.
DHOTE, C. A.; ALI, M. S. Materialized View Selection in Data Warehousing. Proc.
Fourth Int. Conf. Information Technology ITNG '07. [S.l.]: [s.n.]. 2007. p. 843-847.
DOBBIE, G.; LING, T. Practical Approach to Selecting Data Warehouse Views Using Data
Dependencies. In: LAENDER, A. F.; LIDDLE, S.; STOREY, V. Conceptual Modeling — ER
2000. [S.l.]: Springer Berlin Heidelberg, v. 1920, 2000. p. 168-182. ISBN ISBN: 978-3-
540-41072-0.
DORIGO, M.; BLUM, C. Ant colony optimization theory: a survey. Theor. Comput. Sci.,
v. 344, p. 243-278, 2005.
EDGE, M. E.; SAMPAIO, P. R. F. A survey of signature based methods for financial fraud
detection. Computers
Referências 82
EZEIFE, C. I. A uniform approach for selecting views and indexes in a data warehouse.
Proc. Int Database Engineering and Applications Symp. IDEAS '97. [S.l.]: [s.n.]. 1997.
p. 151-160.
FEO, T. A.; RESENDE, M. G. C. Greedy Randomized Adaptive Search Procedures.
Journal of Global Optimization, v. 6, p. 109-133, 1995.
FESTA, P.; C., M. G. An annotated bibliography of GRASP–Part II: Applications.
International Transactions in Operational Research, v. 16, n. 2, p. 131-172, 2009.
FIRMINO, A. et al. A Novel Method for Selecting and Materializing Views based on
OLAP Signatures and GRASP. JIDM, v. 2, n. 3, p. 479-494, 2011.
GENDREAU, M.; POTVIN, J.-Y. Handbook of Metaheuristics. 2nd. ed. [S.l.]: Springer
Publishing Company, Incorporated, 2010. ISBN ISBN: 1441916636, 9781441916631.
GONG, A.; ZHAO, W. Clustering-Based Dynamic Materialized View Selection
Algorithm. Proc. Fifth Int. Conf. Fuzzy Systems and Knowledge Discovery FSKD '08.
[S.l.]: [s.n.]. 2008. p. 391-395.
GOU, G. et al. An efficient and interactive A*-algorithm with pruning power:
materialized view selection revisited. Proc. Eighth Int. Conf. Database Systems for
Advanced Applications (DASFAA 2003). [S.l.]: [s.n.]. 2003. p. 231-238.
GOU, G.; YU, J. X.; LU, H. A* search: an efficient and flexible approach to materialized
view selection. IEEE\_J\_SMCC, v. 36, n. 3, p. 411-425, 2006.
GUPTA, H. Selection of Views to Materialize in a Data Warehouse. ICDT. [S.l.]: [s.n.].
1997. p. 98-112.
GUPTA, H. et al. Index selection for OLAP. Proc. 13th Int Data Engineering Conf. [S.l.]:
[s.n.]. 1997. p. 208-219.
GUPTA, H.; MUMICK, I. S. Selection of Views to Materialize Under a Maintenance
Cost Constraint. ICDT. [S.l.]: [s.n.]. 1999. p. 453-470.
HARINARAYAN, V.; RAJARAMAN, A.; ULLMAN, J. D. Implementing Data Cubes
Efficiently. SIGMOD Conference. [S.l.]: [s.n.]. 1996. p. 205-216.
HILDEBRANDT, M.; GUTWIRTH, S. Profiling the European Citizen. [S.l.]: Springer,
2008.
HORNG, J.-T. et al. Materialized view selection using genetic algorithms in a data
warehouse system. Evolutionary Computation, 1999. CEC 99. Proceedings of the
1999 Congress on. [S.l.]: [s.n.]. 1999. p. -2227.
Referências 83
HOSE, K.; KLAN, D.; SATTLER, K.-U. Online Tuning of Aggregation Tables for OLAP.
Proc. IEEE 25th Int. Conf. Data Engineering ICDE '09. [S.l.]: [s.n.]. 2009. p. 1679-1686.
HUNG, M.-C. et al. Efficient approaches for materialized views selection in a data
warehouse. Inf. Sci., v. 177, n. 6, p. 1333-1348, 2007.
HYLOCK, R.; CURRIM, F. A maintenance centric approach to the view selection
problem. Information Systems , v. 38, n. 7, p. 971-987, 2013.
INMON, W. H. Building the Data Warehouse. [S.l.]: Wiley Computer, 1996.
JAMIL, H. M.; MODICA, G. A. A View Selection Tool for Multidimensional Databases.
IEA/AIE. [S.l.]: [s.n.]. 2001. p. 237-246.
JARQUE, M. et al. A test for normality of observations and regression residuals.
Internat. Statist. Rev, v. 55, p. 163-172, 1987.
KALNIS, P.; MAMOULIS, N.; PAPADIAS, D. View Selection Using Randomized Search.
DKE, v. 42, p. 89-111, 2002.
KAMKE, E. H.; ARROYO, J. E. C.; DOS SANTOS, A. G. Reactive GRASP with Path
Relinking for Solving Parallel Machines Scheduling Problem with Resource-assignable
Sequence Dependent Setup Times. NaBIC. [S.l.]: [s.n.]. 2009. p. 924-929.
KARDE, P. P.; THAKARE, V. M. Materialized View Selection Approach Using Tree
Based Methodology. International Journal of Enginnering Science and Technology, v.
2, p. 5473-5483, 2010.
KHAN, N. A.; AZIZ, A. Partial Aggregation for Multidimensional Online Analytical
Processing Structures. International Journal of Computer and Network Security, v. 2,
n. 2, p. 65-71, 2010.
KUMAR, T. V. V.; HAIDER, M. A Query Answering Greedy Algorithm for Selecting
Materialized Views. In: PAN, J.-S.; CHEN, S.-M.; NGUYEN, N. Computational Collective
Intelligence. Technologies and Applications. [S.l.]: Springer Berlin Heidelberg, v.
6422, 2010. p. 153-162. ISBN ISBN: 978-3-642-16731-7.
KUMAR, V.; HAIDER, M. Greedy Views Selection Using Size and Query Frequency. In:
______ Advances in Computing, Communication and Control. [S.l.]: Springer Berlin
Heidelberg, v. 125, 2011. p. 11-17.
KUMAR, V.; HAIDER, M.; KUMAR, S. Proposing Candidate Views for Materialization.
In: ______ Information Systems, Technology and Management. [S.l.]: Springer Berlin
Heidelberg, v. 54, 2010a. p. 89-98.
Referências 84
KUMAR, V.; HAIDER, M.; KUMAR, S. A View Recommendation Greedy Algorithm for
Materialized Views Selection. In: ______ Information Intelligence, Systems,
Technology and Management. [S.l.]: Springer Berlin Heidelberg, v. 141, 2011a. p. 61-
70.
LAWRENCE, M. Multiobjective genetic algorithms for materialized view selection in
OLAP data warehouses. GECCO. [S.l.]: [s.n.]. 2006. p. 699-706.
LAWRENCE, M.; RAU-CHAPLIN, A. Dynamic View Selection for OLAP. In: TJOA, A.;
TRUJILLO, J. Data Warehousing and Knowledge Discovery. [S.l.]: Springer Berlin /
Heidelberg, v. 4081, 2006. p. 33-44.
LEE, M.; HAMMER, J. Speeding Up Materialized View Selection in Data Warehouses
Using a Randomized Algorithm. Int. J. Cooperative Inf. Syst., v. 10, n. 3, p. 327-353,
2001.
LI, J.; WANG, Y.; LIU, R. Selection of Materialized View Based on Information Weight
and Using Huffman-Tree on Spatial Data Warehouse. Proc. First Int. Conf. Innovative
Computing, Information and Control ICICIC '06. [S.l.]: [s.n.]. 2006. p. 71-74.
LI, Q.; FENG, L. Optimized Design of Materialized Views in a Real-Life Data
Warehousing Environment. International Journal of Information Technology, v. 7, p.
200-1, 2001.
LI, X. et al. Shuffled Frog Leaping Algorithm for Materialized Views Selection. Proc.
Second Int Education Technology and Computer Science (ETCS) Workshop. [S.l.]:
[s.n.]. 2010. p. 7-10.
LIANG, W.; WANG, H.; ORLOWSKA, M. E. Materialized view selection under the
maintenance time constraint. Data Knowl. Eng., v. 37, n. 2, p. 203-216, 2001.
LIGOUDISTIANOS, S. et al. Heuristic Algorithms for Designing a Data Warehouse with
SPJ Views. In: ______ DataWarehousing and Knowledge Discovery. [S.l.]: Springer
Berlin / Heidelberg, v. 1676, 1999. p. 800-800.
LIN, W.-Y.; KUO, I.-C. OLAP data cubes configuration with genetic algorithms. Proc.
IEEE Int Systems, Man, and Cybernetics Conf. [S.l.]: [s.n.]. 2000. p. 1984-1989.
LIN, W.-Y.; KUO, I.-C. A Genetic Selection Algorithm for OLAP Data Cubes. Knowl. Inf.
Syst., v. 6, n. 1, p. 83-102, 2004.
LIN, Z. et al. User-Oriented Materialized View Selection. Proc. 7th IEEE Int. Conf.
Computer and Information Technology CIT 2007. [S.l.]: [s.n.]. 2007. p. 133-138.
Referências 85
LUEBCKE, A.; GEIST, I.; BUBKE, R. Dynamic detection and administration of
materialized views based on the Query Graph Model. Proc. Third Int. Conf. Digital
Information Management ICDIM 2008. [S.l.]: [s.n.]. 2008. p. 940-942.
MATEUS, G. R.; RESENDE, M. G.; SILVA, R. M. GRASP with path-relinking for the
generalized quadratic assignment problem. Journal of Heuristics, Hingham, MA, USA,
v. 17, n. 5, p. 527-565, 2011.
NADEAU, T. P.; TEOREY, T. J. Achieving scalability in OLAP materialized view
selection. DOLAP. [S.l.]: [s.n.]. 2002. p. 28-34.
NANCY L. LEECH, A. J. O. L. D. Paired Samples T Test (Dependent Samples T Test). In:
______ Encyclopedia of Measurement and Statistics. 0. ed. [S.l.]: SAGE Publications,
Inc., 2007. p. 724-727.
O’NEIL, P. et al. The Star Schema Benchmark and Augmented Fact Table Indexing. In:
______ Performance Evaluation and Benchmarking. [S.l.]: Springer Berlin /
Heidelberg, 2009. p. 237-252.
PARK, C.-S.; KIM, M. H.; LEE, Y.-J. Usability-based caching of query results in OLAP
systems. J. Syst. Softw., New York, NY, USA, v. 68, n. 2, p. 103-119, nov 2003. ISSN
ISSN: 0164-1212.
PHAN, T.; LI, W.-S. Dynamic Materialization of Query Views for Data Warehouse
Workloads. Proc. IEEE 24th Int. Conf. Data Engineering ICDE 2008. [S.l.]: [s.n.]. 2008.
p. 436-445.
PHUBOON-OB, J.; AUEPANWIRIYAKUL, R. Selecting Materialized Views Using Two-
Phase Optimization with Multiple View Processing Plan. International Journal of
Computer and Information Engineering, v. 1, p. 376, 2007.
RAMACHANDRAN, K.; SHAH, B.; RAGHAVAN, V. V. Dynamic Pre-fetching of Views
Based on User-Access Patterns in an OLAP System. ICEIS (1). [S.l.]: [s.n.]. 2005. p. 60-
67.
RESENDE, M. G. C.; RIBEIRO, C. C. GRASP with Path-Relinking: Recent Advances and
Applications. In: ______ Metaheuristics: Progress as Real Problem Solvers. [S.l.]:
Springer US, v. 32, 2005. p. 29-63.
RIOS-MERCADO, R. Z.; FERNANDEZ, E. A reactive GRASP for a commercial territory
design problem with multiple balancing requirements. Computers
SAPIA, C. On Modeling and Predicting Query Behavior in OLAP Systems. FORWISS.
Munich, Germany. 1999.
Referências 86
SERNA-ENCINAS, M. T.; HOYO-MONTANO, J. A. Algorithm for selection of
materialized views: based on a costs model. Proc. Eighth Mexican Int. Conf. Current
Trends in Computer Science ENC 2007. [S.l.]: [s.n.]. 2007. p. 18-24.
SHAH, B.; RAMACHANDRAN, V.; RAMACHANDRAN, K. A Hybrid Approach for Data
Warehouse View Selection. IJDWM, v. 2, n. 2, p. 1-37, 2006.
SHUKLA, A.; DESHPANDE, P.; NAUGHTON, J. F. Materialized View Selection for
Multidimensional Datasets. VLDB. [S.l.]: [s.n.]. 1998. p. 488-499.
SHUKLA, A.; DESHPANDE, P.; NAUGHTON, J. F. Materialized View Selection for Multi-
Cube Data Models. EDBT. [S.l.]: [s.n.]. 2000. p. 269-284.
SMITH, J. R.; LI, C.-S.; JHINGRAN, A. A Wavelet Framework for Adapting Data Cube
Views for OLAP. IEEE Trans. Knowl. Data Eng., v. 16, n. 5, p. 552-565, 2004.
SONG, X.; GAO, L. An Ant Colony based algorithm for optimal selection of
Materialized view. Proc. Int Intelligent Computing and Integrated Systems (ICISS)
Conf. [S.l.]: [s.n.]. 2010. p. 534-536.
SOUTYRINA, E.; FOTOUHI, F. Optimal view selection for multidimensional database
systems. Proc. Int Database Engineering and Applications Symp. IDEAS '97. [S.l.]:
[s.n.]. 1997. p. 45-52.
SUN, X.; WANG, Z. An Efficient Materialized Views Selection Algorithm Based on PSO.
Proc. Int. Workshop Intelligent Systems and Applications ISA 2009. [S.l.]: [s.n.]. 2009.
p. 1-4.
TALEBIAN, S. H.; KAREEM, S. A. Using Genetic Algorithm to Select Materialized Views
Subject to Dual Constraints. Proc. Int. Conf. Signal Processing Systems. [S.l.]: [s.n.].
2009. p. 633-638.
TALEBIAN, S. H.; KAREEM, S. A. A Lexicographic Ordering Genetic Algorithm for
Solving Multi-objective View Selection Problem. Proc. Second Int Computer Research
and Development Conf. [S.l.]: [s.n.]. 2010. p. 110-115.
TANG, N. et al. Materialized View Selection in XML Databases. In: ZHOU, X., et al.
Database Systems for Advanced Applications. [S.l.]: Springer Berlin / Heidelberg, v.
5463, 2009. p. 616-630.
THEODORATOS, D. Complex View Selection for Data Warehouse Self-Maintainability.
CoopIS. [S.l.]: [s.n.]. 2000. p. 78-89.
THEODORATOS, D.; BOUZEGHOUB, M. A General Framework for the View Selection
Problem for Data Warehouse Design and Evolution. DOLAP. [S.l.]: [s.n.]. 2000. p. 1-8.
Referências 87
THEODORATOS, D.; SELLIS, T. Dynamic Data Warehouse Design. In: ______
DataWarehousing and Knowledge Discovery. [S.l.]: Springer Berlin / Heidelberg, v.
1676, 1999. p. 802-802.
UCHIYAMA, H.; RUNAPONGSA, K.; TEOREY, T. J. A Progressive View Materialization
Algorithm. DOLAP. [S.l.]: [s.n.]. 1999. p. 36-41.
VALLURI, S. R.; VADAPALLI, S.; KARLAPALEM, K. View relevance driven materialized
view selection in data warehousing environment. Aust. Comput. Sci. Commun., v. 24,
p. 187-196, 2002.
VIJAY KUMAR, T. V.; GHOSHAL, A. A Reduced Lattice Greedy Algorithm for Selecting
Materialized Views. In: PRASAD, S., et al. Information Systems, Technology and
Management. [S.l.]: Springer Berlin Heidelberg, v. 31, 2009. p. 6-18. ISBN ISBN: 978-
3-642-00404-9.
WANG, Z.; ZHANG, D. Optimal Genetic View Selection Algorithm Under Space
Constraint Optimal Genetic View Selection Algorithm Under Space Constraint.
International Journal of Information Technology, v. 11, n. 5, p. 44-51, 2005.
WHITEHORN, M.; ZARE, R.; PASUMANSKY, M. Fast Track to MDX. Secaucus, NJ, USA,:
Springer-Verlag New York, Inc., 2005.
WREMBEL, R.; KONCILIA, C. Data Warehouse and OLAP: Concepts, Architectures, and
Solutions. [S.l.]: IRM Press, 2006.
XU, W. et al. A Dynamic View Materialization Scheme for Sequences of Query and
Update Statements. In: ______ Data Warehousing and Knowledge Discovery. [S.l.]:
Springer Berlin / Heidelberg, v. 4654, 2007. p. 55-65.
YANG, J.; KARLAPALEM, K.; LI, Q. A Framework for Designing Materialized Views in
Data Warehousing Environment. Proceedings of the 17th International Conference
on Distributed Computing Systems (ICDCS '97). [S.l.]: IEEE Computer Society. 1997. p.
458--.
YANG, J.; KARLAPALEM, K.; LI, Q. Algorithms for Materialized View Design in Data
Warehousing Environment. VLDB. [S.l.]: [s.n.]. 1997. p. 136-145.
YIN, G.; YU, X.; LIN, L. Strategy of Selecting Materialized Views Based on Cache-
updating. Integration Technology, 2007. ICIT '07. IEEE International Conference on.
[S.l.]: [s.n.]. 2007. p. 789-792.
YOUSRI, N. A. R.; AHMED, K. M.; EL-MAKKY, N. M. Algorithms for selecting
materialized views in a data warehouse. Computer Systems and Applications, 2005.
The 3rd ACS/IEEE International Conference on. [S.l.]: [s.n.]. 2005. p. 27-.
Referências 88
YU, J. X. et al. Materialized view selection as constrained evolutionary optimization.
IEEE\_J\_SMCC, v. 33, n. 4, p. 458-467, 2003.
YU, S.; ATLURI, V.; ADAM, N. Selective View Materialization in a Spatial Data
Warehouse. In: TJOA, A. M.; TRUJILLO, J. Data Warehousing and Knowledge
Discovery. [S.l.]: Springer Berlin / Heidelberg, v. 3589, 2005. p. 157-167.
YU, S.; ATLURI, V.; ADAM, N. Preview: Optimizing View Materialization Cost in
Spatial Data Warehouses. In: TJOA, A.; TRUJILLO, J. Data Warehousing and
Knowledge Discovery. [S.l.]: Springer Berlin / Heidelberg, v. 4081, 2006. p. 45-54.
YUHANG, Z.; QI, L.; WEI, Y. Materialized view selection algorithm CSSA\_VSP. Proc.
(CINC) Conf. Second Int Computational Intelligence and Natural Computing. [S.l.]:
[s.n.]. 2010. p. 68-71.
ZHANG, C.; YAO, X.; YANG, J. Evolving materialized views in data warehouse.
Evolutionary Computation, 1999. CEC 99. Proceedings of the 1999 Congress on. [S.l.]:
[s.n.]. 1999. p. 829.
ZHANG, C.; YAO, X.; YANG, J. An evolutionary approach to materialized views
selection in a data warehouse environment. IEEE\_J\_SMCC, v. 31, n. 3, p. 282-294,
2001.
ZHANG, Q.; SUN, X.; WANG, Z. An Efficient MA-Based Materialized Views Selection
Algorithm. Proc. IITA Int. Conf. Control, Automation and Systems Engineering CASE
2009. [S.l.]: [s.n.]. 2009. p. 315-318.
ZHOU, J. et al. Dynamic Materialized Views. Proc. IEEE 23rd Int. Conf. Data
Engineering ICDE 2007. [S.l.]: [s.n.]. 2007. p. 526-535.
ZHOU, L. et al. Research on Materialized Views Technology in Data Warehouse. Proc.
IEEE Int. Symp. Knowledge Acquisition and Modeling Workshop KAM Workshop
2008. [S.l.]: [s.n.]. 2008. p. 1030-1035.
ZHOU, L. et al. Research on Materialized View Selection Algorithm in Data
Warehouse. Proc. Int. Forum Computer Science-Technology and Applications IFCSTA
'09. [S.l.]: [s.n.]. 2009. p. 326-329.
ZHOU, L. et al. Efficient Materialized View Selection Dynamic Improvement
Algorithm. Proc. Sixth Int. Conf. Fuzzy Systems and Knowledge Discovery FSKD '09.
[S.l.]: [s.n.]. 2009a. p. 294-297.
ZHOU, L.; WU, M.; GE, X. The Model and Realization of Materialized Views Selection
in Data Warehouse. Proc. Fifth Int. Conf. Fuzzy Systems and Knowledge Discovery
FSKD '08. [S.l.]: [s.n.]. 2008. p. 406-411.
Apêndices 89
Apêndice A - Esquema Conceitual Ampliado
Apêndices 90
Apêndice B - Esquema Multidimensional
da Base de Dados <Schema name="ssb_schema">
<Cube name="LINEORDER" defaultMeasure="LO REVENUE" cache="false"
enabled="true">
<Table name="lineorder" schema="public">
</Table>
<Dimension type="StandardDimension" foreignKey="lo_partkey"
highCardinality="false" name="PART">
<Hierarchy hasAll="true" primaryKey="p_partkey">
<Table name="part" schema="public">
</Table>
<Level name="P MFGR" column="p_mfgr" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="P CATEGORY" column="p_category" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="P BRAND1" column="p_brand1" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="PART COLOR" hasAll="true"
primaryKey="p_partkey">
<Table name="part" schema="public">
</Table>
<Level name="P COLOR" column="p_color" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="PART NAME" hasAll="true"
primaryKey="p_partkey">
<Table name="part" schema="public">
</Table>
<Level name="P NAME" column="p_name" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="PART SIZE" hasAll="true"
primaryKey="p_partkey">
<Table name="part" schema="public">
</Table>
<Level name="P SIZE" column="p_size" type="Integer"
uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="PART CONTAINER" hasAll="true"
primaryKey="p_partkey">
<Table name="part" schema="public">
</Table>
<Level name="P CONTAINER" column="p_container" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="PART TYPE" hasAll="true"
primaryKey="p_partkey">
<Table name="part" schema="public">
Apêndices 91
</Table>
<Level name="P TYPE" column="p_type" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" foreignKey="lo_suppkey"
highCardinality="false" name="SUPPLIER">
<Hierarchy hasAll="true" primaryKey="s_suppkey">
<Table name="supplier" schema="public">
</Table>
<Level name="S REGION" column="s_region" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="S NATION" column="s_nation" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="S CITY" column="s_city" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="S NAME" column="s_name" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" foreignKey="lo_custkey"
highCardinality="false" name="CUSTOMER">
<Hierarchy hasAll="true" primaryKey="c_custkey">
<Table name="customer" schema="public">
</Table>
<Level name="C REGION" column="c_region" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="C NATION" column="c_nation" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="C CITY" column="c_city" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="C NAME" column="c_name" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" foreignKey="lo_orderdate"
highCardinality="false" name="DATE">
<Hierarchy hasAll="true" primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D YEAR" column="d_year" type="Integer"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="D YEARMONTH" column="d_yearmonth" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="SEASON MONTH" hasAll="true"
primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D SEASON" column="d_sellingseason" type="String"
Apêndices 92
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="D MONTH" column="d_month" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="WEEK DAY" hasAll="true" primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D DAYOFWEEK" column="d_dayofweek" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="D DATE" column="d_date" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="DATE YEARMONTHNUM" hasAll="true"
primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D YEAR" column="d_year1" type="Integer"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="D YEARMONTHNUM" column="d_yearmonthnum"
type="Integer" uniqueMembers="true" levelType="Regular"
hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="DATE WEEKNUMINYEAR" hasAll="true"
primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D YEAR" column="d_year2" type="Integer"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="D WEEKNUMINYEAR" column="d_weeknuminyear"
type="Integer" uniqueMembers="true" levelType="Regular"
hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" foreignKey="lo_commitdate"
highCardinality="false" name="COMMITDATE">
<Hierarchy hasAll="true" primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D YEAR" column="co_d_year" type="Integer"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="D YEARMONTH" column="co_d_yearmonth"
type="String" uniqueMembers="true" levelType="Regular"
hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="SEASON MONTH" hasAll="true"
primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D SEASON" column="co_d_sellingseason"
type="String" uniqueMembers="true" levelType="Regular"
hideMemberIf="Never">
Apêndices 93
</Level>
<Level name="D MONTH" column="co_d_month" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
<Hierarchy name="WEEK DAY" hasAll="true" primaryKey="d_datekey">
<Table name="date" schema="public">
</Table>
<Level name="D DAYOFWEEK" column="co_d_dayofweek"
type="String" uniqueMembers="true" levelType="Regular"
hideMemberIf="Never">
</Level>
<Level name="D DATE" column="co_d_date" type="String"
uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="LO REVENUE" column="lo_revenue" datatype="Numeric"
aggregator="sum" visible="true">
</Measure>
<Measure name="LO SUPPLYCOST" column="lo_supplycost"
datatype="Numeric" aggregator="sum" visible="true">
</Measure>
</Cube>
</Schema>
Top Related