Data for Breakfast ao redor do mundo

Transformando IA em resultados reais para os negócios.

O que é um esquema em estrela? um guia completo de modelagem de dados

O esquema em estrela é a técnica de modelagem de dados mais amplamente adotada em data warehouse. Ela simplifica dados complexos em uma tabela central de fatos cercada por tabelas de dimensões descritivas. Este artigo analisa os componentes centrais do esquema em estrela, suas vantagens e desvantagens estruturais e como esse esquema se compara ao esquema Snowflake. O artigo mostra ainda por que esse esquema é a base para a maioria dos relatórios analíticos e de inteligência de mercado.

  • Visão geral
  • O que é um esquema em estrela?
  • Componentes de um esquema em estrela
  • Exemplo de esquema em estrela
  • Vantagens de um esquema em estrela
  • Desvantagens de um esquema em estrela
  • Esquema em estrela versus esquema Snowflake: principais diferenças
  • Desenvolvendo e implementando um esquema em estrela
  • Quando usar um esquema em estrela
  • Conclusão
  • Perguntas frequentes sobre esquema em estrela
  • Clientes que usam o AI Data Cloud
  • Ver mais recursos de engenharia de dados

Visão geral

O esquema em estrela é uma técnica básica e muito conhecida de modelagem de dados para o armazenamento de dados. Trabalhando em conjunto, o esquema em estrela e o data warehousing simplificam tarefas analíticas complexas. A estrutura do esquema em estrela desnormaliza os dados e os organiza em torno de uma grande tabela de fatos central que contém medições quantitativas (como números de vendas ou quantidades) e várias tabelas circundantes de dimensões menores que contêm atributos descritivos (como nomes de produtos, datas ou detalhes do cliente).

Esse design específico simplifica em muito as consultas complexas, reduzindo o número de junções de tabela necessárias. Isso melhora significativamente o desempenho e a velocidade das consultas, fornecendo um modelo intuitivo e fácil de navegar com suporte a ferramentas de inteligência de mercado (business intelligence, BI) para a produção de relatórios eficientes, divisão de dados e análise aprofundada.

O que é um esquema em estrela?

Um esquema em estrela é uma forma de organizar os dados em data warehouses ou data marts para uma consulta simples e rápida, um trabalho fundamental para as equipes de engenharia de dados. Seu principal objetivo é estruturar grandes conjuntos de dados de forma intuitiva para otimização para análise. O esquema em estrela deriva do nome de sua estrutura visual, o que possibilita seu poder analítico. Imagine uma constelação. Como uma estrela central brilhante, a grande tabela de fatos se encontra no centro do design. Esta tabela é o warehouse de todas as métricas e eventos quantificáveis de uma empresa: os números de vendas, as quantidades e os horários.

As tabelas de dimensão à sua volta se movem para fora deste núcleo central, estando coligadas diretamente a ele por meio de relações únicas de chave estrangeira. Essas tabelas funcionam como pontos ou raios da estrela. Cada uma fornece um contexto descritivo, respondendo aos fatos "quem, o que, onde e quando". Por exemplo, uma tabela em uma única dimensão pode armazenar todos os detalhes de um produto (nome, marca, categoria), enquanto outra mantém detalhes sobre o tempo (dia, mês, ano). Essa conexão simples, direta e de um único salto do centro para qualquer ponto simplifica drasticamente a lógica de consulta e acelera o desempenho de relatórios.

Componentes de um esquema em estrela

O modelo de dados do esquema em estrela define-se por alguns elementos centrais que estabelecem as relações necessárias para uma consulta analítica eficiente. Seus principais componentes são dois tipos de tabelas e as chaves que as conectam.

Tabelas de fatos

A tabela de fatos é o centro do esquema em estrela. Ela armazena os dados numéricos que serão analisados. Ela contém métricas quantitativas e mensuráveis (geralmente chamadas medidas), como números de vendas, quantidades ou lucro. Em geral, sua estrutura é uma grande tabela com muitas linhas, mas relativamente poucas colunas. Ela armazena os eventos ou as transações em um nível de detalhes específico (sua granularidade).

A tabela de fatos contém todas as chaves estrangeiras (foreign keys) necessárias para conectá-la a cada tabela de dimensão ao seu redor. Sua própria chave primária é muitas vezes uma chave combinada, formada pela combinação das chaves estrangeiras de todas as dimensões conectadas.

