artigo_modelagem2

Modelagem Dimensional – Star Schema e Snowflake Schema

Escrito por Uiliam Venério
 em 3 de dezembro de 2020

Agora que já aprendemos os conceitos básicos da modelagem dimensional, no artigo “Introdução à Modelagem Dimensional”, podemos nos aprofundar no tema, abordando com mais detalhes os fundamentos envolvidos nesta técnica, como por exemplo, os modelos Star Schema e Snowflake Schema.

Se na modelagem tradicional o foco está na normalização dos dados e no modelo dimensional trabalhamos com dados desnormalizados, quer dizer então que podemos construir o modelo de qualquer maneira? A resposta é não!

Existem tipos ou padrões que devem ser seguidos para garantir que nossa modelagem irá suportar o volume de consultas e permitir a entrega correta de informações.

Os tipos de modelagem são:

  • Star Schema (Modelo Estrela)
  • Snowflake Schema (Floco de Neve)
  • Fact Constellation (Constelação de Fatos), que na verdade é uma mescla entre o Star Schema e o Snowflake Schema e que não vamos nos aprofundar.

O Star Schema (Figura 1) é, sem dúvidas, o modelo mais difundido e utilizado na criação de um Data Warehouse (DW). Este foi um modelo proposto por Ralph Kimball com o objetivo de simplificar a visualização dimensional, facilitando a distinção entre as dimensões e aos fatos. Não vamos detalhar os tipos de fatos e dimensões, mas podemos reforçar os conceitos.

Fatos são métricas (algo que pode ser medido ou quantificado) resultantes de um evento do processo de negócio. Ou seja, um acontecimento do negócio, que traz uma métrica (ou medida) associada a ele. Uma tabela Fato armazena as métricas relacionadas a determinado evento, por exemplo, uma fato de Vendas pode armazenar quantidade de itens vendidos, valor dos itens vendidos, entre outras métricas. Já as dimensões representam os contextos para análise de um fato, proporcionando diferentes perspectivas de análise para o usuário e normalmente interpretadas como os “filtros possíveis” para determinada tabela fato.

Figura 1 – Star Schema

Se por um lado o Star Schema busca a simplicidade, o Snowflake Schema (Figura 2) adiciona complexidade ao modelo, com o objetivo de reduzir a redundância no armazenamento.

Essa complexidade não é apenas em nível de armazenamento, mas também na consulta e extração das informações, pois este modelo tende a aproximar novamente a modelagem dimensional da modelagem utilizada nos sistemas transacionais e isto dificulta o entendimento por parte dos usuários de negócio. Este modelo é considerado também uma decomposição de uma ou mais dimensões que possuem hierarquias, ao contrário do Star Schema, que possui apenas ligações entre fatos e dimensões, neste caso existem ligações entre dimensões.

Figura 2 – Snowflake Schema

Durante o processo de modelagem dimensional há um ponto que muitos profissionais encontram dificuldades, que é a declaração/definição da granularidade. A granularidade está diretamente ligada na criação das fatos, impactando e definindo o volume de dados a ser armazenado e processado em cada fato. Sendo assim, entendemos que granularidade diz respeito ao nível de detalhamento (Figura 3) dos dados que vamos armazenar em uma determinada fato, onde quanto maior a granularidade, menor o nível de detalhamento e quanto menor a granularidade, maior o nível de detalhamento.

Figura 3 – Granularidade

Como exemplo de definição de granularidade podemos utilizar um cenário de vendas de uma loja varejista, onde em uma fato com baixa granularidade teremos o armazenamento de dados de vendas em nível de cupom fiscal, resultando em um grande número de linhas armazenadas, porém possibilitando a visualização individual de cada venda. Já em uma fato determinada com alta granularidade, poderíamos armazenar os dados de vendas consolidados por dia, assim reduziríamos a quantidade de linhas armazenadas na tabela, mas perderíamos a capacidade de ver detalhadamente cada venda. É possível ainda ter os dois cenários dentro do mesmo modelo, onde a fato seria selecionada de acordo com a necessidade da consulta, permitindo assim tornar o modelo mais eficiente.

Após conhecer os principais fundamentos da modelagem dimensional, podemos traçar um pequeno roteiro, onde vamos elencar as quatro principais decisões de negócio que devem ser tomadas durante a modelagem dimensional:

  • Definição dos processos de negócio;
  • Declaração/definição da granularidade;
  • Identificação das Fatos;
  • Identificação das Dimensões;

Baseados nestes 04 itens citados acima, podemos definir nossa modelagem dimensional e criarmos um DW que atenda às necessidades do negócio e principalmente seja um modelo durável, suportando os níveis de carga e consultas adequadamente por um longo período.

Cada decisão na modelagem dimensional é muito importante e pode impactar o modelo a longo prazo, então antes de sairmos criando tabelas e fazendo cargas de dados, devemos dedicar parte do nosso tempo para esta etapa de definição e identificação, fomentando ainda mais o sucesso do projeto.

Quer fazer parte do nosso time? #VemPraDBC

Confira nossas vagas em: https://dbc.compleo.com.br/

por Uiliam Venério Analista BI
Menu - DBC Company

Compartilhe

Compartilhar no facebook
Compartilhar no whatsapp
Compartilhar no twitter

Deixe um comentário!

E participe da conversa.

Veja Também

Ferramentas de automação tendências para 2021
Olá, tudo bem? É a minha primeira vez escrevendo aqui no nosso blog, então vou iniciar esse post me apresentando. Meu nome...
Modelagem Dimensional – Star Schema e Snowflake Schema
Agora que já aprendemos os conceitos básicos da modelagem dimensional, no artigo “Introdução à Modelagem Dimensional”, podemos nos aprofundar no tema, abordando...