Skip to content

Entrega E1 · Fonte transacional modelada e populada ​

Cada item do checklist de aceite da E1, na ordem da página da disciplina, com o lugar exato onde conferir.

Conferir em máquina limpa

bash
git clone https://github.com/Luidooo/conselhos-vivos.git && cd conselhos-vivos
make setup    # cria o .env, sobe o Postgres, aplica as migrações e carrega a planilha
make test     # infra, esquema, leitura da planilha, identidade dos conselhos e carga

Pré-requisitos: Docker com Compose v2 e make. Detalhes em Como rodar.

1. Domínio e pergunta de gestão ​

Domínio: a produção decisória dos conselhos nacionais de participação social, lida no Diário Oficial da União.

Pergunta: Quais conselhos nacionais de participação social ainda estão funcionando?

Conferir: Visão geral.

2. Esquema físico versionado, com migrações executáveis do zero em ordem ​

  • Migrações numeradas em sql/, de 001 a 006.
  • make migrate (scripts/migrate.sh) aplica cada arquivo uma vez, em ordem e dentro de uma transação, e registra em schema_migrations. Uma migração que quebra no meio é desfeita inteira: essa garantia foi medida no ADR 0002.
  • Chaves, restrições e COMMENT ON são testados por tests/db/test_schema.sh. Cada recusa confere o nome da restrição que recusou.

3. Carga reprodutível com um comando, sem passo manual ​

  • make setup (ou make carga num banco que já existe) lê a planilha versionada e grava conselhos, atos e classificações. É idempotente: rodar de novo não duplica nada.
  • A leitura usa só a biblioteca padrão do Python, num serviço do compose sem rede: ADR 0003.
  • Cada carga reescreve o relatório da planilha, que diz quantas linhas entraram e quantas foram descartadas, e por quê.

4. Volume ​

  • 215 atos de 5 conselhos (2003–2020), todos com a classificação da pesquisadora: relatório da carga.
  • 125 nomes → 82 conselhos, com renomeações em orgao_nome e grafias em orgao_alias: identidade dos conselhos.
  • O relatório da carga explica por que o número é 215, e não os 2.638 contados no primeiro dia: eram linhas com formatação, mas sem valor.

5. Caracterização da carga de trabalho ​

Volume, taxa de escrita e leitura, padrão de acesso e latência tolerada, com números do domínio: ADR 0001 · Contexto.

6. Como a origem trata histórico ​

Insert-only na classificação: reclassificar é uma linha nova, a view classificacao_vigente devolve a última de cada revisor, e um trigger bloqueia UPDATE e DELETE. A comparação com CRUD foi medida: ADR 0001 · Medição.

Os nomes dos órgãos guardam vigência em orgao_nome, e os atos retificados ganham nova versao sem sobrescrever a anterior.

7. ADR sobre a modelagem do sistema de origem ​

ADRDecisão
0001O OLTP é o sistema de curadoria, com classificação insert-only
0002O OLTP continua em PostgreSQL 16 (benchmark com 5 motores)
0003A planilha entra como rótulo da curadoria
0004A identidade dos conselhos sai de uma chave mais decisões registradas

8. README para subir tudo com Docker Compose ​

Visão geral · Como rodar: make setup e make test, a tabela de serviços e o que fazer com porta ocupada.

Processo da squad ​

Projeto Integrado de Banco de Dados 2 — FCTE/UnB, 2026/2.