🎞️ Slides 📝 Material ← Módulo
Módulo 2 · Ciclo Comum · IN02 Plano de Ensino

Aula 3 — Banco de Dados II · CRUD

Plano operacional do dia: dominar o ciclo CRUD em SQL (INSERT, SELECT, UPDATE, DELETE) com filtragem, ordenação, transações ACID e índices, e implementar todas as operações de dados do projeto.

← Voltar ao Módulo

Identificação

Disciplina
IN02 · Desenvolvimento Web
Módulo
2 — Ciclo Comum
Aula
3 de 11
Carga horária do dia
6h (2h + 2h + 2h)
Modalidade
Presencial · Metodologia ativa
Pré-aula
Autoestudo guiado

Resumo

A aula 3 aprofunda o SQL operacional sobre o esquema construído na aula 2. O foco é o ciclo CRUD completo com refinamentos de consulta (WHERE, ORDER BY, LIMIT, OFFSET), comandos de mutação seguros (UPDATE e DELETE sempre com WHERE) e os mecanismos do banco que protegem a integridade: transações ACID e índices para performance.

O fechamento revisita o RM-ODP (visão Information) e prepara a tarde de desenvolvimento, em que cada equipe implementa todas as operações de dados do minimundo no banco da equipe.

Objetivos de aprendizagem

  • OA-1Aplicar os 4 comandos do CRUD (INSERT, SELECT, UPDATE, DELETE) com sintaxe correta em PostgreSQL.
  • OA-2Compor consultas com WHERE, ORDER BY, LIMIT e OFFSET para filtragem, ordenação e paginação.
  • OA-3Identificar o risco de UPDATE/DELETE sem WHERE e adotar checklist defensivo antes de executar.
  • OA-4Operar transações com BEGIN, COMMIT e ROLLBACK respeitando as propriedades ACID.
  • OA-5Criar índices simples e justificar quando vale a pena usá-los.
  • OA-6Implementar todas as operações de dados do minimundo da equipe no banco do projeto.

Pré-requisitos

  • Aula 2 concluída: tabelas criadas no banco da equipe a partir do CREATE TABLE.
  • Massa de dados mínima inserida (3+ INSERTs na aula anterior).
  • Cliente SQL operacional (psql, DBeaver, TablePlus ou extensão SQL do VS Code).
  • Repositório com db/01_create_tables.sql mergeado na develop.

Cronograma do dia

Mesma estrutura: três blocos de duas horas, com a janela da tarde dedicada a transformar o conteúdo em CRUD real no projeto.

📚 Bloco 1 · Autoestudo

08h00 — 10h00

Estudo individual orientado pelo material da aula 3.

  • Leitura completa do Material da Aula 3 (CRUD, transações, índices).
  • Listar 5 operações de negócio do minimundo da equipe — uma para cada verbo CRUD + uma de paginação.
  • Validar conexão ao banco da equipe e revisar dados existentes (SELECT * FROM ...).
  • Caderno de bordo: registrar dúvidas concretas sobre transações e índices.

🎓 Bloco 2 · Instrução PE — Aula em metodologia ativa

10h00 — 12h00

Encontro síncrono com o professor especialista. 15 minutos de daily seguidos de 1h45 de aula.

  • 10h00 — 10h15 · Daily: andamento do banco e impedimentos.
  • 10h15 — 12h00 · CRUD em laboratório, transações com cenário real e índices na prática.

🍴 Intervalo · Almoço

12h00 — 14h00

Janela livre. Recomenda-se não tratar conteúdo da aula nesse período.

🛠️ Bloco 3 · Desenvolvimento do projeto

14h00 — 16h00

Janela de trabalho da equipe sobre o projeto integrador, com mentoria disponível.

  • Escrever db/02_seed.sql com massa de teste realista para todas as tabelas.
  • Escrever db/queries.sql com 10+ queries representativas das operações do minimundo.
  • Implementar pelo menos 2 transações relevantes (ex.: criar pedido + atualizar estoque).
  • Avaliar 2 candidatos a índices e justificar no docs/banco/decisoes.md.
  • Abrir Merge Request feat(db): crud e transações.

Detalhamento da instrução PE (10h00 — 12h00)

Estrutura idêntica às aulas anteriores: blocos curtos de exposição alternados com prática em pares.

