Sobes.tech
Junior

Como é que a chave estrangeira influencia a integridade dos dados na base de dados?

sobes.tech IA

Resposta da IA

A chave estrangeira (foreign key) garante a integridade referencial dos dados, assegurando que os valores na coluna de uma tabela (tabela filha) correspondam aos valores na coluna de outra tabela (tabela pai).

Impacto na integridade dos dados:

  1. Proíbe a adição de registos na tabela filha com um valor que não exista na coluna correspondente da tabela pai. Tentar inserir uma linha que faz referência a um registo pai inexistente causará um erro.
  2. Restringe a eliminação de registos na tabela pai que são referenciados por registos na tabela filha. O comportamento ao tentar eliminar depende da ação configurada (ON DELETE):
    • RESTRICT (por padrão): Proíbe a eliminação.
    • CASCADE: Elimina os registos dependentes na tabela filha.
    • SET NULL: Define o valor NULL na coluna correspondente da tabela filha (se a coluna permitir NULL).
    • NO ACTION: Semelhante a RESTRICT na verificação padrão, mas pode diferir em tempo de execução.
  3. Restringe a atualização de registos na tabela pai. O comportamento ao tentar atualizar também depende da ação configurada (ON UPDATE):
    • RESTRICT (por padrão): Proíbe a atualização.
    • CASCADE: Atualiza o valor correspondente nos registos dependentes da tabela filha.
    • SET NULL: Define o valor NULL na coluna correspondente da tabela filha (se a coluna permitir NULL).
    • NO ACTION: Semelhante a RESTRICT na verificação padrão, mas pode diferir em tempo de execução.

A chave estrangeira ajuda a prevenir o aparecimento de "registos órfãos" e garante que as ligações entre as tabelas permaneçam corretas.