Quando se fala em banco de dados relacional, tudo gira em torno de como as tabelas se conectam. Um banco de dados mal estruturado pode gerar dados inconsistentes, difíceis de consultar e manter. Um bem planejado, por outro lado, começa com uma noção clara de relacionamento entre tabelas, especialmente em termos de multiplicidade e cardinalidade. Esses dois conceitos definem o tipo e a quantidade de ligação entre os registros.

O que é um relacionamento entre tabelas?

Em um banco de dados relacional, cada tabela representa uma entidade: um cliente, um pedido, um produto, etc. Mas na vida real, essas entidades se relacionam. Um cliente faz pedidos, um pedido contém produtos, um produto pode estar em vários pedidos. Esses vínculos entre entidades viram relacionamentos no banco de dados.

Exemplo de relacionamento entre tabelas com chaves estrangeiras em um banco de dados relacional
Exemplo de relacionamento entre tabelas com chaves estrangeiras

Esses relacionamentos não são arbitrários. Eles seguem regras baseadas na natureza dos dados e nos requisitos do sistema. É aí que entram cardinalidade e multiplicidade.

Multiplicidade vs. Cardinalidade: Qual a diferença?

Os dois termos estão ligados, mas são usados com focos diferentes.

  • Multiplicidade descreve quantos elementos de uma entidade podem se associar a elementos de outra.
  • Cardinalidade, em modelagem relacional, geralmente se refere a tipos específicos de relacionamento com base nessa contagem.

Cardinalidade

Cardinalidade se refere ao número de instâncias de uma entidade que podem ou devem se relacionar com uma instância de outra entidade. As principais cardinalidades são:

Um-para-um (1:1):

  • Cada instância de uma entidade se relaciona com exatamente uma instância de outra entidade e vice-versa.
  • Exemplo: Cada pessoa tem um número de CPF único e cada CPF é atribuído a apenas uma pessoa.

Um-para-muitos (1:N):

  • Uma instância de uma entidade pode se relacionar com várias instâncias de outra entidade, mas cada instância da segunda entidade se relaciona com apenas uma instância da primeira.
  • Exemplo: Um professor pode ensinar várias turmas, mas cada turma tem apenas um professor principal.

Muitos-para-muitos (M:N):

  • Várias instâncias de uma entidade podem se relacionar com várias instâncias de outra entidade.
  • Exemplo: Estudantes podem se matricular em vários cursos e cada curso pode ter vários estudantes matriculados.

Multiplicidade

Multiplicidade é um termo mais geral que se refere ao número de instâncias de uma entidade que podem se relacionar com instâncias de outra entidade. Ela é expressa como um intervalo (por exemplo, 0..1, 1.., 0..), onde:

  • 0 significa que a participação é opcional.
  • 1 significa que a participação é obrigatória.
  • * (asterisco) indica que pode haver um número ilimitado de instâncias.

Por exemplo:

  • 1..1: Exatamente uma instância deve existir.
  • 0..1: Zero ou uma instância (participação opcional).
  • 1..*: Pelo menos uma instância (participação obrigatória).
  • 0..*: Zero ou mais instâncias (participação opcional).

Exemplos

  1. Relacionamento 1:1 com multiplicidade 0..1 para ambas as entidades:
    • Uma pessoa pode ou não ter um passaporte. Cada passaporte é atribuído a uma única pessoa.
  2. Relacionamento 1:N com multiplicidade 1.. e 0..**:
    • Um autor deve ter escrito pelo menos um livro (1..). Um livro pode ter sido escrito por um ou mais autores (0..).
  3. Relacionamento M:N com multiplicidade 0.. para ambas as entidades*:
    • Um aluno pode se matricular em vários cursos (0..). Cada curso pode ter vários alunos matriculados (0..).

Esses conceitos ajudam a definir as regras de negócios e garantem a integridade dos dados em um sistema de banco de dados.

E as chaves estrangeiras?

Para determinar quais tabelas receberão as chaves estrangeiras nos exemplos de multiplicidade, vamos analisar cada exemplo e identificar como as relações entre as tabelas serão estruturadas.

Relacionamento 1:1 com multiplicidade 0..1 para ambas as entidades

