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.

 

Mas 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.

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:

Surrogate Key

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.

Surrogate Key

 

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
Deixe um comentário 🙂

Leia também: