10.1 Tipo de Chaves#

Já falamos sobre chaves primárias e chaves estrangeiras e sua importância em estruturas de dados e em bancos de dados especificamente. Para fins de projetos de BI/DW, alguns tipos de chaves são relevantes.

Chave Natural ou de Negócio#

É uma chave de um sistema ou banco de dados que identifica um registro de forma única. Em muitos casos é simplesmente chamada de ID ou CÓDIGO. Essas chaves entram na tabela dimensão como chaves de negócio mas não devem ser usadas como chaves da dimensão. Para isso usaremos as chaves de dimensão.

Table 1 A coluna ID é uma chave natural ou de negócio.#

ID

Nome

Cidade

20

João da Silva

Rio de Janeiro

25

Carla Santos

Curitiba

30

Roberto Almeida

São Paulo

Table 2 Na tabela dimensão, uma nova chave é criada.#

ID da dimensão

ID Cliente

Nome

Cidade

1

20

João da Silva

Rio de Janeiro

2

25

Carla Santos

Curitiba

3

30

Roberto Almeida

São Paulo

Chave Primária vs Candidata vs Alternativa#

É possível que na modelagem não seja possível determinar a priori qual/quais as chaves primárias de uma tabela fonte. Neste primeiro momento, todo atributo único pode ser uma chave candidata. Após definirmos uma chave como primária, as demais tornam-se chaves alternativas. No exemplo da Tabela XX, a coluna ID seria a chave primária e o nome uma chave alternativa.

Chave Surrogate (SK)#

Uma prática desejada para criar a chave de dimensão é utilizar uma chave que não tem nenhum significado de negócio mas serve para gerar combinações únicas de atributos, a chamada chave surrogate. Existem algumas formas de criá-la:

  • Chave Composta: quando fazemos uma composição de diferentes colunas na tabela fonte, ela é também chamada de chave composta. Um ponto positivo é que possível extrair algum significado dessa chave, porém nem sempre é fácil garantir que as combinações sejam únicas.

Exemplo de Chave Composta

  • Chave incremental: uma chave auto-gerada pelo sistema de forma incremental. É o exemplo da Tabela acima, onde a chave é uma sequência de valores inteiros. Um possível problema dessa chave na prática é que há uma limitação de valores possíveis em tabelas muito grandes.

  • Chave Hasheada: outra forma de gerar uma chave única a partir de diferentes campos de dimensões é utilizar uma função hash que transforma diferentes valores em uma cadeia de caracteres única. Se por um lado essa chave pode causar um pouco de estranheza para um usuário de negócio, o ponto positivo é que ela permite virtualmente infinitas combinações.

Chave Estrangeira (FK)#

Uma chave estrangeira é a chave em uma tabela de fatos que aponta para uma SK de uma tabela de dimensão.