Plano de Ensino — UC2: Implementar Banco de Dados

Referência única da distribuição de conteúdo, datas e indicadores da UC2. Construído a partir do plano de curso do Senac RS, do cronograma oficial da turma (versão de 22/09/2026), do formulário diagnóstico respondido pela turma e do livro-texto de apoio.

1. Identificação

Curso Programador de Sistemas — Qualificação Profissional (Senac RS)
Unidade Curricular UC2 — Implementar Banco de Dados
Carga horária 72 horas (18 aulas × 4h)
Período 06/10/2026 a 03/11/2026
Turno Noite, 18h–22h, segunda a sexta
Docente Anderson Gonçalves (anderson.goncalves@inf.ufrgs.br)
Não letivos no período 12/10 (feriado), 13/10 (Dia do Professor) e 02/11 (Finados)

2. Competência da UC e indicadores

Competência: implementar banco de dados.

Nº Indicador
I1 Define a arquitetura de banco de dados, de acordo com a modelagem de dados.
I2 Planeja o banco de dados conforme as regras de negócio.
I3 Desenvolve estruturas de dados, de acordo com o planejamento definido.
I4 Modela o banco de dados de acordo com o planejamento definido.
I5 Avalia a persistência dos dados gerados pelo software, verificando sua funcionalidade, conforme o planejamento definido.
I6 Operacionaliza atividades de atualização, permissões de acesso e cópias de segurança de acordo com o banco implantado.

3. Conteúdo programático (conhecimentos do plano de curso)

Modelagem de dados (requisitos, dicionário de dados, modelo relacional, MER) · Normalização · SGBD (conceito e arquitetura) · SQL — DDL e DML · Gestão de dados (usuários, backup e recuperação).

4. Metodologia

Segue a orientação metodológica do plano de curso — metodologias ativas, construção de tabelas em um SGBD real, criação de conexão com banco de dados e construção de um CRUD completo como fio condutor prático, variando a composição dos grupos ao longo da UC.

Quatro blocos, e nenhum deles termina sem o aluno fazer alguma coisa. Cada aula de 4h tem três blocos de teoria de ~50 min — cada um fechando num exercício de 5 a 6 minutos, feito no papel, em dupla ou pelo QR — e um quarto bloco inteiro de prática no projeto do grupo (~55 min). A tabela da seção 6 traz a teoria e a prática de cada aula.

Esta seção já disse outra coisa. Até a revisão de setembro ela prometia "teoria curta (30–45min) → prática imediata", fatiada, e nenhum dos 17 decks fazia isso: medido nas notas de tempo, são 117 a 146 minutos de teoria contígua e uma única ida ao laboratório. O slide "Como cada aula vai funcionar" da Aula 00 repetia a mesma promessa e se contradizia três linhas abaixo. A promessa foi trocada pela descrição do que acontece — e pela exigência que faltava: bloco de teoria que não fecha em exercício é defeito. Ver docs/revisao/04, decisão 2.

Projeto contínuo (case único, não exemplos soltos). A partir da Aula 3, a turma trabalha em grupos sobre um único estudo de caso que evolui aula a aula até o CRUD final na Aula 18 — em vez de exemplos descartáveis a cada aula. Proposta padrão do docente: Sistema de Locadora de Jogos (jogos, plataformas, clientes, empréstimos) — domínio que o próprio docente conhece bem (desenvolvedor de jogos no LabTIME/UFG) e que também está entre os interesses mais citados pela turma. Grupos que preferirem podem adaptar para outro tema de interesse (RPG/anime, confeitaria etc.), desde que a estrutura de dados tenha complexidade equivalente (mínimo 3 entidades relacionadas, com pelo menos um relacionamento N:N). Isso garante que a prática de cada aula não é um exercício isolado — é sempre "o próximo passo do banco que o grupo já está construindo".

Ajustes ao perfil desta turma, a partir das 14 respostas do formulário diagnóstico:

Linguagem do CRUD: Python. A UC1 (João) é lecionada em Python — o CRUD desta UC2 continua nessa linguagem, conectando ao PostgreSQL via psycopg2 (ou psycopg v3), dentro de um notebook Jupyter para evitar terminal. Isso mantém a turma numa única linguagem ao longo do curso e prepara terreno para o pytest que a UC3 usará sobre este mesmo código. A modelagem/DDL/consultas em si continuam ensinadas em SQL puro (via pgAdmin) nas aulas 10–15; o Python entra a partir da Aula 11/12 como camada de acesso ao banco já criado.

