Avançar para o conteúdo

Modelos de Dados com Esquema Estrela | Star Schema

Definir a abordagem da modelagem dos dados é uma das etapas fundamentais para trabalhar com dados.

Uma opção comum para modelos de dados é o esquema estrela, ou star schema.

Essa técnica de modelagem de dados relacionais é amplamente utilizada em iniciativas de inteligência de negócio.

Conheça os bancos de dados mais populares.

Ciclo de Vida de Projetos de Dados

O que é um Modelo de Dados com Esquema Estrela | Star Schema

O esquema estrela ou star schema é um tipo de modelo dimensional usado em data warehouses para organizar dados em tabelas de fatos e dimensões.

O modelo é chamado de “estrela” devido à forma como as tabelas são organizadas.

No centro do esquema está uma tabela de fatos, que armazena dados quantitativos (geralmente métricas ou indicadores-chave de desempenho).

Ao redor da tabela de fatos, estão tabelas de dimensões que armazenam dados descritivos relacionados aos fatos.

https://learn.microsoft.com/pt-br/power-bi/guidance/star-schema




Componentes do Esquema Estrela ou Star Schema

Tabela de Fatos

É uma tabela central armazena informação sobre eventos ou “fatos” – como vendas, receita, visitas, ou quantidades.

Nessa tabela, o enfoque são dados numéricos e métricas ou medidas. Por exemplo, quantidade de vendas, valor total ou tempo gasto.

Cada registro na tabela de fatos normalmente contém chaves das tabelas de dimensão (identificadores), juntamente com as métricas agregadas.

Usualmente, os atributo da tabela de fatos serão utilizados diretamente em relatórios e dashboards.

Tabelas de Dimensões

As tabelas de dimensões ficam “orbitando” ao redor da tabela de fatos.

No esquema estrela, essas tabelas armazenam informações descritivas e categóricas, como data, local, produto ou cliente. Cada entidade pertence à sua própria tabela com seus atributos particulares.

Cada tabela de dimensão é vinculada à tabela de fatos por meio de uma chave estrangeira.




Comparação entre Técnicas de Modelagem de Dados

Existem várias técnicas de modelagem de dados. Vamos entender a diferença entre o modelo de estrela, floco de neve (snowflake) e galáxia (galaxy)

Diferenças entre Esquema Estrela e Esquema Floco de Neve

O esquema estrela é desnormalizado, o que significa que as tabelas de dimensão contêm todas as informações descritivas necessárias.

O esquema floco de neve normaliza as tabelas de dimensão, criando subdimensões.

É indicado usar o modelo de dados com esquema floco de neve quando o modelo é apresentar hierarquias. Isso ajuda a manter a estrutura clara e organizada.

  • Exemplo: produto → categoria → subcategoria.

Essa normalização pode reduzir a redundância de dados, mas aumenta a complexidade na consulta e na manutenção (maior necessidade de joins).

Antes de optar por um esquema floco de neves, avalie se o volume de dados da dimensão justifica a normalização (dimensões pequenas).

https://www.guru99.com/snowflake-schema-in-data-warehouse-model.html

Vantagens do Esquema em Estrela em relação ao Esquema Snowflake

  • Mais simples de entender e usar para consultas.
  • Melhor desempenho devido ao menor número de joins (já que as tabelas de dimensão são desnormalizadas).

Vantagens do Esquema Snowflake em relação ao Esquema em Estrela:

  • Menos redundância de dados devido à normalização.
  • Menor necessidade de armazenamento.
  • Melhor integridade dos dados com menores chances de inconsistências.

Diferenças entre Esquema Estrela e Esquema Galáxia (Constelação)

O esquema galáxia, ou constelação, é um modelo de dados mais complexo do que um esquema estrela.

Ele inclui várias tabelas de fatos que compartilham tabelas de dimensão.

De modo geral, um esquema em galáxia consiste em vários esquemas em estrela vinculados.

Essa modelagem é interessante em ambientes onde há vários processos de negócios que precisam de tabelas de fatos separadas, mas compartilham dimensões comuns.

Com isso, pode reduzir significativamente a redundância e necessidade de armazenamento.

https://www.guru99.com/snowflake-schema-in-data-warehouse-model.html




Diferença entre Modelagem Dimensional e Modelagem Transacional

A modelagem dimensional, que inclui o esquema em estrela, é focada para aplicações de inteligência de negócios e analíticas pois visa facilitar consultas complexas.

A modelagem de dados transacionais (ou modelos normalizados), como o modelo entidade-relacionamento (modelo ER), mira na redução da redundância e na integridade dos dados por meio de uma estrutura altamente normalizada.

Esses modelos são usados ​​para sistemas OLTP (Processamento de Transações Online), que envolvem transações rápidas em tempo real.

