Sobes.tech
Middle

O que é a integridade das ligações de referência?

sobes.tech IA

Resposta da IA

A integridade referencial é uma propriedade dos dados numa base de dados relacional que garante que as referências entre tabelas permanecem válidas. Ela previne os seguintes problemas:

  • Eliminar uma linha da tabela "pai" à qual fazem referência linhas na tabela "filho".
  • Alterar a chave primária na tabela "pai" à qual fazem referência linhas na tabela "filho" sem atualizar essas referências.
  • Inserir uma linha na tabela "filho" com uma referência a uma chave primária inexistente na tabela "pai".

Implementa-se através de chaves externas (FOREIGN KEY).

Exemplos de restrições para chaves externas:

  • ON DELETE CASCADE: Ao eliminar uma linha na tabela pai, as linhas correspondentes na tabela filho também são eliminadas.
  • ON DELETE SET NULL: Ao eliminar uma linha na tabela pai, a chave externa correspondente na tabela filho é definida como NULL.
  • ON DELETE RESTRICT: A eliminação de uma linha na tabela pai é proibida se existirem referências a ela na tabela filho.
  • ON UPDATE CASCADE: Ao atualizar a chave primária na tabela pai, as chaves externas correspondentes na tabela filho também são atualizadas.
-- Exemplo de tabela "users" (pai)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(255) NOT NULL
);

-- Exemplo de tabela "orders" (filho) com chave externa
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
        ON DELETE CASCADE /* Exemplo de restrição */
        ON UPDATE CASCADE /* Exemplo de restrição */
);