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.
[editar] Exemplo
Em um banco de dados há uma tabela 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 há uma relação com o nome dos munícipios 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 haver como existir 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.