BANCO DE DADOS
DISTRIBUÍDOS e DATAWAREHOUSING
Asterio K. Tanaka
http://www.uniriotec.br/~tanaka/tin0036
[email protected]
Modelagem Dimensional – Conceitos Avançados
Asterio K. Tanaka
Modelagem Multidimensional:
Conceitos Avançados
• Conformidade e Combinações de Dimensões
• Dimensões Tradicionais
– Quando, Onde, O que
•
•
•
•
•
•
•
Dinâmica das Dimensões
Dimensões Degeneradas e Dimensões Lixo
Campos Chaves de Dimensões e Fatos
Tabelas Fato sem Dados ou Métricas
Tabelas Fato com Classificação ou SubTipo
Relacionamentos M:N entre Fatos e Dimensões
Agregados
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
Tipos de Dimensões mais
comuns
quando
onde
Fato
quem
o quê
Asterio K. Tanaka
Page 2
Esquema Estrela - Lógico
Asterio K. Tanaka
Conformidade e Combinações de Dimensões
• Dimensões devem ter sempre o mesmo significado, para
que os diversos esquemas dimensionais de diferentes DM
possam ser cruzados, produzindo informações
compatíveis.
• Regra básica: definir as dimensões no maior grau de
granularidade (mais detalhada) possível ?
compartilhamento de dimensões em diferentes DM.
• Considerações especiais:
– Diferentes hierarquias na mesma dimensão. Ex:
CATEGORIA? PRODUTO e FABRICANTE? PRODUTO
– Hierarquia que leva a roll-up indevido. Ex:
ANO? TRIMESTRE? Mês? SEMANA? DIA
• Combinações de dimensões (em uma única tabela)
– Quando existe forte coesão entre duas dimensões, ou seja, acontecem
quase sempre juntas para determinados subconjuntos de valores
combinados. Ex: somente certos PRODUTOS são vendidos em certas
LOJAS ? poderia sugerir uma combinação de dimensões, desde que
observado o aspecto de proliferação (produto cartesiano)
Asterio K. Tanaka
Page 3
Dimensões Clássicas
• Dimensão Tempo (Data) – quase sempre
presente, pois DW é histórico.
– Data completa – Dia da semana – Dia do mês – Dia do ano –
Semana do mês – Semana do ano – Mês do ano – Trimestre –
Período Fiscal – Tag de fim de semana – Tag de último dia útil do
mês – Tag de feriado – Tag de temporada – etc. etc.
• Dimensão Espaço (Local, Loja, etc.)
– Nome – Número – Endereço – Bairro – Município – Estado – CEP
– Gerente – Distrito – Região – Data de abertura – Área útil –
Coordenadas geográficas – etc. etc.
• Dimensão Produto
– Descrição – Número de estoque – Unidade – Marca – Categoria –
Departamento – Tipo de embalagem – Tamanho de embalagem –
Peso – Unidade de peso – (Características típicas do produto … ) –
tipicamente pode ter mais de 50 atributos descritivos.
Asterio K. Tanaka
Dinâmica das Dimensões
• Atualização das dimensões
– Exemplos: Endereço de Cliente, Descrição de Produto.
• Várias alternativas
– Atualizar por cima do valor antigo
» É simples mas não preserva histórico.
– Adicionar uma nova linha com o novo valor do atributo atualizado, mantendo os
demais.
» A nova linha particiona o histórico na tabela fato.
» É a técnica adequada para dimensões que mudam lentamente (slowly
changing dimensions).
– Adicionar uma nova coluna, preservando o valor anterior e inserindo o novo valor
na nova coluna.
» Permite a manutenção de apenas duas visões simultâneas do histórico, e dá
margem a muitos valores nulos quando as mudanças são lentas.
– Soluções híbridas, com múltiplas versões (linhas) combinadas ou não com coluna
de valor anterior.
» Mais flexíveis e completas, porém mais complexas.
• Dimensões com grande volume e alta volatilidade
– Particionamento da dimensão em tabelas diferentes, separando-se os dados
estáticos dos dados voláteis.
» Dimensões são relacionadas entre si e ambas relacionadas com a tabela fato
Asterio K. Tanaka
Page 4
Dimensões Especiais
• Dimensões degeneradas
– Relacionadas com objetos do tipo evento, como Ordem de Compra, Nota
Fiscal ou Pedido de Serviço, normalmente compostas de Itens (Item de
OC, Linha de NF, Item de PS).
– Quando a granularidade da tabela fato é Item, o número do documento
maior (OC, NF, PS) estará na tabela fato apenas para permitir o
agrupamento dos itens por documento.
– O documento maior é uma dimensão degenerada.
• Dimensões lixo, descartável (junk)
– Relacionadas com tabelas tipo código-descrição com baixa cardinalidade:
Sexo, Estado Civil, Tags diversos, Textos descritivos, etc. São campos
tipo miscelânea que não trazem muita correlação com os outros campos
da tabela fato, mas são usados como filtro, daí serem dimensões.
– Podem ser usadas de forma combinada.
» Exemplo: três tags binários ? 23 = 8 combinações
– Pode ser usado como artifício para economia de textos (por exemplo,
observações, comentários), pois o que vai para a tabela fato é a chave
numérica (surrogate)
Asterio K. Tanaka
Campos Chaves de Dimensões e Fatos
• Regra básica: uso de surrogates ou chaves artificiais.
– Ajudam a manter a estabilidade, através da neutralidade.
– Evitam manutenção custosa de tabelas, especialmente das tabelas fatos.
– Chaves naturais podem ter problemas de unicidade, ausência, tamanhos
exagerados.
– Chaves artificiais podem ser especificadas como inteiros de 4 bytes,
alcançando até 232, isto é, mais de 2 bilhões de ocorrências, o que é mais
do que necessário para qualquer tabela dimensão.
– Chaves artificiais ficam transparentes (invisíveis) para os usuários,
servindo apenas como ligação entre dimensões e fatos.
– Campos naturais poderão ser indexados, tornando as consultas
amistosas.
– Se produzidas automaticamente, deve-se ter cuidado no processo de
preparação (ETL), especialmente nos reprocessamentos.
– A desvantagem das chaves artificiais é que a tabela fato não pode ser
consultada diretamente, pois os campos de filtro estarão armazenados
nas dimensões.
Asterio K. Tanaka
Page 5
Tabelas Fatos Especiais
• Tabela Fatos sem Dados ou Métrica
– Não muito comum. A tabela fato sem dados serve apenas para relacionar
as dimensões. Exemplo:
» Fato: Frequencia
» Dimensões: Aluno – Disciplina – Dia
• Tabelas Fatos com Classificação ou Subtipos
– Tipos de tabelas fato, uma para cada linha de produto, cada uma com
métricas diferentes.
– Modelagem como nas hierarquias de classe/subclasse.
– Exemplo:
» Ambiente bancário com vários tipos de contas e produtos
» Fato: Produtos especializados (multifatos)
» Dimensões: Agência – Cliente – Data (comuns a todos os produtos)
Asterio K. Tanaka
Relacionamentos M:N entre Fatos e Dimensões
• Exemplo: Desfiles de Escolas de Samba
Quesito
Escola
Nota
Desfile
Enredo
Jurado
Chave-Escola
Chave-Enredo
Chave-Ano
Chave-Corpo-Jurado
Número-Participantes
Número-Alas
Classificação
Valor-Gasto
Etc...
Corpo Jurado
Chave-Corpo-Jurado + Quesito + Jurado + Nota
Dimensões do tipo Corpo Jurado, que substituem
relacionamentos M:N entre Fatos e Dimensões,
são conhecidas como Dimensões Ponte.
Ano
Asterio K. Tanaka
Page 6
Agregados (1)
• Materializar (armazenar) ou não?
– Vide síndrome da explosão do volume de dados
• Critérios para definição de agregados
– Passam pela análise dos principais tipos de informação necessárias
e pela dificuldade de se obtê-las diretamente das tabelas granulares.
– Exemplo:
TDLoja (chave-loja, nome-loja, endereco-loja, cidade, estado, regiao)
TDProduto (chave-produto, descricao, marca, categoria, tipo-embalagem, departamento)
TDDia (chave-dia, data-completa, dia, mês, ano, período-fiscal, estação)
TFVendas (chave-loja, chave-produto, chave-dia, valor-vendido-real, custo-real, lucro, qtdvendida)
Hierarquias de dimensões
REGIÃO ? LOJA
CATEGORIA ? PRODUTO
ANO ? MÊS ? DIA
Asterio K. Tanaka
Agregados (2)
• Combinações possíveis
– Ternárias: LOJA X PRODUTO X DIA
? 2 x 2 x 3 = 12 combinações
– Binárias:
» LOJA X PRODUTO + LOJA X DIA + PRODUTO X DIA
? 2 x 2 + 2 x 3 + 2 x 3 = 16 combinações
– Unárias:
» LOJA + PRODUTO + DIA
? 2 + 2 + 3 = 7 combinações
– Total = 35 combinações
• Quais deveriam ser materializadas?
• Qual a distribuição de valores agregados por dimensão?
– Ex: LOJA
SELECT nome-loja, COUNT(*)
FROM TFVendas, TDLoja
WHERE TFVendas.chave-loja = TDLoja.chave-loja
GROUP BY nome-loja
Asterio K. Tanaka
Page 7
Problemas
Calcular
Calcularos
osagregados
agregadosno
nomomento
momento
da
darecuperação
recuperaçãoou
ouarmazená-los?
armazená-los?
Armazenamento
Tempo de
Resposta
X
BD3
BD4
BD2
BD1
BD3
BD4
BD2
BD1
Asterio K. Tanaka
A Síndrome da Explosão no
Volume de Dados
Número de Agregações
70000
65536
60000
50000
40000
30000
20000
16384
10000
0
16
2
3
4
4096
1024
256
64
5
6
7
8
Número de Dimensões
(4 níveis em cada dimensão)
Asterio K. Tanaka
Page 8
Agregados (3)
• Cuidados na definição dos agregados
– Valores aditivos
» Nem todas as métricas armazenadas nas tabelas granulares
são aditivas em todas as dimensões (fatos semi-aditivos ou
não aditivos). Isto significa que os atributos das tabelas fatos
de agregados poderão ser diferentes das tabelas fatos
granulares.
– Precisão
» Deve-se definir criteriosamente a precisão dos valores aditivos
de agregados, que deverão ser maiores do que os usados nos
respectivos valores das tabelas granulares (para evitar
overflow na adição)
» Fatos e dimensões agregados devem estar em tabelas
fisicamente diferentes das tabelas granulares, mesmo que o
número de tabelas cresça muito. Ferramentas de análise
(OLAP, por exemplo) possuem mecanismo de navegação de
agregados que escondem a complexidade da estrutura.
Asterio K. Tanaka
Agregados (4)
• Exemplos
– Agregação por loja, para todos os produtos, todos os dias.
– Agregação por loja, por mês, para todos os produtos.
– Agregação por regiao de venda, por mês, por categoria.
Asterio K. Tanaka
Page 9
Agregados (4)
• Exemplos
– Agregação por loja, para todos os produtos, todos os dias.
INSERT INTO AG-LOJA AS
SELECT nome-loja, sum(valor-vendido-real), sum(custo-real)
FROM TDLoja, TFVendas
WHERE TDLoja.chave-loja=TFVendas.chave-loja
GROUP BY nome-loja
– Agregação por loja, por mês, para todos os produtos.
INSERT INTO AG-LOJA-MÊS AS
SELECT nome-loja, mês, sum(valor-vendido-real), sum(custo-real)
FROM TDLoja, TFVendas, TDDia
WHERE TDLoja.chave-loja=TFVendas.chave-loja AND
TFVendas.chave-dia=TDDia .chave-dia
GROUP BY nome-loja, mês
Asterio K. Tanaka
Agregados (5)
• Exemplos
– Agregação por regiao de venda, por mês, por categoria.
INSERT INTO AG-REG-CAT-MES AS
SELECT regiao, mês, categoria, sum(valor-vendido-real), sum(custo-real)
FROM TDLoja, TFVendas.TDProduto, TDDia
WHERE TDLoja.chave-loja=TFVendas.chave-loja AND
TFVendas.chave-dia=TDDia .chave-dia AND
TFVendas.chave-produto=TDProduto.chave-produto
GROUP BY regiao, mês, categoria
• Cuidados operacionais
– Modelos separados (agregados e granulares) para evitar contenções
mútuas no momento de carga ou atualização.
– Carga total versus Atualização incremental: Tempo de processamento
versus Complexidade de programas
– Carga/atualização pode requerer processamento paralelo, para otimização
• Utilização de agregados
– Navegador de agregados: camada de interface entre a ferramenta OLAP e
o servidor de DW. O navegador realiza transparentemente a conversão de
comandos SQL granulares nos equivalentes que trabalham informações
agregadas.
Asterio K. Tanaka
Page 10
Arquitetura Genérica de um
Data Warehouse
Meta Dados
FERRAMENTAS
DE CONSULTA
FONTES DE DADOS
OLAP
BDs Operacionais
Extração
Transformação
Carga
Atualização
Análise
Data Mining
Data Warehouse
Relatórios
Fontes Externas
Data Marts
OLAP
Chaudhri&Dayal, SIGMOD RECORD 1997
Asterio K. Tanaka
Page 11
Download

Modelagem Multidimensional: Conceitos Avançados