Diferença entre chave primária e chave estrangeira

Em um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS), os dados são armazenados em tabelas. À medida que uma quantidade enorme de dados é armazenada nas tabelas, há sempre a possibilidade de que os dados se tornem desorganizados ou contenham duplicatas. Além disso, quando precisamos recuperar os dados de acordo com nossa exigência desses dados enormes, a tarefa se torna difícil. O conceito de chave é usado no RDBMS para identificar registros na tabela de milhares de linhas de dados. Além disso, o uso de Key ajuda a estabelecer o relacionamento entre as tabelas para que os dados possam ser consultados entre várias tabelas. Portanto, a Chave no Sistema de Gerenciamento de Banco de Dados Relacional mantém a integridade no nível da tabela e a integridade referencial. Neste artigo, examinaremos em detalhes a diferença entre a chave primária e a chave estrangeira.

A Chave Primária em uma tabela identifica registros exclusivamente e a Chave Estrangeira refere-se à Chave Primária de outra tabela. Tomemos o exemplo de duas tabelas: Tabelas Funcionário e Salário para entender os conceitos de Chave Primária e Chave Externa. Se a tabela Employee tiver a Chave Primária como Employee_ID, uma coluna Employee_ID deverá estar presente na tabela Salary, pois ela precisa ter um relacionamento entre essas duas tabelas com uma Chave Estrangeira na tabela Salary, que pode se referir à Chave Primária de a tabela Employee.

Comparação cara a cara entre chave primária e chave estrangeira (infográficos)

Abaixo estão as 6 principais diferenças entre chave primária e chave estrangeira:

Diferenças de chave entre chave primária e chave estrangeira

Vamos discutir algumas das principais diferenças entre chave primária e chave estrangeira:

  • A Chave Primária identifica os registros em uma tabela exclusivamente, enquanto a Chave Estrangeira é usada para vincular as tabelas, ou seja, refere-se à Chave Primária de outra tabela.
  • A coluna Chave Primária em uma tabela não pode ter valores Nulos e sempre deve ter valores exclusivos. Mas a chave estrangeira na tabela pode conter valores nulos e também pode ter valores duplicados.
  • Uma tabela pode ter apenas uma Chave Primária, enquanto que pode haver mais de uma Chave Externa para uma tabela.
  • O índice é criado para a Chave Primária automaticamente, enquanto, para a Chave Externa, os índices não são criados automaticamente.
  • É fácil excluir a restrição de chave estrangeira, embora se refira à chave primária. Mas a exclusão da restrição de chave primária pode criar registros com registros filhos sem nenhum registro pai.

Tabela de comparação entre chave primária e chave estrangeira

A tabela abaixo resume as comparações entre chave primária e chave estrangeira:

Chave primáriaChave estrangeira
A Chave Primária de uma tabela no RDBMS pode ser uma única coluna ou pode incluir mais de uma coluna, usada para identificar cada linha de uma tabela exclusivamente. No caso da Chave Primária que consiste em mais de uma coluna, os dados de cada coluna são usados ​​para decidir a exclusividade de uma linha. Uma tabela no RDMBS pode ter apenas uma chave primária.A chave estrangeira pode ser uma coluna única ou pode consistir em mais de uma coluna em uma tabela que é usada para se referir à chave primária de outra tabela. A chave estrangeira pode ser usada para vincular as tabelas no RDBMS. Diferente do atributo Chave Primária, uma tabela no RDBMS pode ter mais de uma Chave Externa.
Existem poucas condições que devem ser atendidas para que uma coluna seja uma Chave Primária em uma tabela. Uma das condições é que a Chave Primária deve conter um valor exclusivo para cada registro. Portanto, uma tabela no RDBMS não pode ter valores duplicados para duas linhas para o atributo Chave Primária.Diferente da Chave Primária de uma tabela no RDBMS, a Chave Externa pode conter valores duplicados. Isso permite ter valores duplicados para as linhas de uma tabela para o atributo de chave estrangeira.
A outra condição de uma coluna que satisfaça ser uma Chave Primária é que ela não deve conter valores Nulos.Mas a chave estrangeira de uma tabela no RDBMS pode conter valores nulos.
Uma Chave Primária é especificada ao definir a tabela e é obrigatório definir a Chave Primária.Diferentemente da Chave Primária, não há uma definição de tabela específica para designar uma Chave como Chave Externa.
Não é possível excluir a restrição de chave primária de uma tabela pai com a chave estrangeira da tabela filho referente a ela. Portanto, a tabela filho precisa ser excluída primeiro antes de excluir a tabela pai.Porém, se precisarmos excluir a restrição de chave estrangeira em uma tabela, ela poderá ser excluída da tabela filho, mesmo que se refira à chave primária da tabela pai.

A Chave Primária é indexada automaticamente, ou seja, a Chave Primária é armazenada em um índice para uma tabela e esse índice ajuda na administração do requisito de exclusividade e, por isso, os valores da chave estrangeira são facilmente referidos nos valores correspondentes da Chave Primária.No caso de uma chave estrangeira, os índices não são criados automaticamente e, geralmente, o administrador do banco de dados os define.

Conclusão

As Chaves Primária e Estrangeira não apenas implementam diferentes tipos de integridade, mas também criam relacionamentos entre tabelas. As chaves Primária e Externa também garantem que as colunas criadas para o relacionamento devam conter valores correspondentes e registros exclusivos sejam mantidos na tabela. O sistema de gerenciamento de banco de dados relacional funciona de maneira eficiente devido à presença da chave primária e da chave estrangeira.

A restrição de chave primária ajuda a aplicar a integridade dos dados automaticamente, pois impede a inserção ou atualização de linha de dados duplicada. Ao usar as restrições de chave, também impede a exclusão da linha da tabela de chaves primárias da tabela pai, para que nenhum registro filho seja criado para o qual não haja registro pai. Além disso, quando uma linha em referência à chave primária é excluída ou atualizada na tabela pai, a integridade referencial é mantida pela Chave Externa. As chaves têm um papel vital no estabelecimento de links entre as tabelas do banco de dados e também dentro da tabela.

Artigos recomendados

Este é um guia para Chave Primária vs Chave Estrangeira. Aqui discutimos as diferenças entre chave primária e chave estrangeira com infográficos e tabela de comparação. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. WebLogic vs WebSphere
  2. ROLAP vs MOLAP vs HOLAP
  3. Jenkins vs GoCD
  4. Dívida versus financiamento de ações