• Nenhum resultado encontrado

Modelação Dimensional 4

N/A
N/A
Protected

Academic year: 2021

Share "Modelação Dimensional 4"

Copied!
29
0
0

Texto

(1)

I

NTEGRAÇÃO

 

E

 P

ROCESSAMENTO

 A

NALÍTICO

 

DE

 I

NFORMAÇÃO

Modelação  Dimensional  –  4

António  Manuel  Silva  Ferreira  

U

NIVERSIDADE

 

DE

 L

ISBOA

 –  F

ACULDADE

 

DE

 C

IÊNCIAS

 

D

EPARTAMENTO

 

DE

 I

NFORMÁTICA

 

(2)

Sumário

• Modelação  dimensional  

– Hierarquias  e  tabelas  de  ponte   – Dimensões  mulV-­‐valor  

– Tipos  de  tabelas  de  factos  

• Recomendações  de  modelação  

– Regras  a  seguir  

– Erros  a  evitar  

• Carregamento  do  data  warehouse  

Data  staging  area  

– Sistema  ETL  

(3)

Hierarquias  de  Atributos

• Relações  hierárquicas  de  Vpo  

muitos

-­‐para-­‐

um

 são  habituais  

– Ex.  muitos  meses  compõem  um  ano,  dias  compõem  um  mês  

• Hierarquias  desempenham  papéis  importantes  

Navegação  no  cubo  de  dados  

• Permitem  operações  de  drill-­‐down  e  roll-­‐up  

• Ex.  encomendas  por  ano,  mês,  dia,  …  e  país,  cidade,  freguesia,  …  

Pré-­‐cálculo  de  valores  agregados  para  cada  nível  hierárquico  

• Agregações  armazenadas  em  disco  e  usadas  automaVcamente  nos  relatórios   • Ex.  totais  e  médias  por  ano,  mês,  e  dia  

• Desafios  

– Modelação  adequada  ao  presente  e  flexível  para  mudanças  futuras   – Limpeza  e  manutenção  dos  dados  de  hierarquias

(4)

Tipos  de  Hierarquias  de  Atributos

• Profundidade  fixa  

Todos  os  níveis  da  hierarquia  têm  sempre  valores  

– De  uso  generalizado  e  fáceis  de  entender   – Exemplos  

• Anos  têm  sempre  meses,  e  meses  têm  sempre  dias  

• ConVnentes  têm  sempre  países  e  países  têm  sempre  cidades  

• Profundidade  variável  

Alguns  níveis  podem  não  estar  preenchidos  

– Para  relações  hierárquicas  mais  complexas   – Exemplos  

• Árvore  genealógica  de  uma  família  

(5)

Modelação  de  Hierarquias  Fixas

• Todos  os  níveis  da  hierarquia  numa  tabela  desnormalizada  

Decisores  disHnguem  hierarquias  em  atributos  da  dimensão  

• Atributos  de  uma  mesma  hierarquia  devem  estar  seguidos  

– Permite  várias  hierarquias  em  simultâneo  na  mesma  tabela  

– Ex.  Produto(…,  Categoria  MarkeVng,  Subcategoria  MarkeVng,  …


  Categoria  Finanças,  Subcategoria  Finanças,  …)  

• Cada  nível  da  hierarquia  numa  tabela  separada  (snowflaking)  

– Antes:                                  Produto  (…,  Categoria  Produto,  Subcategoria  Produto)   – Depois:                              Produto  (…,  pSubcategoria)


  Subcategoria  (ID,  Subcategoria  Produto,  pCategoria)
   Categoria  (ID,  Categoria  Produto)  

– Bifurcações,  apenas  úteis  em  dimensões  “monstras”  

(6)

Modelação  de  Hierarquias  Variáveis

• Possível  com  chave  estrangeira  para  a  própria  tabela  de  dimensão  

– Ex.  muitos  empregados  têm  o  mesmo  chefe  

• Problemas  

– Níveis  hierárquicos  diferentes  misturados  na  tabela  de  factos  

• Chave  estrangeira  para  empregado  pode  referir  o  presidente,  diretores,  …  

• Cálculo  de  valores  agregados  por  nível  hierárquico  inviável  

– Interrogações  muito  complexas  e/ou  com  comandos  SQL  proprietários

1

2 3

4 5

ID Nome  Empregado OEmpregadoChefe

1 Presidente —

2 Diretor  A 1

3 Diretor  B 1

4 Empregado  C 2

(7)

Tabelas  de  Ponte  –  1

• Permitem  

navegar

 em  hierarquias  de  profundidade  variável  

