dissertação de mestrado - ufpe · 2019. 10. 25. · meus pais josé firmino e creusa firmino que...

107
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 [email protected] www.cin.ufpe.br/~posgraduacao RECIFE, MAIO DE 2013

Upload: others

Post on 01-Apr-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

[email protected]

www.cin.ufpe.br/~posgraduacao

RECIFE, MAIO DE 2013

Page 2: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 3: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 4: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 5: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

Dedico essa conquista a meus pais!

A coroa dos pais são os filhos, a glória dos filhos são seus pais.

Page 6: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 7: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 8: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

"Podemos escolher o que semear, mas somos obrigados a colher

aquilo que plantamos"

Provérbio chinês

Page 9: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 10: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 11: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 12: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 13: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 14: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 15: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 16: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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).

Page 17: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 18: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 19: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 20: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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..

Page 21: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 22: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 23: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 24: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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,

Page 25: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 26: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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,

Page 27: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 28: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 29: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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).

Page 30: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 31: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 32: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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(

' );

Page 33: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 34: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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,

Page 35: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 36: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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,

Page 37: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 38: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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).

Page 39: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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),

Page 40: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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).

Page 41: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 42: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 43: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 44: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 45: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 46: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 47: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 48: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 49: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 50: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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).

Page 51: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 52: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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,

Page 53: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 54: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 55: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 56: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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 é

Page 57: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 58: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 59: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 60: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 61: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 62: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 63: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 64: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 65: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 66: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 67: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 68: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 69: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 70: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 71: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 72: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 73: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 74: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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,

Page 75: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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%

Page 76: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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%

Page 77: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 78: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 79: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 80: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 81: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 82: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 83: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 84: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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%

Page 85: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 86: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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,

Page 87: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 88: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 89: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 90: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 91: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 92: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 93: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 94: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 95: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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

Page 96: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 97: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 98: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 99: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 100: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 101: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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-.

Page 102: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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.

Page 103: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

Apêndices 89

Apêndice A - Esquema Conceitual Ampliado

Page 104: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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">

Page 105: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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"

Page 106: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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">

Page 107: Dissertação de Mestrado - UFPE · 2019. 10. 25. · meus pais José Firmino e Creusa Firmino que sempre estiveram ao meu lado, me fazendo seguir em frente durante todos os momentos

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>