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!
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!
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:
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. 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!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.Continue praticando, David. Você está indo muito bem.
Abração.
Obrigado, pelo retorno Larissa!
Segue modelagem com as correções que fiz:
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)
);
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.