– Ex.  saber  quem  é  chefe  de  quem  na  dimensão  empregado  

– Ex.  somar  salários  dos  empregados  chefiados  por  um  diretor  

• Guardam  

caminhos

 

1. Entre  cada  nível  e  o  próprio  nível  (distância  zero)   2. Entre  cada  nível  e  todos  os  níveis  descendentes  

• Atributos  específicos  

– Nível  ascendente                                  (1)   – Nível  descendente                            (2)   – Distância  entre  níveis                  (1)   – Ascendente  no  topo?                  (S)   – Descendente  na  base?   (N)            

Empregado   1 Empregado   2 Empregado   4 Empregado   5 Empregado   3

(8)

• Exemplo:  hierarquia  de  clientes  (estado,  ministérios,  repartições,  …)  

• Dimensão  cliente  tem  7  linhas  

Ponte  tem  muitas  mais  linhas,  uma  para  cada  caminho  entre  níveis  

– Linhasponte  =  ∑(nível  de  1  a  profundidade)  nósnível  ×  nível  =  1×1  +  3×2  +  3×3  =  16

Tabelas  de  Ponte  –  2

Ascendente Descendente Distância Topo? Base?

Cliente  1 Cliente  1 0 Sim Não

Cliente  1 Cliente  2 1 Sim Não

Cliente  1 Cliente  3 2 Sim Sim

… … … … …

Cliente  2 Cliente  2 0 Não Não

Cliente  2 Cliente  3 1 Não Sim

… … … … …

Cliente  3 Cliente  3 0 Não Sim

… … … … … Cliente   1 Cliente   2 Cliente   4 Cliente   5 Cliente   3 Cliente   6 Cliente   7

(9)

Tabelas  de  Ponte  –  3

• Tabela  de  ponte  colocada  entre  tabelas  de  factos  e  de  dimensão  

Factos  e  dimensão  não  precisam  de  ser  alterados  

– Uso  da  tabela  de  ponte  é  opcional  

• ConVnuaria  a  ser  possível  associar  factos  à  dimensão   • Mas  deixaria  de  ser  possível  navegar  na  hierarquia  

• Exemplo  

– Honorários  cobrados  aos  clientes  descendentes  de  um  outro  cliente

Tabela  de  Factos

Cliente  (FK)

Honorários

Tabela  de  Ponte

Ascendente  (FK) Descendente  (FK) Distância Topo? Base? Dimensão  Cliente ID  Cliente  (PK) Nome …

1.  Fixar  ID  do  cliente  “pai”  e  

(10)

Dimensões  MulH-­‐Valor

• Dimensões  podem  ter  vários  valores  para  um  mesmo  facto  

– Aparentemente  grão  deveria  ser  mais  fino,  até  um  só  valor  por  facto   – Mas  existem  situações  legíVmas  para  dimensões  mulV-­‐valor  

– Exemplo:  cobrança  de  diagnósVcos  médicos  

• No  mesmo  ato  médico  ficam  registados  vários  diagnósVcos  

• Alguns  levados  pelo  próprio  paciente,  pelo  que  não  podem  ser  cobrados   • Peso  indica  contribuição  (%)  desse  diagnósVco  para  o  total  cobrado  

• Total  de  pesos  dos  diagnósVcos  de  um  grupo  deve  ser  100%

Tabela  de  Factos

Paciente  (FK)

Grupo  Diags.  (FK)

QuanVa  cobrada

Tabela  de  Ponte

Grupo  Diags.  (FK) DiagnósVco  (FK) Peso DiagnósHco ID  DiagnósVco Nome Tipo … Grupo  DiagnósHcos ID  Grupo Nome  Grupo

(11)

Tipos  de  Tabelas  de  Factos

• Transações  

Registam  eventos  que  ocorreram  em  determinados  momentos   – Ex.  venda  de  produto  a  um  cliente,  numa  loja,  numa  data  

• Instantâneos  periódicos  (periodic  snapshots)  

Guardam  desempenho  acumulado  em  períodos  fixos  e  regulares  

– Dados  novos  são  inseridos  e  algumas  medidas  podem  valer  zero   – Ex.  saldo,  comissões,  e  juros  em  janeiro,  fevereiro,  março,  …  

• Instantâneos  cumulaVvos  (accumula:ng  snapshots)  

– Acompanham  um  processo  recorrente,  mas  de  duração  variável  

Etapas  previsíveis,  cumpridas  em  datas  imprevisíveis  

– Dados  novos  através  de  inserções  e  atualizações  de  linhas  

(12)

Exemplos  de  Tipos  de  Tabelas  de  Factos