10h00
10h15

DailyDaily de abertura

Cada aluno responde, em até 1 minuto: como está o banco da equipe / qual operação do CRUD trouxe pronta / qual minha dúvida concreta.

10h15
10h30

TalkCRUD em síntese · O ciclo operacional

Exposição curta (12 min) revisando a anatomia dos 4 verbos com exemplos lado a lado e seus padrões de retorno.

10h30
10h55

CodingLaboratório de SELECT — WHERE, ORDER BY, LIMIT

Em duplas, os alunos respondem 6 perguntas de negócio do minimundo escrevendo apenas SELECT. Três duplas apresentam alternativas — debate sobre legibilidade e cardinalidade do resultado.

10h55
11h15

AtivaUPDATE e DELETE com defesa

Demonstração intencional do desastre: UPDATE produtos SET preco=0; sem WHERE. Em duplas, os alunos definem checklist defensivo (testar com SELECT primeiro, usar transação, fazer backup) e aplicam para reescrever 2 mutações.

11h15
11h35

CodingTransações ACID em cenário real

Live coding: criar pedido + dar baixa no estoque dentro de uma única transação. Ao vivo, o professor injeta uma falha no meio para mostrar o ROLLBACK. Alunos replicam em pares com a transação da própria equipe.

11h35
11h50

AtivaÍndices — quando vale a pena?

Apresentação de uma tabela de 100k linhas. Cada dupla recebe uma query e decide se cria (ou não) um índice, justificando o trade-off (leitura rápida vs. escrita mais lenta). Consolidação coletiva.

11h50
12h00

AtivaSíntese e contrato do dia

Cada aluno escreve no caderno de bordo, em uma frase, "a aula 3 me ensinou que...". O professor anuncia a entrega esperada das 14h às 16h.

Estratégias de metodologia ativa

  • Aprendizagem por desastre controlado — viver, em sala, o efeito do UPDATE sem WHERE para internalizar a regra defensiva.
  • Aprendizagem baseada em problema — toda query nasce de uma pergunta de negócio do minimundo, nunca de um exercício abstrato.
  • Decisão fundamentada em pares — sobre índices e transações, a dupla precisa defender a escolha antes de implementar.
Princípio orientador

Toda mutação no banco precisa estar precedida por um SELECT que prova o que vai mudar.

Recursos e ferramentas

CategoriaRecursoUso
Slidesslides/slide-lesson-3.htmlExposição na instrução PE
Materialmaterials/lesson-3-material.htmlAutoestudo
SGBDPostgreSQL 15+Execução de DDL/DML
Cliente SQLpsql ou DBeaverTransações e EXPLAIN
Repositóriodb/02_seed.sql e db/queries.sqlMassa de teste e queries
Documentaçãodocs/banco/decisoes.mdJustificativa de índices

Verificação de aprendizagem

Avaliação formativa ao longo do dia.

  • CR-1Participou da daily com diagnóstico claro do estado do banco da equipe.
  • CR-2Resolveu, em par, ao menos 4 das 6 perguntas de negócio do laboratório de SELECT.
  • CR-3Aplicou checklist defensivo antes de executar UPDATE/DELETE em sala.
  • CR-4Demonstrou uma transação com ROLLBACK intencional no banco da equipe.
  • CR-5Abriu Merge Request feat(db): crud e transações com seed, queries e decisões de índice até as 16h00.
Critério mínimo

Aluno que sair às 16h sem o CRUD completo do minimundo rodando está em débito técnico para a aula 4 (JOINs).

Conexão com a aula 4

A aula 4 introduz JOINs. As queries refinadas hoje serão a base para relatórios cruzando múltiplas tabelas.

  • A massa do seed.sql precisa ter pedidos com vários produtos para os JOINs renderem resultados úteis.
  • As FOREIGN KEYs do esquema serão exploradas em INNER, LEFT e agregações.
  • Manter o minimundo: nenhuma troca de domínio entre as aulas do bloco de banco.
Para o autoestudo da aula 4

Antes das 8h do próximo dia: ler o material da aula 4, identificar 3 relatórios do minimundo que exigem unir tabelas e anotar dúvidas sobre cardinalidade dos resultados.

Inteli Logo