Exemplo: Se tivesse um atributo na entidade livro que diferenciasse por tipo, e eu quisesse usar esse tipo para diferenciar relacionamentos. Isso é possível ?
Exemplo: Se tivesse um atributo na entidade livro que diferenciasse por tipo, e eu quisesse usar esse tipo para diferenciar relacionamentos. Isso é possível ?
Oi, Isabela! Tudo certo por aí?
Logo de início, peço desculpas pela demora em responder.
É possível sim criar relacionamentos conforme o tipo de atributo de especificação, no entanto, isso pode tornar o banco de dados complexo. Para um melhor entendimento, imagine o caso abaixo:
No Clube do Livro (empresa hipotética em que estamos trabalhando), existem vários livros, bem como distintos tipos (como romance, conto, crônica e poema). Dependendo da variedade de livros existente, seria preciso criar um atributo de especificação para cada um, aumentando de maneira desnecessária o tamanho do nosso banco de dados — imagine, por exemplo, trabalhar com 30 tipos diferentes de livro.
Além disso, teríamos que pensar sobre cada relacionamento que seria adicionado ao respectivo tipo, ampliando mais ainda a complexidade do projeto. Como consequência de uma elevada complexidade, questões como performance, manutenção e compreensão dos dados seriam afetadas.
Por outro lado, existe uma alternativa para esta situação: criar uma nova entidade responsável por categorizar os nossos livros, observe a imagem abaixo que ilustra esta ideia:
Com a criação da entidade CATEGORIA
, podemos adicionar os atributos cod_categoria
e descricao
, os quais ficarão responsáveis, respectivamente, por determinar o tipo de cada livro (através de um código) e descrever cada categoria existente.
Além disso, vale ressaltar que CATEGORIA
se relacionará com a entidade LIVRO
, chegando na seguinte cardinalidade:
Com o banco já construído, poderíamos utilizar de forma mais eficiente as informações referentes às categorias dos livros — sendo alguns exemplos a contagem de livros por tipos, variedade de tipos existentes, etc.
Espero ter ajudado, Isa! Se surgir alguma outra dúvida, estou à disposição.
Até mais!