A principal diferença entre a modelagem de dados dimensional e normalizada é que os modelos dimensionais são projetados para eficiência de consultas e processamento analítico, enquanto os modelos normalizados visam precisão transacional e consistência de dados.

Vantagens e Desvantagens do Esquema em Estrela

Vantagens da Modelagem de Dados em Estrela:

  • Simplicidade: O esquema em estrela é fácil de entender e projetar porque se baseia em uma estrutura simples e intuitiva com as tabelas de fatos e dimensões.
  • Desempenho de Consultas: Necessitam menos joins entre tabelas pois as dimensões são desnormalizadas.
  • Flexibilidade: Permite que usuários consultem dados intuitivamente.
  • Escalabilidade: À medida que a quantidade de dados aumenta, o esquema em estrela permanece eficiente para consultas, especialmente se otimizado por meio de indexação e particionamento.

Desvantagens de Modelos de Dados em Estrela:

  • Redundância de Dados: A desnormalização de tabelas de dimensões pode levar à redundância, o que aumenta os requisitos de armazenamento.
  • Complexidade de Manutenção: Se houver alterações nas dimensões (por exemplo, novas categorias ou atributos), a estrutura desnormalizada pode exigir atualizações mais frequentes.
  • Flexibilidade Limitada para Relacionamentos Complexos: Os esquemas em estrela são otimizados para relacionamentos simples e lineares, mas podem ter dificuldades para lidar com relacionamentos comerciais mais complexos entre múltiplos fatos.




Quando Podemos Ter Mais de Uma Tabela de Fatos?

Podemos usar mais de uma tabela de fatos quando são analisados diferentes tipos de eventos ou métricas, que não se encaixam bem numa única tabela de fatos.

Quando as métricas e a granularidade das análises diferirem, deve-se criar uma tabela de fatos dedicada a cada necessidade.

Exemplos de quando podemos ter mais de uma tabela de fatos:

Vendas e Estoque: Você pode ter uma tabela de fatos para transações de vendas e outra para níveis de estoque. Ambas as tabelas de fatos podem compartilhar dimensões comuns, como tempo, produto e local, mas representam diferentes aspectos do negócio.

Múltiplos Períodos: Se você precisar analisar dados em diferentes períodos de tempo ou em diferentes níveis de granularidade (por exemplo, diário, semanal, mensal), você pode criar múltiplas tabelas de fatos, cada uma otimizada para uma dimensão de tempo específica.

Como Criar um Modelo de Dados com Esquema Estrela

Definir o tema a ser analisado

Parar criar um modelo de dados eficiente e com performance otimizada, primeiro é preciso definir qual etapa do negócio você deseja modelar.

Por exemplo, se o seu data warehouse for sobre vendas, você pode querer modelar os dados de transações de vendas.

Determinar as Tabelas de Fato do Esquema Estrela

Identifique as principais métricas ou eventos que você deseja medir.

No nosso caso de vendas, podemos incluir, por exemplo, quantidade vendida e valor vendido. Poderíamos até calcular o valor do lucro e de taxas a serem descontadas.

Determinar as Tabelas de Dimensão do Esquema Estrela

Identifique as dimensões que irão “descrever” os fatos. Por exemplo:

Tempo: dia, semana, mês, ano…

Produto: ID do Produto, Nome do Produto, Categoria do Produto…

Cliente: ID do Cliente, Nome do Cliente, Cidade do Cliente, Telefone do Cliente…

Localização: Loja onde foi feita a venda, Cidade, Região…

Criar as Tabelas de Fato e Dimensão

Crie a tabela de fatos levando em consideração as métricas definidas previamente.

A tabela de fatos deve conter, também, uma chave estrangeira para cada dimensão (por exemplo, ID do Produto e ID do Cliente)

A seguir, defina as tabelas de dimensão. Cada tabela de dimensão deve ser relativa a um item que descreve características dos fatos, como vimos anteriormente.

Definir a Relação entre as Tabelas Fato e Dimensão

Conecte as tabelas de dimensão à tabela de fatos através de chaves estrangeiras.

Cada chave estrangeira na tabela de fatos deve corresponder a uma chave primária na respective tabela de dimensão.

Otimização e Teste

Para otimizar o modelo e a performance de queries, considere a possibilidade de, no banco de dados, indexar as tabelas de fato e de dimensão. Uma possibilidade é utilizar as chaves para tal.

Alguns bancos de dados, com o Snowflake, já otimizam as queries baseando-se em partições menores dos atributos mais utilizados. Confira se a sua base de dados oferece uma configuração que permita definir partição de dados.

Por fim, teste seu modelo correndo queries mais utilizadas e avalie se a estrutura está de acordo com as necessidades dos usuários.

Como otimizar a performance de query em banco de dados




Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *