Banco de Dados I
Horário
Terça e Quinta, 7h30–9h10.
Ferramentas
Modelagem Entidade-Relacionamento
Usaremos o BRModelo Web para criar diagramas ER. A ferramenta é gratuita, roda no navegador e usa a notação adotada no livro do Heuser (referência da disciplina).
Aulas e exercícios
Usaremos o DB Fiddle para praticar SQL diretamente no navegador, sem necessidade de instalação. Selecione PostgreSQL no menu superior antes de executar as queries.
Projeto de Disciplina
O projeto será desenvolvido no Supabase. Cada grupo deve criar uma conta gratuita, criar um projeto e usar o SQL Editor integrado para desenvolver e testar o banco de dados. O Supabase fornece um PostgreSQL completo com interface visual, similar ao pgAdmin.
Objetivo
Introduzir os fundamentos que permitam ao aluno adquirir o domínio básico da tecnologia de banco de dados.
Ementa
Conceitos básicos de banco de dados. Modelos de dados e linguagens. Projeto de bancos de dados. Novas tecnologias e aplicações de banco de dados.
Bibliografia
- HEUSER, Carlos Alberto. Projeto de Banco de Dados. 2a edição. Porto Alegre: Sagra - Luzzato, 1999.
- SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. 3a edição. São Paulo: Markon Books, 1999.
Material extra
- Apostila sobre SQL (Alura)
- Smelly Relations: Measuring and Understanding Database Schema Quality
- On the Prevalence, Impact, and Evolution of SQL Code Smells in Data-Intensive Systems
- Database smell detector
Avaliação
- Prova (P1): 25 pontos
- Atividade Prática (AP): 25 pontos
- Projeto de Disciplina (PD): 50 pontos
Projeto de Disciplina (PD)
Formato. Grupos de 2 ou 3 pessoas.
Tema. Cada grupo deve escolher um aplicativo, site ou sistema que use com regularidade (ex.: iFood, Spotify, Letterboxd, Strava, GitHub) e modelar o banco de dados que sustentaria esse sistema. A pergunta-guia: como ele foi (ou seria) desenvolvido por baixo do capô?
O que estudar.
- Quais são as entidades principais?
- Como elas se relacionam (1:1, 1:N, N:N)?
- Quais restrições básicas o domínio impõe (unicidade, obrigatoriedade, integridade referencial)?
Entregas por etapa.
- Aula 2: definição do sistema escolhido + schema inicial (mínimo de 5 entidades com relacionamentos).
- Aulas seguintes: evolução incremental do schema (novas entidades, normalização, índices, constraints) — uma migração por mudança.
- Aula final (09/07/2026): apresentação de 10 min mostrando o sistema, o schema final e as decisões de modelagem.
Repositório.
- Criem uma conta no GitHub e um repositório público para o grupo.
- Cada mudança de schema deve ser uma migração versionada (
001_init.sql,002_add_reviews.sql, …) com commits descritivos. - README com: sistema escolhido, integrantes, diagrama ER e como rodar as migrações.
Atividades Assíncronas
Nas semanas sem aula, os alunos devem realizar as seguintes atividades:
- Semana de 14–16/04 (viagem): Modelagem ER — escolher um sistema do cotidiano e modelar entidades, atributos e relacionamentos usando BRModelo ou draw.io. Entrega: 23/04.
- 21/04 (Tiradentes): Quiz online de normalização — 10 questões sobre dependências funcionais e formas normais. Entrega: 23/04.
- Semana de 28–30/04 (viagem): Exercício escrito de normalização — dado um esquema desnormalizado, normalizar até 3FN mostrando cada passo. Entrega: 05/05.
Cronograma
Passível de alterações.
Entrega atrasada
Entregas de trabalhos após o prazo serão aceitas mas os pontos referentes não serão contabilizados.
Política de plágio
Todos os trabalhos (a não ser que indicados explicitamente) devem ser feitos em grupo conforme definido. O que você entregar deve ser fruto do trabalho do grupo. Grupos são permitidos e encorajados a discutir ideias com outros grupos. Grupos não são permitidos copiar solução ou parte de solução de outros grupos. Na presença de plágio, os grupos envolvidos não receberão pontos da atividade em questão.