Diagrama ER da UnDF
Aplicando os conceitos das seções anteriores, podemos construir o diagrama ER completo do banco de dados da UnDF. Este diagrama captura todos os conjuntos de entidades, relacionamentos, cardinalidades e participações do sistema.
Visão Geral do Domínio
O banco da UnDF representa:
- Centros acadêmicos, cada um com várias escolas
- Escolas, cada uma ofertando vários cursos e alocando vários professores
- Cursos, cada um composto por várias disciplinas e com vários alunos matriculados
- Professores que ministram disciplinas em turmas específicas
- Alunos que cursam essas turmas, obtendo notas
- Pré-requisitos entre disciplinas do mesmo curso
Diagrama ER Completo
Legenda e Observações
| Elemento | Notação | Exemplos no diagrama |
|---|---|---|
| Entidade forte | Retângulo azul | centro, escola, professor |
| Relacionamento | Losango amarelo | ministra, pertence_a |
| Seta (→) | Lado “um” da cardinalidade | pertence_a → centro |
| Linha (—) | Lado “muitos” | escola — pertence_a |
| Linha dupla (bold) | Participação total | aluno ==matriculado_em |
| Elipse | Atributo do relacionamento | ano, semestre, sala |
Notas sobre o diagrama
Cardinalidades:
pertence_a,ofertado_por,lotado_em,compoe: todos N:1 — muitos do lado esquerdo para um do lado direitomatriculado_em: N:1, com participação total emaluno(todo aluno deve estar matriculado em um curso)ministra: N:N — um professor ministra várias disciplinas; uma disciplina pode ser ministrada por vários professoresprereq: N:N autorreferencial — uma disciplina pode ter múltiplos pré-requisitos e ser pré-requisito de múltiplas outras
Agregação (não mostrada no diagrama simplificado):
O relacionamento cursa entre aluno e o relacionamento ministra (com atributos nota e aprovado) é uma instância de agregação — veremos na seção 4.10 como representar isso formalmente.
Verificação do Diagrama
Uma maneira de verificar a correção do diagrama ER é confrontar cada relacionamento com os dados reais:
| Relacionamento | Instâncias no banco |
|---|---|
pertence_a |
31→3, 21→2, 11→1 (id_escola→id_centro, 3 pares) |
lotado_em |
7 professores distribuídos por 3 escolas |
ministra |
36 tuplas em ministra (7 professores × disciplinas ao longo de semestres) |
prereq |
16 pares de pré-requisito entre 24 disciplinas |
Para Praticar
1. Leitura do diagrama. Com base no diagrama ER da UnDF, responda:
- Um professor pode ser lotado em mais de uma escola?
- Uma disciplina pode pertencer a mais de um curso?
- Um aluno pode estar matriculado em zero cursos?
- (a) Não. A cardinalidade N:1 em
lotado_emindica que cada professor está lotado em exatamente uma escola. - (b) Não. A cardinalidade N:1 em
compoeindica que cada disciplina pertence a exatamente um curso. (Disciplinas de mesmo nome em cursos diferentes teriam códigos distintos.) - (c) Não. A linha dupla (bold) em
aluno→matriculado_emindica participação total: todo aluno deve estar matriculado em ao menos um curso.
2. Adicionar ao diagrama. O sistema da UnDF precisa registrar os monitores de cada disciplina: um monitor é um aluno que auxilia o professor em uma turma específica. Como você adicionaria essa informação ao diagrama ER? Qual a cardinalidade?
Adicionar um relacionamento monitora entre aluno e o relacionamento ministra (ou entre aluno, professor e disciplina se for ternário). A cardinalidade mais realista:
- Um aluno pode monitorar múltiplas turmas: N no lado
aluno - Uma turma pode ter múltiplos monitores: N no lado
ministra
Isso caracteriza N:N, possivelmente com atributo periodo (início e fim da monitoria). A implementação seria uma tabela monitora(id_aluno, id_disciplina, ano, semestre, turma, data_inicio, data_fim) com FKs para aluno e ministra.
3. Diagrama alternativo. Outro projetista propõe eliminar a entidade centro e adicionar nome_centro como atributo de escola. Quais seriam as consequências dessa decisão?
Consequências: - Redundância: o nome do centro (ex.: “COETI”) seria armazenado uma vez para cada escola que pertence a ele. Se houvesse múltiplas escolas no mesmo centro, o nome repetiria. - Anomalia de atualização: mudar o nome de um centro exigiria atualizar múltiplas linhas de escola. - Perda de informação: dados próprios do centro (ex.: diretor, endereço, orçamento) não teriam onde ser armazenados.
Manter centro como entidade separada evita esses problemas e permite registrar informações adicionais sobre os centros no futuro.