Chaves Substitutas ou Artificiais ou Surrogate Key são:

É um campo auto incremento que define a chave primária da tabela.
É uma chave númerica que normalmente é auto-incremental. É utilizada para colocar de forma genérica a chave primária de uma entidade, sendo que uma chave natural pode se tornar muito complexa, impactando em termos de perfomance no banco de dados.
Chaves Naturais:
É um dado ou conjunto de dados que são naturais para determinada entidade.
Exemplo:
Imagine por exemplo quando alguém define o CPF como chave primária e de repente é admita a situação de um CPF adicional ou ainda a possibilidade de usar o CPF do cônjuge. São típicas mudanças de negócio que “quebram” o modelo e que uma chave artificial poderia evitá-la.
Em contrapartida, o uso de chaves naturais normalmente economiza joins e pode levar a situações mais performáticas. Imagine por exemplo uma tabela de lançamentos contábeis que utilize o CPF como FK ? Para recuperar os lançamentos de um determinado CPF, basta apenas consultar uma única tabela e um JOIN a menos é necessário.

Pessoal, Bom Dia

Lá na FIAP – Faculdade de Informática e Administração Paulista. O pessoal possui algumas dúvidas de conceito para Chaves de banco de dados. Então resolvi centralizar essas informações aqui>

Chaves Substitutas ou Artificiais ou Surrogate Key são:

É um campo auto incremento que define a chave primária da tabela.

É uma chave númerica que normalmente é auto-incremental. É utilizada para colocar de forma genérica a chave primária de uma entidade, sendo que uma chave natural pode se tornar muito complexa, impactando em termos de perfomance no banco de dados.

Chaves Naturais:

É um dado ou conjunto de dados que são naturais para determinada entidade.

Exemplo:

Imagine por exemplo quando alguém define o CPF como chave primária e de repente é admita a situação de um CPF adicional ou ainda a possibilidade de usar o CPF do cônjuge. São típicas mudanças de negócio que “quebram” o modelo e que uma chave artificial poderia evitá-la.

Em contrapartida, o uso de chaves naturais normalmente economiza joins e pode levar a situações mais performáticas. Imagine por exemplo uma tabela de lançamentos contábeis que utilize o CPF como FK ? Para recuperar os lançamentos de um determinado CPF, basta apenas consultar uma única tabela e um JOIN a menos é necessário.

O restante tais como: Foreigns Keys, Chave Primária simples e Composta eu não falarei. Acho que não faz sentido! 😉

Abraços!