SGBD adotado em laboratório: PostgreSQL (servidor) administrado pelo pgAdmin (interface gráfica) — mesma dupla que o docente usa em produção. O livro-texto ensina com MySQL/MySQL Workbench; a lógica de MER, DDL e DML é a mesma, mas a sintaxe diverge em alguns pontos — sinalizar nos slides quando relevante:

Tópico MySQL (livro-texto) PostgreSQL (usado em aula)
Auto-incremento de PK AUTO_INCREMENT SERIAL / GENERATED ALWAYS AS IDENTITY
Aspas de identificador `crase` "aspas duplas"
Limitar linhas LIMIT n LIMIT n (igual)
Cliente gráfico MySQL Workbench / DB Manager pgAdmin

Cada aluno instala PostgreSQL + pgAdmin no próprio notebook (ou usa a instalação do laboratório) — incluir isso como pré-requisito de logística antes da Aula 10.

"Para casa" (opcional, todas as 18 aulas). Cada deck termina com um slide verde "Para casa" com dois itens, sempre sem caráter obrigatório — reforço para quem quiser, não pré-requisito da aula seguinte nem penalidade para quem não fizer:

5. Avaliação

Conforme o plano de curso: menção por indicador (Atendido / Parcialmente Atendido / Não Atendido durante o processo; A ou NA ao final — PA não existe no fim) e menção final da UC (Desenvolvida / Não Desenvolvida). Frequência mínima de 75%.

Um único indicador NA ao final reprova a UC. O plano de curso é literal: "caso algum dos indicadores não seja atingido, o aluno será considerado reprovado na unidade". Não há compensação entre indicadores.

Recuperação é imediata, não no fim. O plano manda que ela seja "imediata à constatação das dificuldades do aluno, por meio de solução de situações-problema, realização de estudos dirigidos e outras estratégias". Na prática desta UC: constatado um PA numa entrega, a recuperação acontece na aula seguinte, dentro do bloco de prática, com o docente na mesa do grupo — e fica registrada com a data.

Instrumento principal de avaliação: o CRUD completo desenvolvido ao longo da UC (modelagem → implementação → consultas → gestão), entregue e demonstrado na Aula 18.

Cada indicador tem evidência antes da Aula 18, pelas entregas por aula:

indicador primeira evidência aula
I1 — arquitetura banco criado e primeira tabela 10
I2 — planeja conforme as regras de negócio minimundo do grupo 03
I3 — desenvolve estruturas banco criado e primeira tabela 10
I4 — modela dicionário de dados 04
I5 — avalia a persistência consultas do projeto 13
I6 — atualização, permissões e backup matriz de permissões e roles 16

A Aula 18 é a consolidação dos seis, não a primeira medida de nenhum.

6. Distribuição das aulas

Cada célula de "Teoria / Prática" segue a lógica da seção 4: teoria curta primeiro, prática aplicada ao mesmo projeto contínuo logo em seguida (nunca teoria acumulada sem uso imediato).

