3
respostas

[Dúvida] Cardinalidade de Estoque e Livro

A cardinalidade de ESTOQUE e LIVRO não deveria ser igual CLIENTE e PESSOA_FISICA ? Afinal, um item ESTOQUE deve ter um e somente um LIVRO, enquanto um LIVRO pode ter zero ou um ESTOQUE, até porque tem uma chave primária no ESTOQUE. Pela modelagem passada, um item de ESTOQUE poderia estar em um ou muitos LIVROS, quase a mesma cardinalidade de um CLIENTE que pode ter muitos PEDIDOS, certo?!

3 respostas

Oi Rafael, tudo bem por aí?

No Clube do Livro, ESTOQUE é uma tabela que recebe em suas tuplas todos os livros que estão disponíveis (ou indisponíveis) na livraria, mas que tem a pretensão de serem vendidos. Uma tupla em ESTOQUE terá somente um livro, porém o estoque deverá ter cadastrados todos os livros.

Caso um livro deixe de ser vendido na livraria, é possível que ele saia da tabela estoque, mas excluí-lo da tabela LIVRO geraria inconsistências no banco de dados, pois é necessário ter acesso a informações desse livro em notas fiscais de vendas já feitas, por exemplo.

PESSOA_FISICA ou PESSOA_JURIDICA são entidades de especialização. Um cliente será ou pessoa física, ou pessoa jurídica. Por isso a cardinalidade está 0,1.

Porém, é viável ter opiniões diversas a respeito das cardinalidades. Cada negócio terá suas regras a serem respeitadas.

Espero ter esclarecido um pouco melhor sobre a lógica das cardinalidades, Rafael. Fico à disposição.

Abraços.

Olá Larissa, tudo joia e vc?

A cardinalidade seria entre os registros (tuplas) relacionados entre as tabelas, correto? Sendo assim, uma tupla de ESTOQUE terá somente um LIVRO, conforme você passou, e o contrário seria uma tupla de LIVRO terá 0 ou 1 tupla de ESTOQUE.

No curso mostra que o relacionamento de ESTOQUE para LIVRO é de 1 ou muitos, mas não tem como ter mais de uma tupla em LIVRO relacionada á uma tupla em ESTOQUE pois a chave primaria de LIVRO também é a chave primaria de ESTOQUE: relacionamento ESTOQUE x LIVRO

Abraços.

Oi Rafael! Tudo joia, também :)

A cardinalidade dessa relação é lida da seguinte forma:

  • Um livro pertence à um, e a apenas um, estoque
  • Um livro pode não pertencer ao estoque
  • O estoque tem pelo menos um livro cadastrado
  • O estoque pode ter vários livros cadastrados

A cardinalidade da relação "Livro -> Estoque" é N:1 (muitos para um). E o contrário, "Estoque -> Livro" é 1:N (um para muitos).

Acredito que você esteja lendo a cardinalidade no sentido inverso. O que também pode estar correto! As duas formas de leitura existem na literatura sobre o tema, o que acaba gerando certa confusão quando estamos aprendendo. Conforme você avançar nos estudos e entrar em contato com vários tipos de modelagem, ficará mais natural identificar qual é o sentido de cada modelo.

Me diga se, invertendo o sentido da leitura da cardinalidade, fez mais sentido. Estarei por aqui.

Abraço!