Diferença entre chave estrangeira e chave primária

o diferença chave entre chave estrangeira e chave primária é que chave estrangeira é uma coluna ou um conjunto de colunas que se refere a uma chave primária ou uma chave candidata de outra tabela, enquanto a chave primária é uma coluna ou um conjunto de colunas que pode ser usado para identificar exclusivamente uma linha em uma tabela.

Uma coluna ou um conjunto de colunas que pode ser usado para identificar ou acessar uma linha ou um conjunto de linhas em um banco de dados é chamado de chave. Uma chave primária em um banco de dados relacional é uma combinação de colunas em uma tabela que identifica exclusivamente uma linha da tabela. Chave estrangeira em um banco de dados relacional é um campo em uma tabela que corresponde à chave primária de outra tabela. A chave estrangeira é usada para cruzar tabelas de referência.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que é chave estrangeira
3. O que é a chave primária
4. Comparação lado a lado - chave estrangeira e chave primária em forma de tabela
5. Resumo

O que é chave estrangeira?

Chave estrangeira é uma restrição referencial entre duas tabelas. Ele identifica uma coluna ou um conjunto de colunas em uma tabela, chamada tabela de referência, que se refere a um conjunto de colunas em outra tabela, chamada tabela referenciada. A chave estrangeira ou as colunas na tabela de referência devem ser a chave primária ou uma chave candidata (uma chave que pode ser usada como chave primária) na tabela referenciada. Além disso, chaves estrangeiras permitem vincular dados em várias tabelas. Portanto, a chave estrangeira não pode conter valores que não aparecem na tabela a que se refere. Em seguida, a referência fornecida pela chave estrangeira ajuda a vincular informações em várias tabelas e isso se tornaria essencial nos bancos de dados normalizados. Várias linhas na tabela de referência podem se referir a uma única linha na tabela referenciada.

Figura 01: Mapeamento de chave estrangeira

No padrão ANSI SQL, a restrição FOREIGN KEY define chaves estrangeiras. Além disso, é possível definir as chaves estrangeiras ao criar a própria tabela. Uma tabela pode ter várias chaves estrangeiras e pode fazer referência a tabelas diferentes.

O que é a chave primária?

Chave primária é uma coluna ou uma combinação de colunas que define exclusivamente uma linha em uma tabela de um banco de dados relacional. Uma tabela pode ter no máximo uma chave primária. A chave primária impõe a restrição implícita NOT NULL. Portanto, uma coluna com chave primária não pode ter valores NULL nela. A chave primária pode ser um atributo normal na tabela que é garantido como exclusivo, como um número de previdência social, ou pode ser um valor exclusivo gerado pelo sistema de gerenciamento de banco de dados, como um GUID (Identificador Exclusivo Globalmente) no Microsoft SQL Server.

Figura 02: Chave primária

Além disso, a restrição PRIMARY KEY no ANSI SQL Standard define chaves primárias. Também é possível definir uma chave primária ao criar a tabela. Além disso, o SQL permite que a chave primária seja composta de uma ou mais colunas, e cada coluna incluída na chave primária é definida implicitamente como NOT NULL. Mas alguns sistemas de gerenciamento de banco de dados exigem que as colunas da chave primária sejam explicitamente NÃO NULAS.

Qual é a diferença entre chave estrangeira e chave primária?

 Chave estrangeira vs Chave primária

Chave estrangeira é uma coluna ou grupo de colunas em uma tabela de banco de dados relacional que fornece uma associação entre dados em duas tabelas. Chave primária é uma coluna de tabela de banco de dados relacional especial ou uma combinação de várias colunas que permite identificar exclusivamente todos os registros da tabela.
NULO
Chave estrangeira aceita valor NULL. O valor da chave primária não pode ser NULL.
Número de Chaves
A tabela pode ter várias chaves estrangeiras. A tabela pode ter apenas uma chave primária.
  Duplicação
As tuplas podem ter um valor duplicado para um atributo de chave estrangeira. Duas tuplas em uma relação não podem ter valores duplicados para um atributo de chave primária.

Resumo - Chave estrangeira vs Chave primária

A diferença entre chave estrangeira e chave primária é que a chave estrangeira é uma coluna ou um conjunto de colunas que se refere a uma chave primária ou uma chave candidata de outra tabela, enquanto a chave primária é uma coluna ou um conjunto de colunas que pode ser usado exclusivamente para identificar uma linha em uma tabela.

Referência:

1. "Chave estrangeira". Wikipedia, Wikimedia Foundation, 12 de maio de 2018. Disponível aqui  
2. "Chave Primária". Wikipedia, Wikimedia Foundation, 3 de abril de 2018. Disponível aqui 

Cortesia da imagem:

1. 'Mapeamento de Chaves Estrangeiras' Por MovGP0 - Trabalho próprio, (CC BY-SA 3.0) via Commons Wikimedia  
2.'Erd-id-as-primary-key 'Por UniCollab - Trabalho próprio, (CC BY-SA 3.0) via Commons Wikimedia