Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

DÚVIDA_01_Modelagem de bancos: Cardinalidade

Professor.

Minha dúvida é em relação as perguntas que você cria no txt durante o vídeo para fazer as cardinalidades. Como você os cria? É aleatório?

Pergunto porque percebi que não tem muito a ver com os verbos dos relacionamentos.

Vídeo: https://cursos.alura.com.br/course/modelagem-banco-relacional-entidade-relacionamento-atributo/task/73035

9 respostas

Olá Thiago, tudo bem?

Não existe uma regra sobre como elaborar essas perguntas Thiago, elas são utilizadas para facilitar no momento de definir a restrição de participação e a cardinalidade das entidades.

Existem dois tipos de restrições de participação:

  • Total: Onde uma entidade depende de outra para existir, ou seja, precisa ter um relacionamento com outra tabela.

  • Parcial: Onde uma entidade depende de outra para existir, ou seja, não tem um relacionamento com outra tabela.

Então no momento de definir a restrição de participação, definimos se uma tabela depende de outra para existir. Então o instrutor elaborou as perguntas a partir dessas informações. Como por exemplo:

  • O pedido ele pode EXISTIR sem o cliente?

OU

  • O cliente ele pode EXISTIR sem o pedido?

Com essas perguntas ele identificou a restrição de participação.


Já em relação a cardinalidade, seguimos essa mesma linha de raciocínio. Precisamos identificar o número de ocorrências em um relacionamento, ou seja, se é 1:1, 1:N, N:1 ou N:M. Então o instrutor também elaborou as perguntas a partir dessas informações. Como por exemplo:

  • Quantos pedidos um cliente pode fazer? Vários (N)

E

  • Quantos clientes um pedido pode ter? Um (1)

Com essas perguntas ele identificou a cardinalidade.

Por este motivo as perguntas não tem relação com os verbos dos relacionamentos, pois essas perguntas, são de acordo com a restrição de participação e a cardinalidade

Espero ter ajudado e bons estudos!

Danielle.

Obrigado pela explicação. Como dito em outra duvida, vou tentar algo online.

Professor.

Olhando aula anterior (https://cursos.alura.com.br/course/modelagem-banco-relacional-entidade-relacionamento-atributo/task/73024) a lógica para montagem da cardinalidades e restrição de participação não me parecem as mesmas.

Se seguirmos o padrão desta aula anterior, todas as cardinalidades e restrições de participação da pergunta principal ficariam invertidas.

Afinal, qual a forma correta de fazer?

Oiii Thiago, como você está?

Meu nome é Nádia, sou líder do time dos Scubas na área de Ciência de Dados aqui na Alura e estou aqui para te ajudar. Desde já peço desculpas pela demora no retorno de suas respostas, estamos trabalhando em melhorias para que o tempo de resposta seja menor. Atualmente, a nossa forma de atendimento ao aluno é exclusiva pelo fórum, mas também é algo que estamos buscando melhorias para melhor atender vocês, mas fique a vontade caso fique alguma dúvida na explicação que darei a seguir.

As perguntas que o professor cria no arquivo TXT são para ajudar a definir as cardinalidades entre as entidades. No modelo apresentado, você pode perceber que colocamos dois valores ao lado da entidade, onde um é a cardinalidade e o outro é para dizer se é uma relação total ou parcial, como mostro na imagem abaixo:

Não tem nenhum padrão definido para essas perguntas, mas recomenda-se que venha com o verbo “existir” quando vamos definir o lado esquerdo, pois ele se refere a participação obrigatória ou não de outra entidade. Já no lado direito, a pergunta é para saber algo mensurável, então geralmente a pergunta vem atrelada ao verbo de ligação e a palavra “quanto”, para podermos quantificar.

Pegando o exemplo da aula, onde temos as entidades cliente e pedido, para definir o lado esquerdo da relação, podemos fazer as seguintes perguntas:

  • Um cliente pode existir sem um pedido? Não. Então temos uma obrigatoriedade, logo a relação é total, tem valor 1.
  • Um pedido pode existir sem um cliente? Não. Então temos uma obrigatoriedade, logo a relação é total, tem valor 1.

Com essa primeira parte, nosso diagrama já fica com os lados esquerdos definidos:

Agora, para definir o lado direito, algumas perguntas que podemos fazer é:

  • Olhando de de cliente para pedidos: Um cliente pode fazer quantos pedidos? No mínimo 1 e no máximo N pedidos.
  • Olhando de pedido para cliente: Um pedido pode pertencer a quantos clientes? 1 e no máximo 1 cliente.

Com isso, temos nossa definição do diagrama pronta, veja:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A leitura fica da seguinte forma: 1 cliente pode fazer vários pedidos e um pedido está atrelado a um cliente.

Mais para frente você vai ver que sempre pegamos a cardinalidade máxima após definimos esse par de valores, então no final, o que teremos é apenas 1 para N, da seguinte forma:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Veja que a leitura já fica simplificada, onde lemos apenas que um cliente pode fazer N pedidos, ou simplesmente falamos que a relação é 1 para N entre cliente e pedidos.

Essas perguntas vão ficando mais claras conforme você for praticando, mas depende muito da estrutura do seu banco e quais entidades estão se relacionando, não tem uma fórmula.

Sobre a aula anterior que você referiu, o professor fez um vídeo de complemento para explicar com mais detalhes sobre esse assunto, pois muda a forma como analisamos a cardinalidade a depender do que estamos fazendo, se é um diagrama de entidade relacionamento (esse que estamos trabalhando) ou se é exatamente uma tabela do banco de dados.

Por fim, quero salientar que quanto a esse curso em específico, nossa equipe irá revisar todo o material didático para que melhorias sejam feitas ou até mesmo uma nova versão para que possamos transmitir o conhecimento sempre da forma mais clara possível.

Qualquer dúvida fico à disposição, a gente vai conversando.

Grande abraço!

Olá, Nádia.

Antes de tudo, obrigado pela atenção de todos e detalhamento nas explicações.

Vocês da equipe não tem motivo para pedir desculpas. Imagino o volume de solicitações e a rotina que tem no curso. Quanto a isso, compreendo bastante. Entretanto, meus únicos descontetamentos são:

1) falta de canal mais ágil para os alunos (ex: discord). Hoje em dia, isso faz a maior diferente, até pela falta de contato humano.

