Modelagem Dimensional – Conceitos Básicos

Rápido treinamento teórico: Conceitos de Modelagem Dimensional!  Primeira Parte.

Neste artigo, começaremos o nosso ‘curso’ de modelagem dimensional. Sem a pretensão de querer formar arquitetos, apresentaremos os conceitos básicos apresentados por Ralph Kimball.

Vamos lá!!!

Objetivos

  • Cobrir os conceitos da modelagem dimensional
  • Demonstrar técnicas confiáveis para a construção de um modelo Dimensional  

 

 

 

  • Material Adaptado de:
  • Treinamento “Dimensional Modeling in Depth” – Ralph Kimball – Kimball University
  • Livro “ The Data Warehouse Tollkit”   
  • Experiência em Projetos Realizados

     

     

     

     

     

     

     

     

     

    Estrutura do DW – Segundo Kimball

    Staging Area:

  • Parte do Data Warehouse responsável por receber a extração, transformação e carga (ETL) das informações dos sistemas transacionais legados, para posterior geração dos Data Marts de destino.
  • A Staging Area é considerada área fora do acesso dos usuários.
  • A Staging Area não deve suportar queries dos Usuários.
  • Ela pode ser composta por flat files (arquivos textos) ou tabelas de banco de dados na terceira forma normal (normalizadas).
  •   

      Data Presentation Area:

  • Área responsável pela apresentação dos dados, não deve ser utilizada para limpeza ou transformação de dados.
  • Organizada em Data Marts, orientados a processos de negócios, e não a unidades de negócio, departamentos ou funções específicas.
  • Um Data Mart é composto por dados atômicos e dados sumarizados para uma melhor performance.
  •  

    Estrutura do DW – Inmom – CIF

     
      

       

     

     

     

     

     

     

    Semelhanças entre as duas abordagens:

  • Data Marts Dimensionais e Dados Integrados.
  • Características únicas do CIF:

  • Mandatário, estrutura de dados normalizadas, resultantes do processo de ETL, porém estruturas dimensionais somente para dados sumarizados.
  • Usuários têm acesso aos dados detalhados nas estruturas normalizadas.
  • ‘Enterprise Data Warehouse’ serve para consultas e para geração dos Data Marts.
  •  

     

     

     

     

     

    Hybrid Approach

     

    A abordagem hibrida, teoricamente, reúne o melhor de cada uma das abordagens. Data Warehouse Normalizado vindo do CIF e Um Data Warehouse Dimensional, baseados no Bus Architecture.

    Uma abordagem de alto custo. Tem estruturas duplicadas: a existência de uma Estrutura Normalizada, e a criação de um modelo dimensional (usuários), e facilidades de um Star Schema.

     Essa abordagem deve ser estudada em detalhes quando se deseja utilizar essa estrutura como ODS (Operational Data Store) integrando e padronizando dados de diversas fontes. Neste caso, essa estrutura pode ser utilizada como um integrador de sistemas.

     

 

 

 

 

Terminologias: Dimensões:

Também chamadas Dimensões de Negócios, são o núcleo de componentes ou categorias de negócio, ou seja, tudo que se quiser analisar nos relatórios ou visões;

 São fundamentais para se organizar os dados e proporcionar um contexto para os itens numéricos ou para as medidas.

 

  • •Objetos com características desnormalizadas:
    •      Decodes, hierarquias, rollups.
  • •Atributos da Dimensão:
    •      Descrições e restrições das queries.
    •      Clausulas BY e WHERE das queries.
    •      Conjunto de Descrições:
      •           Características Físicas;
      •           Descrições baseados nas regras de negócios ou com significado modificado.
  • Os atributos das Dimensões são os itens ‘BY’ e ‘WHERE’ das clausulas ‘SELECT’.
  • A Dimensão de Datas é fundamental para todos os modelos dimensionais, ela é utilizada para que as informações sejam agregadas, filtradas, selecionadas seguindo um mesmo padrão. É importante que uma Dimensão de Datas seja responsável por conter todas as informações que são pertinentes a uma Data, por exemplo, feriados, calendários fiscais, calendários específicos da empresa, etc.

 A combinação dos atributos da dimensão e suas hierarquias é chamada de Desnormalização. Isso facilita pela visão dos usuários aos atributos das tabelas e transforma os ‘JOINS’ entre as tabelas mais simples.

Chaves Primárias das Dimensões

Surrogate Key:

  • Número inteiro seqüencial. No caso das Datas, pode ser usado ou não. Em datas pode-se usar, por exemplo, o tipo date ou um numérico representando a data como YYYYMMDD, por exemplo.
  • Utilizado para unir as dimensões às tabelas de Fatos.

Benefícios:

  • Isola o Data Warehouse do Sistema Operacional;
  • Incrementa a performance.
  • Pode-se utilizar atributos como “Não se Aplica”, “Dado a ser determinado”;
  • Permite a Integração de Diversas Fontes
  • Suporta rastrear mudanças nos dados – Slowly Changing Dimensions.

Ponto de Atenção:

  • O ETL torna-se mais complexo, uma vez que os controles para Surrogate key são mais detalhados.

 

Terminologias: Tabelas Fato:

Resolve os relacionamentos muitos-para-muitos entre as dimensões.

  • •Chave Primaria
    •      Geralmente é um subset de foreign keys das Dimensões.
  • •Fatos:
    •      São métricas resultantes do processo de negócio ou eventos.
    •      Geralmente são numéricos.
    •      Geralmente são aditivos, mas não sempre.

 

  • As Dimensões participam da tabela Fato como Chaves estrangeiras (Foreign Keys).
  • As Dimensões são consideradas Objetos de Negócio e os Fatos são medidas de negócio. Os objetos podem ser os produtos, os clientes, as empresas, etc., e as medidas podem ser as quantidades pedidas, os valores vendidos, etc. Produtos existem, mesmo sem serem vendidos, mas as vendas sempre são de produtos ou serviços.
  • A maioria dos fatos são numéricos, mas nem todos os números são fatos; itens como tamanho, peso, quantidades por caixa, etc., só podem ser considerados fatos em casos muito específicos, na maior parte do tempo são considerados características das dimensões.
  • Geralmente os fatos são aditivos, valores, quantidades, etc. Mas outros como temperatura, preço, medias em geral, não podem ser somados, mas podem ser apresentados como um fato.

 

  • • Granularidade:
    •       Identifica o nível de detalhe.
    •       1 Grão (GRAIN) por Fato.
    •       Novo Fato a cada novo Grão.

    •       Grão Atômico da mais flexibilidade.

 

  • Degenerated Dimension (DD):
    • Sem correspondente na Dimensão.
    • Chave Operacional.

degenerate
[didenrit] n degenerado,  degenerar, declinar,  perder as qualidades primitivas para o pior. [didenrit] adj degenerado, corrompido, abastardado

  • Na abordagem de Ralph Kimball, os Fatos são criados em seu nível mais detalhado – nível atômico. Dessa maneira, pode-se ter a flexibilidade de fazer ‘Roll-Up’ para qualquer nível possível. Nesse caso podem ser utilizadas tabelas sumarizadas para auxiliar nas agregações necessárias, Materialized Views no Oracle ou  Materialized Query Tables no DB2.
  • As tabelas Fato são muito eficientes, pois possuem baixa redundância dos dados.
  • 1 Fato por processo de Negócio.

 Benefícios:

  • Fácil Entendimento.
  • Performance.
  • Facilita Mudanças

Até a nossa próxima aula!

16 Respostas to “Modelagem Dimensional – Conceitos Básicos”

  1. Pedro Says:

    Parabens pelo excelente blog!
    Um abraço!
    Pedro
    http://www.pedrocgd.blogspot.com

  2. Zé da Pipa Says:

    Não concordo!

  3. Gláucia Says:

    Olá Carlos,

    Parabéns pelo Blog.

    Gostaria que vc explicasse com um pouco mais de detalhes o que são dimensões degeneradas. Ficou um pouco no ar.

    Muito obrigada!

    Gláucia

    • Carlos Alberto Lorenzi Lima Says:

      Oi Glaucia, tudo bem?

      Obrigado!

      Degenerate Dimension é um pouco chato de entender mesmo. Acho que é porque é simples… simples demais e parece incompleto…..

      DD na verdade não é uma dimensão fisica, mas algo mais conceitual, mais ‘virtual’. Vamos supor que você quer controlar o seu fato também por um ‘Código do Ticket’. Você tem, no seu sistema transacional o código do ticket, mas não quer fazer uma dimensão só pra isso… o que fazer? Coloca o código do ticket como uma foreign key no fato… teríamos como chave primaria do fato: Chave da Dimensão Cliente, Chave da Dimensão Tempo, Chave da Dimensão Produto, Chave da Dimensão Loja, Chave da Dimensão Vendedor e o Código do Ticket…

      Agora ficou mais fácil ou complicou de vez?????[URL=http://www.postsmile.com/][IMG]http://www.postsmile.net/img/19/1941.gif[/IMG][/URL]

      Bjs

      Lito

  4. Os números de 2010 « Blog do Lito – Data Warehouse / Business Intelligence Says:

    […] Modelagem Dimensional – Conceitos Básicos janeiro, 2010 5 comentários 4 […]

  5. Rafael Abreu Says:

    òtimo artigo, muito bem estruturado e distribuido!!!!!

  6. Felipe Says:

    Opa, Lito! Muito Bem explicado!
    Você teria algum material para indicar sobre modelagem dimensional na prática??
    Obrigado, e grande abraço

  7. Eliane Says:

    Muito bom o seu blog.
    abraços
    Eliane Lorentz

  8. José Antônio Says:

    Carlos, legal seu blog, está me ajudando muito… estou estudando dw/olap, e ao criar um modelo me veio uma dúvida. Vendo diversos modelos clássicos onde temos o fato “vendas”, (como este http://3.bp.blogspot.com/_Ie3CcFPLmus/TGUqKddmA1I/AAAAAAAAAFA/QWiC3-jzKu8/s1600/SH-schema.jpg ) me ficou a dúvida de como eu associo todos os produtos de uma venda a uma mesmo fato, visto que a relação da dimensão produto com o fato venda é de n pra 1.

    • Carlos Alberto Lorenzi Lima Says:

      José, muito obrigado.
      Pelo que observei no desenho, temos um modelo Snow Flake…
      A Dimensão Produto esta associada ao FATO Vendas e ao FATO CUSTO através de sua chave primária PROD_ID.
      Observe que os produtos vendidos podem ser analisados por CUSTOMER, PERÍODO, CANAL DE VENDA e PROMOÇÂO. Adicionalmente, por ser um modelo Snow Flake, pode-se, usando-se as ‘dimensões normalizadas’, saber informações sobre o PAÍS, REGIÃO e demais informações da dimensão COUNTRY.
      Nesse modelo, temos, portanto, um FATO para cada PRODUTO vendido para um determinado CLIENTE, Por um determinado CANAL DE VENDAS, em uma determinada PROMOÇÃO, em um determinado DIA DO ANO.
      Abs.
      Lito

    • Carlos Alberto Lorenzi Lima Says:

      José,
      Complementando, tomo a liberdade de, por favor, ser ser visto como um ‘mercenário…hehehe, recomendar que de uma olhada no http://www.blogdolito.com.br e ver o curso de DW/BI que ofereço a um custo bem acessível, pois também tenho custos de armazenagem dos módulos, onde explico os conceitos básicos de DW/BI, Modelagem Dimensional e ETLs, além de um conjunto de materiais adicionais. Acho um material muito interessante para quem quer iniciar o entendimento dessa área de atuação, ou mesmo formar novas ideias sobre o assunto.
      Obrigado.
      Lito


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: