Rullst AcademyRullst Academy/Lição
Bancos de dados e SQL I · Lição 12 / 12

Missão: um catálogo verificável

Produzir um relatório de disponibilidade e resolver uma pergunta nova com testes.

Trilhas de aprendizado24 min

Vamos descobrir juntos

  1. 1

    availability.sql usa LEFT JOIN com empréstimos abertos, agrupa por identidade e subtrai unidades de stock. No conjunto inicial, a disponibilidade por id é 2, 0, 0 e 2. Confira à mão antes de executar.

  2. 2

    Execute python -m unittest discover -v. Os testes cobrem nomes repetidos, kit sem empréstimos, devolução, conjunto vazio e estoque insuficiente. Não esconda negativos: o esquema ainda permite emprestar além do estoque e o relatório deve revelar isso.

  3. 3

    Crie needs_restock.sql mostrando só materiais com disponibilidade menor ou igual a zero. Teste com os dados iniciais e após devolver empréstimo 3 na mesma execução. Acrescente um teste seu: os testes fornecidos não comprovam essa tarefa nova.

  4. 4

    Preencha REVIEW.md com previsão, execução, consulta própria, teste e limite. Explique para alguém; sozinho, tente novamente depois sem copiar. Salve seus .sql e relatório. A Rullst Academy envia um arquivo confirmado ao GitHub; não envia banco nem executa SQL lá.

Sua bancada de dados

Nosso modelo: kits.id ← loans.kit_id. Um material pode ter vários empréstimos; nomes podem repetir. Só usamos dados fictícios.

Preveja antes de abrir a referência. Ela mostra o resultado verificado do exemplo original, não executa seu texto. Para executar suas alterações, use o kit no computador.

-- Missão: um catálogo verificável
SELECT k.id, k.label,
       k.stock - COALESCE(SUM(l.units), 0) AS available
FROM kits AS k
LEFT JOIN loans AS l ON l.kit_id = k.id AND l.returned IS NULL
GROUP BY k.id, k.label, k.stock
ORDER BY k.id;
Comparar com o resultado de referência
[
  {
    "columns": [
      "id",
      "label",
      "available"
    ],
    "rows": [
      [
        1,
        "Orbit",
        2
      ],
      [
        2,
        "Sprout",
        0
      ],
      [
        3,
        "Orbit",
        0
      ],
      [
        4,
        "Nova",
        2
      ]
    ]
  }
]

No terminal da pasta extraída, execute o comando. Use python3 no macOS/Ubuntu ou py se esse for seu launcher no Windows. Cada execução começa em memória; leia README.md para salvar arquivos e ensaiar recuperação.

python lab.py run lesson.sql
Meus arquivos e GitHub

O editor guarda seu rascunho .sql neste navegador. Baixe a edição e substitua lesson.sql no kit; no projeto final, availability.sql. O ZIP continua sendo o modelo original. Publicar no GitHub envia apenas o arquivo confirmado, sem executar SQL ou enviar o banco.

Links oficiais e próximo passo

✦
SUA MISSÃO

Produzir um relatório de disponibilidade e resolver uma pergunta nova com testes.

Agora é a sua vez

Oficina de descobertas

Leia, preveja e confira

Produzir um relatório de disponibilidade e resolver uma pergunta nova com testes.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

Qual evidência vai além de repetir o exemplo?

Preciso de uma pista

Execute python -m unittest discover -v. Os testes cobrem nomes repetidos, kit sem empréstimos, devolução, conjunto vazio e estoque insuficiente. Não esconda negativos: o esquema ainda permite emprestar além do estoque e o relatório deve revelar isso.

Carregando sua jornada…

Como perceber o que aprendi?

Use os objetivos e o desafio abaixo como uma conversa com você mesmo ou com alguém que possa ajudar. É uma autoavaliação orientada: não envia respostas, não concede XP e não verifica automaticamente sua autonomia.

Em Construção, integre uma pequena solução própria, teste uma variação não mostrada, registre limites e peça revisão quando possível. Reproduzir o exemplo é o começo; explicar e adaptar a solução desenvolve autonomia.

Seu desafio de transferência

Adapte para materiais de um hobby ou oficina fictícia. Defina pergunta nova, consulta, erro e recuperação. Registre ajuda recebida e o que fez com autonomia.

Guarde uma evidência: previsão, tentativa, resultado, uma mudança sua e o que ainda não consegue explicar. Quando possível, peça feedback a alguém; se estudar sozinho, retome depois sem copiar e compare suas tentativas.

Tente de novo em outro momento

Depois de uma pausa, explique a ideia sem abrir a solução e tente um exemplo diferente. Compare com sua primeira tentativa: o que consegue fazer sozinho e onde precisa de uma pista? Você pode escrever, falar ou desenhar; escolha uma forma que permita conferir a mesma ideia. Registre ajuda recebida, inclusive de IA, e volte ao trecho necessário. Não há prazo universal nem XP extra por esse registro.

Conclusões e XP registram as avaliações da Rullst Academy. Uma trilha introdutória pode ajudar na vida cotidiana e preparar próximos estudos; sozinha não comprova domínio completo ou preparo profissional. O nível indica profundidade, não idade.

Leve com você

Adapte para materiais de um hobby ou oficina fictícia. Defina pergunta nova, consulta, erro e recuperação. Registre ajuda recebida e o que fez com autonomia.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.