Data Warehouse – Para que serve a Surrogate Key?

Em um banco de dados, as chaves são usadas para identificar as linhas de uma tabela e fazer as conexões entre elas. No Data Warehouse, temos a Surrogate Key nas dimensões, que é a chave utilizada para conectar a tabela na fato.

A Surrogate Key nada mais é que o campo de Primary Key da dimensão.

O que é uma Primary Key?

É a coluna utilizada para identificar cada linha na tabela de forma única. Quando você define uma coluna para ser Primary Key, está garantindo que a integridade dos dados não vai ser corrompida, porque ela deve ser sempre única, não repetindo em mais de uma linha.

Então o que é a Surrogate Key?

A Surrogate Key é uma chave artificial e auto incremental.

A palavra artificial vem do tipo, porque ela não existe em lugar nenhum, não está lá no transacional como a Natural Key, ela é criada no Data Warehouse.

E é auto incremental porque toda vez que é chamada, troca de número, então ela começa com 1 e vai indo para 2, 3, 4, e assim por diante.

Por exemplo:

Aqui temos uma dimensão de produto, com seus atributos e as chaves, a Surrogate Key, que é a chave auto incremental, e a Natural Key, que vem do legado.

E ela não é reutilizável. Se toda vez que você carregasse a dimensão fosse reutilizar ela, viraria uma zona e você não saberia mais o que está acontecendo.

Resumindo: ela é a famosa sequence do banco de dados ou a sequência no Excel.

Uma Surrogate Key nada mais é que um campo com as características de uma Primary Key, e é gerada automaticamente na hora da carga, quando você carrega a dimensão no ETL.

Na fato, essa Surrogate Key vai ser uma Foreign Key, a chave que serve para relacionar os dados entre duas tabelas, sempre apontando para uma Primary Key em outra tabela, que no caso da dimensão, vai ser a Surrogate Key.

Assim, a tabela fato receberá apenas o código da Surrogate Key da linha que ela está referenciando e não os atributos.

Por exemplo, se ela for referenciar o segundo produto do exemplo anterior, usará o código 2.

Conclusão:

A Surrogate Key

  • tem as características de uma Primary Key.
  • é utilizada para referenciar a dimensão na fato
  • é auto incremental
  • é uma chave artificial
  • é criada no Data Warehouse
  • não pode se repetir

3 thoughts on “Data Warehouse – Para que serve a Surrogate Key?”

  1. Descrição no Imagem muito bem resumida sobre o assunto. Parabéns !!

  2. Excelente!

    Pergunta:
    Eu tenho feito no Power Query nas dimensões algo que seria a Surrogate Key, mas na questão auto incremental, eu mudo um pouco:
    Eu crio uma chave concatenada na Dimensão, exemplo: na tabela de Benefícios no período, crio a chave SKU & Período e ela se relaciona a outra chave que concateno na Fato.

    Tive de dar este tratamento porque a Tabela de calendário é governada pela Contabilidade, que por regra de negócio, pode estornar faturamentos do mês que são reconhecidos somente no próximo mês, mas os benefícios não podem ser os do próximo mês, eles devem estar relacionados ao mês que o faturamento deveria ter ocorrido.

    A chave concatenada poderia ser chamada de uma Surrogate Key?

    Grato,

    Udo

Leave a Comment