Capítulo 4 — SQL para verificações de governança
Mapa da aula
Aula 04 publicada. Mapa, exemplo, EX010.
flowchart TD
N0["4.1 Consultas básicas"]
N1["4.2 Órfãos"]
N2["4.3 Duplicatas"]
N3["4.4 Verificações reutilizáveis"]
N0 --> N1 --> N2 --> N3
N3 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX010"]
Desenho lógico
flowchart LR
N0["4.1 Consultas básicas"]
N1["4.2 Órfãos"]
N2["4.3 Duplicatas"]
N3["4.4 Verificações reutilizáveis"]
N0 --> N1 --> N2 --> N3 --> Q["EX010"]
[4.1 Consultas básicas]
|
v
[4.2 Órfãos]
|
v
[4.3 Duplicatas]
|
v
[4.4 Verificações reutilizáveis]
|
v
[Exemplo resolvido] --> [Exercício EX010]
Objetivos de aprendizagem
Você vai (1) escrever consultas SQL para verificar dados; (2) encontrar órfãos e duplicatas; (3) salvar consultas como verificações reutilizáveis.
4.1 Consultas básicas
Usando SQLite, Ravi escreve consultas sobre tabelas sintéticas da Calder Valley. Ele conta as ordens por prioridade, encontra ordens sem prestadora e lista os imóveis sem verificação de gás registrada no último ano. Cada consulta responde a uma pergunta de governança. A Sra. Moreau pede que ele escreva a pergunta como comentário acima de cada consulta, para que outras pessoas entendam seu propósito. Ele observa que o SQL costuma ser o caminho mais rápido para responder a perguntas de qualidade em sistemas construídos sobre bancos relacionais. Os comentários tornam suas consultas fáceis de revisar.
4.2 Órfãos
Um órfão é um registro que se refere a algo que não existe, como uma ordem que aponta para um identificador de imóvel ausente da tabela de imóveis. Ravi usa um left join para encontrar as ordens cujo imóvel não existe. Encontra algumas, criadas quando imóveis foram vendidos e removidos do sistema enquanto ainda havia ordens abertas. Ele as informa ao curador de reparos, que encerra as ordens e pede à TI que impeça a exclusão de imóveis com ordens abertas. A TI aplica a restrição em um mês, e a verificação passa a rodar toda semana para confirmar que nenhum novo órfão aparece.
4.3 Duplicatas
Ravi procura ordens duplicadas: o mesmo imóvel, a mesma descrição do problema e datas com até dois dias de diferença. Ele usa um self-join e encontra pares em que os inquilinos informaram o problema duas vezes e os atendentes criaram duas ordens. As duplicatas inflam as contagens e podem mandar duas prestadoras ao mesmo endereço. Ele mostra exemplos à gerente da central de atendimento, que acrescenta uma etapa: verificar se já há ordens abertas no imóvel antes de criar uma nova. O número de duplicatas cai no mês seguinte, e as prestadoras relatam menos visitas desperdiçadas.
4.4 Verificações reutilizáveis
Ravi salva as consultas úteis no repositório com nome, propósito, dono e resultado esperado. Ele cria um pequeno script Python com sqlite3 que executa todas as verificações salvas e grava os resultados em uma tabela, com a data. A Sra. Moreau observa que transformar consultas em uma biblioteca de verificações as torna repetíveis e revisáveis, e que é assim que muitas organizações constroem seu primeiro monitoramento de qualidade de dados antes de comprar qualquer ferramenta especializada. O curador revisa a tabela de resultados toda manhã e abre um registro de problema quando um resultado muda de forma inesperada.
Exemplo resolvido
Ravi escreve verificações SQL comentadas, encontra ordens órfãs de imóveis vendidos, encontra ordens duplicadas causadas por relatos repetidos e cria um script que executa as verificações salvas e registra os resultados.
Caso sintético. As tabelas são sintéticas.
Erros e limites
Consultas sem comentário perdem seu propósito; escreva a pergunta.
Exercícios
- EX010 — Causa dos órfãos. Por que existiam ordens órfãs? Rubrica: 3 = imóveis vendidos e removidos com ordens abertas;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
- EX011 — Regra de duplicata. Como Ravi definiu uma ordem duplicada? Rubrica: 3 = mesmo imóvel e mesmo problema em até dois dias;; 2 = parcialmente correto;; 1 = parcial;; 0 = nenhuma.
- EX012 — Correção na central. Que etapa a central de atendimento acrescentou? Rubrica: 3 = verificar antes se há ordens abertas no imóvel;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
Continue estudando — aula 04 (capítulo 04 de 30)
← Capítulo 03 · Índice das aulas · Capítulo 05 →
Continue para a próxima aula já escrita.