aulify · Mini-Projecto
UC UC02830 · T. Desenv. Software, T. Inform. Gestão
Versão · Aluno
Mini-Projecto · BD para uma escola de música
Modelo, dados, queries, relatórios
Contexto
A "Escola de Música Vagueira" pediu para informatizar a gestão. Cada par/trio constrói a base de dados completa: modelo, esquema SQL, dados realistas e 10+ queries para responder a perguntas do dia-a-dia.
Requisitos
Funcionais
- Modelar pelo menos 6 entidades: Aluno, Professor, Instrumento, Curso, Aula, Pagamento.
- Esquema SQL com restrições adequadas (PK, FK, CHECK, UNIQUE).
- Seed com 20+ alunos, 5+ professores, 10+ aulas históricas.
- 15+ queries que respondem a perguntas reais (listar, filtrar, agregar, JOIN).
- 3 views úteis (ex.: alunos com pagamento em atraso).
- 2 transações documentadas (ex.: registar pagamento e marcar aula).
Não-funcionais
- Esquema em MySQL ou PostgreSQL.
- Diagrama ER actualizado.
- Tudo num repositório Git.
Fases
Fase 1 · 1.5h
Modelar
- Diagrama ER (dbdiagram.io).
- Justificar cada entidade.
Diagrama PNG + descrição de 1 página.
Fase 2 · 1.5h
Esquema SQL
schema.sqlcom CREATE TABLE.- Restrições, índices, FKs.
schema.sql executável.
Fase 3 · 1h
Seed de dados
seed.sqlcom INSERTs realistas.- Mínimo 20 alunos, 5 professores, 10 aulas.
seed.sql.
Fase 4 · 2.5h
Queries
- 15+ queries em
queries.sql. - Cobrir: filtros, JOINs, agregações, subqueries, top-N.
- Cada query com comentário a explicar o que faz.
queries.sql com 15+ queries comentadas.
Fase 5 · 1h
Views e transações
- 3 views em
views.sql. - 2 transações em
transacoes.sql.
views.sql + transacoes.sql.
Fase 6 · 0.5h
Apresentação
- Demo: importar schema + seed, executar queries.
- Mostrar 3 perguntas e respectivas respostas.
Apresentação ao vivo (5 min) + repositório final.
Critérios de avaliação
| Item | Peso |
|---|---|
| Modelo bem desenhado (3FN) | 20% |
| Schema SQL com restrições | 20% |
| Seed realista | 10% |
| Queries (qtd. + variedade) | 30% |
| Views úteis | 10% |
| Transações correctas | 5% |
| Apresentação | 5% |
Reflexão
Em meia página: que query foi mais difícil? Sentiste falta de algum tipo de JOIN ou função? Que outras queries fariam falta numa escola real?