Transações Data  (FK) Produto  (FK) Loja  (FK) Cliente  (FK) Empregado  (FK) Promoção  (FK) ID  Transação  (DD) QuanVdade Preço Instantâneos  Periódicos Mês  (FK) Conta  (FK) Agência  (FK) Cliente  (FK) Saldo Comissões  Cobradas Juros  Creditados Número  Transações Instantâneos  CumulaHvos Data  Encomenda  (FK) Data  Envio  (FK) Data  Entrega  (FK) Data  Pagamento  (FK) Data  Devolução  (FK) Loja  (FK) Cliente  (FK) Produto  (FK) Estado  Encomenda  (FK) QuanVdade Preço

Venda  de  produtos

Saldos  bancários  mensais

(13)

Comparação  de  Tipos  de  Tabelas  de  Factos

!

Transações Instantâneos  Periódicos Instantâneos  CumulaHvos Período  

representado Ponto  no
tempo Intervalos  fixos
e  regulares Intervalo  indeterminado

Grão Uma  linha  por  transação Uma  linha
por  período Uma  linha
por  ciclo  de  vida Carregamento  

de  factos Inserções Inserções Inserções  e  atualizações

Atualização


de  factos Inexistente Inexistente Quando  houver  aVvidade

Dimensão


data Data  da  transação Data  do  fim
do  período Várias  datas
do  ciclo  de  vida

Factos AVvidade  de  

(14)

Regras  da  Modelação  Dimensional  –  1

1. Carregar  dados  atómicos  nas  tabelas  de  dimensões  

– Possibilitam  todo  o  Vpo  de  agregações,  mesmo  as  mais  imprevisíveis  

2. Estruturar  modelos  de  dados  em  torno  dos  processos  de  negócio  

– Cada  processo  de  negócio  representa  eventos  mensuráveis  

3. Referir  dimensão  data  em  cada  tabela  de  factos  

– Factos  (agregados  ou  não)  vão  acontecendo  ao  longo  do  tempo  

4. Usar  mesmo  grão  para  todas  as  linhas  da  tabela  de  factos  

– Mistura  de  factos  com  diferentes  grãos  causa  confusão  

5. Resolver  relações  muitos-­‐para-­‐muitos  em  tabelas  de  factos  

– Suportadas  naturalmente  pelas  múlVplas  chaves  estrangeiras

(15)

Regras  da  Modelação  Dimensional  –  2

6. Resolver  relações  muitos-­‐para-­‐um  em  tabelas  de  dimensões  

– Manter  atributos  dependentes  entre  si  na  mesma  tabela  

7. Guardar  valores  descriHvos  em  tabelas  de  dimensões  

– De  preferência  os  usados  em  filtros  e  cabeçalhos  de  relatórios  

8. Usar  chaves  subsHtutas  em  tabelas  de  dimensões  

– Maior  flexibilidade,  rapidez,  e  poupança  de  espaço  em  disco  

9. Criar  dimensões  conformadas,  válidas  em  toda  a  organização  

– Permitem  combinação  de  dados  de  várias  tabelas  de  factos  

10.  Compreender  equilíbrio  entre  requisitos  e  realidade  

– Para  apoiar  efeVvamente  a  tomada  de  decisão

(16)

Erros  a  Evitar  na  Modelação  Dimensional  –  1

12.  Deixar  atributos  de  texto  na  tabela  de  factos  

– Tabela  de  factos  guarda  medidas  numéricas  e  chaves  estrangeiras  

Atributos  de  texto  devem  ser  colocados  em  tabelas  de  dimensões  

11.  Evitar  atributos  descriVvos  nas  tabelas  de  dimensões  

– Espaço  poupado  não  compensa  perda  de  inteligibilidade  

Cada  código  numérico  deve  ter  tradução  textual  

10.  Distribuir  hierarquias  por  várias  tabelas  de  dimensões  

Decisores  reconhecem  níveis  hierárquicos  numa  mesma  tabela  

– Mesma  tabela  pode  inclusivamente  conter  várias  hierarquias  

9.   Lidar  tardiamente  com  dimensões  de  mudança  lenta  

– Evitar  que  carregamento  de  dados  escreva  por  cima  dos  existentes  

(17)

Erros  a  Evitar  na  Modelação  Dimensional  –  2

8.   Usar  chaves  naturais  em  tabelas  de  dimensões  

– Cria  dependência  com  sistema  operacional  e  pode  impedir  histórico  

Dimensões  devem  ser  idenHficadas  por  chaves  subsHtutas  

7.   Adicionar  dimensões  antes  de  escolher  o  grão  dos  factos  

