(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Data Warehouse
Data Warehouse 2 min

Como modelar um data warehouse com esquema em estrela

João Barros 20 de June de 2023 2 min de leitura

Um data warehouse bem modelado responde a perguntas de negócio em segundos. O esquema em estrela — uma tabela de factos rodeada de dimensões — é o padrão mais usado para o conseguir.

Pré-requisitos

  • Noções básicas de SQL e de bases de dados relacionais.
  • Um motor de base de dados (SQL Server, PostgreSQL ou equivalente).
  • Uma fonte de dados transacional para modelar (por exemplo, vendas).

Passo 1: Identificar o processo de negócio

Escolhe o processo a analisar — por exemplo, vendas. Cada linha da tabela de factos será uma transação de venda.

Como modelar um data warehouse com esquema em estrela

Passo 2: Definir a tabela de factos

A tabela de factos guarda as métricas (medidas) e as chaves para as dimensões:

CREATE TABLE fact_vendas (
    data_key    INT NOT NULL,
    produto_key INT NOT NULL,
    cliente_key INT NOT NULL,
    quantidade  INT,
    valor       DECIMAL(12,2)
);

Passo 3: Criar as dimensões

As dimensões descrevem o contexto (quem, o quê, quando):

CREATE TABLE dim_produto (
    produto_key INT PRIMARY KEY,
    nome        VARCHAR(120),
    categoria   VARCHAR(60)
);

Repete para dim_cliente e dim_data. Usa chaves surrogate inteiras (terminadas em _key) em vez das chaves de negócio.

Passo 4: Ligar factos e dimensões

Cada chave da tabela de factos aponta para a chave primária da dimensão correspondente. É esta ligação simples que dá o formato de estrela.

Verificar o resultado

Faz uma consulta de teste juntando os factos às dimensões:

SELECT p.categoria, SUM(f.valor) AS total
FROM fact_vendas f
JOIN dim_produto p ON p.produto_key = f.produto_key
GROUP BY p.categoria;

Conclusão

Com uma tabela de factos e algumas dimensões tens a base de qualquer relatório rápido. Que processo de negócio da tua organização ganharia mais com um modelo em estrela?

Partilhar: