Objetivos

O que são Relacionamentos?

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.”

Exemplo Básico

Um cliente pode estar associado a um empréstimo específico. Esta associação cria um relacionamento entre as entidades CLIENTE e EMPRÉSTIMO.

Representação Gráfica

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.

Tipos de Relacionamentos

Relacionamento 1:1 (Um para Um)

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

Relacionamento 1:N (Um para Muitos)

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

Relacionamento N:N (Muitos para Muitos)

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

Implementação em Tabelas

Relacionamentos são implementados através de chaves estrangeiras (FK - Foreign Key).

1:1 - Chave Estrangeira Opcional

CLIENTE (PK: id_cliente)
- id_cliente
- nome
- cpf (FK para PESSOA, opcional)

PESSOA (PK: cpf)
- cpf
- nome_completo
- data_nascimento

1:N - Chave Estrangeira no Lado “Muitos”

CLIENTE (PK: id_cliente)
- id_cliente
- nome
- endereco

EMPRESTIMO (PK: id_emprestimo)
- id_emprestimo
- valor
- data
- id_cliente (FK para CLIENTE)

N:N - Tabela Associativa

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

Exemplos Práticos

Sistema Acadêmico

ALUNO ─── MATRICULA ─── DISCIPLINA ─── PROFESSOR
  1              N              1           1
     N                       N

Sistema de Vendas

CLIENTE ─── PEDIDO ─── ITEM_PEDIDO ─── PRODUTO
  1            1              N             1
     1         N                          N

Cardinalidade e Participação

Benefícios dos Relacionamentos

Relacionamentos são fundamentais para criar bancos de dados relacionais eficientes e consistentes.