Chave Estrangeira
Objetivos
- Compreender o conceito de chave estrangeira.
- Entender sua função na integridade referencial.
- Aplicar chaves estrangeiras em exemplos práticos.
O que é uma Chave Estrangeira?
Uma chave estrangeira (foreign key) é um campo ou conjunto de campos em uma tabela que faz referência à chave primária de outra tabela (ou da mesma tabela, em auto-relacionamentos). Ela garante a integridade dos dados, impedindo que registros “órfãos” sejam criados.
Por que é importante?
- Mantém a consistência entre tabelas relacionadas.
- Evita dados desconectados (por exemplo, um aluno em uma turma inexistente).
- Permite a navegação e junção eficiente de dados.
Termos Importantes
- Chave Referenciada: a chave primária que está sendo apontada.
- Tabela dependente (filha): contém a chave estrangeira.
- Tabela referenciada (pai): é referenciada pela chave estrangeira.
Exemplo Prático
Considere duas tabelas: ALUNO e TURMA.
| ALUNO | TURMA |
|---|---|
| matricula (PK) | numero_turma (PK) |
| nome | nome |
| turma (FK) | … |
No exemplo acima, o campo turma em ALUNO é uma chave estrangeira que referencia numero_turma em TURMA.
CREATE TABLE turma (
numero_turma INT PRIMARY KEY,
nome VARCHAR(50)
);
CREATE TABLE aluno (
matricula INT PRIMARY KEY,
nome VARCHAR(50),
turma INT,
FOREIGN KEY (turma) REFERENCES turma(numero_turma)
);
Exemplo de Dados nas Tabelas
TURMA
| numero_turma | nome |
|---|---|
| 1 | Matemática |
| 2 | História |
| 3 | Biologia |
ALUNO
| matricula | nome | turma |
|---|---|---|
| 101 | Ana Souza | 1 |
| 102 | Bruno Lima | 2 |
| 103 | Carla Mendes | 1 |
| 104 | Diego Pereira | 3 |
| 105 | Elisa Martins | 2 |
Diagrama de Relacionamento
erDiagram
TURMA ||--o{ ALUNO : possui
TURMA {
int numero_turma PK
string nome
}
ALUNO {
int matricula PK
string nome
int turma FK
}
Legenda: PK = chave primária, FK = chave estrangeira
Benefícios da Chave Estrangeira
- Garante integridade referencial automaticamente.
- Facilita consultas entre tabelas relacionadas (JOINs).
- Permite modelar relacionamentos 1:N e N:N.