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

Avaliação

  1. Prova (P1): 25 pontos
  2. Atividade Prática (AP): 25 pontos
  3. 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.

# Data Dia Conteúdo
1 31/03 Ter Apresentação da disciplina. O que é BD? SGBD, modelos de dados, arquitetura em 3 níveis
2 02/04 Qui MER: entidades, atributos, relacionamentos, cardinalidade, participação
3 07/04 Ter MER: entidades fracas, generalização/especialização. Exercícios de modelagem
4 09/04 Qui Modelo Relacional: mapeamento MER→Relacional. Normalização (1FN, 2FN, 3FN)
14/04 Ter VIAGEM — SEM AULA (atividade assíncrona: Modelagem ER)
16/04 Qui VIAGEM — SEM AULA (atividade assíncrona: Mapeamento MER → Relacional)
21/04 Ter TIRADENTES — SEM AULA (atividade assíncrona)
23/04 Qui Revisão Geral — MER, Modelo Relacional, Normalização
28/04 Ter VIAGEM — SEM AULA (atividade assíncrona)
30/04 Qui VIAGEM — SEM AULA (atividade assíncrona)
P1 05/05 Ter Avaliação 1 — MER, Modelo Relacional, Normalização
5 07/05 Qui Introdução ao SQL. DDL: CREATE TABLE, tipos de dados, constraints (PK, FK, NOT NULL, UNIQUE, CHECK)
6 12/05 Ter DDL: ALTER TABLE, DROP TABLE. Laboratório prático
7 14/05 Qui DML: INSERT, UPDATE, DELETE. Transações básicas: COMMIT, ROLLBACK
8 19/05 Ter Laboratório: criação completa de um banco (DDL + DML com dados reais)
9 21/05 Qui SELECT: WHERE, ORDER BY, LIMIT. Funções escalares básicas
26/05 Ter SEM AULA
10 28/05 Qui SELECT: Funções de agregação (COUNT, SUM, AVG). GROUP BY e HAVING
02/06 Ter SEM AULA
04/06 Qui CORPUS CHRISTI — SEM AULA
11 09/06 Ter JOINs: INNER JOIN, LEFT JOIN, RIGHT JOIN. Exercícios com múltiplas tabelas
12 11/06 Qui Laboratório de consultas: exercícios progressivos cobrindo tudo até aqui
16/06 Ter Acompanhamento dos projetos
18/06 Qui Acompanhamento dos projetos
23/06 Ter Acompanhamento dos projetos
25/06 Qui Acompanhamento dos projetos
30/06 Ter Acompanhamento dos projetos
02/07 Qui Acompanhamento dos projetos
07/07 Ter Acompanhamento dos projetos
PF 09/07 Qui Apresentação Final do Projeto (10 min por grupo)
14/07 Ter Buffer
16/07 Qui Buffer

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.