O que é uma chave estrangeira?
Os bancos de dados são compostos de tabelas nas quais dados ou informações são armazenados. Uma chave estrangeira é um mecanismo em um banco de dados relacional que permite a associação dessas tabelas ou que as tabelas tenham um relacionamento entre si. Existem características únicas que uma chave estrangeira deve ter. Deve ser uma coluna ou um grupo de colunas em uma tabela cujos valores estabelecem um relacionamento com valores em outra tabela no mesmo banco de dados.
Uma chave estrangeira garante que as linhas em uma tabela correspondam às linhas de outra tabela, estabelecendo, assim, relacionamentos ou referências em todo o banco de dados. A tabela que contém a chave estrangeira é o "filho" e a outra tabela é o "pai". É possível que o valor de uma chave estrangeira seja nulo ou vazio e efetivamente faça referência ou se relacione com o que é conhecido como chave primária da tabela na qual está localizada. Isso é conhecido como auto-referência.
É preciso entender bem o que é uma chave primária antes de tentar compreender completamente o conceito por trás das chaves estrangeiras. Por exemplo, se houver duas tabelas em um banco de dados que armazenam informações sobre livros publicados para um site que vende livros, uma tabela pode ser a tabela de editores e a outra a tabela de livros. A tabela dos editores pode consistir em duas colunas, uma chave primária que é sempre exclusiva para cada registro e uma coluna de nome do editor. Um mínimo de três colunas compõe a tabela de livros, contendo a chave primária ou o identificador exclusivo de cada livro, os títulos dos livros e uma coluna através da qual um relacionamento seria estabelecido com a tabela dos editores. Essa coluna seria a chave estrangeira.
A chave primária da tabela de publicadores pode ser algo como "pub_id" com valores de: P01, P02, P03 etc. Um relacionamento seria estabelecido com a tabela de livros se contivesse uma coluna pub_id com os mesmos valores. Essa seria a chave estrangeira que relacionaria essa tabela filha ao pai - a tabela de publicadores.
Uma chave estrangeira pode, no entanto, ter um nome de coluna diferente da chave pai à qual ela faz referência. O bom entendimento do funcionamento das chaves primárias e estrangeiras é essencial para manter a integridade referencial. Bancos de dados muito grandes compostos por muitas tabelas ou que envolvem uma tabela de junção apresentam mais de um tipo de relacionamento, o que pode complicar a tarefa de trabalhar com chaves estrangeiras.