Esqueceram de Mim — Dimensão Degenerada

Murilo Cremon
Murilo Cremon
Published in
2 min readMay 27, 2020

Quem nunca assistiu o filme Esqueceram de mim? É o caso dessa Dimensão.

Esqueceram de mim

Não sabe o que é uma Dimensão Degenerada? Acredito que você já tenha até mesmo utilizado, porém não se deu conta de que se tratava de uma.

Muito comum, sairmos criando Tabela de Dimensões e inserindo campos nas Fatos sem termos a ciência do que estamos fazendo. Infelizmente, os tipos de dimensões não são abordados detalhadamente em livros e cursos, na maioria das vezes, esses meios só ensinam o contexto e onde colocar cada atributo em seu respectivo lugar.

Vamos ao ponto, sabe aquele atributo que você coloca na fato e geralmente não faz sentido em nenhuma dimensão? Pois é, possivelmente esse campo é uma dimensão degenerada.

Bora lá!

A Dimensão Degenerada (Degenerate Dimension, do inglês) é uma Dimensão que também compõe a Tabela Fato, porém não possui sua própria Tabela de Dimensão.

Esse tipo de Dimensão, é comumente utilizada quando a Tabela Fato necessita representar os dados em nível transacional com sua menor granularidade e que serão compostos em algum relatório, análise e até mesmo dashboards, como por exemplo, algum identificador do sistema de origem, número de pedido, venda etc.

Uma Degenerada, pode trazer performance para o modelo de dados, pois uma vez que este identificador esteja na fato, não precisa realizar junções entre tabelas Fatos e Dimensões para recuperar os dados, além de reduzir o número de Lookups dentro de um fluxo de ETL.

Imagine o seguinte cenário…

Um usuário quer analisar os dados de valor de venda por:

  • Data;
  • Produto;
  • Cliente;
  • Nº do Pedido.

Repare, para os seguintes campos de Data, Produto e Clientes, possuímos dimensões, agora o Nº do Pedido, podemos ver que está só, acaba não sendo inserido em nenhuma outra Dimensão, logo, será inserido dentro da própria fato, como uma Dimensão Degenerada.

Nesse caso do modelo, podemos ver que a Dimensão Degenerada, foi denominada de num_pedido. Outro ponto que podemos dizer, é que, essa Fato de Vendas é uma fato transacional, pois teremos os pedidos linha a linha.

Como dito acima, o num_pedido só está dentro do modelo, pois o usuário utilizará esse atributo em suas análises, seja para ver o menor grão, monitoramento ou que raios ele for fazer com isso.

Por favor, não confunda com Junk Dimension — Leia o post aqui.

--

--

Murilo Cremon
Murilo Cremon

Bem Vindo! Neste blog, compartilharei minhas experiências e conhecimentos sobre Business Intelligence, Visualização de Dados, Tableau e outros assuntos!