Evitar reservas além da capacidade é um projeto PostgreSQL para quem já sabe consultar e alterar tabelas simples. Faça reservas reais, reproduza duas confirmações para um único lugar e entregue SQL reutilizável que reserve para o grupo inteiro ou não altere nada.
Dois laboratórios guiados explicam o fluxo normal, esperas reais por bloqueios, recuperação de transações e uma instrução atômica salva. Um desafio independente muda as atividades, os tamanhos dos grupos e a ordem dos balcões. Cada unidade começa com seus próprios dados preparados; o resultado é seu SQL e o registro real de reservas.
O que você aprenderá
- Relacionar cada grupo confirmado ao número exato de lugares e à capacidade restante.
- Reproduzir uma decisão baseada em disponibilidade desatualizada com duas conexões reais.
- Alocar lugares condicionalmente e usar as linhas de RETURNING para criar a confirmação.
- Observar uma solicitação em espera enquanto outro workshop continua recebendo reservas.
- Distinguir falta de lugares de um erro SQL e verificar se uma confirmação malsucedida reverte a alocação.
- Recuperar uma transação abortada e preservar reservas originais, detalhes dos workshops e ferramentas preparadas.
Para quem é este curso
Para estudantes de SQL e desenvolvedores iniciantes que desejam compreender um problema concreto de concorrência trabalhando com um banco de dados real.
Pré-requisitos: Navegação básica no terminal, conexões PostgreSQL e SELECT, WHERE, INSERT e UPDATE. Transações, bloqueios de linha, variáveis psql, conversões para inteiros e expressões de tabela comuns que modificam dados são explicados antes do uso.
Ambiente de aprendizagem: PostgreSQL e dados sintéticos de workshops estão prontos no navegador. Workshop Desk oferece o shell; Desk A e Desk B oferecem conexões nativas psql independentes ao mesmo banco de dados em uma única máquina. Você escreve SQL sem criar um programa Python ou um site.
Perguntas frequentes
Preciso entender bloqueios de banco de dados antes?
Não. Você começa com uma reserva normal, observa uma reserva acima da capacidade de forma controlada e uma espera real por bloqueio e, então, aplica o método seguro. São necessárias as bases de SQL indicadas acima.
O que vou entregar?
Um arquivo reserve.sql reutilizável e confirmações reais para grupos inteiros. Em cada workshop, os lugares reservados somados aos restantes devem corresponder à capacidade. As verificações práticas também preservam os registros originais e executam seu SQL sem modificá-lo sobre outros dados isolados.
O projeto inclui uma plataforma completa de reservas em produção?
Não. Você pratica transações READ COMMITTED em um único banco PostgreSQL. Pagamentos, novas tentativas automáticas, retenções temporárias de lugares e coordenação distribuída estão fora do projeto. O desafio combina de forma independente os mecanismos ensinados nos laboratórios guiados.