2) falta de uma estrutura mais intuitiva e sequencial no curso de modelagem.

Bom, sobre a minha dúvida, compreendi tudo que você explicou (tal como a da Danielle). Entretanto, no curso parece que o professor faz, em alguns momentos, o raciocínio da montagem de forma diferente.

Como já estudei isso há seculos, achei estranho e anotei. Como só podemos dirar dúvidas por aqui, gravei um vídeo explicando as formas que vi o professor fazer e gostaria de saber qual é a forma mais correta.

https://youtu.be/rDSdSL-mH6w

Além disso da duvida acima, também não consegui entender em que um diagrama de entidade relacionamento (esse que estamos trabalhando) mudaria exatamente em relaçao a uma tabela do banco de dados.

Grande Abraço!

solução!

Oiii Thiago, obrigada por deixar o link do vídeo, ficou bem clara sua dúvida. O jeito que mais vejo é a forma A, inclusive, foi a forma que eu aprendi na faculdade. Mas a forma B que se refere a min-max também não está errada. Ambas as formas estão corretas, o que diferencia é a leitura delas, veja que na B temos uma leitura mais enxuta, pois pela forma B olhamos apenas para um lado da entidade e já definimos como é a relação dela para com a outra. Já na forma A, pegando a ideia do min-max, a lemos a cardinalidade através da outra entidade, veja:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olhamos apenas para a entidade cliente e pegamos o par do outro lado (1,N), então temos que o cliente pode fazer no mínimo 1 e no máximo N pedidos. Já pegando a entidade pedido, e olhando para o outro lado (1,1), vemos que o pedido pode pertencer a 1 e no máximo 1 cliente. Indo para a mesma ideia no próximo exemplo, entre livro e editora:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pegando o lado de livro olhando para o par do outro lado (1,1), lemos que 1 livro pertence a uma e no máximo uma editora. Já olhando para editora e pegando o par (1,N), temos que uma editora pode ter no mínimo 1 e no máximo N livros.

Perceba que é bem semelhante a forma B, mudando apenas o modo que olhamos para fazer a leitura.

Conforme for adquirindo mais experiência, você verá que não precisará definir a cardinalidade em pares de chaves dessa forma, você deixará de maneira simplificada (convencional), que é simplesmente dizer se a relação é 1 para N, 1 para 1, dentre outros. Exemplo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu recomendo que utilize a forma A, mas novamente, quando você simplificar a relação, não terá problemas quanto a isso, pois apenas 1 para N será suficiente. No curso o instrutor realmente mostra dos dois modos e não fica tão claro sobre o porque ele trocou de um para outro, mas como dito, todo o material será revisado para que não cause esse tipo de confusão tanto para você, quanto para os demais alunos.

Qualquer dúvida fico à disposição.

Grande abraço!

Nádia.

Muitíssimo obrigado pela atenção e explicação.

Desculpe ficar tanto no pé, mas tava realmente preocupado com meu entendimento e evolução. Eu ja tinha estudado isso há anos e aprendido da forma B que te falei, mas o material me confundiu legal com o jeito A ( não pela dificuldade, mas pela montagem diferenciada).

De qualquer forma, vou seguir com a sua explicação A.

Aguaradrei seu retorno sobre as demais dúvidas, pois são sobre o mesmo tema.

Thiago, eu que peço desculpas pela demora no atendimento. Compreendo muito o seu lado, não precisa pedir desculpas. A Danielle irá continuar contigo nos outros tópicos (irei acompanhar), mas fique a vontade para perguntar quando tiver dúvidas ou se algo não tiver ficado claro. Sobre sua dúvida de UX que está aberta também já repassei para o time responsável. Mais uma vez, desculpe pela demora e tentaremos sempre responder o mais breve possível.

Sucesso, Thiago! E qualquer dúvida fico à disposição.

Grande abraço!

Combinado, Nadia!

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