Integridade referencial

Origem: Wikipédia, a enciclopédia livre.

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 | editar código-fonte]

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.