Aula Data Dia Bloco Teoria (curta) Prática (no projeto contínuo) Indicador(es) Fonte
01 06/10 ter Fundamentos O que é um SGBD; problema de arquivos isolados ⚠️ Em grupo: listar o que dá errado numa "planilha de locadora de jogos" compartilhada (edição simultânea, perda de dados) e ligar cada problema a um objetivo do SGBD I1 U1
02 07/10 qua Fundamentos Abstração de dados (físico/conceitual/visões); instâncias vs. esquema Explorar no pgAdmin um banco de exemplo já pronto (fornecido): distinguir "esquema vazio" de "banco com dados" I1 U1
03 08/10 qui Modelagem Minimundo/estudo de caso: como extrair entidades e relacionamentos de um texto Ler o estudo de caso da locadora e circular, em grupo, substantivos (entidades) e verbos (relacionamentos) I1, I2 U2
04 09/10 sex Modelagem Atributos, tipos de dado e nulo; o dicionário de dados Listar os atributos de cada entidade do próprio caso e preencher o dicionário de dados (entrega da aula) I2, I4 U2
— 12–13/10 seg/ter (não letivo — feriado e Dia do Professor)
05 14/10 qua Modelagem Chaves (PK, candidata, estrangeira, composta) e cardinalidades Definir PK/FK e cardinalidades entre as entidades do próprio caso I2, I4 U2
06 15/10 qui Modelagem MER × DER; notações de diagrama; relacionamentos especiais Desenhar o DER completo do projeto (a partir do MER) no draw.io, em grupo I2, I4 U2
07 16/10 sex Relacional Mapeamento entidade/relacionamento → tabela relacional Converter o DER da Aula 06 numa lista de tabelas/colunas (papel ou planilha) I2, I4 U3
08 19/10 seg Relacional Dependências funcionais (o essencial, sem álgebra formal pesada) Identificar dependências entre colunas nas próprias tabelas do projeto I2, I4 U3
09 20/10 ter Relacional Normalização (1FN, 2FN, 3FN) Normalizar o próprio esquema do projeto até 3FN I2, I4 U3
10 21/10 qua SGBD/DDL O que é DDL; tipos de dados no Postgres Instalar PostgreSQL + pgAdmin (guiado) · criar o banco e a 1ª tabela real do projeto I1, I3 U4 + Apêndice A
11 22/10 qui SGBD/DDL Constraints, ALTER, DROP, FK entre tabelas Criar todas as tabelas do esquema normalizado (Aula 09) no pgAdmin I3, I4 U4 + Apêndice A
12 23/10 sex SGBD/DML INSERT/UPDATE/DELETE; mini-tópico guiado pip install psycopg2-binary Inserir dados reais do projeto no pgAdmin e no 1º notebook Jupyter conectado ao banco I3, I5 U4 + Apêndice B
13 26/10 seg Consultas SELECT, WHERE, ORDER BY Consultar os dados do próprio projeto — lado a lado, pgAdmin e célula de notebook I3, I5 Apêndice B
14 27/10 ter Consultas JOIN (INNER/LEFT) e agregações (GROUP BY, COUNT, SUM) Responder perguntas reais do projeto ("jogos por plataforma", "empréstimos por cliente") com JOIN I3, I5 Apêndice B
15 28/10 qua Consultas Subconsultas e views Implementar as funções create/read/update/delete do CRUD em células do notebook I5 Apêndice B
16 29/10 qui Gestão Usuários, roles e permissões Criar, no próprio banco do projeto, um usuário com permissão só de leitura I6 U1 (só a classificação de usuários) + doc. PostgreSQL 16, cap. 22 e GRANT/REVOKE
17 30/10 sex Gestão Backup/restore; ciclo de vida do sistema Fazer backup do banco do projeto e simular um restore — pelo botão do pgAdmin, sem terminal I6 doc. PostgreSQL 16, cap. 26 (Backup and Restore) + pgAdmin
— 02/11 seg (não letivo — Finados)
18 03/11 ter Fechamento — Entrega e demonstração do CRUD completo do projeto de cada grupo I1–I6 —

⚠️ O dia 06/10 tem 274 minutos de material para 240 de aula. A Aula 00 (62 min) e a Aula 01 (212 min) dividem a mesma noite, e 18h + 274 min terminam perto das 22h35. A decisão foi aceitar o estouro só neste dia, sem cortar conteúdo: a abertura é o que constrói o vínculo com a turma, e a Aula 01 é a que planta os quatro problemas que voltam na Aula 18.

O combinado é dito no começo, no slide de Combinados da Aula 00, e não descoberto às 22h — 8 dos 14 alunos trabalham de dia. Quem precisar sair no horário sai, e o material da Aula 01 fica publicado no site.

Sobre a coluna "Fonte". U1 a U4 e os apêndices são do livro-texto de apoio (Moreira). As Aulas 16 e 17 não têm fonte nele: conferido por varredura no texto inteiro, o livro tem zero ocorrências de GRANT ou REVOKE, e trata backup só como objetivo do SGBD, sem procedimento. Essas duas aulas vêm da documentação do PostgreSQL 16 — capítulo 22 (Database Roles), as páginas de GRANT e REVOKE, e o capítulo 26 (Backup and Restore) — mais os diálogos Backup/Restore do pgAdmin.

7. Bibliografia

Básica — do plano de curso do Senac

Acrescentada pelo docente (não consta da bibliografia oficial)

Complementar


Última atualização: distribuição inicial proposta pelo docente — revisar e ajustar conforme o ritmo real da turma nas primeiras aulas.

← Slides da UC2