2
respostas

[Dúvida] CARDINALIDADE NO MODELO LOGICO

No caso da relação entre Item_pedido e Livro eu fiquei com duvida. 1 pedido pode conter n itens no pedido, ok. Porém, nesses vários itens eu posso ter vários livros não posso? Porque vc colocou 1:1? Em cada pedido é um livro?

2 respostas

Ou isso foi feito justamente para resolver o problema de n:n

Oiii Bruno, como você está?

Peço desculpas pela demora.

A tabela ITENS_PEDIDO foi feita sim para resolver o problema n:m (muitos para muitos). Ela concentra as ocorrências de muitos livros em muitos pedidos de forma a cada ocorrência ter uma identificação única.

Vamos voltar ao modelo conceitual para observar esse comportamento.

Se destrincharmos a entidade associativa, ela estaria representada da seguinte forma:

Início da descrição de imagem. A imagem mostra um diagrama entidade relacionamento contendo três entidades conectadas por dois relacionamentos, de forma linear. O primeiro relacionamento é “pedido contém item_pedido”, com cardinalidade um para muitos, e o segundo relacionamento é “item_pedido contém livro”, com cardinalidade muitos para um. Fim da descrição de imagem A cardinalidade (1,1) ao lado da tabela Livro diz respeito ao sentido de leitura “item_pedido contém livro”:

  • Um item_pedido contém um livro.
  • Um item_pedido contém no máximo um livro.

No sentido de leitura “livro está contido em item_pedido” temos a seguinte interpretação:

  • Um livro está contido em pelo menos um item_pedido
  • Um livro pode estar contido em várias ocorrências de item_pedido.

Caso o mesmo livro (com o mesmo id_livro) seja vendido em mais de uma unidade em um mesmo pedido, uma boa solução é criar um atributo de quantidade na entidade associativa.

Veja o exemplo na imagem. Por questões didáticas, desprezei os outros atributos das entidades Pedido e Livro, deixando apenas suas chaves primárias, que são estrangeiras em item_pedido.

Início da descrição de imagem. A imagem mostra um Diagrama entidade relacionamento. Começando a leitura da esquerda para a direita, temos a entidade pedido com um atributo identificador id_pedido. A cardinalidade ao lado da entidade é mínima um e máxima muitos. A entidade pedido está conectada com uma entidade associativa, representada por um retângulo com nome item_pedido e, dentro do retângulo, um losango com nome “contém”. A entidade associativa possui quatro atributos, sendo os três primeiros identificadores. São eles id produto, id livro, id item e quantidade item. A entidade associativa está relacionada com a entidade Livro, que possui o atributo identificador id livro e a cardinalidade mínimo um e máximo muitos. Fim da descrição de imagem.

Assim, a cada linha da tabela Item_pedido teremos as seguintes informações:

  • Qual foi o pedido
  • Qual foi o livro vendido
  • Quantos livros foram vendidos
  • Qual é o código identificador dessa ocorrência

Bruno, espero que tenha ficado mais claro. Não hesite em me contar caso tenha ficado alguma dúvida.

Abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software