Você está na página 1de 28

DI – Departamento de Informática

Laboratório de Tecnologias de BD

Curso: Data Warehousing

Modelagem de DW
Complementos
e
Exercícios

Professor: Rubens N. Melo


1
PUC-Rio
DI - TecBD

Modelagem Dimensional
(Casos complexos [Kimball])
• Conformidade de Dimensões
• Dimensões Combinadas
• Dimensões especiais (Tempo, Cliente...)
• Manutenção de Dimensões Dinâmicas
• Dimensões Degeneradas
• Dimensões Lixo(Tags, Cod de Comentário...)
• Campos chaves
• Fato s/ métricas
• Fatos com subtipos
• Rel m:n entre fato e dimensões
• Agregados
2
PUC-Rio
DI - TecBD

Modelagem Dimensional
• Fato: Venda
Dimensões
• Quando ? (Tempo)
• O que ? (Ex.: Produto) (o “que” analisar do fato)
• Onde ? (Localização Geográfica)
• Quem ? (Ex.: Vendedor) (agente)
• Importantíssimo definir as dimensões, os “pontos
cardeais das estrelas” dos fatos
• Uma célula é a interseção de múltiplas dimensões -->
Idéia de cubo

3
PUC-Rio
DI - TecBD

Questões importantes para


Modelagem Dimensional
• “Comprador c comprou produto p no lugar l no
tempo t em qtidade q, a preço unit u, etc”
• Quando ? (t) Ex.: Mes, trimestre, ano etc
• O que ? (p) Ex.: sapato, gênero de filme,..
• Onde ? (l) Ex.: Norte, SP, Belem, Brasil
• Quem ? (c) Ex.: Jovens, Classe b, ...
• Fato: Compra (Outros exs: Venda, Exib de filme
• Medidas do fato: q,u,...
• O Modelo Dimensional vs Modelo ER ?

4
PUC-Rio
Exemplo de um Star-Schema DI - TecBD
Time Geography
Time code
Geography code
Quarter code
Region code
Quarter code
Region manager
Date
Sales State code
Month code
City code
Month Name Geography code City name
Day code Time code Zip code
Day of week Account code
Season Product code Product
Sales
Qty Product code
Account Product name
Account code Brand manager
Key Account code Brand name
Key account name Prod. line code
Account name Prod. line name
Account type Product name
Account market Product color
Product model
5
PUC-Rio
DI - TecBD

Conformidade de Dimensões
Dimensão cuja semântica “atravessa”
os limites das várias estrelas de que
participem são ditas “conformes”.
Exemplo: Tempo. Produto etc
Tempo: granularidade a nível de Dia mas
com varias Hierarquias possíveis
participando de vários fatos.
Produto: Granularidade a nível de um
produto, mas pode ter hierarquia e também
pode participar de mais de um fato.
Vendas –Produto – Estoque...

6
PUC-Rio
DI - TecBD

Dimensões Combinadas
Quando há forte coesão entre as
Dimensões e aparecem (quase) sempre
juntas nas análises
Exemplo: Produto-Loja
Cuidado com o produto cartesiano ...

Dimensões Especiais
Tempo, Espaço e Objeto
Ex.: Tempo, Local, Clientes...
7
PUC-Rio
DI - TecBD

Manutenção de Dimensões
3 Estratégias:
1) Não manter a versão anterior
2) Manter várias versões das Dimensões com controles
indicando quando mudou (melhor)
3) Manter os campos de (uma só) versão anterior e
manter o ciclo
Uma outra ideia é manter 2 tipos de registros da
Dimensão: Um com a parte fixa e outro com a parte
mutável (ligados por chave estrangeira). E usar as 2
chaves no Fato…
Ex PartClienteF e PartClienteM e a chave da dim no
Fato seria F1M1 depois F1M2 etc
8
PUC-Rio
DI - TecBD

