Objetivos

  • Compreender o conceito de relacionamentos entre entidades.
  • Identificar os tipos de relacionamentos: 1:1, 1:N, N:N.
  • Aprender a representação gráfica e implementação em tabelas.
  • Explorar exemplos práticos de relacionamentos.

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.

  • Um PESSOA → Um CPF
  • Um CPF → Uma PESSOA
┌─────────┐     ┌─────┐
│ 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.

  • Um CLIENTE → Muitos EMPRÉSTIMOS
  • Um EMPRÉSTIMO → 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.

  • Um ALUNO → Muitas DISCIPLINAS
  • Uma DISCIPLINA → Muitos ALUNOS
┌─────────┐     ┌─────────────┐
│  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
  • Um aluno pode se matricular em várias disciplinas
  • Uma disciplina pode ter vários alunos matriculados
  • Cada disciplina é ministrada por um professor
  • Um professor pode ministrar várias disciplinas

Sistema de Vendas

CLIENTE ─── PEDIDO ─── ITEM_PEDIDO ─── PRODUTO
  1            1              N             1
     1         N                          N
  • Um cliente pode fazer vários pedidos
  • Cada pedido pertence a um cliente
  • Um pedido pode conter vários itens
  • Cada item refere-se a um produto
  • Um produto pode estar em vários pedidos

Cardinalidade e Participação

  • Cardinalidade: Número mínimo e máximo de ocorrências (1:1, 1:N, N:N)
  • Participação:
    • Total: Toda instância deve participar (linha obrigatória)
    • Parcial: Participação é opcional (linha pode ser nula)

Benefícios dos Relacionamentos

  • Integridade referencial: Garante consistência entre tabelas
  • Evita redundância: Dados compartilhados corretamente
  • Consultas complexas: Permite JOINs e análises avançadas
  • Manutenção: Mudanças centralizadas

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