Relacionamentos são associações estabelecidas entre entidades no modelo de dados. Eles representam como as entidades se conectam no mundo real.
Definição: “Um relacionamento é uma associação entre uma ou várias entidades.”
Um cliente pode estar associado a um empréstimo específico. Esta associação cria um relacionamento entre as entidades CLIENTE e EMPRÉSTIMO.
No Modelo Entidade-Relacionamento, relacionamentos são representados por losangos conectando as entidades:
┌─────────┐ ┌────────────┐
│ CLIENTE │ ──○ │ EMPRÉSTIMO │
└─────────┘ └────────────┘
O losango (○) representa o relacionamento, e as linhas conectam às entidades participantes.
Cada instância de uma entidade se relaciona com no máximo uma instância da outra entidade.
Exemplo: Um cidadão possui um CPF único.
┌─────────┐ ┌─────┐
│ PESSOA │ ──○ │ CPF │
└─────────┘ └─────┘
1 1
Uma instância da entidade A pode se relacionar com múltiplas instâncias da entidade B, mas cada instância de B se relaciona com apenas uma de A.
Exemplo: Um cliente pode ter vários empréstimos, mas cada empréstimo pertence a apenas um cliente.
┌─────────┐ ┌────────────┐
│ CLIENTE │ ──○ │ EMPRÉSTIMO │
└─────────┘ └────────────┘
1 N
Instâncias de ambas as entidades podem se relacionar com múltiplas instâncias da outra.
Exemplo: Alunos matriculados em disciplinas.
┌─────────┐ ┌─────────────┐
│ ALUNO │ ──○ │ DISCIPLINA │
└─────────┘ └─────────────┘
N N
Relacionamentos são implementados através de chaves estrangeiras (FK - Foreign Key).
CLIENTE (PK: id_cliente)
- id_cliente
- nome
- cpf (FK para PESSOA, opcional)
PESSOA (PK: cpf)
- cpf
- nome_completo
- data_nascimento
CLIENTE (PK: id_cliente)
- id_cliente
- nome
- endereco
EMPRESTIMO (PK: id_emprestimo)
- id_emprestimo
- valor
- data
- id_cliente (FK para CLIENTE)
ALUNO (PK: matricula)
- matricula
- nome
DISCIPLINA (PK: codigo)
- codigo
- nome
- carga_horaria
MATRICULA (PK: matricula + codigo)
- matricula (FK para ALUNO)
- codigo (FK para DISCIPLINA)
- semestre
- nota
ALUNO ─── MATRICULA ─── DISCIPLINA ─── PROFESSOR
1 N 1 1
N N
CLIENTE ─── PEDIDO ─── ITEM_PEDIDO ─── PRODUTO
1 1 N 1
1 N N
Relacionamentos são fundamentais para criar bancos de dados relacionais eficientes e consistentes.