Tabelas de dimensão

As tabelas de dimensão são como raios, que circundam a tabela central de fatos e fornecem o contexto necessário para interpretar os fatos. Elas contêm atributos descritivos e qualitativos que definem o "quem, o que, quando, onde e como" do fato. Por exemplo, elas podem incluir nome do produto, região do cliente ou dia da semana. Elas são menores do que a tabela de fatos, com menos linhas, mas muitas vezes mais colunas, pois armazenam informações descritivas mais detalhadas. 

Cada dimensão tem sua própria chave primária usada para estabelecer a relação com a tabela de fatos. 

As dimensões normalmente são desnormalizadas (ou menos normalizadas do que em um banco de dados transacional), ou seja, os atributos relacionados são agrupados em uma única tabela ampla. Essa estrutura otimiza o desempenho, evitando junções complexas entre as tabelas de dimensão.

Chaves primárias e estrangeiras

Esses conceitos relacionais são a mecânica que conecta os dois tipos de tabela. A chave principal (primary key, PK) é uma coluna (ou conjunto de colunas) em uma tabela que identifica cada linha de forma exclusiva. No esquema em estrela, cada tabela dimensional tem uma chave primária. A chave estrangeira (foreign key, FK) é uma coluna em uma tabela que se refere à chave primária de outra tabela. No esquema em estrela, a tabela de fatos contém as chaves estrangeiras que referenciam as chaves primárias das tabelas de dimensões.

Relações entre as tabelas

A estrutura de relacionamento do esquema em estrela é a característica que o define, especificamente projetada para otimizar as consultas analíticas. Essa otimização é alcançada por meio de duas regras rigorosas. Primeiro, cada conexão é uma relação um-para-muitos, onde a tabela da dimensão descritiva representa o lado "um" (por exemplo, um cliente único) e a tabela grande de fatos representa o lado "muitos" (esse cliente aparece em muitas transações). Em segundo lugar, cada tabela de dimensão deve manter uma conexão direta exclusivamente com a tabela central de fatos. Esse padrão rigoroso de raios significa que as dimensões nunca se ligam entre si e as tabelas de fatos nunca se ligam diretamente umas às outras com um verdadeiro design de estrela. Isso simplifica a lógica de consulta e garante que todas as junções sejam pesquisas simples, rápidas e em uma única etapa do centro.

Exemplo de esquema em estrela

Um bom exemplo real de um modelo de dados de esquema em estrela está em um data warehouse de vendas de varejo, onde a empresa precisa analisar indicadores-chave de desempenho (key performance indicators, KPIs) como receita, lucro e volume de vendas por vários atributos descritivos. Implementa-se o esquema em estrela tendo uma única tabela massiva Fact_Sales ao centro, cercada por tabelas de dimensão, como Dim_Product, Dim_Customer, Dim_Date e Dim_Store. A tabela Fact_Sales contém as medições (Total_Revenue) e as chaves estrangeiras que têm links para as IDs exclusivas das tabelas de dimensões ao redor. Essa estrutura permite que os analistas consultem rapidamente a receita total gerada pela categoria "Electronic" na região "North East", simplesmente unindo a tabela Fact_Sales apenas às dimensões de Product e Store. Essa estrutura unificada de “salto único” garante que os relatórios sejam gerados rapidamente para uma tomada de decisão eficaz.

Vantagens de um esquema em estrela

O esquema em estrela é a técnica mais popular de modelagem de dados para data warehousing, pois sua estrutura simplificada e desnormalizada oferece grandes vantagens analíticas, tudo centrado na otimização da recuperação de dados para fins analíticos. Suas vantagens incluem:

Simplicidade e facilidade de compreensão

A estrutura do núcleo, com sua separação clara de fatos mensuráveis e dimensões descritivas, é notavelmente fácil de entender para usuários técnicos, incluindo profissionais de engenharia de dados, e usuários não técnicos. Esse design transparente simplifica a curva de aprendizagem dos analistas de dados e reduz os erros na criação de relatórios, já que o caminho para unir qualquer trecho de dados contextuais (um cliente, um produto, uma data) a um evento medido (uma venda, um clique) é sempre direto e claro.

Desempenho superior de consulta

