O que é integridade referencial e como um programador pode evitar esses problemas?
Regra de integridade referencial
Basicamente, a integridade referencial diz que um banco de dados não pode ter valores de chave estrangeira não pareados. Uma chave externa é uma coluna em uma tabela de banco de dados que possui valores que estão na coluna de chave primária, um identificador exclusivo que identifica uma linha em uma tabela, em outra tabela. Por exemplo, considere uma tabela de banco de dados chamada "departamento", na qual há uma coluna chamada "número do departamento" como chave primária. Está relacionado a outra tabela chamada "funcionário", em que "número do departamento" é uma chave externa. Um empregado não pode pertencer a um determinado departamento se o "número de departamento" correspondente ainda não existir na tabela "departamento". Se o programa que adiciona funcionários fortalecer a integridade referencial, qualquer tentativa de inserir um funcionário em um departamento desconhecido não será possível.
Vantagens
Além de garantir que essas referências entre os dados estejam intactas e válidas, a definição da integridade referencial de um banco de dados tem muitas vantagens. A integridade referencial usa o código existente em um mecanismo de banco de dados, em vez de solicitar aos programadores que escrevam códigos de programas personalizados desde o início. Como resultado, o desenvolvimento de programas é mais rápido, menos propenso a erros e consistente entre vários programas aplicativos que acessam o banco de dados.
Consequências
Infelizmente, as linguagens de programação geralmente não possuem os mecanismos para aplicar a integridade referencial e, mesmo quando um sistema de gerenciamento de banco de dados suporta esses mecanismos, os programadores não os utilizam. A conseqüência de ignorar a integridade referencial é que o código de programação que tem defeitos, ou erros, apresenta mau funcionamento e é difícil de estender.
Aplicação
Os programadores podem aplicar integridade referencial e evitar registros "órfãos" em um banco de dados, ativando-os em um relacionamento entre duas tabelas. No Microsoft Access, por exemplo, aplicar integridade referencial significa que qualquer operação que a viole é rejeitada. Esses tipos de operações incluem atualizações no banco de dados que alteram o objeto de uma referência ou exclusões que excluem o objeto de uma referência. Além disso, o Microsoft Access também tem um conjunto de opções, conhecido como opções "em cascata". Essas opções permitem que as atualizações referenciais e excluídas sejam propagadas pelo banco de dados, para que todas as linhas relacionadas sejam alteradas da mesma maneira.