O documento discute o crescimento das Casas Bahia de uma única loja para uma rede nacional e as dificuldades em analisar os dados de vendas de todas as lojas. Isso levou à necessidade de criar um data warehouse para extrair, padronizar e consolidar dados de múltiplas fontes, permitindo análises sobre o desempenho de cada loja e do negócio como um todo.
3. No início, uma única fonte de dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
4. No início, uma única fonte de dados
Exemplo: primeira loja do grupo Casas Bahia.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
5. Mais tarde
Exemplo: primeira cidade ocupada
pelo grupo Casas Bahia.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
6. E assim sucessivamente
Exemplo: primeiros estados ocupados
pelo grupo Casas Bahia.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
7. Finalmente
Exemplo: Brasil (primeiro país?)
ocupado pelo grupo Casas Bahia.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
8. Até que…
O que está acontecendo nas minhas
lojas?
- O que é vendido mais?
- Quando?
- Por qual loja?
- Qual a melhor loja?
- Quanto estou faturando?
- Qual seria uma boa oferta?
- As vendas cresceram ou subiram?
- Quais regiões vendem mais?
- ...
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
9. Até que…
O que está acontecendo nas minhas
lojas?
Soluções:
1) Ir até cada uma das lojas e perguntar;
- O que é vendido mais?
- Quando?
- Por qual loja?
Pouco viável.
- Qual a melhor loja?
- Quanto estou faturando?
- Qual seria uma boa oferta?
- As vendas cresceram ou subiram?
- Quais regiões vendem mais?
- ...
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
10. Até que…
O que está acontecendo nas minhas
lojas?
Soluções:
2) Usar os dados das lojas para analisar o que está
acontecendo no meu negócio.
- O que é vendido mais?
- Quando?
- Por qual loja?
- Qual a melhor Boa idéia!!!
loja?
- Quanto estou faturando?
- Qual seria uma boa oferta?
- As vendas cresceram ou subiram?
- Quais regiões vendem mais?
- ...
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
11. Até que…
O que está acontecendo nas minhas
lojas?
Soluções:
2) Usar os dados das lojas para analisar o que está
acontecendo no meu negócio.
- O que é vendido mais?
- Quando?
- Por qual loja?
- Qual a melhor Boa idéia!!!
loja?
- Quanto estou faturando?
- Qual seria uma boa oferta?
- As vendas cresceram Mas...
ou subiram?
- Quais regiões vendem mais?
- ...
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
12. Impecilhos ao uso dos dados…
- Diversos sistemas de bancos de dados em uso
nas lojas; depende do gerente que o
implementou: PostgreSQL, Oracle, DB2,
SQLServer, ...
- Cada loja, um controle transacional diferente,
de acordo com suas necessidades regionais;
- Esquemas diferentes, tipos de dados
diferentes, distribuição geográfica, falta de
interconexão.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
13. Impecilhos ao uso dos dados…
- Diversos sistemas de bancos de dados em uso
nas lojas; depende do gerente que o
implementou: PostgreSQL, Oracle, DB2,
SQLServer, ...
Total falta de conformidade!!!
E muitos, muitos dados!!!
- Cada loja, um controle transacional diferente,
de acordo com suas necessidades regionais;
O que fazer?
- Esquemas diferentes, tipos de dados
diferentes, distribuição geográfica, falta de
interconexão.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
14. O que é necessário?
- 1) Recolher (extrair) os dados não
importando qual o tipo do sistema de dados;
- 2) Padronizar (transformar) os dados, para
terem um significado comum mesmo que,
originalmente, codificados de maneira
diferente; resolução de dados ausentes e
espúrios;
- 3) Unir (carregar) os resultados das duas
operações em um único sistema capaz para
responder às minhas perguntas.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
15. O que é necessário?
- 1) Recolher (extrair) os dados não
importando qual o tipo do sistema de dados;
Complicado.
Como fazer então?
- 2) Padronizar (transformar) os dados, para
terem um significado comum mesmo que,
originalmente, codificados de maneira
diferente; resolução de dados ausentes e
espúrios;
- 3) Unir (carregar) os resultados das duas
operações em um único sistema capaz de
responder às minhas perguntas.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
16. Mas há uma solução
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
17. Mas há uma solução
Loja 1 Loja 2 Loja 3 Loja n-2 Loja n-1 Loja n
Extrair, transformar, carregar dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Oracle
Modelagem x
SQLServer
Modelagem z
DB2
Modelagem y
Oracle
Modelagem
u
SQLServer
Modelagem w
DB2
Modelagem
... v
Data warehouse
18. ETL – Extract Transform Load
O processo descrito de se extrair
(Extract), transformar (Transform) e
carregar (Load) os dados a partir das
diversas fontes de dados é denominado
ETL
ETL – uma das camadas principais da
arquitetura de um data warehouse
Consolidação de dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
19. ETL – Extract Transform Load
O processo descrito de se extrair
(Extract), transformar (Transform) e
carregar (Load) os dados a partir das
diversas fontes de dados é denominado
ETL
ETL – uma das camadas principais da
arquitetura de um data warehouse
Consolidação de dadosExtrair, transformar, carregar dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
20. ETL – Extract Transform Load
Extração/transformação (Extract/Transform) de
dados
extração de múltiplas fontes
consolidação e integração de dados de múltiplas
fontes
limpeza e validação
conversão dos dados para o modelo do DW
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
21. ETL – Extract Transform Load
Carregamento (Load) de dados
armazenamento de acordo com o modelo do DW
criação e manutenção de estruturas de dados
criação e manutenção de caminhos de acesso
tratamento de dados que variam no tempo
suporte a atualização
refresh
purging (eliminação)
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
23. O que é exatamente?
“Data Warehouse é uma coleção de dados
orientados por assunto, integrada, não-volátil,
variante no tempo, que dá apoio às
decisões de administração” (W.H. Inmon,
1992).
Orientados a transações: vendas,
operações bancárias, acessos à informação.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
27. http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Data warehouses são,
comumente, alimentados
por sistemas OLTP
independentes.
Sistemas OLTP
Extrair, transformar, carregar dados
Sistemas OLTP (Online Transaction Processing):
gerenciamento de transações;
toda vez que você vai ao mercado, ao banco ou
faz uma compra online, você está usando um
sistema OLTP
28. Objetivos
Consolidação dos dados de uma empresa
Desempenho na consulta aos dados
Separação entre suporte à decisão e bancos
de dados operacionais
Suporte a ferramentas: mineração de
dados, visualização e On-line Analytical
Processing (OLAP)
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
29. Objetivos
Os termos Datawarehouse, OLTP e OLAP
não se refererem apenas a software
São termos que englobam software e
serviços (muitos serviços – consultoria)
São termos cunhados para a
comunidade empresarial não possuindo
uma correspondência simples em Ciência da
Computação
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
30. Relação OLTP e OLAP
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
31. Arquitetura de um data warehouse
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
32. Arquitetura de um data warehouse
Arquitetura definida pelo contexto da
organização
De maneira geral, tem as seguintes camadas:
1. Operacional (OLTPs): fornecem dados
2. De acesso aos dados: ETL
3. Acesso à informação: ferramentas de
acesso a dados, geração de relatórios, e
análise (OLAP) Business Intelligence
4. Metadados: detalhamento do conteúdo do
data warehouse dicionário de dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
33. Arquitetura de um data warehouse
Arquitetura definida pelo contexto da
organização
De maneira geral, tem as seguintes camadas:
1. Operacional (OLTPs): fornecem dados
2. De acesso aos dados: ETL
3. Acesso à informação: ferramentas de
acesso a dados, geração de relatórios, e
análise (OLAP) Business Intelligence
4. Metadados: detalhamento do conteúdo do
data warehouse dicionário de dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
34. Dicionário de dados
Descrição dos dados do DW:
origem
regras de transformação
nomes e aliases
formato dos dados
histórico de atualizações
acesso e segurança
responsabilidades sobre os dados
Sem o dicionário, não há sistema
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
35. Data warehouse vs Banco de dados
operacional
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
36. Data warehouse vs Banco de dados
operacional
Data warehouse Banco de dados
operacional
Orientado a objetivos específicos Orientado a transações
Grande (centenas de GBs até TBs) Pequeno/Médio (MBs até alguns GBs)
– distribuído se necessário
Dados históricos Dados correntes
De-normalizado (poucas tabelas com
muitas colunas)
Normalizado (muitas tabelas com
poucas colunas)
Atualizações em Batch Atualizações contínuas
Otimizado para acesso Otimizado para escrita/atualização
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
37. Juntos data warehouse e bancos de
dados provém uma solução completa
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Bancos de dados
Inserção/Atualização
Data Warehouse
Acesso aos dados
38. Visão Geral
Extrair, transformar, carregar dados
1. Camada Operacional (OLTPs)
2. Camada de acesso aos dados (ETL)
3. Camada de acesso à informação: MD, relatórios, OLAP
Business Intelligence
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
4. Dicionário de dados
39. Projeto de Data warehouses
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
40. Datamarts
Datamart: ambientes de análise de dados
de menor magnitude, com fins mais
específicos, limitados a subcomunidades de
uma organização
Exemplo, uma loja das casas Bahia
Loja i
Modelagem
x
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
41. Datamarts
Datamart: ambientes de análise de dados
de menor magnitude, com fins mais
específicos, limitados a subcomunidades de
uma organização
Exemplo, uma loja das casas Bahia
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Acréscimo de
ferramentas de
análise
Modelagem
x
42. Datamarts
Datamart: ambientes de análise de dados
de menor magnitude, com fins mais
específicos, limitados a subcomunidades de
uma organização
Exemplo, uma loja das casas Bahia
Loja i
Modelagem
x
Datamart i
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
43. Bottom-up
Projeto Bottom-up: exemplo, rede das casas
Bahia
Datamart 1 Datamart 2 Datamart 3
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
....
Datamart n
44. Bottom-up
Projeto Bottom-up: exemplo, rede das casas
Bahia
Datamart 1 Datamart 2 Datamart 3
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
....
Datamart n
45. Bottom-up
Projeto Bottom-up: exemplo, rede das casas
Bahia
Datamart 1 Datamart 2 Datamart 3
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
....
Datamart n
Data warehouse : conjunto de pequenos sistemas de tratamento e
análise de dados.
46. Bottom-up
Projeto Bottom-up: exemplo, rede das casas
Bahia
Datamart 1 Datamart 2 Datamart 3
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
....
Datamart n
Data warehouse : conjunto de pequenos sistemas de tratamento e
análise de dados.
Grande esforço de consolidação modelo de dados não universal.
47. Top-down
Projeto Top-down
Data warehouse : projeto bem definido.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
48. Top-down
Projeto Top-down
Data warehouse : projeto bem definido.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Datamart 1
49. Top-down
Projeto Top-down
Datamart 1 Datamart 2
Data warehouse : projeto bem definido.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
50. Top-down
Projeto Top-down
Datamart 1 Datamart 2 Datamart 3
Data warehouse : projeto bem definido.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
51. Top-down
Projeto Top-down
Datamart 1 Datamart 2 Datamart 3
Data warehouse : projeto bem definido.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
....
Datamart n
52. Top-down
Projeto Top-down
Datamart 1 Datamart 2 Datamart 3
Data warehouse : projeto bem definido.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
....
Datamart n
Esforço reduzido de consolidação modelo de dados universal e bem definido.
53. Projeto Top-down vs Bottom-up
Bottom-up Top-down
Consistência via
manutenção constante
Alta consistência
Expansão custosa
Expansão com novos DMs
facilitada
Custo diluído ao longo do
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
tempo
Inicialmente custosa
Natural em organizações Rara em start-ups
Baixa latência Alta latência
54. Conceitos vistos
Data warehouse
OLTP
ETL
Dicionário de dados
DW vs BD
Datamart
Projeto Bottom-up vs Top-down
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
56. OLAP
Definição: uma categoria de tecnologia
de software que visa à compreensão de
dados
Provê: acesso rápido, consistente e
interativo
DW e OLAP, em muitos casos,
conceitos indissociáveis
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
57. OLAP - FASMI
FASMI: Fast Analysis of
Multidimensional Information
Fast: agilidade em responder
consultas
Analysis: versatilidade analítica
Shared: dados/analistas múltiplos
Multidimensional: orientado a
dimensões de dados
Information: propósito fim
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
58. Cubo de dados OLAP
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
59. Cubo de dados
240 101 110
150 204 190 90
83 90 35 87
19 27 35 45
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
60. Cubo de dados
Estrutura básica da prática de OLAP
Observam-se
As dimensões dos dados
As medidas sobre os dados
O cubo é orientado a planos (faces)
Apesar da complexidade dos sistemas OLAP, seus
objetivos analíticos são básicos: contagem, média,
máximo, mínimo, soma, ...
Agregação, rápida e flexível, sobre
imensos volumes de dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
61. Cubo de dados - slicing
Pode ser interessante ver o cubo a partir
de diferentes perspectivas (planos)
Operações sobre o cubo: slicing, dicing
e rotating (pivoting)
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
62. Cubo de dados - slicing
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de slicing
equivale a fatiar o cubo,
definindo um novo plano
de apreciação dos dados
• A operação geométrica é
apenas uma analogia, o
slicing dispara o
processamento OLAP
para calcular o novo
plano
63. Cubo de dados - slicing
Dados calculados e acessíveis ao analista.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de slicing
equivale a fatiar o cubo,
definindo um novo plano
de apreciação dos dados
• A operação geométrica é
apenas uma analogia, o
slicing dispara o
processamento OLAP
para calcular o novo
plano
64. Cubo de dados - slicing
Exemplo de dado calculado: quantas TVs de plasma foram vendidas em
2002 na região SE?
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de slicing
equivale a fatiar o cubo,
definindo um novo plano
de apreciação dos dados
• A operação geométrica é
apenas uma analogia, o
slicing dispara o
processamento OLAP
para calcular o novo
plano
65. Cubo de dados - slicing
Exemplo de dado calculado: quantas TVs de plasma foram vendidas em
2002 na região SE?
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de slicing
equivale a fatiar o cubo,
definindo um novo plano
de apreciação dos dados
• A operação geométrica é
apenas uma analogia, o
slicing dispara o
processamento OLAP
para calcular o novo
plano
66. Cubo de dados - slicing
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de dicing é
semelhante ao slicing,
mas usa dois, ou mais,
planos de corte
Dados calculados e acessíveis ao analista.
Dicing conseguido com 5 planos de corte.
67. Cubo de dados - slicing
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de dicing é
semelhante ao slicing,
mas usa dois, ou mais,
planos de corte
Dados calculados e acessíveis ao analista.
Dicing conseguido com 5 planos de corte.
Exemplo de dado calculado: quantas Celulares foram vendidas em 2001
na região CO?
68. Cubo de dados - slicing
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de dicing é
semelhante ao slicing,
mas usa dois, ou mais,
planos de corte
Dados calculados e acessíveis ao analista.
Dicing conseguido com 5 planos de corte.
Exemplo de dado calculado: quantas Celulares foram vendidas em 2001
na região CO?
69. Cubo de dados - rotating
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de rotating
muda a perspectica do
cubo todo.
Novo plano: Produto x Tempo
Dados calculados e acessíveis ao analista.
70. Cubo de dados - rotating
Obviamente refere-se a cubo apenas
para fins didáticos – aplicações de
DW/OLAP geralmente envolvem
mais do que 3 dimensões, definindo
hipercubos.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
• A operação de rotating
muda a perspectica do
cubo todo.
Novo plano: Produto x Tempo
Dados calculados e acessíveis ao analista.
71. Modelo de dados dimensional
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
72. OLAP e DW
OK, mas e o DW, onde entra nisso tudo?
O modelo de dados do DW é orientado a servir a
análise baseada em Dimensões de dados
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
73. Modelo de dados DW
Banco de dados operacional
Esquema complexo
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Data Warehouse
FATOS
Esquema
estrela
74. Modelo de dados DW
Banco de dados operacional
Esquema complexo
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Data Warehouse
FATOS
Esquema
estrela
75. Modelo de dados DW
Banco de dados operacional
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Esquema complexo
(normalizado)
Data Warehouse
FATOS
Esquema floco
de neve
(snow flake)
76. Modelo de dados dimensional
Exemplo Estrela:
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Tempo
t_chave
Ano
Trimestre
Mes
Produto
p_chave
Tipo
Fabricante
Modelo
Local
l_chave
Regiao
Cidade
Loja
Fatos
t_chave
p_chave
l_chave
Nro_unidades
Valor
Assist_tecnica
77. Modelo de dados dimensional
Exemplo:
Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e
Região?
SELECT Tempo.Ano, Produto.Tipo, Local.Regiao, Sum(Nro_unidades), Sum(valor)
FROM Fatos, Tempo, Produto, Local
WHERE Fatos.t_chave = Tempo.t_chave AND
Fatos.p_chave = Produto.p_chave AND
Fatos.l_chave = Local.l_chave
GROUP BY Tempo.Ano, Produto.Tipo, Local.Regiao
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Exemplo:
Tempo
t_chave
Ano
Trimestre
Mes
Produto
p_chave
Tipo
Fabricante
Modelo
Local
l_chave
Regiao
Cidade
Loja
Fatos
t_chave
p_chave
l_chave
Nro_unidades
Valor
Assist_tecnica
78. Modelagem de Dados para DW
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
79
Exemplo Snowflake
(Elmasri e Navathe, 2005)
79. Modelo de dados dimensional
Cubo de dados: análise dimensional das
medidas (dados)
DW: modelo de dados dimensional
Dimensões: dão contexto aos fatos
Fatos: números transacionais
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
80. Modelo de dados dimensional
Observe que as dimensões dos dados
possuem uma hierarquia categórica
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Por exemplo:
Tempo(Ano, Trimestre, Mês)
81. Modelo de dados dimensional
Hierarquia das dimensões: apreciação dos dados em
diferentes granularidades. Exemplo:
Itens_vendidos(ano) Itens_vendidos(Trimestre)
Itens_vendidos(Trimestre) Itens_vendidos(Mês)
Duas outras operações muito importantes
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Drill down
Roll up
82. Drill down / Roll up
Drill-down e roll-up: navegação ao longo
dos níveis hierárquicos das dimensões
Drill-down
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Exemplo
Itens_vendidos(Região) Itens_vendidos(Cidade)
Roll-up
83. Drill down / Roll up
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Drill-down sobre as três
dimensões
simultaneamente.
84. Drill down / Roll up
Exemplo:
Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e
Região?
Drill Down em todas as dimensões
Quantas vendas e qual valor de vendas ocorreram considerando Trimestre,
Fabricante e Cidade?
SELECT Tempo.Ano, Tempo.Trimestre, Produto.Tipo, Produto.Fabricante, Local.Regiao
Local.Cidade, Sum(Nro_unidades), Sum(valor)
FROM Fatos, Tempo, Produto, Local
WHERE Fatos.t_chave = Tempo.t_chave AND
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Drill-down sobre as três
dimensões
simultaneamente.
Fatos.p_chave = Produto.p_chave AND
Fatos.l_chave = Local.l_chave
GROUP BY Tempo.Ano, Tempo.Trimestre, Produto.Tipo, Produto.Fabricante, Loca.Regiao,
Local.Cidade
85. Drill down / Roll up
Exemplo:
Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e
Região?
Drill Down em todas as dimensões
Quantas vendas e qual valor de vendas ocorreram considerando Trimestre,
Fabricante e Cidade e considerando um slicing de ano entre 2001 e 2002?
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
Drill-down sobre as três
dimensões
simultaneamente.
SELECT Tempo.Trimestre, Produto.Fabricante, Local.Cidade, Sum(Nro_unidades), Sum(valor)
FROM Fatos, Tempo, Produto, Local
WHERE Fatos.t_chave = Tempo.t_chave AND
Fatos.p_chave = Produto.p_chave AND
Fatos.l_chave = Local.l_chave AND
Tempo.Ano between 2001 AND 2002
GROUP BY Tempo.Trimestre, Produto.Fabricante, Local.Cidade
87. OLAP - Agregação
Mais do que cubinhos, o
OLAP/DW é uma tecnologia
sofisticada que visa responder
às diferentes possibilidades e
níveis de agregação de maneira
rápida e precisa.
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
89. http://www.icmc.usp.br/pessoas/junio/Site/index.htm
90
Relational OLAP (ROLAP)
Recursos OLAP sobre SGBDs disparam todas as agregações
necessárias para se obter os resultados requisitados
O OLAP não relacional, também é conhecido como
Multidimensional OLAP - MOLAP
SQL:1999
ROLLUP e CUBE
SELECT ….
FROM ….
WHERE …
GROUP BY CUBE (trim, região)
ex: selecionar
total de vendas por trim. por região
total de vendas por trim.
total de vendas por região
total geral de vendas
SELECT ….
FROM ….
WHERE …
GROUP BY ROLLUP (trim, região)
ex: selecionar
total de vendas por trim. por região
total de vendas por trim.
total geral de vendas
90. http://www.icmc.usp.br/pessoas/junio/Site/index.htm
91
Relational OLAP (ROLAP)
Sobre ROLLUP e CUBE
ROLLUP e CUBE aplicados sobre k atributos
... GROUP BY CUBE (....)
é equivamente a agrupamentos sobre cada um
dos 2k subconjuntos de atributos
ex: k=2 ⇒ ... GROUP BY CUBE (a,b)
agrupamentos sobre: (a,b), (a), (b), (null)
agrupamento em (null) é o total geral de vendas
91. http://www.icmc.usp.br/pessoas/junio/Site/index.htm
92
Relational OLAP (ROLAP)
(cont...)
(cont...)
... GROUP BY CUBE (....)
é equivamente a agrupamentos sobre cada um
dos 2k subconjuntos de atributos
ex: k=3 ⇒ ... GROUP BY CUBE (a,b,c)
agrupamentos sobre: (a,b,c), (a,b), (a,c), (b,c) (a),
(b),(c), (null)
92. Relational OLAP (ROLAP)
Exemplo GROUP BY
CUBE
SELECT Dept, Funcao,
http://www.icmc.usp.br/pessoas/junio/Site/index.htm
COUNT(*), SUM(Salario)
FROM Empregados
GROUP BY CUBE(Dept, Funcao);
Dept Funcao COUNT(*) SUM(Salario)
------------------------------------------------
10 Secretario 1 100
10 Gerente 1 500
10 Presidente 1 900
10 3 1500
20 Analista 2 350
20 Secretario 2 240
20 Gerente 1 800
20 5 1390
Secretario 3 340
Gerente 2 1300
Presidente 1 500
Analista 2 350
8 2490
93. http://www.icmc.usp.br/pessoas/junio/Site/index.htm
94
Relational OLAP (ROLAP)
(cont...)
(cont...)
... GROUP BY ROLLUP (....)
é equivamente a agrupamentos em k+1 subconjuntos:
k=2 ⇒ ... GROUP BY ROLLUP (a,b)
agrupamentos sobre: (a,b), (a), (null)
agrupamento em (null) é o total geral de vendas
k=3 ⇒ ... GROUP BY ROLLUP (a,b,c)
agrupamentos sobre: (a,b,c), (a,b), (a), (null)