Dimensões Degeneradas
Ocorrem em Dimensões tipo eventos…como
Ordem de Compra com vários Itens
Exemplo:
Ordem-de-Compra (OCi) liga vários Itens com
Num. Item I1, OC1, num.Item l2,OC1, etc
Nesse caso a chave da Dimensão no Fato será
<I1,OCi,…>
<I2,OCi,….>
OC é dita Dimensão degenerada pois a real
Dimensão é Item…
9
PUC-Rio
DI - TecBD

Dimensões lixo
Dimensões com pouca cardinalidade (Ex Sexo) ou com
pouca relação com os outros campos servindo na
maioria das vezes para filtros de consultas etc
Ex: Sexo, Estado Civil, Tags do tipo S/N (contribuinte,
membro..),codigos representando textos etc
Ex.: Mês
v
Produto > Estoque(Qtd) < Almoxarifado
^
TAG (Climatizacão? s/n, Especial? s/n)

10
PUC-Rio
DI - TecBD

Campos Chaves
Uso de Sequenciais do SGBD
•Valores naturais de chave podem dar problemas:
•Fatos ficariam complexos…
•Unicidade (Empresas se juntam, chaves ? etc…)
•Processamento mais complexo (Sequenciais
podem ser até automaticamente processados em
ambientes de DW/DM)
Hoje SGBDs oferecem meios p/ gerar sequenciais…
Ex Identity do MS Server
Um sequencial de 4 BYTES => 2 TRILHÕES= 2**32
Hoje versões novas vão a 2**64 (biginteger)
11
PUC-Rio
DI - TecBD

Fatos sem Métricas

Fato que nao sugere medidas além de


contagem.

Evemplo: Análise de frequência de alunos

Dimensões: Aluno , Disciplina, Dia

Fato: Frequência() sem métrica

12
PUC-Rio
DI - TecBD

Subtipos de Fatos
Dimensões:

Produto Bancário: com subtipos


CC, Poupança, Emprestimo, Investimento,Cartão de Crédito

Agência

Conta

Tempo

Fato

Será múltiplo um p/ cada subtipo de Produto Bancário

Com métricas diferentes p/ cada caso


13
PUC-Rio
DI - TecBD

Relacionamentos m:n com Fatos


Exemplo: Exibição de Filmes (uma modelagem possível)
Dimensões:
Sala,
Tempo
Filme-Artistas
Aqui há uma relação Filme-Artistas(Artista,Filme,papel,porcent)
Porcent é a % associada ao artista do público/arrecadação
A chave da Dim é (Filme,Artista,papel) que será representada
por um Sequencial
Fato:
Exibição(SeqSala,SeqTempo,SeqFilme-Artista,
Publico,Arrecadacao)

14
PUC-Rio
DI - TecBD

Agregados
Temos: Fontes=>DW=>DMs
e nos DMs podemos ter Fatos Granulares e Fatos Agregados
Exemplo: DM de Vendas
Fato Granular: Vendas
Dimensões:
Loja(…região,..)  hierarquia por região
Produto(..categoria…)  hierarquia por categoria
Dia(…mes…)  hierarquia por mes
Fato: Vendas(Loja,Produto,Dia valor-vendido,custo,lucro,qtd)
Fato Agregado: VendasReg-Mes-Cat (mensal p/ regiao e p/ categoria)
Dimensões:
RegiãoV, CatProd, Mes
Fato:
VendasReg-Mes-Cat(Reg,Cat,Mes valor-vendido,custo,lucro)
15
PUC-Rio
DI - TecBD

Agregados

• Exemplo de Agregado: Vendas por loja


– Insert into vploja as
Select nome-loja, sum(vreal), sum(custo)
from Loja l, Vendas V
where l.chvL=V.chvL group by nome-loja;

16
PUC-Rio
DI - TecBD

