Integridade referencial

Num banco de dados relacional, quando um registro aponta para o outro, dependente deste, há de se fazer regras para que o registro "pai" não possa ser excluído se ele tiver "filhos" (as suas dependências).

O relacionamento é feito através das chaves estrangeiras das tabelas, avaliadas antes da execução do comando de delete, insert ou update.

Exemplo

editar

Em um banco de dados há uma tabela, chamada ESTADO, onde há uma relação com os nomes dos estados brasileiros, exemplo:

UF NOME_ESTADO
RS Rio Grande do Sul
SC Santa Catarina
... ...

Em outra tabela, chamada CIDADE, há uma relação com o nome dos municípios brasileiros e o estado a que pertecem, exemplo:

CIDADE UF
Porto Alegre RS
Florianópolis SC
... ...

Se nesta segunda tabela for declarada uma relação com a primeira através da coluna "UF", e tentarmos excluir o registro correspondente ao estado "Rio Grande do Sul"; essa operação não deve ser permitida, pois há registros na tabela cidades (no caso "Porto Alegre") que dependem da existência do registro que se pretente excluir, pois estão relacionadas o estado "RS". Essa referência à tabela ESTADO, existente na tabela CIDADE através da coluna UF tem o nome de chave estrangeira.

A integridade referencial visa garantir a não corrupção dos dados, de modo a não possibilitar um registro "filho" sem um registro "pai". A tentativa de exclusão (ou alteração da chave primária -- no caso, a coluna "UF") de um registo "pai" que possui registros "filhos" a ele vinculados é chamada de violação de chave estrangeira.