1) O que são ferramentas OLAP e seus tipos (ROLAP, MOLAP, HOLAP, DOLAP);
2) Operações básicas de OLAP como drill-down, roll-up, slice e dice;
3) Requisitos para ferramentas OLAP como rapidez, capacidade de análise, flexibilidade e suporte a múltiplos usuários.
2. O que é uma ferramenta OLAP?
Tipos de ferramentas OLAP.
Requisitos de uma ferramenta OLAP.
Operações básicas de OLAP.
Consultas OLAP.
Arquitetura de uma ferramenta OLAP.
MOLAP versus ROLAP.
3. Na análise multidimensional, os dados são
representados por meio de dimensões (tabelas).
Combinando essas dimensões, o usuário tem uma
visão dos dados de um Data Warehouse.
A análise multidimensional possibilita operações
típicas, tais como:
Os dez maiores (Ex.: produtos mais vendidos);
Comparações de valores entre períodos;
Percentual de variação;
Médias, somas ou valores cumulativos.
4. O termo OLAP refere-se a um conjunto de
tecnologias para acesso e análise ad-hoc de dados.
Aplicações OLAP são conhecidas como queries
complexas.
O objetivo final de uma ferramenta OLAP é dar
suporte a decisões gerenciais de forma amigável e
flexível, em tempo hábil.
Em termos de SQL, OLAP envolve “group by”e
operadores de agregação.
5. "
ROLAP (OLAP Relacional):
Acessam bancos de dados relacionais.
MOLAP (OLAP Multidimensional):
Acessam bancos de dados multidimensionais por
meio de cubos e hipercubos.
HOLAP (OLAP Híbrida):
Permitem tanto acesso aos bancos de dados
relacionais como aos multidimensionais.
DOLAP (OLAP Desktop):
Voltadas para computadores pessoais.
!
6. $%
Rapidez de Cálculo e Acesso:
A rapidez na execução de consultas é um fator crítico quando
levamos em consideração o volume de dados e as consultas
envolvidas.
Capacidade de Análise Avançada:
Uma ferramenta OLAP deve ser capaz de prover operações mais
sofisticadas.
Exemplo: média ponderada, normalização, "ranking" (ordenação),
valores acumulados no tempo, etc.
#
7. $%
Flexibilidade:
Flexibilidade de visualização é o poder de escolher a forma
através da qual a informação será apresentada (Ex.: tabelas,
matrizes, gráficos, etc).
Flexibilidade de definição ao usuário significa lhe dar
permissão de mudar o conteúdo de descritores, formatar a
apresentação de células, definir fórmulas, etc.
Flexibilidade de análise é a possibilidade de definição das
operações que serão executadas em uma consulta por parte
do usuário.
Flexibilidade de interface é o que usualmente chamamos de
interface intuitiva e amigável.
&
8. $%
Suporte a múltiplos usuários:
O desafio das ferramentas OLAP é que os múltiplos
acessos aos dados não afetem a performance das
consultas de forma significativa.
'
9. )* +
1. O que é uma ferramenta OLAP?
2. Explique a diferença entre:
a) ROLAP
b) MOLAP
c) HOLAP
d) DOLAP
3. Quais são os requisitos básicos para uma
ferramenta OLAP?
(
11. - .
Exemplo de dados de vendas representados por um
CUBO de dados.
Medidas
Dimensão Localização
Hierarquia de dimensão
Estado Cidade
Campinas
SP
Americana
Dimensão
Niterói tempo
RJ
Campos
1101 1102 2001 2002 Modelo de produto Hierarquia
Membros de
Celular da dimensão
dimensão Pager Produto
,,
12. - . $ /
A medida (volume de vendas) é determinada pela
combinação de três dimensões: localização, produto e
tempo.
As dimensões localização e produto possuem dois
níveis de hierarquia.
A dimensão tempo teria os números dos anos de venda,
tais como 2003, 2004, 2005 e 2006.
Cada subcubo possui o valor da medida de quantidade
de venda.
Exemplo: em um período específico, na cidade de
Campinas, estado de SP, foram vendidos 11.000
telefones do modelo 1101.
,
13. /
Imagine você analisando um cubo.
Você fatia os dados e as dimensões que quiser analisar,
observar ou estudar.
,
14. - -0 $ 1
São operações para movimentar a visão dos dados ao
longo dos níveis hierárquicos de uma dimensão.
Drill down ocorre quando o usuário aumenta o nível de
detalhe da informação, diminuindo o nível de
granularidade.
Roll up ocorre quando o usuário aumenta o nível de
granularidade, diminuindo o nível de detalhe da
informação.
Os caminhos de navegação são determinados pelas
hierarquias de dimensão.
,
15. $ 1
Exemplo de uma operação de Roll Up utilizando a
dimensão Tempo.
Volume de Produção 2004
(em milhares) Trim. 1 Trim. 2 Trim. 3 Trim. 4
Região RS 78 67 22 56
Sul SC 90 67 88 99
Roll Up
Dimensão Tempo
Volume de Produção 2004
(em milhares) Janeiro Fevereiro Março
Região RS 30 26 22
Sul SC 28 30 32
,!
16. - -0
Exemplo de uma operação de Drill Down utilizando a
dimensão localização geográfica.
Volume de Produção Telefone Celular Pagers
(em milhares) 1001 1002 2001 2002
Região RS 33 12 8 12
Sul SC 45 34 20 23
Drill Down
Dimensão localização geográfica
Membro RS
Volume de Produção Telefone Celular Pagers
(em milhares) 1001 1002 2001 2002
Canoas 13 4 2 5
RS
Porto Alegre 20 8 6 7
,#
17. 2 3 - -0 $ 1
Drill Down: aumentar o nível de detalhe.
Roll Up: diminuir o nível de detalhe.
Estado
Drill Down Roll Up
Cidade
Cidade
Cidade Cidade Cidade
,&
18. -
Ocorre quando o usuário pula um nível intermediário dentro de
uma mesma dimensão.
O usuário executa um Drill Across quando ele passar de ano
direto para trimestre ou mês.
Volume de Produção Telefone Celular Pagers
(em milhares) 1001 1002 2001 2002
Região RS 33 12 8 12
Sul SC 45 34 20 23
Drill Across
Dimensão localização geográfica
Membro RS (de ano para mês)
Volume de Produção Telefone Celular Pagers
(em milhares) Janeiro 01 Janeiro 02 Janeiro 01 Janeiro 02
Região RS 2 4 1 4
Sul SC 5 3 3 2
,'
19. - "4 4
Ocorre quando um usuário passa de uma
informação contida em uma dimensão para
uma outra.
Exemplo: um usuário está na dimensão tempo
e, no próximo passo, começa a analisar a
informação por região.
,(
20. 2 -
São operações para realizar navegação por meio dos
dados na visualização de um cubo.
Slice and Dice é o mesmo que filtrar.
5
21. 2 - 6
Utilizando as operações Slice and Dice, conseguimos ver a
informação de ângulos que anteriormente inexistiam sem a
implementação de um DW e a utilização de uma ferramenta OLAP.
Slice é operação que corta o cubo, mas mantém a mesma
perspectiva de visualização dos dados.
,
22. 2 - 6
Tabela 1 apresenta as vendas de celulares e pagers.
Tabela 2 representa uma fatia dos dados (operação que visualiza
somente a produção de um tipo de produto – celulares).
Volume de Produção Celulares e Pagers
(em milhares) Janeiro Fevereiro Março
Região RS 30 26 22
Sul SC 28 30 32
Tabela 1
Volume de Produção Celulares
(em milhares) Janeiro Fevereiro Março
Região RS 22 18 18
Sul SC 19 27 25
Tabela 2
23. 2 - 6
Dice é a mudança de perspectiva da visão.
É a extração de um subcubo ou a interseção de vários slices.
É como se girássemos o cubo em nossas mãos.
24. 2 - 6
Estávamos visualizando e analisando no sentido estado, cidade,
ano, modelo de produto e produto (Tabela 1).
Dice é a mudança de perspectiva para modelo de produto,
produto, ano, estado e cidade (Tabela 2).
2006
Volume de Produção
Telefone Celular Pagers
(em milhares)
Tabela 1 1001 1002 2001 2002
Canoas 13 4 2 5
RS
Porto Alegre 20 8 6 7
2006
Volume de Produção
RS
(em milhares)
Canoas Porto Alegre
Tabela 2 1001 13 20
Telefone Celular
1002 4 8
2001 2 6
Pagers
2002 5 7
25. 7
É o ângulo pelo qual os dados são vistos.
Na prática, corresponde à modificação das dimensões em um gráfico
ou troca de linhas por colunas em uma tabela.
É uma característica de planilhas eletrônicas, a sua capacidade de
realizar slice.
Pivot representa agregações em dimensões selecionadas.
Exemplo: “Pivoting” em Local e Tempo resulta na seguinte tabulação
cruzada:
Dimensão local
Dimensão
Tempo
!
27. 89 2
Algumas consultas OLAP não podem ser facilmente
formuladas em SQL.
Exemplos:
Consultas que ranqueiam resultados;
Consultas que envolvem operações baseadas no
tempo.
Um grande número de consultas podem ser
formulada usando SQL.
As consultas formuladas em SQL, envolvem:
“grouping” e “aggregation”
&
28. 89 2 :
::
Dimensão
Tempo Dimensão local
SELECT SUM(S.sales)
FROM Sales S, Times T, Locations L A tabulação cruzada
WHERE S.timeid=T.timeid AND S.timeid=L.timeid da operação Pivot
GROUP BY T.year, L.state
SELECT SUM(S.sales) SELECT SUM(S.sales)
FROM Sales S, Times T FROM Sales S, Location L
WHERE S.timeid=T.timeid WHERE S.timeid=L.timeid
GROUP BY T.year GROUP BY L.state
Valores agregados por ano Valores agregados por estado
'
29. / ; /<
Em geral, se há K dimensões, temos 2k possíveis
consultas SQL GROUP BY que podem ser geradas
através de pivoting em um subconjunto de dimensões.
CUBE pid, locid, timeid BY SUM Sales
Equivalente a rolling up Sales em todos oitos subconjuntos
do conjunto {pid, locid, timeid}; cada roll up corresponde a
uma consulta SQL da forma:
SELECT SUM(S.sales) As consultas diferem somente
FROM Sales S na seleção das dimensões:
GROUP BY grouping-list grouping-list
(
30. / ; / <:
::
O relacionamento das 8 consultas possíveis no CUBO
pode ser representado por um reticulado:
{pid, locid, timeid}
{pid, locid} {pid, timeid} {locid, timeid}
{pid} {locid} {timeid}
{ }
Reticulado das consultas GROUP BY em um CUBO
5
31. )* => ) .
Elementos participantes de uma venda:
Quando foi realizada a venda?
Onde foi realizada a venda?
Quem realizou a venda?
O que foi vendido?
Onde? Quando?
Vendas
Quem? O quê?
,
32. )* => ) .
Modelo físico (nível de implementação).
Tempo Vendedor
Cod_Tempo Cod_Vendedor
Vendas
Ano Nome_Vendedor
Trimestre Cod_Tempo
Mes Cod_Local
Data Cod_Produto
Cod_Vendedor
Qtde_Produto
Total_Venda
Local
Cod_Local Produto
Cod_Produto
Regiao
Estado Tipo_Produto
Cidade Nome_Produto
33. )* =" / . ;
, <
Cod_Local Cod_Vendedor Cod_Periodo Cod_Produto Total_Venda
1 1 1 A 15.350,00
2 1 2 B 8.975,00
3 1 3 C 550,00
4 1 4 D 7.500,00
1 1 5 B 25.000,00
2 1 6 C 3.450,00
3 1 7 D 35.000,00
4 1 8 A 4.300,00
1 1 9 B 11.450,00
2 1 10 C 12.800,00
3 1 11 D 13.100,00
4 1 12 A 6.500,00
1 2 1 A 2.700,00
2 2 2 B 5.400,00
3 2 3 C 8.900,00
4 2 4 D 14.700,00
1 2 5 A 76.400,00
2 2 6 B 9.150,00
3 2 7 C 32.100,00
34. 1 2
1. Qual o total de vendas durante todo o período?
SELECT SUM(total_venda) FROM vendas;
2. Qual o total de vendas do vendedor 1 no período?
SELECT SUM(total_venda) FROM vendas WHERE
cod_vendedor =1;
3. Qual o total de vendas do vendedor 2, no último
trimestre?
SELECT SUM(total_venda) FROM vendas WHERE
cod_vendedor = 2 AND (cod_periodo = 10 OR
cod_periodo = 11 OR cod_periodo = 12);
35. 1 2 :
::
4. Qual o total de vendas do vendedor 1 no último trimestre,
no local 3?
SELECT SUM(total_venda) FROM vendas WHERE
cod_vendedor = 1 AND cod_local = 3 AND (cod_periodo =
10 OR cod_periodo = 11 OR cod_periodo = 12);
5. Qual o total de vendas do vendedor 2 no período, por
produto?
SELECT cod_produto, SUM(total_venda) FROM vendas
WHERE cod_vendedor = 2 GROUP BY cod_produto;
6. Qual o total de vendas do vendedor 1 no período, por
produto, por local?
SELECT cod_local, cod_produto, SUM(total_venda) FROM
vendas WHERE cod_vendedor = 1 GROUP BY cod_local,
cod_produto;
!
36. )* 1 2 :
::
7. Qual o total de vendas do produto A para o vendedor
1, no último semestre, por local?
SELECT cod_local, SUM(total_venda) FROM vendas
WHERE cod_vendedor = 1 AND cod_produto = 'A'
AND (cod_periodo > 6 AND cod_periodo <= 12)
GROUP BY cod_local;
8. Qual o total de vendas dos produtos A e D para o
vendedor 2, no período, por local?
SELECT cod_local, SUM(total_venda) FROM vendas
WHERE cod_vendedor = 2 AND (cod_produto = 'A'
OR cod_produto = 'D') GROUP BY cod_local;
#
38. ?
Existem várias maneiras de se classificar uma
ferramenta OLAP quanto à sua arquitetura.
Em geral, a classificação de ferramentas considera o
tipo de dados acessado e o processamento
desses dados.
Quanto aos dados acessados, podemos classificar
as ferramentas como:
MOLAP ou OLAP Multidimensional;
ROLAP ou OLAP Relacional;
HOLAP ou OLAP híbrido.
'
39. >
Ferramentas MOLAP acessam bancos de dados
multidimensionais.
Ao invés de acessarem tabelas relacionais, MOLAP
extraem informações de estruturas de dados pré–
calculados (Cubos).
Desvantagens do uso de ferramentas MOLAP:
Escalabilidade limitada, já que o tamanho do cubo fica
muito grande e sua carga muito demorada à medida em
que adicionamos dimensões ou dados mais detalhados.
(
40. > :
::
Vantagens do uso de ferramentas MOLAP:
O tempo de resposta é bem mais rápido do que o das
ferramentas que acessam tabelas relacionais.
As ferramentas MOLAP se aplicam melhor no
caso onde o usuário:
já tem definidas as dimensões e os conceitos com os
quais ele quer trabalhar, ou seja, tem o escopo de sua
análise de dados já definida.
5
41. $
As ferramentas ROLAP (OLAP Relacionais) não
utilizam os cubos pré–calculados.
A característica principal das ferramentas ROLAP é
o poder de fazer qualquer consulta.
ROLAP não está limitada ao conteúdo de um "cubo"
e à capacidade de navegar nos dados em níveis de
detalhe mais baixos.
Ferramentas ROLAP atendem melhor usuários que
não têm um escopo de análise bem definido.
,
42. $ :
::
Os usuários típicos de ROLAP:
Usuários da área de Marketing;
Estão sempre buscando novos relacionamentos
entre as dimensões existentes.
A desvantagem mais citada das ferramentas ROLAP
é o seu tempo de resposta.
Isso pode ser amenizado com a construção de
tabelas agregadas:
Positivo: diminuem o tempo de resposta;
Negativo: ocupam um grande espaço em disco e
exigem um certo esforço de manutenção.
43. > 7 $
O desenvolvimento MOLAP é mais fácil, pois a
ferramenta realiza as agregações sozinha e não
requer tuning específico do BD multidimensional.
Já o desenvolvimento ROLAP requer:
Um projeto lógico específico (star ou snowflake
schema);
Tuning do banco de dados relacional;
Criação e manutenção das tabelas sumarizadas.
44. > 7 $ :
::
Os argumentos usados pelos fabricantes dessas
ferramentas são:
Oferecer a escolha entre um banco de dados relacional e
um banco de dados multidimensional;
Carregar resultados de consultas relacionais em um
banco de dados multidimensional, ou estrutura que
simule a multidimensionalidade dos dados;
Usar um banco de dados multidimensional p/ fazer um
cache dos dados com maior nível de agregação;
Usar um banco relacional para fazer um acesso dinâmico
aos dados detalhados.
45. ? 8 %
9 @
Outra classificação das ferramentas OLAP diz
respeito às funcionalidades.
Existem três funções básicas inerentes a quase
todos os sistemas:
Interface com o usuário;
Gerenciamento do processamento ou camada lógica
do sistema;
Gerenciamento (acesso e armazenamento) dos
dados.
!
46. ? 8 %
9 @
A estrutura clássica de um ambiente cliente-servidor coloca
a interface exclusivamente no cliente.
O gerenciamento dos dados fica no servidor para garantir o
compartilhamento dos dados.
O processamento é distribuído entre o cliente e o servidor.
#
47. ? 8 %
9 @
Ferramentas OLAP multidimensionais possuem uma
arquitetura de duas camadas.
O banco de dados multidimensional realiza as tarefas de
armazenamento de dados, acesso e recuperação de
registros, etc.
Ao cliente, cabem todas as funcionalidades de interface.
&
48. ? 8 %
9 @
As ferramentas OLAP relacionais geralmente têm uma
arquitetura de três camadas: banco de dados relacional,
mecanismo OLAP e interface (front-end).
Através da interface, atuando como cliente, acessamos o
mecanismo OLAP, responsável por acessar o banco de dados
e multidimensionalizar esses dados para consulta.
O processamento fica dividido entre o mecanismo OLAP e o
cliente.
'
49. )* +
1. Qual é a diferença básica entre ferramentas MOLAP e
ROLAP?
2. Cite uma vantagem e uma desvantagem do uso de
ferramentas MOLAP.
3. Quais seriam as melhores aplicações para
ferramentas MOLAP?
4. Cite uma vantagem e uma desvantagem do uso de
ferramentas ROLAP.
5. Quais seriam as melhores aplicações para
ferramentas ROLAP?
6. Quantas camadas tem as ferramentas MOLAP e
ROLAP, respectivamente? Quais são essas camadas?
(
50. )*
Para exemplos de ferramentas OLAP e
ferramentas de Data Warehouse, favor consultar:
Capítulo 16 do livro “Tecnologia e Projeto de Data
Warehouse: uma visão multidimensional”
Autor: Felipe Nery Rodrigues Machado.
Editora Érica, 2004.
!5