🔒 Integridade Referencial

Introdução

Em bancos de dados relacionais, as tabelas frequentemente possuem relacionamentos entre si.

Para garantir que esses relacionamentos permaneçam corretos, utilizamos o conceito de Integridade Referencial.

📌 A integridade referencial garante que os relacionamentos entre tabelas permaneçam consistentes e válidos.

O que é Integridade Referencial?

Integridade referencial é um conjunto de regras que impede a existência de registros relacionados de forma incorreta.

Essas regras são aplicadas através das chaves estrangeiras (Foreign Keys).

Por que ela é Importante?

Exemplo de Relacionamento

Cliente ID Cliente
Maria 1
Carlos 2

ID Pedido ID Cliente
1001 1
1002 2

O que é um Registro Órfão?

Um registro órfão ocorre quando um registro referencia outro que não existe mais.

Exemplo:

Um pedido aponta para um cliente que foi excluído da tabela Cliente.

📝 A integridade referencial impede esse tipo de situação.

Exemplo de Violação

Considere a tabela Cliente contendo apenas os IDs 1 e 2.


INSERT INTO pedido
VALUES (1003, 10);
          

O valor 10 não existe na tabela Cliente.

O MySQL rejeitará a operação.

Funcionamento da Chave Estrangeira


CREATE TABLE cliente (
    id_cliente INT PRIMARY KEY,
    nome VARCHAR(100)
);

CREATE TABLE pedido (
    id_pedido INT PRIMARY KEY,
    id_cliente INT,
    FOREIGN KEY (id_cliente)
    REFERENCES cliente(id_cliente)
);
          

O banco verifica automaticamente se o cliente informado existe.

Exclusão de Registros Relacionados

Quando um registro pai possui registros filhos relacionados, o banco pode agir de diferentes formas.

Ação Descrição
RESTRICT Impede a exclusão.
CASCADE Exclui os registros relacionados.
SET NULL Define o valor como NULL.
NO ACTION Mantém o comportamento padrão.

Exemplo com ON DELETE CASCADE


CREATE TABLE pedido (
    id_pedido INT PRIMARY KEY,
    id_cliente INT,
    FOREIGN KEY (id_cliente)
    REFERENCES cliente(id_cliente)
    ON DELETE CASCADE
);
          

Ao excluir um cliente, todos os pedidos relacionados também serão removidos.

Exemplo com ON DELETE SET NULL


FOREIGN KEY (id_cliente)
REFERENCES cliente(id_cliente)
ON DELETE SET NULL
          

Quando o cliente for removido, o campo ficará com valor NULL.

Integridade Referencial no Dia a Dia

Sistema Relacionamento
Loja Virtual Cliente → Pedido
Escola Aluno → Matrícula
Hospital Médico → Consulta
Biblioteca Usuário → Empréstimo

Benefícios

Boas Práticas

Resumo da Aula

🎓 Aula concluída! Agora você compreende como a Integridade Referencial protege os relacionamentos e garante a consistência das informações em um banco de dados.