Esquemas em estrela são desenvolvidos para oferecer velocidade. Ao desnormalizar os dados de dimensão, o design minimiza o número de junções de tabela necessário para executar uma consulta. Em vez de navegar por várias tabelas encadeadas para encontrar um atributo único (um alto custo de desempenho), uma consulta analítica precisa apenas de uma única "saída" da enorme tabela central de fatos para a tabela de dimensão desejada. Essa redução da complexidade relacional permite uma execução bem mais rápida de consultas em grandes conjuntos de dados.

Melhor suporte a ferramentas OLAP

O modelo dimensional do esquema em estrela reflete perfeitamente a lógica usada pelos sistemas Online Analytical Processing (OLAP) e pelas ferramentas modernas de BI. Essas plataformas foram desenvolvidas para "slice and dice" (dividir e analisar) dados, a partir de uma medida e distribuí-los por dimensão. Como o esquema em estrela já organiza os dados desta forma, ele oferece desempenho e compatibilidade ideais para a produção de relatórios, criação de dashboards e análise multidimensional complexa.

Indexação e junções eficientes

A estrutura consistente e previsível do esquema em estrela permite que os mecanismos de banco de dados usem técnicas de indexação altamente especializadas e eficientes, como índices de bitmap, especificamente nas chaves de dimensão. A estrutura simples de relacionamento um-para-muitos também facilita o uso de algoritmos de junção rápidos e especializados (tais como junções hash), garantindo que o processo de associação de fatos ao contexto seja o mais rápido e simplificado possível, mesmo à medida que os volumes de dados crescem.

Desvantagens de um esquema em estrela

No entanto, o esquema em estrela tem desvantagens:

Redundância de dados

Embora os esquemas em estrela priorizem a velocidade, uma troca fundamental em prol do desempenho é a redundância de dados. As tabelas de dimensão são desnormalizadas, combinando deliberadamente atributos que podem ser divididos em várias tabelas em um sistema totalmente normalizado. Nos esquemas em estrela, isso significa que os dados descritivos são muitas vezes duplicados em várias linhas. Por exemplo, o nome de uma longa categoria de produto pode ser repetido milhões de vezes na tabela de dimensões do produto. Essa redundância significa que os esquemas em estrela exigem mais espaço de armazenamento do que modelos mais normalizados.

Menor nível de normalização

A escolha deliberada de reduzir a normalização no esquema em estrela (especialmente dentro das tabelas de dimensão) pode complicar os processos usados para carregar e manter o data warehouse. Como os dados não são altamente normalizados, há um maior risco de problemas de integridade dos dados se os processos não forem rigorosamente projetados para lidar com atualizações e inserções de forma consistente.

Pode ser ineficaz para ambientes com uso intenso de gravação

Esquemas em estrela são otimizados exclusivamente para operações de leitura (consultas analíticas). Em geral, elas são ineficientes para ambientes com uso intenso de gravação, como bancos de dados transacionais. Carregar, atualizar ou inserir grandes volumes de novos dados pode ser mais lento e trabalhoso do que em um sistema altamente normalizado por causa da redundância intencional e da necessidade de gerenciar tabelas grandes e de grande dimensão.

Esquema em estrela vs. esquema Snowflake: principais diferenças

Os dois modelos de dados dominantes no mundo de data warehousing são o esquema em estrela e o esquema Snowflake. A diferença fundamental é como cada um lida com a normalização dentro de suas tabelas de dimensão descritiva. A escolha entre as duas opções é uma decisão estratégica essencial da organização de dados que equilibra a velocidade analítica com a eficiência do armazenamento de dados e a complexidade da manutenção. O esquema em estrela é desnormalizado e mais rápido, porém menos eficiente, o que o torna melhor para consultas ad hoc. O esquema Snowflake é normalizado e mais lento, porém com maior eficiência, sendo melhor para dados hierarquizados complexos.

Nível de normalização e estrutura

No esquema em estrela, as dimensões são desnormalizadas (uma única tabela gigante) e conectadas diretamente à tabela central de fatos. No esquema Snowflake, as dimensões são normalizadas (divididas em várias tabelas sub-dimensionais) e criam uma estrutura hierarquizada.

Desempenho de consulta

