• Nenhum resultado encontrado

3.3. Fases do Método Proposto

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

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.

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

das operações de junção. Posteriormente, agrupam-se os dados pelas colunas dos níveis e realizam-se as operações de agregação devidas, sobre cada medida.

3.4.

Conclusão

Diferente dos outros trabalhos encontrados na literatura, o método proposto para seleção e materialização de visões abrange todo o ciclo de execução de uma análise multidimensional. Este ciclo vai deste a submissão de consultas de um dado usuário até a materialização das visões mais benéficas para o perfil de consultas do usuário.

Uma assinatura é criada com o intuito de caracterizar as consultas de um dado usuário sobre elementos de um cubo de dados, de modo que estes elementos forneçam informações para seleção e materialização das visões. Estas informações são armazenadas com base em um esquema conceitual que foi definido neste capítulo e utilizado durante as quatro fases do método proposto.

A primeira fase destina-se a obter as informações sobre os esquemas multidimensionais e os esquemas do DW. A segunda fase consiste na especificação das assinaturas por meio das quais, nesta fase, são armazenadas as consultas realizadas e são rastreados os elementos do cubo utilizados pelas consultas. A terceira fase objetiva a seleção das visões. Durante esta terceira fase, são especificados os critérios de seleção adotados e como eles são obtidos a partir das assinaturas. Tendo sido listados os critérios de seleção de visões, foram discutidos os algoritmos de otimização adotados que se baseiam na meta-heurística GRASP, uma variante Reactive GRASP e uma versão híbrida GRASP com Path-Relinking. Por fim, a última fase especifica como são materializadas as visões selecionadas na fase anterior.

No próximo capítulo, serão descritos resultados de experimentos realizados com os algoritmos de seleção propostos e são exibidas as conclusões sobre os resultados coletados.

Capítulo 4

Análise Experimental

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.

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.

Documentos relacionados