🔗 Chave Estrangeira (Foreign Key)

Introdução

Em bancos de dados relacionais, as tabelas geralmente possuem relações entre si.

Para criar essas ligações utilizamos a Chave Estrangeira (Foreign Key).

📌 A chave estrangeira é responsável por conectar tabelas e garantir a consistência dos dados.

O que é Chave Estrangeira?

A chave estrangeira é um campo que referencia a chave primária de outra tabela.

Seu objetivo é estabelecer relacionamentos entre registros de tabelas diferentes.

Ela garante que apenas valores válidos sejam armazenados.

Exemplo do Mundo Real

Imagine um sistema de vendas com uma tabela de clientes e outra de pedidos.

Cliente ID Cliente
Maria 1
Carlos 2

Cada pedido precisa indicar a qual cliente pertence.

Tabela de Pedidos

ID Pedido ID Cliente Valor
1001 1 R$ 250,00
1002 2 R$ 480,00

O campo ID Cliente é uma chave estrangeira que aponta para a tabela de clientes.

Representação no DER


CLIENTE
---------
PK id_cliente
nome

PEDIDO
---------
PK id_pedido
FK id_cliente
valor
          

A sigla FK significa Foreign Key.

Criando uma Chave Estrangeira


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

CREATE TABLE pedido (
    id_pedido INT PRIMARY KEY,
    valor DECIMAL(10,2),
    id_cliente INT,
    FOREIGN KEY (id_cliente)
    REFERENCES cliente(id_cliente)
);
          

Como Funciona?

O MySQL verifica se o valor informado na chave estrangeira existe na tabela principal.

Se o valor não existir, a inserção será rejeitada.

📝 Isso evita registros órfãos e mantém a consistência do banco de dados.

Exemplo de Erro

Suponha que existam apenas clientes com IDs 1 e 2.


INSERT INTO pedido
VALUES (1003, 300.00, 10);
          

O comando falhará porque o cliente de código 10 não existe.

Relacionamentos Mais Comuns

Relacionamento Descrição
1 para 1 Um registro se relaciona com apenas um registro.
1 para N Um registro pode possuir vários relacionados.
N para N Vários registros se relacionam com vários registros.

Vantagens da Chave Estrangeira

Diferença entre PK e FK

Chave Primária (PK) Chave Estrangeira (FK)
Identifica um registro. Relaciona registros.
Não se repete. Pode se repetir.
Existe na própria tabela. Referencia outra tabela.
Não aceita NULL normalmente. Pode aceitar NULL dependendo da regra.

Boas Práticas

Resumo da Aula

🎓 Aula concluída! Agora você compreende como a Chave Estrangeira conecta tabelas e garante a integridade dos relacionamentos em um banco de dados.