Você ainda não é assinante?

Relacionamento 1:N

Relacionamentos do tipo 1:N (um para muitos) ocorrem quando uma ocorrência de uma entidade pode se relacionar com várias ocorrências de outra entidade. No contexto do banco de dados isso significa que para um registro em uma tabela podem existir vários registros relacionados em outra.

Veja abaixo alguns exemplos desse tipo de relacionamento:

Produtos x Marcas Clientes x Dependentes Departamentos x Funcionários

Note que do lado “N” do relacionamento há sempre um campo que aponta para a chave primária do lado “1”. Por exemplo, o produto possui o ID_Marca, que receberá o ID da marca à qual ele pertence.

Essa é uma característica dos relacionamentos 1:N. Na tabela do lado “N” cria-se uma “chave estrangeira” que aponta para a chave primária da tabela “1”.

Relacionamento N:N

Os relacionamentos do tipo N:N (muitos para muitos) ocorrem quando vários registros de uma tabela se relacionam a vários registros de outra. Ou seja, em nenhum dos lados há exclusividade no relacionamento.

Diferente do que ocorre no 1:N, nessas situações não é possível que uma tabela tenha uma referência direta à outra, pois isso indicaria que cada registro está relacionado unicamente a um da outra tabela.

Surge nesse caso uma tabela intermediária que relaciona as outras duas, como podemos ver nos exemplos abaixo:

Filmes x Atores Produtos x Categorias Livros x Autores

Note que a tabela intermediária possui sempre duas chaves estrangeiras que apontam para as chaves primárias das duas tabelas principais. Dessa forma é possível dizer, por exemplo, que o Ator 123 atuou nos filmes 456 e 789, ou que o produto 100 pertence à categoria 10 e também à categoria 20.

Há casos também em que a tabela intermediária pode ter dados adicionais, além das chaves estrangeiras, como ilustra a Figura 1.

Produtos x Vendas
Figura 1. Produtos x Vendas

Aqui a tabela intermediária armazena os dados dos produtos incluídos em cada venda. Observe a Figura 2.

Dados dos itens vendidos
Figura 2. Dados dos itens vendidos

Observe que a partir da tabela de produtos não é possível saber sobre suas vendas, da mesma forma que na tabela de vendas não há informações sobre os produtos que foram vendidos. Esses dados ficam na tabela de itens da venda, a partir da qual podemos tirar algumas conclusões:

  • A venda de ID 1 contém 3 itens, sendo 2 camisas e 1 óculos. Ainda nessa venda os óculos que custam 25,00 foram vendidos por 20,00;
  • A venda de ID 2 contém 2 sapatos;
  • A venda de ID 3 contém 1 óculos.

Esses dois tipos de relacionamento são muito comuns e às vezes podem ser confundidos, o que pode causar problemas no futuro. Por exemplo, imagine que no momento da modelagem do sistema a relação entre produtos e categorias foi modelada como 1:N, em que um produto só pertencia a uma categoria. Mais à frente viu-se a necessidade de vincular um mesmo produto a várias categorias e o sistema não suportava essa situação.

Portanto, é fundamental analisar com cautela as possíveis condições a fim de evitar problemas futuros.

[/conteudo-mvp]