Índice:
Definição - O que significa Chave Estrangeira?
Uma chave estrangeira é uma coluna ou grupo de colunas em uma tabela de banco de dados relacional que fornece um link entre dados em duas tabelas. Ele atua como uma referência cruzada entre tabelas porque faz referência à chave primária de outra tabela, estabelecendo um vínculo entre elas.
A maioria das tabelas em um sistema de banco de dados relacional adere ao conceito de chave estrangeira. Em bancos de dados complexos e data warehouses, os dados em um domínio devem ser adicionados em várias tabelas, mantendo assim um relacionamento entre eles. O conceito de integridade referencial é derivado da teoria das chaves estrangeiras.
Chaves estrangeiras e sua implementação são mais complexas que chaves primárias.
Techopedia explica Chave Estrangeira
Para qualquer coluna que atue como uma chave estrangeira, um valor correspondente deve existir na tabela de links. Cuidado especial deve ser tomado ao inserir e remover dados da coluna de chave estrangeira, pois uma exclusão ou inserção descuidada pode destruir o relacionamento entre as duas tabelas.
Por exemplo, se houver duas tabelas, cliente e pedido, um relacionamento pode ser criado entre eles, introduzindo uma chave estrangeira na tabela de pedidos que se refere ao ID do cliente na tabela de clientes. A coluna ID do cliente existe nas tabelas de clientes e pedidos. O ID do cliente na tabela de pedidos se torna a chave estrangeira, referindo-se à chave primária na tabela de clientes. Para inserir uma entrada na tabela de pedidos, a restrição de chave estrangeira deve ser atendida. Uma tentativa de inserir um ID do cliente que não está presente na tabela do cliente falha, mantendo assim a integridade referencial da tabela.
Algumas ações referenciais associadas a uma ação de chave estrangeira incluem o seguinte:
- Cascata: quando as linhas na tabela pai são excluídas, as colunas de chave estrangeira correspondentes na tabela filho também são excluídas, criando uma exclusão em cascata.
- Definir nulo: quando uma linha referenciada na tabela pai é excluída ou atualizada, os valores da chave estrangeira na linha de referência são definidos como nulos para manter a integridade referencial.
- Gatilhos: ações referenciais são normalmente implementadas como gatilhos. De várias maneiras, as ações de chave estrangeira são semelhantes aos gatilhos definidos pelo usuário. Para garantir a execução adequada, as ações referenciais ordenadas às vezes são substituídas por seus gatilhos equivalentes definidos pelo usuário.
- Definir padrão: essa ação referencial é semelhante a "definir nulo". Os valores da chave estrangeira na tabela filha são configurados para o valor da coluna padrão quando a linha referenciada na tabela pai é excluída ou atualizada.
- Restringir: esta é a ação referencial normal associada a uma chave estrangeira. Um valor na tabela pai não pode ser excluído ou atualizado, desde que referido por uma chave estrangeira em outra tabela.
- Nenhuma ação: esta ação referencial é semelhante em função à ação "restringir", exceto que uma verificação sem ação é executada somente após a tentativa de alterar a tabela.