O que você vai
saber fazer.
Objetivos da Aula
Identificar os conceitos de OLTP, OLAP, Data Warehouse, ETL, Star Schema, Fato, Dimensão e SCD.
Explicar por que o banco de dados transacional não atende consultas analíticas complexas e o que o DW resolve.
Aplicar os 4 passos de Kimball (processo, granularidade, dimensões, fatos) para esboçar um Star Schema simples.
Comparar as abordagens Kimball e Inmon e avaliar qual é mais adequada conforme o contexto e maturidade analítica da empresa.
Projetar o Star Schema da SoundByte identificando a tabela fato, as dimensões necessárias e o tipo de SCD para cada dimensão.
A query que derrubou
o sistema.

OLTP vs OLAP

Dois sistemas com propósitos opostos. OLTP registra. OLAP analisa. Misturá-los é a receita do desempenho ruim.

Data Warehouse

Repositório central para dados históricos e sumarizados. Otimizado para leitura analítica — não para gravação transacional.

ETL

Extract, Transform, Load. O processo que copia, limpa e consolida dados dos sistemas operacionais para o DW.

Star Schema

Modelo dimensional com uma tabela fato central (métricas) e tabelas dimensão ao redor (contexto). Simples, rápido, legível.

Granularidade

O nível de detalhe de cada linha na tabela fato. Declarar o grão é o segundo passo de Kimball — e o mais crítico.

SCD

Slowly Changing Dimensions. O que acontece com a dimensão Cliente quando o endereço muda? Três estratégias com consequências diferentes.

A pergunta do CFO

Compare a receita do segundo trimestre deste ano com o mesmo período do ano passado — por gênero, por país e por tipo de dispositivo.

O que aconteceu

O analista rodou a query no banco de produção da SoundByte. Em 40 segundos, o sistema de streaming travou para 80 mil usuários simultâneos.

A analogia

Uma loja é organizada para facilitar a venda. Um armazém, para facilitar o inventário. O mesmo dado com estruturas diferentes para propósitos diferentes.

A lição: o banco de dados transacional foi construído para velocidade de gravação. Ele não foi construído para velocidade de leitura analítica. A solução não é uma query melhor — é uma arquitetura diferente.
Dois sistemas.
Dois propósitos.
Comparativo — OLTP vs OLAP
Característica OLTP — Transacional OLAP — Analítico
UsuárioOperacionalAnalista de Negócio
FocoOperações diáriasTomada de decisão
Orientado porAplicaçãoAssunto / Negócio
DadosAtualizados e detalhadosHistórico e sumarizado
AtendeMilhares de usuáriosCentenas de usuários
HistóricoAté 24 meses5 a 10 anos
Exemplo SoundByteBD de produção (Aula 2)Data Warehouse + Star Schema
Origem
Fontes
OLTP
Processo
ETL
Área temp.
Staging
Armazenagem
Data
Warehouse
Data Marts
Visões por
Área
Consumo
BI /
Analytics
A metáfora da refinaria
O dado bruto do OLTP é o petróleo. O ETL é a refinaria. O DW é o combustível processado, pronto para gerar energia analítica.
Começando simples
Nem toda empresa precisa de DW. Uma réplica do banco de produção pode ser o primeiro passo — separa a carga analítica sem complexidade adicional.
O risco de misturar
Queries analíticas em banco transacional = bloqueio de tabelas, lentidão no app, usuários insatisfeitos. O que aconteceu na SoundByte.
Nem tudo é
Data Warehouse.
Data Warehouse
Estruturado e SQL
Ideal para dados relacionais, métricas de negócio e relatórios históricos. Baseado em tabelas normalizadas ou dimensionais. Alta performance em queries agregadas.
Data Lake
Flexível e Raw
Armazena dados em formato bruto — estruturado, semiestruturado e não-estruturado. Adequado para Machine Learning e exploração. Risco de virar um "data swamp".
Data Lakehouse
O Híbrido
Combina a flexibilidade do Data Lake com a governança e performance do DW. Arquiteturas como Delta Lake e Iceberg popularizaram essa abordagem.
Data Mesh
Descentralizado
Cada domínio de negócio (Marketing, Vendas, Produto) é dono do seu produto de dados. Elimina o gargalo da equipe centralizada de dados.
Abordagem Kimball
  • Bottom-Up: Data Marts → DW
  • Modelagem dimensional (Star Schema)
  • Implementação mais rápida
  • Menor custo inicial
  • Consistência de dados é um desafio
  • Ideal para empresas médias e projetos ágeis