O esquema em estrela é mais rápido, pois requer menos junções (apenas um salto) para a maioria das consultas analíticas. Isso o torna ideal para relatórios de alta velocidade. O esquema Snowflake é mais lento, pois requer junções multidimensionais e mais complexas entre tabelas de dimensão e sub-dimensão. Isso aumenta a sobrecarga de consultas.

Eficiência de armazenamento

O esquema em estrela é menos eficiente em relação ao armazenamento, pois ele armazena deliberadamente mais dados redundantes dentro dos grandes dados de dimensão desnormalizada, aumentando o tamanho do armazenamento. O esquema Snowflake oferece maior eficiência de armazenamento, pois sua normalização elimina a redundância dos dados, fazendo com que as tabelas de menor dimensão utilizem menos armazenamento geral.

Casos de uso e necessidades de negócios

O esquema em estrela é mais indicado para consultas ad hoc e dashboards de BI, consultados com frequência essenciais para o desempenho, que priorizam a simplicidade. O esquema Snowflake é melhor para dados hierarquizados e situações complexas em que as principais prioridades são a integridade dos dados e a redução da redundância ao mínimo.

Desenvolvendo e implementando um esquema em estrela

O desenvolvimento e a implementação de um esquema em estrela ideal para um data warehouse seguem um processo estruturado que começa com a identificação de quais itens de negócios trabalhar (fatos e dimensões) e termina carregando os dados em um banco de dados físico.

1. Identificar fatos e dimensões

Determinar o assunto a analisar e o contexto é o primeiro passo. Primeiro, as equipes precisam identificar o processo de negócios e a granularidade que desejam (o que representa uma única linha, um item de linha em um pedido de vendas). Isso separa os dados da estrutura principal do esquema em estrela: fatos e dimensões. Os fatos são as métricas quantitativas e mensuráveis, como receita e quantidade, que utilizam a tabela de fatos central. As dimensões são o contexto descritivo e qualitativo, como o cliente, o produto e a data em torno dos fatos.

2. Estruturar relacionamentos

O princípio fundamental do esquema em estrela é ser estruturado para a velocidade e a simplicidade de consultas. Para fazer isso, o modelo deve seguir estritamente o padrão das estrelas estruturando o design dimensional com tabelas individuais desnormalizadas. Ele requer uma ligação radial, ou seja, cada tabela de dimensões deve manter uma relação direta de um para muitos apenas com a tabela central de fatos. As tabelas de dimensão também devem ser isoladas e impedidas de estar vinculadas a outras tabelas de dimensão para eliminar caminhos complexos de junção multicamadas. 

3. Definir chaves e índices

Chaves e índices garantem que as tabelas possam interagir entre si de forma rápida e precisa. Um número único e simples (uma chave substituta) é atribuído como a chave primária (PK) de cada tabela de dimensão, como atribuição de um número de identificação temporário a cada cliente único. Os mesmos números de identificação são utilizados como chaves estrangeiras (foreign keys, FK) na grande tabela central de fatos. Por fim, os índices dessas chaves funcionam como a espinha dorsal de um livro, permitindo que o banco de dados salte diretamente para a página certa, em vez de ler todos os registros, o que acelera muito as consultas.

4. Carregar dados

Esse é o processo de preencher o esquema vazio com informações. Os dados são extraídos dos sistemas de origem, limpos e transformados para se adaptarem à nova estrutura dimensional. Esse processo, muitas vezes chamado de extração, transformação, carregamento (extract, transform, load, ETL) ou extração, carregamento, transformação (extract, load, transform, ELT), requer um design bem elaborado. Esse design deve lidar especificamente com a redundância intencional das tabelas de dimensões, garantindo que a atualização ou a inserção não impeça que as chaves estrangeiras da tabela de fato apontem corretamente para os registros correspondentes nas dimensões desnormalizadas.

Quando usar um esquema em estrela

Um esquema em estrela é otimizado para o desempenho. Em geral, ele é a escolha ideal na modelagem de dados quando o principal objetivo é maximizar a velocidade das consultas analíticas e simplificar a estrutura dos dados para uso imediato nos negócios. Ela fornece a melhor base para a maioria das necessidades de relatórios analíticos e BI. Veja, a seguir, os principais cenários em que o esquema em estrela é a melhor opção:

Quando o desempenho e a velocidade de consulta são prioridades