Agregados
Ex. de Agregado (vendas mensais regionais por categoria):
INSERT INTO VENDASREG_CAT_MES AS
SELECT REGIAO,CATEGORIA,MES,
SUM(VALOR_VENDIDO),SUM(CUSTO_REAL),SUM(LUCRO)
FROM LOJA L,PRODUTO P,DIA T,VENDAS V
where l.chvL=V.chvL and P.chvP=V.chvP and T.chvD=V.chvD
GROUP BY REGIAO,CATEGORIA,MES;

•OBS:
•Hoje existem ferramentas (OLAP) p/ se interpor entre o SQL do front-end
e o Fato granular para aproveitar o Agregado que já exista
•Deve-se cuidar p/ que p projeto e implementação de Agregados valha a
pena
•Estudar as hierarquias possiveis das Dimensões e suas combinações

17
PUC-Rio
Exercício de Modelagem Distribuidora DI - TecBD

• Diretores da Distribuidora querem analisar


seus negócios e sentiram a necessidade de
um DW/DM para essa análise.
• Requisitos de informação:
– Evolução (mensal) de público e $$ arrecadado
por região, estado e cidade classificados por sala
e gênero.
– Evolução de exibição de filmes por ator e diretor
– Evolução de público por ator e diretor
– Como lançar filmes por períodos (estações) do
ano...
18
PUC-Rio
DI - TecBD

20
PUC-Rio
DI - TecBD

EXEMPLOS DW
7. Data Mart p/ acompanhar Internações em Hospitais
SITUAÇÂO:
Empregados( Medicos,Enfermeiros, etc) trabalham em Enfermarias de
Hospitais. Enfermaria tem Leitos
Internações de Pacientes, durante intervalo de datas, são feitas em
Leitos de Enfermarias. Há Acompanhamentos (medidas) dessas
Internações onde ocorrem Tratamentos consistindo de
Medicamentos e/ou Procedimentos. Tratamentos são feitos por
vários Médicos (equipe) com % de responsabilidade. Internações
são pagas em função dos preços dos Leitos e Tratamentos
utilizados durante a Internação.
PEDE-SE :
1. Faça um ER desse mini mundo (acrescente atributos etc)
2. Faça DM para análise de:
• $$ mensal das Internações por Enfermaria e Hospital
• Freqüência mensal de ocorrências de Internações de
Emergência, de ocorrência de mortes etc.
3. Identifique (se existir) uma Dimensão Degenerada, uma Lixo e
uma Complexa (m:n) neste exemplo.
23
PUC-Rio
DI - TecBD

7. Data Mart p/ acompanhar Internações em Hospitais


Resposta:
ER (fazer)
Modelo dimensional:
Dimensões
Tempo (dia,...)
Paciente
Enfermaria ( => hospital, outros atributos)
Medico x Equpe x sua % responsabilidade
Grupo de Medicamento x medicamento
Procedimento
Tratamento (relativo aos itens de tratamento acima )(degenerada)
Informacoes (genéricas sobre o tratamento) ( junk)
Fato
Custo do procedimento / remedios naquele dia
Medidas /analise feitas no paciente naquele dia
(óbito,alta,emergência)

24
PUC-Rio
DI - TecBD

6. Data Mart p/ acompanhar Direitos Autorais (Rádio)


SITUAÇÃO:
Rádios de certos Estados tocam Músicas. Existem fontes de dados
sobre quantas vezes tocaram certa musica num certo dia (e até em
faixas de horas).
Temos também os atributos de Radio ( freqüência, estado, estilo de
programação, etc) e Musica (gênero, cantores/grupo, gravadora,
compositores, nacionalidade etc). Músicas são de 1 ou mais
Compositores (ha um ranking de % de composição para fins de
direitos autorais).
PEDE-SE :
um DM para análise de:
execuçao de musicas por compositor (seus DA)
execução de musicas nas rádios dos estados por nacionalidade,
cantor, compositor, faixa horária etc.
Qual as soluções alternativas p/ tratar a faixa horária?
...
25
PUC-Rio
DI - TecBD

