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

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.

  • v
  • d
  • e
Modelagem  · Normalização  · Estrutura de banco de dados  · GDBS distribuídos  · Integridade referencial  · Álgebra relacional  · Cálculo relacional  · Banco de dados relacional  · Mapeamento objeto-relacional  · Modelo relacional  · Banco de dados objeto-relacional  · Processamento de transação
Conceitos
Banco de dados  · ACID  · CRUD  · Null  · Chave candidata  · Chave estrangeira  · Chave primária  · Superkey  · Surrogate key  · Axiomas de Armstrong  · NoSQL
Objetos
Relação (Tabela)  · Vista  · Trigger  ·  · Cursor  · Log de transação  · Transação  · Índice  · Procedimento armazenado  · Partição
Componentes
Controle de concorrência  · Dicionário de dados  · JDBC  · ODBC  · Linguagem de consulta  · Query optimizer  · Query plan
Funções
Gestão e automatização  · Otimização de consulta  · Replicação
Produtos disponíveis no mercado: Orientados a objeto (Comparativo)  · Relacionais (Comparativo)  · Orientados a documento  · NoSQL  · NewSQL