Os esquemas em estrela são melhor usados em ambientes com uso intenso de leitura, onde a maior prioridade é a obtenção de tempos de resposta rápidos para as consultas, muitas vezes porque o número mínimo de junções reduz drasticamente o tempo de execução das consultas.

Quando se concentra em ferramentas OLAP ou de BI para realizar análises multidimensionais

A estrutura dimensional simples do esquema mapeia perfeitamente a funcionalidade "slice and dice" dos cubos OLAP e plataformas de BI, tornando o modelo mais compatível e eficiente para essas ferramentas.

Quando simplicidade e facilidade de compreensão são importantes para usuários não técnicos

O layout intuitivo de estrela é fácil de entender por analistas de negócios e demais stakeholders não técnicos, o que promove a produção self-service de relatórios e data literacy (conhecimento da disciplina de dados).

Quando os relatórios exigem agregação consistente entre tabelas de fatos e dimensões

A estrutura direta de relacionamento um-para-muitos garante que os cálculos e as agregações analíticos (por exemplo, vendas totais por categoria) sejam realizados de forma consistente e confiável.

Quando os dados são relativamente estáveis e as operações intensas de gravação são mínimas

Como as dimensões desnormalizadas tornam o carregamento e as atualizações de dados mais complexos, o esquema em estrela é o mais adequado para ambientes em que os dados são carregados em lotes e o foco é ler dados históricos, e não atualizações frequentes em tempo real.

Conclusão

Existem várias razões para que o esquema em estrela permaneça o padrão Ouro na modelagem dimensional. De modo crítico, o esquema em estrela representa a principal ponte de arquitetura entre dados transacionais brutos e insights de negócios significativos. Entender e implementar de modo eficaz esse modelo em estrela, com suas dimensões desnormalizadas e uma tabela central de fatos, é fundamental para uma estratégia de armazenamento de dados bem-sucedida. Um esquema em estrela bem projetado traduz-se diretamente em análises de dados muito melhores com desempenho de consulta bem mais rápido e relatórios mais intuitivos. Em última análise, ao simplificar o acesso a métricas consistentes e agregadas, um esquema em estrela possibilita que as organizações realizem análises de dados com mais rapidez. Isso possibilita um processo decisório de negócios mais fundamentado e rápido, capaz de gerar vantagem competitiva.

Perguntas frequentes sobre esquema em estrela

Usar os dois esquemas, em estrela e Snowflake, em um data warehouse é uma prática comum e eficaz chamada de esquema híbrido ou modelo misto. Com frequência, essa prática é usada em arquiteturas de dados corporativos em grande escala. Ela permite que os designers apliquem seletivamente os melhores atributos de cada modelo para diferentes partes dos dados. Um esquema híbrido prioriza a facilidade e o desempenho do esquema em estrela nos casos em que é mais importante, bem como os benefícios de armazenamento e integridade do esquema Snowflake nos casos em que a complexidade dimensional o justifica.

O esquema em estrela se encaixa na modelagem de dados fornecendo o padrão de design central para a modelagem dimensional, que é a estratégia preferida para data warehousing e sistemas analíticos. Modelos altamente normalizados são para sistemas transacionais, mas, intencionalmente, o esquema em estrela usa uma estrutura desnormalizada para priorizar a velocidade e a simplicidade das consultas. Ele oferece uma visão de dados altamente intuitiva e orientada para os negócios, separando eventos mensuráveis em uma tabela central de fatos e atributos descritivos em tabelas de dimensões circundantes. Essa arquitetura garante que consultas analíticas complexas, que normalmente envolvem a agregação de métricas em vários contextos de negócios, possam ser executadas com junções mínimas e rápidas, o que o torna o projeto essencial para uma BI eficaz.

Um esquema em estrela é, fundamentalmente, um modelo Online Analytical Processing (OLAP). Ele foi especificamente desenvolvido para cargas de trabalho analíticas e de relatórios em um ambiente de data warehouse, que é a finalidade principal do OLAP. Não se trata de um modelo Online Transaction Processing (OLTP), que é usado para processamento de transações em tempo real e diário em bancos de dados operacionais.

O esquema em estrela obtém sua funcionalidade OLAP priorizando o desempenho de leitura em vez do desempenho de gravação, usando desnormalização para permitir uma rápida agregação e análise multidimensional de dados.