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

[Projeto] Desafio: gerenciamento escolar com banco de dados relacional

Boa tarde!

Realizei a modelagem física do desafio proposto entretanto não estou muito seguro de que as cardinalidades estão corretas. Ao lado disso, gostaria também de verificar se os tipos de dados estão coerentes.

Agradeço o suporte!

Modelo físico desafio

3 respostas

Oi, David! Como vai?

Nossa, que legal que você montou o modelo lógico, mandou super bem! É muito inspirador encontrar alunos dedicados assim!

O modelo está ótimo, mas há alguns detalhes que podemos melhorar:

  • a coluna id_turma_disciplina, na tabela associativa turma_disciplina, e id_turma_alunos na tabela turma_alunos, não são necessárias. Isso porque id_turma + id_aluno já formam uma linha que não se repetirá. Essa é uma chave composta - são duas chaves estrangeiras em conjunto que formam um valor único identificador de cada linha. A mesma explicação vale para a tabela turma_disciplina. Não é necessário ter chaves primarias em tabelas associativas.
  • em relação às cardinalidades de professor - disciplina e professor - turma, está correto, mas poderia também ser diferente. Como não temos acesso ao mini-mundo nessa atividade, decidir as cardinalidades se torna uma atividade de memória de suas próprias experiências! Pode ser que um professor dê aula em mais de uma disciplina, pode ser que uma disciplina tenha vários professores. As indagações vão longe!
  • As cardinalidades turmas - alunos e disciplinas - turmas não devem existir, assim como as colunas id_aluno e id_disciplina na tabela turmas. Você fez exatamente o que estava pedindo na atividade, porém, esse foi um errinho nosso que já foi corrigido. Essas informações já estão contidas nas tabelas associativas, e seriam fonte de redundância se estiverem presentes novamente na tabela das turmas.
  • Os tipos dos dados foram muito bem selecionados! Nada a acrescentar sobre isso :)

Continue praticando, David. Você está indo muito bem.

Abração.

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

Obrigado, pelo retorno Larissa!

Segue modelagem com as correções que fiz:

  • Retirei os campos id_turma_disciplina, na tabela associativa turma_disciplina, e id_turma_alunos na tabela turma_alunos. Entretanto ainda fiquei com uma dúvida. Como devo representar essa chave composta na modelagem? ou simplesmente nao devo?

em meu script eu havia feito da seguinte forma:

CREATE TABLE turmas_disciplinas (
  id_turma INT,
  id_disciplina INT,
  PRIMARY KEY (id_turma,id_disciplina),
  FOREIGN KEY (id_turma) REFERENCES turmas (id_turma),
  FOREIGN KEY (id_disciplina) REFERENCES disciplinas (id_disciplina)
);
  • Alterei as opções de cardinalidade professor - disciplina e professor - turma;
  • Retirei as cardinalidades turmas - alunos e disciplinas - turmas

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

solução!

Oii David!

Em relação às chaves compostas no modelo físico: se o software que você está utilizando permitir, você pode marcar cada uma das colunas como PK, além de FK. Se não permitir, tudo bem deixar apenas como FK, pois essas tabelas são tabelas de relacionamento associativo. Deixar a marcação como Foreign Key enfatiza o papel das colunas como referências para outras tabelas e serve para visualizar e entender as relações entre as tabelas no modelo de dados.

O seu script para a criação da tabela está perfeito. São apenas duas colunas, que juntas formam uma chave primária composta de duas chaves estrangeiras.

Sobre as relações da tabela de professores, foi só uma reflexão! Hehe. Não era necessário alterar as cardinalidades - apenas um lembrete de que essas decisões são sempre tomadas com base no mundo real. Tanto que, assim, encontramos uma situação de N:M que não é ideal. Fica a seu critério como manter :)

Espero ter ajudado, David! Qualquer coisa, avisa.

Abraços.