Modelagem Multidimensional: Esquema Estrela

Propaganda
BANCO DE DADOS
DISTRIBUÍDOS e DATAWAREHOUSING
Asterio K. Tanaka
http://www.uniriotec.br/~tanaka/tin0036
[email protected]
Modelagem Dimensional – Conceitos Básicos
Asterio K. Tanaka
Modelagem Multidimensional:
Esquema Estrela
• Proposto por Ralph Kimball
• Dominante no projeto de DW
• Características:
– Distingue melhor as dimensões dos fatos medidos
– Simplifica a visualização dimensional
– Na verdade é uma mistura de modelagem conceitual com
modelagem lógica, pois já é bastante voltada para a
abordagem relacional (a literatura fala sempre em tabelas)
Asterio K. Tanaka
Page 1
Esquema Estrela
Uma
Umatabela
tabelade
defatos
fatoscercada
cercadade
detabelas
tabelasde
dedimensões
dimensões
Dimensão
Dimensão
Fato
Dimensão
Dimensão
Asterio K. Tanaka
Esquema Estrela - Exemplo
Dimensão Produto
Dimensão
Tempo
pk_tempo
data
mes
quadrimestre
ano
Flag_feriado
Fato Vendas
pk_tempo
pk_produto
pk_loja
preco_venda
unidades_venda
preco_custo
pk_produto
descricao
categoria
marca
Dimensão Loja
pk_loja
nome_loja
endereço
cidade
estado
Asterio K. Tanaka
Page 2
Exemplo Consultas
“Vendas por categoria de produto sobre os últimos seis
meses”
“Vendas por marca entre 1990 e 1995”
Dimensão Loja
Colunas da chave composta ligando a tabela
de fatos às tabelas de dimensão
pk_tempo
pk_produto
pk_loja
Medidas Numéricas
preco_venda unidades_venda
preco_custo
Dimensão Produto
Tabelas
de
Dimensão
Dimensão Tempo
Tabela de Fatos
...
Asterio K. Tanaka
Consulta SQL sobre um esquema estrela
select
Qtd Vendida
[Loja].[NomeLoja], [Tempo].[DataCompleta],
de cada Produto
[Produto].[Descricao],
por Loja e
Sum( [Vendas].[Unidades_Venda]) as Total
from
por Data
[Vendas], [Tempo], [Produto], [Loja]
where
[Vendas].[CodTempo] = [Tempo].[CodTempo] and
[Vendas].[CodProduto] = [Produto].[CodProduto] and
[Vendas].[CodLoja] = [Loja].[CodLoja]
group by
[Loja].[NomeLoja], [Tempo].[DataCompleta], [Produto].[Descricao]
order by
[Tempo].[DataCompleta], [Loja].[NomeLoja],
[Produto].[Descricao]
Asterio K. Tanaka
Page 3
Resultados
NomeLoja
DataCompleta Descricao
Total
================================================
East Loja
Oct 1, 1994
Athletic Drink 57
East Loja
Oct 1, 1994
Beef Stew
128
East Loja
Oct 1, 1994
Buffalo Jerky 202
East Loja
Oct 1, 1994
Chicken Dinner 161
East Loja
Oct 1, 1994
Clear Refresher 73
East Loja
Oct 1, 1994
Dried Grits
102
East Loja
Oct 1, 1994
Dry Tissues
16
East Loja
Oct 1, 1994
Extra Nougat 442
East Loja
Oct 1, 1994
Fizzy Classic 46
East Loja
Oct 1, 1994
Fizzy Light
65
East Loja
Oct 1, 1994
Lasagna
162
East Loja
Oct 1, 1994
Lots of Nuts
248
East Loja
Oct 1, 1994
Onion Slices
120
Asterio K. Tanaka
Tipos de Dimensões mais
comuns
quando
onde
Fato
quem
o quê
Asterio K. Tanaka
Page 4
Modelagem Dimensional
• Esquema Estrela é assimétrico
– Em relação aos esquemas ERs
• Tabela de Fatos
– Tabela dominante
» usualmente com grande volume de dados
• Tabelas de Dimensões
– Tabelas que “qualificam” os fatos
– Uma junção liga cada tabela de dimensão à tabela
de fatos
– volume bem menor que as tabelas de fatos
Asterio K. Tanaka
Comparação entre a Modelagem ER
e a Multidimensional
Multidimensional
ER
1 diagrama (vários processos de
negócio)
Vários diagramas dimensionais
(1 para cada processo de negócio)
Usuários acham difícil entender e
navegar pelo modelo
Usuários reconhecem “o seu
negócio”
Muitas junções para responder a
consultas
Poucas junções
Dados atômicos
Dados atômicos e agregados
Planos de consultas extremanente
distintos e específicos para as
consultas previstas
Planos de consultas “genéricos”
(assimetria do modelo)
Asterio K. Tanaka
Page 5
Tabela de Fatos
•
•
•
•
•
Chave composta pelas chaves das dimensões
Dimensão tempo é sempre parte da chave (DW é
histórico)
Medida do fato usualmente numérica
Fato Vendas
Fatos tipicamente aditivos
pk_tempo
Mas podem ser
pk_produto
–
–
pk_loja
preco_venda
unidades_venda
preco_custo
Semi-aditivos
Não aditivos
Asterio K. Tanaka
Fatos Aditivos
• São númericos e podem ser somados
em relação às dimensões existentes
• Sempre que, em uma modelagem, um
dado númerico for apresentado, então
este será um bom indício de um atributo
em fatos.
• Em geral, fatos aditivos representam
medidas de atividade do negócio.
– Valor Venda, Quantidade de produtos vendidos,..
Asterio K. Tanaka
Page 6
Fatos Semi-Aditivos
• Também são númericos
• Não podem ser somados em relação a
todas as dimensões existentes
– semântica não permite.
• Em geral, fatos semi-aditivos
representam leituras medidas de
intensidade do negócio.
– São snapshots destas leituras que entram no DW.
• O valor atual já leva em consideração valores passados.
– Nível de Estoque, Fechamento diário/mensal de
conta,..
Asterio K. Tanaka
Fatos Não-Aditivos
• Algumas observações não númericas
podem eventualmente ser fatos.
• Em um DW para registrar acidentes de
transito:
– Atributos:
» carro1, carro2, mot.1, mot2., descrição do
acidente, descrição do tempo (chuva,...) e
descrição da pista.
• Todas as informações da situação acima
são fatos!
Asterio K. Tanaka
Page 7
Tabelas de Dimensões
•
Objetivo:
–
•
Servir como cabeçalho das linhas e colunas das análises
e filtro nas consultas/relatórios
Características:
–
–
–
–
–
Chaves simples (em geral, artificiais: “surrogate keys”)
Descrição única para cada registro
Usualmente não dependente do tempo
Desnormalizada
Dimensão Loja
Hierarquias implícitas
pk_loja
nome_loja
endereço
cidade
estado
Asterio K. Tanaka
Hierarquias de Dimensões
•
•
Uma dimensão pode ter múltiplas
hierarquias além de outros atributos
descritivos
Exemplo para uma empresa atacadista:
–
–
–
Geografia física:
» cep, cidade, estado, região, país
Geografia de vendas:
» território, região, zona
Geografia de Distribuição:
» AD primária , região
Asterio K. Tanaka
Page 8
Passos da Modelagem Dimensional
• Definição da área do negócio
• Definir processos dentro da área de negócio
• Definição a granularidade desejada para os
dados de cada processo
– Considerar volumes e dificuldades de se obter o nível
desejado
• Definição dos atributos e hierarquia das
dimensões
– Considerar hierarquias múltiplas
• Definição das métricas das tabelas de Fatos
– Observar valores aditivos, semi-aditivos e não aditivos
Asterio K. Tanaka
Dicas importantes na Modelagem Dimensional
• Faça ou use um modelo de dados convencional E-R como ponto
de partida para o trabalho de modelagem dimensional.
• Observe os relacionamentos 1:N existentes. Eles podem sugerir
dimensões
• Observe as entidades fortes. Elas também podem sugerir
dimensões.
• Observe as entidades que expressam documentos como Nota
Fiscal, Pedido, Ordem de Compra, etc. Elas podem sugerir fatos.
• Observe os relacionamentos M:N. Na sua interseção, pode haver
valores numéricos. Isto sugere fatos.
• Observe os atributos que estarão nas tabelas de dimensões.
Analise a relação de hierarquias entre esses atributos de
dimensão. Atente para os relacionamentos M:N entre eles. Isto
pode definir granularidade.
Asterio K. Tanaka
Page 9
Dicas importantes na Modelagem Dimensional
• As tabelas FATOS, tipicamente, armazenam dados, valores
atômicos ou agregados obtidos a partir destes.
• As métricas das tabelas FATOS são normalmente aditivas em
certas dimensões.
• As tabelas FATOS possuem chaves que as conectam às
diferentes DIMENSÕES que as circundam. Essa conexão se dá
num nível de granularidade compatível entre elas (FATO e
DIMENSÃO).
• As tabelas DIMENSÃO armazenam os valores de filtro, check,
acesso e textos que caracterizam os dados trabalhados.
• As tabelas FATOS são normalmente normalizadas.
• As tabelas DIMENSÕES são normalmente desnormalizadas
(Esquema Estrela).
• A granularidade combinada da tabela FATO com a de suas
tabelas DIMENSÕES determina o número de linhas das tabelas
do projeto.
Asterio K. Tanaka
Exemplo
• Processos de uma empresa revendedora
de produtos:
– planos de estoque, ordens de compra, inventário,
pedidos de clientes, expedição de pedidos, créditos, etc.
• Processos identificados
– cria-se uma ou mais tabelas de fatos a partir de cada um
deles.
• Neste ponto é necessário decidir o fato
individual naquela tabela
– granularidade da tabela
» uma linha sobre um produto, um perfil de venda
diário do produto, ou um perfil de venda mensal do
produto
– Por exemplo: tabela de fatos vendas acumuladas do
produto.
Asterio K. Tanaka
Page 10
Exemplo
• Definir dimensões e suas respectivas
granularidades.
– dimensões tempo, produto e vendedor são criadas.
– outras dimensões descritivas como:
» local-de-expedição, local-de-recebimento, modo-deenvio.
• Cada dimensão pode ser vista como um
ponto de entrada para a tabela de fatos.
» A escolha das dimensões é o ponto chave no
projeto.
• O passo seguinte consiste em detalhar:
– todas as medidas que constarão da tabela de fatos; e
– completar as tabelas de dimensões.
Asterio K. Tanaka
Exemplo
Asterio K. Tanaka
Page 11
Variações do Esquema Estrela
Esquema floco de neve
• O esquema floco de neve é uma variação do
esquema estrela no qual todas as tabelas
dimensão são normalizadas na terceira forma
normal (3FN)
• Reduzem a redundância mas aumentam a
complexidade do esquema e consequentemente
a compreensão por parte dos usuários
• Dificultam as implementações de ferramentas
de visualização dos dados
Asterio K. Tanaka
Esquema Floco de Neve
Dimensões normalizadas
Fatos como no
Esquema estrela
Asterio K. Tanaka
Page 12
Esquema Flocos de Neve Exemplo
Ano
Mês
Ano
Mês
Ano
Tabela de Fatos
De Vendas
Tempo
pk_tempo
data
mês
pk_tempo
Cidade
Estado
pk_loja
Pk_loja
Cidade
Unidades_vendidas
Preco_venda
Estado
País
País
pk_produto
descProd
Categoria
pk_produto
Loja
Cidade
Estado
Produto
Preco_custo
País
Região
Medidas
Asterio K. Tanaka
Esquema Constelação de Fatos
• Múltiplas tabela de fatos com dimensões
compartilhadas
– Maior complexidade
– Integra diferentes processos
Asterio K. Tanaka
Page 13
…
Esquema Constelação de Fatos
Time Dimension
time_key
day_of_week
month
quarter
year
holiday_flag
Shipping Fact
Product Dimension
Sales Fact
time_key
product_key
location_key
dollar_sold
unit_sold
dollar_cost
product_key
description
brand
category
Location Dimension
loc_key
loc_name
address
city
state
time_key
product_key
from_location_key
to_location_key
shipper_key
dollar_cost
units_shipped
Shipper Dimension
shipper_key
shipper_name
location_key
Asterio K. Tanaka
Modelo Entidades-Relacionamentos
(adequado para BDs operacionais)
Asterio K. Tanaka
Page 14
Modelo Dimensional
(Estrela ou Constelação de Fatos)
Dimensões
Fatos
Dimensões
desnormalizadas
Asterio K. Tanaka
Tabelas de Dimensão
Segundo KIMBALL, as tabelas de
dimensão não devem ser
normalizadas pois:
1) não há atualização freqüente nas bases;
2) o espaço em disco economizado é
relativamente pequeno e;
3) esse ganho de espaço não justifica a perda de
performance na realização de consultas por
conta dos joins necessários em caso de
normalização.
Asterio K. Tanaka
Page 15
Esquema Estrela - Conceitual
Asterio K. Tanaka
Esquema Estrela - Lógico
Asterio K. Tanaka
Page 16
Implementação do Modelo
Dimensional
• SGBDs multidimensionais
– implementam fisicamente o modelo
dimensional
– problemas de desempenho, segurança e
confiabilidade
– Esparsidade: células onde não há dados
• SGBDs relacionais
– Maior aceitação
– Exige mapeamento (vide artigo de Colonese et
al.)
Asterio K. Tanaka
Escolha do SGBD
Asterio K. Tanaka
Page 17
Esquema Estrela - Físico (Dimensional)
Asterio K. Tanaka
Page 18
Download