6. Data Mart p/ acompanhar Direitos Autorais (Rádio)


Resposta:
Dimensões:
Tempo (dia,...)
Musica M:N Compositor
Radio (=> cidade,estado, regiâo etc)
FxHoraria
Fato:
Num de execuções

26
PUC-Rio
DI - TecBD

EXERCÍCIOS DW
Um Data Mart para acompanhar vendas de Cds em cidades de
varios estados e regioes do país.
a) De exemplo de análises interessantes sobre o tema?
b) Sugira atributos interessantes (vs análises) para as dimensões
b) Faca o star schema desse DM
Resposta:
a) Que gênero de CD devemos lançar por estado e por estação
em 2012? Obter um Agregado por Regiao. Etc...
b) Dimensoes:
Tempo Dia com seus atributos semana, mês, tag de fim de semana,
estação etc)
Cd e seus atributos(genero, gravadora, cantor ou grupo etc)
Estado (agregado de cidade) (granularidade estado)
c) Dimensoes: Tempo, CD, estado
Fato: Quantidade, Valor vendido
PUC-Rio
DI - TecBD

EXERCÍCIOS DW
Exemplo de análise:
Ex.Quanto vendemos em CDs de Pagode no Rio no Carnaval de
2010?
Select sum(valor),sum(qtd) from fato f, tempo t, estado e, cd c
where t.chv=f.chvt and e.chv=f.chve and c.chv=f.chvc and
t.periodo=‘Carnaval’ and e.cod=‘Rj’ and c.genero=‘Pagode’;
Ex. Obter um Agregado por Regiao
Select e.codregiao,t.chv,c.chv, sum(valor),sum(qtd)
from fato f, tempo t, estado e, cd c
where t.chv=f.chvt and e.chv=f.chve and c.chv=f.chvc
GROUP BY E.CODREGIAO,T.CHV,C.CHV;
Outras análises?
PUC-Rio
DI - TecBD

EXERCÍCIOS DW
Um Data Mart para acompanhar fretes de carga para clientes que
mandam de e recebem em varios locais no país.
“Um item de carga tem ordem de transporte e um tipo de carga.
Há um local (cidade) de Origem e um de Destino e há uma
data (dia) de Despacho e uma data de Entrega. O transporte
eh feito por diferentes veículos (caminhao, kombi etc) .
Mede-se a qtd transportada, valor do frete, duracao do frete e
gasto de combustivel”.

Pede-se
a) De exemplo de análises interessantes sobre o tema?
b) Faca o star schema desse DM
PUC-Rio
DI - TecBD

EXERCÍCIOS DW
Um Data Mart para acompanhar reservas/acomodação de
hóspedes em hoteis.
“Hóspedes reservam quarto(s) em um Hotel via Agencia de
turismo (ou não) e pagam com Cartões (ou não). Há a data
de Check-in e data de Check-out. São medidos os valores
associados ($ do quarto, $ refeições, $ Lavanderia, $
frigobar,..)”.
1. De exemplo de análises interessantes sobre o tema?
(Ex1: Por região qual o valor médio dos gastos de frigobar dos
hospedes masculinos que vieram sem agência e que check-
out as 6as e que pagam com Visa?)
2. Sugira atributos interessantes (vs análises) para as dimensões.
3. Faça o Star Schema desse DM
4. Como trabalha a relação opcional do fato com Agência e com
Cartão?
PUC-Rio
DI - TecBD

EXERCÍCIOS DW
Um Data Mart para acompanhar anúncios na TV:
“Anunciantes veiculam suas propagandas em diversas inserções
de tempo (min de entada min de saida) dos programas
diariamente pagando um certo valor em um nivel de IBOPE
determinado”.

1. De exemplo de análises interessantes sobre o tema?


2. Sugira atributos interessantes (vs análises) para as
dimensões.
3. Faça o Star Schema desse DM
4. Por que Programa seria uma dimensão degenerada?

Você também pode gostar