O que é uma chave estrangeira em um banco de dados relacional?

Chaves estrangeiras em uma tabela em um banco de dados relacional localizam informações em uma tabela relacionada.

Um exemplo simples

Um exemplo simples de uma chave estrangeira em um banco de dados é uma tabela primária "Student" (Student) com Student_ID como sua chave primária. Na tabela secundária relacionada "Course_Enrollment" (Course_Matriculation) com Course_ID como chave primária, para cada curso no qual um aluno se inscreveu, a chave estrangeira Student_ID da tabela "Student" é exibida.

Regra de integridade referencial

A regra de integridade referencial declara que qualquer valor de chave estrangeira não nulo em uma tabela secundária deve referir-se a um valor de chave primária em sua tabela primária no banco de dados. No exemplo da Etapa 1, não faria sentido no banco de dados ter um aluno matriculado em um curso quando não houver informações sobre o aluno na tabela "Aluno". Essa regra impõe a consistência em um banco de dados.

Eliminações em cascata

Cada registro secundário em um relacionamento de chave estrangeira deve ter um registro primário correspondente de acordo com a regra de integridade referencial. Uma exclusão em cascata deve ocorrer sempre que um registro em uma tabela primária for excluído, o que também remove todos os registros correspondentes do banco de dados. No exemplo da Etapa 1, a remoção de um aluno da tabela Student no banco de dados também removerá todas as ocorrências dos registros de inscrição desse aluno na tabela Course_Enrollment.