Integridade referencial
Este artigo não cita fontes confiáveis. (Agosto de 2021) |
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.