Slow Changing Dimension
- Erick Furst
- 24 de set.
- 3 min de leitura
Em projetos de Data Warehouse e Analytics, poucas decisões impactam tanto a qualidade das análises quanto a forma de tratar mudanças em dimensões. Slowly Changing Dimensions (SCD) são justamente o conjunto de técnicas que definem como preservar (ou substituir) o histórico de atributos de entidades como Cliente, Produto e Organograma. Este texto apresenta, de maneira objetiva e prática, os conceitos fundamentais de SCD — com foco nos tipos 1, 2 e 3, os mais utilizados e amplamente suportados por ferramentas de ETL.
Ao longo das seções, você verá exemplos simples e diretos que demonstram:
SCD Tipo 1: atualização destrutiva, sem histórico;
SCD Tipo 2: versionamento por linha, com datas de vigência ou indicador de “registro corrente”;
SCD Tipo 3: versionamento por colunas, útil para manter poucas alterações anteriores.
Para facilitar a leitura, adotamos a terminologia de uso corrente no mercado: SK (Surrogate Key) como chave técnica, chave de negócio (por exemplo, CPF) e atributos descritivos (Nome, UF). Os exemplos mostram como cada abordagem afeta a integridade histórica, a simplicidade de consulta, o custo operacional e a aderência às necessidades de negócio — como auditoria, comparações temporais e análises de churn ou migração (ex.: mudança de UF).
Este material é indicado para profissionais de engenharia de dados, BI, analytics e governança que precisam escolher conscientemente o tipo de SCD para cada dimensão, equilibrando performance, complexidade de manutenção e valor analítico. Se você já domina conceitos básicos de modelagem dimensional (fatos e dimensões) e está iniciando ou evoluindo um pipeline de dados corporativo, encontrará aqui um guia enxuto para decidir quando e por que aplicar cada técnica — e o que esperar de suas implicações no dia a dia.
Boa leitura e ótimos dados!
Slowly Changing Dimensions (Dimensões de modificação lenta) significa que os dados mudam sem uma base temporal. Não é uma mudança prevista por tempo.
Existem vários tipos de SCD (Tipo 0, 1, 2, 3, 4, 6 -híbridos-). Os mais comuns -Por mais comuns entenda também que são utilizados em ferramentas ETL- são o tipo 1, 2 e 3.
Abaixo um exemplo de cada tipo:
Tipo I:
Suponha que tenhamos uma dimensão Cliente com os seguintes atributos: CPF, Nome e UF, conforme tabela abaixo:

Onde SK é a Surrogate Key (Chave numérica seqüencial e sem significado de negócio), o CPF é a chave de negócio, nome atributo descritivo e UF um atributo que se deseja atualizar.
No SCD tipo I, quando há a mudança de um dado este valor é atualizado. Ou seja não é gerada nenhuma versão.
No caso abaixo o cliente Erick Furst mudou do estado de MG para o estado do RJ.
Observe que a SK permanece a mesma e possuímos somente uma ocorrência do cliente Erick Furst.

Tipo II:
O SCD tipo II permite o versionamento do registro.

Nesse cenário o SCD Tipo II faz uso de dois novos campos Data Início Vigência e Data Fim Vigência que irão permitir o registro da situação do cliente (Essa técnica também pode ser utilizada com o campo “Indicador de Registro Corrente” ou com o “Número da Versão”).
Observe que o cliente Erick Furst foi adicionado no dia 24/09/2012 (campo Data Início Vigência) e o campo Data Fim Vigência vazio ou com uma data que representa nulo (ex.: 31/12/1800 ou 31/12/9999) indica que este registro está vigente, ou seja é o registro corrente.
Suponhamos que o cliente Erick Furst mudou-se para o RJ no dia 25/09/2012. A nova versão será incluída com uma nova SK (Valor 2). E a versão mais antiga receberá uma Data Fim Vigência equivalente à entrada do novo registro e a versão mais nova ficará com a Data fim Vigência em aberto.

Tipo III:
O SCD tipo III permite o versionamento por coluna.
Exemplo, suponha a mesma situação acima do SCD tipo II, ao invés de versionar o registro a nova versão será incluída em colunas. A desvantagem desta técnica é que o versionamento é limitado à quantidade de colunas previstas para tal.
Ex.:



Comentários