Abordagem Inmon
  • Top-Down: EDW (3NF) → Data Marts
  • Modelagem relacional normalizada
  • Implementação mais lenta
  • Maior custo inicial
  • Consistência e governança mais robustas
  • Ideal para grandes corporações com muitas fontes
Medallion Architecture
Bronze → Silver → Gold. Abordagem moderna popularizada pela Databricks — dados brutos, limpos e agregados em camadas progressivas. Compatível com dbt e Spark.
Data Vault
Hubs, Links e Satélites. Modelo intermediário focado em auditabilidade e flexibilidade histórica. Menos adotado, mais robusto para ambientes muito voláteis.
Na prática — SoundByte
Para o contexto desta aula, usaremos Kimball. É o modelo mais didático, mais utilizado em empresas de médio porte e o que melhor ilustra o conceito de Star Schema.
Onde os dados
ganham contexto.

Um Data Warehouse consolida dados de várias fontes em uma visão integrada e histórica, preparada para consultas analíticas complexas. Ao contrário do banco transacional, o DW é otimizado para leitura, não para escrita.

1
Fontes — Sistemas OLTP
Os bancos de dados dos sistemas transacionais: ERP, CRM, plataforma de e-commerce, sistemas de ponto de venda. No caso da SoundByte: o banco relacional que registra pedidos, clientes e faixas.
2
ETL — Extract, Transform, Load
Ferramenta ou pipeline que extrai dados das fontes, aplica transformações (limpeza, deduplicação, padronização de formatos) e carrega no destino. Ferramentas populares: dbt, Apache Airflow, Fivetran, Talend.
3
Staging Area — Área de Transição
Área intermediária onde os dados brutos chegam antes de serem processados. Serve de buffer entre a extração e a carga final no DW. Os dados aqui ainda não estão limpos nem modelados.
4
Data Warehouse — Repositório Central
O coração analítico. Dados históricos, integrados, limpos e modelados em Star Schema. Otimizado para queries agregadas de alta complexidade. Pode ser on-premise (PostgreSQL, SQL Server) ou cloud (BigQuery, Redshift, Snowflake).
5
Data Marts — Visões por Área
Subconjuntos do DW orientados por função de negócio. O Data Mart de Marketing vê dados de clientes e campanhas. O de Financeiro vê receita e margens. Cada área enxerga o que precisa.
DW na nuvem
BigQuery (Google), Redshift (AWS) e Snowflake eliminaram a necessidade de infraestrutura própria. Hoje, qualquer empresa pode ter um DW escalável pagando por query executada.
ELT vs ETL
A tendência moderna é ELT: carregar os dados brutos no DW cloud primeiro e transformar depois (usando dbt). A capacidade de processamento do DW substitui o servidor de transformação.
O modelo que torna
as perguntas possíveis.
FATO_VENDA venda_sk data_sk cliente_sk faixa_sk canal_sk receita qtd_streams duracao_seg DIM_TEMPO data_sk ano · trimestre mes_nome dia_semana DIM_CLIENTE cliente_sk nome pais genero faixa_etaria scd_versao ② DIM_CANAL canal_sk tipo_disp plataforma pais_acesso segmento DIM_FAIXA faixa_sk titulo · artista genero_musical
Surrogate Key (SK/PK) Chave Estrangeira (FK) Métrica Atributo descritivo
Tabela Fato
  • Contém as métricas numéricas do negócio
  • Uma linha = um evento de negócio (um stream, uma venda)
  • Chaves estrangeiras (FK) para cada dimensão
  • Responde "quanto", "quantas vezes", "qual valor"
Tabelas Dimensão
  • Contêm os atributos descritivos do contexto
  • Não são normalizadas (denormalizadas de propósito)
  • Respondem "quem", "o quê", "quando", "onde", "como"
  • São a base dos filtros e agrupamentos analíticos

O que acontece com a dimensão DIM_CLIENTE quando um cliente muda de país? O endereço antigo some ou a empresa mantém os dois? Esse dilema é real em toda empresa com base de clientes — e tem três respostas possíveis.

Tipo 1 — Sobrescrever
O dado antigo é substituído. O histórico se perde. Relatórios de vendas passadas passam a usar o endereço atual do cliente, mesmo que a compra tenha sido feita quando ele morava em outro país. Simples, mas arriscado para análise histórica.
Tipo 2 — Nova versão ✦ Recomendado
Uma nova linha é criada com o registro atualizado. A linha antiga continua no banco com datas de validade. O SK (scd_versao) diferencia as versões. Histórico preservado. Implementação mais complexa, mas correto.
Tipo 3 — Coluna adicional
Uma nova coluna armazena o valor anterior. Ex.: pais_anterior ao lado de pais_atual. Histórico limitado (apenas uma mudança). Útil quando só importa o "antes" e "depois".
Surrogate Key (SK)
As dimensões usam chaves substitutas (SK) em vez das chaves naturais do OLTP. Isso garante rastreabilidade histórica e independência do sistema de origem.
Dimensões não normalizadas
DIM_FAIXA contém artista diretamente — no OLTP isso seria uma tabela separada. No DW, a desnormalização acelera queries e simplifica joins.
Star vs Snowflake
No Snowflake Schema, as dimensões são normalizadas em sub-dimensões. Mais espaço eficiente, mas queries mais lentas e complexas. O Star Schema é preferido na maioria dos casos.
Quatro perguntas.
Um modelo.
1
Processo ≠ Departamento
Selecionar o Processo de Negócio
O que queremos entender? Na SoundByte: as transações de venda de faixas e assinaturas registradas no sistema de pedidos.
2
O que representa uma linha?
Declarar a Granularidade
Cada linha da tabela fato representa um item de um pedido (uma faixa comprada em uma transação). Esse é o grão mais fino disponível.
3
Quem, o quê, quando, onde?
Identificar as Dimensões
Quem comprou? DIM_CLIENTE. O quê? DIM_FAIXA. Quando? DIM_TEMPO. Como/onde? DIM_CANAL.
4
O que medimos?
Identificar o Fato
As métricas numéricas: receita (valor em USD), qtd_streams (quantidade de reproduções) e duracao_seg (tempo de escuta).
FATO_VENDA
SK venda_sk
FK data_sk
FK cliente_sk
FK faixa_sk
FK canal_sk
M receita
M qtd_streams
M duracao_seg
DIM_TEMPO
SK data_sk
ano
trimestre
mes_nome
dia_semana
DIM_CLIENTE
SK cliente_sk
nome
pais
genero
faixa_etaria
scd_versao (tipo 2)
DIM_FAIXA
SK faixa_sk
titulo
artista
genero_musical
DIM_CANAL
SK canal_sk
tipo_disp
plataforma
pais_acesso
segmento
🎯 Teste — A Pergunta do CFO
"Compare a receita do segundo trimestre deste ano com o mesmo período do ano passado, por gênero, por país e por tipo de dispositivo."
Com este modelo, a query é possível?

Q2 / ano → DIM_TEMPO com trimestre = 2 e comparação entre anos
Por gênero → DIM_CLIENTE com campo genero
Por país → DIM_CLIENTE com campo pais
Por tipo de dispositivo → DIM_CANAL com campo tipo_disp
Receita → FATO_VENDA com métrica receita

Sim — o modelo suporta exatamente essa pergunta. Se pais ou genero não existissem nas dimensões, a pergunta seria impossível de responder com precisão.
1
Identifique a Tabela Fato
Com base no modelo relacional da SoundByte (Aula 2), qual tabela representa eventos de negócio com métricas numéricas? Resposta: ITENS_PEDIDO — cada linha é um produto comprado, com preço e quantidade.
2
Identifique as Dimensões
Para cada FK ou campo descritivo na fato, pergunte: quem? o quê? quando? onde? CLIENTES → DIM_CLIENTE. FAIXAS + ARTISTAS → DIM_FAIXA (denormalizada). data_pedido → DIM_TEMPO. Canal de acesso → DIM_CANAL.
3
Construa o Modelo em Planilha
Use uma planilha online para representar o Star Schema. Crie uma aba por tabela (FATO, DIM_TEMPO, DIM_CLIENTE, DIM_FAIXA, DIM_CANAL). Liste as colunas, marque PK/FK/Métrica e identifique qual tipo de SCD cada dimensão exige.
4
Valide com a Pergunta do CFO
Teste o modelo: ele responde a pergunta original? "Receita do Q2 por gênero, país e tipo de dispositivo." Se alguma dimensão estiver faltando, inclua-a. Apresente o resultado para o grupo.
A IA sugere.
Você decide.
O que a IA faz bem
  • Sugerir dimensões para um processo de negócio descrito em texto
  • Identificar atributos relevantes para cada dimensão
  • Recomendar o tipo de SCD mais adequado para cada caso
  • Gerar DDL do Star Schema a partir de uma descrição do negócio
  • Explicar a diferença entre Star Schema e Snowflake Schema com exemplos
O que o humano deve decidir
  • A granularidade — a IA não conhece o volume de dados nem o custo de storage
  • Quais perguntas de negócio o modelo precisa responder (requisitos reais)
  • Se o SCD Tipo 2 vale o custo operacional para aquela dimensão específica
  • Se uma dimensão deve ser desnormalizada ou mantida como Snowflake
  • A validação de que o modelo responde as perguntas do CFO de verdade
Exemplo de prompt — SCD com IA
Contexto: Estou modelando o Data Warehouse da SoundByte, uma plataforma de streaming de música. Tenho uma DIM_CLIENTE com os campos: cliente_sk, nome, pais, genero, faixa_etaria. Pergunta: Como eu deveria modelar a Dimensão Cliente para manter o histórico de mudanças de endereço (país) ao longo dos anos, sem perder a precisão dos relatórios de vendas passados? Por favor: explique o conceito de SCD Tipo 2, mostre a estrutura da tabela com os campos adicionais necessários e dê um exemplo de como ficaria o registro de um cliente que mudou do Brasil para Portugal em 2024.
Por que esse prompt funciona: ele dá contexto real (tabela existente, campos), formula uma pergunta de negócio específica (preservar histórico de países) e pede um exemplo concreto. Quanto mais contexto, mais precisa e utilizável é a resposta.
Estrutura DIM_CLIENTE com SCD Tipo 2 — resposta esperada
-- SCD Tipo 2: nova linha para cada mudança de atributo CREATE TABLE DIM_CLIENTE ( cliente_sk SERIAL PRIMARY KEY, -- Surrogate Key cliente_id INTEGER, -- NK — ID original do OLTP nome VARCHAR(100), pais CHAR(2), genero CHAR(1), faixa_etaria VARCHAR(20), -- Campos de controle SCD Tipo 2 ↓ dt_inicio DATE NOT NULL, -- Quando este registro entrou em vigor dt_fim DATE, -- NULL = registro atual is_atual BOOLEAN DEFAULT TRUE -- Flag de facilidade para filtrar ); -- Cliente que mudou de Brasil para Portugal em 2024: -- Linha 1 (histórica): dt_inicio='2019-01-10', dt_fim='2024-06-01', is_atual=FALSE, pais='BR' -- Linha 2 (atual): dt_inicio='2024-06-01', dt_fim=NULL, is_atual=TRUE, pais='PT' -- Relatório de vendas até 2023 usa SK da linha 1 → pais='BR' ✓ -- Relatório de vendas de 2025 usa SK da linha 2 → pais='PT' ✓
Natural Key (NK) vs Surrogate Key (SK)
O SK é gerado pelo DW. O NK é o ID original do sistema de origem. Com SCD Tipo 2, o mesmo cliente pode ter vários SKs diferentes — um por versão histórica.
A armadilha do Tipo 1
Usar SCD Tipo 1 (sobrescrever) é a escolha mais comum e a mais perigosa: relatórios históricos passam a mostrar o endereço atual do cliente, distorcendo qualquer análise geográfica por período.
IA para modelagem
A IA pode gerar o DDL completo de um Star Schema em segundos. Mas ela não conhece o volume de dados, os SLAs de carga, nem quais perguntas o negócio vai fazer nos próximos 5 anos. Isso é trabalho do arquiteto.