Como modelar um data warehouse com esquema em estrela
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.

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?