– Factos  registados  no  nível  de  detalhe  do  negócio  

Dimensões  com  grão  diferente  dos  factos  causam  confusão  e  erros  

6.   Criar  modelo  dimensional  baseado  num  relatório  específico  

– Relatório  é  apenas  uma  vista  parVcular  sobre  os  dados  

Modelo  dimensional  assenta  nos  processos  de  medição  do  negócio  

5.   Misturar  linhas  com  vários  grãos  na  mesma  tabela  de  factos  

– Factos  com  subtotais  e  outros  cálculos  auxiliares  causam  erros  

(18)

Erros  a  Evitar  na  Modelação  Dimensional  –  3

4.   Deixar  dados  atómicos  apenas  na  data  staging  area  

Decisores  não  vão  procurar  dados  na  data  staging  area  

Dimensões  e  factos  devem  ser  registados  com  o  máximo  de  detalhe  

3.   Evitar  agregados  pré-­‐calculados  para  melhorar  desempenho  

Mais  hardware  reduz  tempo  de  resposta  das  interrogações  

Mas  agregados  pré-­‐calculados  têm  melhor  relação  custo/bene_cio  

2.   Falhar  conformação  de  factos  

Mesma  medida  deve  ter  representação  coerente  em  vários  processos  

– Permite  combinação  de  mesmas  medidas  de  várias  tabelas  de  factos  

1.   Falhar  conformação  de  dimensões  

Erro  mais  grave:  impede  expansão  do  data  warehouse!  

(19)

Matérias  Cobertas  –  1

• Sistemas  de  apoio  à  decisão  e  data  warehouses  

– Dados  operacionais  e  de  apoio  à  decisão  

– Sistemas  OLTP  e  OLAP  

Estrutura  básica  de  um  data  warehouse   – Bases  de  dados  federadas  

• Modelação  dimensional  

– Obtenção  de  dimensões  

– Metáfora  do  cubo  de  dados  

– Tabelas  de  factos  e  de  dimensões   – Grão  da  tabela  de  factos  

(20)

Matérias  Cobertas  –  2

• Interrogações  OLAP  em  SQL  

– Abordagem  clássica  

– Extensões  OLAP  no  SQL-­‐99  

• Modelação  dimensional  

– Chaves  primárias  e  dimensões  degeneradas   – Dimensão  data  e  hierarquias  fixas  

– Chaves  subsVtutas   – Snowflaking  

• Mais  sobre  modelação  de  factos  

– Medidas  adiVvas  e  semi-­‐adiVvas   – Tabelas  de  factos  sem  factos

(21)

Matérias  Cobertas  –  3

• Dimensões  de  mudança  lenta  

– Técnicas  para  registar  mudanças  em  dimensões   – Tipos  1,  2,  3,  e  híbridas  

• Role-­‐playing  de  dimensões  

• Dimensões  conformadas  

Bus  matrix  

– Relatórios  transdepartamentais  

• Gestão  de  dados  mestre  

• Dimensões  muito  grandes  

Bifurcações  (outriggers)   – Mini-­‐dimensões

(22)

Matérias  Cobertas  –  4

• Tabelas  de  ponte  

– Hierarquias  variáveis   – Dimensões  mulV-­‐valor  

• Tipos  de  tabelas  de  factos  

– Transações  

– Instantâneos  periódicos   – Instantâneos  cumulaVvos  

• Regras  da  modelação  dimensional  

• Erros  a  evitar

(23)

Carregamento  do  Data  Warehouse

• Data  staging  area  

– Situada  entre  os  sistemas  operacionais  e  a  data  presenta:on  area  

Área  de  trabalho  para  pré-­‐processar  dados  em  bruto  

– Operações  „picas:  limpar,  fundir  duplicados,  combinar,  transformar,  …  

• Data  presenta:on  area  

– Guarda  dados  limpos,  com  apresentação  simples  e  inteligível  

– Inclui  índices  e  agregados  pré-­‐calculados  para  reduzir  tempos  resposta

Extração  periódica  de  dados Limpeza  e  transformação Carregamento  de  dados

(24)

Sistema  ETL

• Sistema  extrac:on-­‐transforma:on-­‐load  (ETL)  

Consome  cerca  de  70%  do  esforço  de  construção  do  data  warehouse   – Kimball  idenVfica  34  subsistemas  disVntos  

• Extração  (extrac:on)  

– Analisar  domínio  e  regras  de  integridade  das  colunas  

– Detetar  alterações  nos  dados,  aplicar  filtros,  ordenar  dados  

• Transformação  (transforma:on)  

– Limpar  dados,  usar  dicionários  para  correções  automáVcas   – Tratar  exceções,  fundir  duplicados,  conformar  valores  

• Carregamento  (load)  

– Manter  chaves  subsVtutas,  lidar  com  dimensões  de  mudança  lenta   – Preencher  hierarquias,  pré-­‐calcular  valores  agregados

(25)

Manutenção  de  Chaves  SubsHtutas  –  1

• Tabelas  de  correspondência  (cross-­‐reference  tables)  

Fazem  a  correspondência  entre  chaves  naturais  e  chaves  subsHtutas  

– Cada  dimensão  tem  a  sua  tabela  de  correspondência   – Guardadas  de  forma  persistente  na  data  staging  area  

• Deteção  de  alterações  

– Novos  registos  nos  sistemas  operacionais  geram  novas  chaves  substitutas  

Alterações  detetadas  através  da  comparação  de  valores  de  CRC  

• Cyclic  redundancy  code  (CRC):  uma  síntese  numérica   • Muito  usada  na  deteção  de  erros  em  dados  

• Coluna  extra  para  CRC  em  cada  linha  de  dados  

– Comparação  coluna  a  coluna  pouco  eficiente  

• Só  aplicada  depois  de  detetada  a  alteração  através  do  CRC  

(26)

Manutenção  de  Chaves  SubsHtutas  –  2

• Dimensões  de  mudança  lenta  de  Hpo  1  

– Tabela  de  correspondências  não  guarda  histórico  

– Chave  subsVtuta  refere  sempre  a  versão  mais  atual  da  chave  natural  

• Dimensões  de  mudança  lenta  de  Hpo  2  

– Guardadas  todas  as  chaves  subsVtutas  para  cada  chave  natural   – Necessários  campos  extra  para  período  e  indicação  de  validade

Chave  

SubsHtuta NaturalChave   Descrição ValidadeInício   ValidadeFim   Em  Vigor CRC

123 MG2 Magalhães 01.01.2010 29.03.2010 3A03C9DD 456 MG2 Magalhães 30.03.2010 x 2077CCED

(27)

Manutenção  de  Chaves  SubsHtutas  –  3

Dados   mudaram? Tipo   de  mudança   lenta? Chave   natural  na   TC?

Não  faz  nada Insere  linha   na  TC Insere  linha   na  TD Atualiza  linha   na  TC Atualiza  linha   na  TD

Atualiza  e  insere   linha  na  TC

Atualiza  e  insere   linha  na  TD

Legenda:  TC  =  Tabela  de  Correspondência;  TD  =  Tabela  de  Dimensão

Sim Sim Tipo  2

Tipo  1 Não

(28)

Bibliografia

• Ralph  Kimball  e  Margy  Ross,  The  Data  Warehouse  Toolkit:  The  

Complete  Guide  to  Dimensional  Modeling,  Wiley,  2002  

– Capítulos  5,  6,  13,  15,  16  

• Ralph  Kimball  e  Margy  Ross,  The  Kimball  Group  Reader:  

Relentlessly  Prac:cal  Tools  for  Data  Warehousing  and  Business  

Intelligence,  Wiley,  2010  

(29)

Extra  –  IntegraHon  Services  no  SQL  Server

Fluxo  de  Controlo

Fluxos   de  Dados

Referências

Documentos relacionados

Sabemos que ela não existe, mas que está no horizonte, e por isso defendemos o Movimento de Libertação de Mulheres como único caminho para emancipação política e para

Internacional de Música Antiga da Academia de Música Antiga de Lisboa, Festival Internacional de Música da Madeira, Música em São Roque, Festival de Música em Leiria, Festival

 Como meio para atingir estes fins, os seres humanos estabelecem objetivos comuns, alcançáveis quando todos colaboram para o bem estar social de todos os membros da comunidade. 

De posse de uma câmera USB de baixo custo e de um computador comum, disponível no laboratório de Mecânica do Instituto de Física da UERJ, foram realizados estudos

No Quadros 3 e 4 são apresentados os valores dos indicadores de produtividade da mão-de-obra (RUP diária, RUP cumulativa, RUP potencial) e a perda de produtividade da

PARÁGRAFO SEGUNDO - As despesas deverão ser comprovadas através de documentos fiscais (notas fiscais ou cupons fiscais), sem rasuras, emendas ou outros vícios, com valores parciais

Nota 5 – A inscrição para o Processo Seletivo/Vestibular 2011.2 poderá ser efetivada por terceiros, mediante apresentação de procuração particular pública, com

Parágrafo Sexto – É considerado como de efetivo serviço o período durante o qual o trabalhador portuário avulso permanecer à disposição do Operador