Mini-Projecto · Modelar uma BD à escolha
Contexto
Cada par/trio escolhe um domínio real (ginásio, oficina, livraria, app de gestão pessoal, escola de música, etc.) e modela uma base de dados completa: do levantamento de requisitos ao SQL final em 3FN.
Foco em modelo, não em programação — não há aplicação a construir nesta UC; isso vem em UCs seguintes.
Requisitos
Funcionais
- Documento de requisitos (1 página) descrevendo o domínio.
- Diagrama ER (Crow's Foot) com pelo menos 5 entidades e 2 relações N:M.
- Esquema SQL com tabelas, PK, FK, restrições.
- Script de inserção de dados de exemplo (mín. 5 linhas por tabela).
- 5 consultas SQL que respondem a perguntas reais do domínio.
Não-funcionais
- Modelo em 3FN, com justificação por escrito do que decidiram ou não normalizar.
- SQL testado em MySQL ou PostgreSQL real (ou SQLite).
- Documentação clara com diagrama, SQL e explicações.
Fases
Fase 1 · 1h
Levantamento de requisitos
- Escolher domínio (livre, validar com professor).
- Entrevistar (real ou imaginariamente) um "cliente" do domínio.
- Listar entidades, atributos, regras de negócio.
Documento de 1 página com descrição do domínio + lista inicial de entidades e atributos.
Fase 2 · 1.5h
Diagrama ER
- Desenhar em dbdiagram.io ou drawSQL.
- Pelo menos 5 entidades, 2 relações N:M.
- Resolver N:M com tabelas de associação.
- Definir cardinalidades em cada relação.
PNG/PDF do diagrama + link de partilha para a ferramenta usada.
Fase 3 · 1.5h
SQL e restrições
- Escrever
CREATE TABLEcom PK, FK, NOT NULL, UNIQUE, CHECK, DEFAULT. - Definir acções referenciais (CASCADE / RESTRICT / SET NULL) com justificação.
- Aplicar 3FN; explicar quaisquer desvios.
schema.sql executável em MySQL/PostgreSQL.
Fase 4 · 1h
Dados e consultas
- Script
seed.sqlcom 5+ linhas por tabela. - 5 queries SELECT realistas (com JOIN, WHERE, GROUP BY, ORDER BY).
seed.sql + queries.sql com resultados esperados em comentário.
Fase 5 · 1h
Dossier final + apresentação
- Compilar tudo em PDF com diagrama + SQL + explicações.
- Apresentar 5 min ao resto da turma.
PDF final + slides curtos (5 slides).
Critérios de avaliação
| Item | Peso |
|---|---|
| Requisitos claros | 10% |
| Diagrama ER correcto | 25% |
| 3FN aplicada | 15% |
| SQL com restrições adequadas | 20% |
| Dados de exemplo realistas | 10% |
| Queries que respondem a perguntas reais | 15% |
| Apresentação | 5% |
Reflexão
Em meia página: que decisão de modelação foi mais difícil? Que coisa farias diferente agora? Se este projecto fosse escalar para 100 mil utilizadores, o que mudarias?