Exemplo: Uma pessoa pode ou não ter um passaporte. Cada passaporte é atribuído a uma única pessoa.

  • Tabelas envolvidas:
    • Pessoa (id_pessoa, nome, etc.)
    • Passaporte (id_passaporte, número, etc.)
  • Chave estrangeira:
    • A tabela Passaporte recebe uma chave estrangeira id_pessoa que referencia a tabela Pessoa.
Relacionamento entre tabelas em banco de dados relacional
Chave estrangeira Id_pessoa da tabela Pessoa

Relacionamento 1:N com multiplicidade 1..*

Exemplo: Um autor deve ter escrito pelo menos um livro (1..). Um livro deve ter sido escrito por um ou mais autores (1..).

  • Tabelas envolvidas:
    • Autor (id_autor, nome, etc.)
    • Livro (id_livro, título, etc.)
    • Autor_Livro (id_autor, id_livro)
  • Chave estrangeira:
    • Nesse caso, como se trata de uma relação muitos-para-muitos, é necessária uma tabela intermediária Autor_Livro.
    • A tabela Autor_Livro terá duas chaves estrangeiras:
      • id_autor que referencia a tabela Autor.
      • id_livro que referencia a tabela Livro.
Tabela intermediária em relacionamento *..*
Tabela intermediária em relacionamento *..*

Nessa relação, para existir um autor, é necessário que ele tenha escrito pelo menos um livro e para que exista um livro, é necessário que ele tenha sido escrito por um autor.

Relacionamento M:N com multiplicidade 0..* para ambas as entidades

Exemplo: Um aluno pode se matricular em vários cursos (0..*). Cada curso pode ter vários alunos matriculados (0..*).

  • Tabelas envolvidas:
    • Aluno (id_aluno, nome, etc.)
    • Curso (id_curso, nome, etc.)
    • Matricula (id_aluno, id_curso)
  • Chave estrangeira:
    • Assim como no exemplo anterior, uma tabela intermediária Matricula é usada para representar a relação muitos-para-muitos.
    • A tabela Matricula terá duas chaves estrangeiras:
      • id_aluno que referencia a tabela Aluno.
      • id_curso que referencia a tabela Curso.
Tabela intermediária em relacionamento 0..*
Tabela intermediária em relacionamento 0..*

Nesse relacionamento, os alunos podem ser cadastrados sem que tenha relação com algum curso, ou seja, o aluno não precisa se matricular em algum curso previamente e os cursos podem existir sem que haja alunos matriculados neles. Um bom exemplo desse tipo de relação são as plataformas digitais de cursos online, onde, geralmente a pessoa pode se cadastrar na plataforma e, somente depois escolher um ou mais cursos disponíveis para se matricular.

Resumo das Tabelas com Chaves Estrangeiras

  • Exemplo 1 (1:1): Passaporte recebe id_pessoa como chave estrangeira.
  • Exemplo 2 (1:N e N:M): Tabela intermediária Autor_Livro com chaves estrangeiras id_autor e id_livro.
  • Exemplo 3 (M:N): Tabela intermediária Matricula com chaves estrangeiras id_aluno e id_curso.

Cada relacionamento determina como as tabelas se conectam por meio de chaves estrangeiras, garantindo a integridade referencial entre elas.

Por que isso importa?

Entender a multiplicidade define:

  • Como projetar tabelas e chaves estrangeiras.
  • Como manter integridade referencial.
  • Como montar consultas SQL corretas.
  • Como garantir que o banco espelhe a realidade.

Gostou desse conteúdo? então aproveite e aprenda mais. Adquira esse E-book e tenha acesso ao melhor conteúdo sobre banco de dados relacional

E-book Banco de dados para quem não conhece banco de dados

Conclusão

Multiplicidade e cardinalidade não são detalhes técnicos — são a espinha dorsal do modelo relacional. Errar nesse ponto compromete toda a estrutura. Pensar nesses conceitos no início do projeto poupa trabalho, evita retrabalho e garante dados limpos e coerentes. Em banco de dados, conexão é tudo — e entender como conectar as tabelas é o primeiro passo para um sistema robusto.

Gostou do conteúdo? Assine e fique por dentro das novidades