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:
- Comandos SQL sempre acompanhados de glossário EN→PT (turma majoritariamente sem domínio de inglês).
- Modelagem explicada com diagramas visuais, não com notação formal de conjuntos (turma com matemática básica, não avançada).
- Exemplos de estudo de caso usam temas de interesse recorrente da turma — games/coleção de jogos (escolhido como projeto contínuo, também domínio de conforto do docente), futebol, confeitaria — em vez de cenários corporativos genéricos.
- Não assume UC1 consolidada: lógica básica é retomada nas aulas 1–2 antes de avançar em SQL.
- Terminal/CMD é barreira real, não só detalhe. O João relatou que uma aula inteira de UC1
dedicada a terminal/CMD não foi bem compreendida pela turma. Portanto:
- Todo SQL é executado no pgAdmin Query Tool (GUI) — nunca
psqlem terminal. - O CRUD em Python usa Jupyter Notebook no VS Code (rodar com o botão ▶, célula por
célula) — não terminal com
python arquivo.py. - Onde a CLI for mesmo inevitável (
pip install,pg_dump), tratar como mini-tópico próprio, passo a passo com print de tela, sem presumir que "já viram isso na UC1".
- Todo SQL é executado no pgAdmin Query Tool (GUI) — nunca
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:
- Testar em casa — um gatilho curto de experimentação, geralmente fora do projeto do grupo (ex.: "pense em outro exemplo do dia a dia"), para fixar o conceito sem depender do grupo.
- Tarefa opcional — algo um pouco mais estruturado, quase sempre aplicado ao próprio projeto do grupo (revisar, enriquecer ou avançar um artefato já em andamento).
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".
U1aU4e 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 deGRANTouREVOKE, 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 deGRANTeREVOKE, 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
- ALVES, Willian Pereira. Banco de dados. São Paulo: Érica, 2014.
- LIMA, Adilson da Silva. Especificações técnicas de software. São Paulo: Érica, 2012.
Acrescentada pelo docente (não consta da bibliografia oficial)
- MOREIRA, Flávio Ferry de Oliveira. Fundamentos de Banco de Dados. Teresina: EDUFPI/CEAD, 2013. Escolhida por ser aberta, em português e alinhada à modelagem e ao relacional. Não cobre o indicador 6, e traz três erros conceituais registrados no README da raiz.
- Documentação do PostgreSQL 16 e do pgAdmin 4, fonte real das Aulas 10 a 17.
Complementar
- BEIGHLEY, Lynn. Use a Cabeça! SQL. Alta Books, 2008.
- LIGHTSTONE, Sam. Projeto e modelagem de banco de dados. Elsevier/Academic, 2013.
- PUGA, S. Banco de dados: Implementação em SQL, PL/SQL e Oracle 11g. Pearson, 2013 (ebook).
Última atualização: distribuição inicial proposta pelo docente — revisar e ajustar conforme o ritmo real da turma nas primeiras aulas.