← Últimos artigos
💻 computer science

Automating Database-Native Function Code Synthesis with LLMs

O artigo apresenta o DBCooker, um sistema baseado em LLMs que automatiza a síntese de funções nativas de bancos de dados através de caracterização funcional, geração de planos de codificação e validação progressiva, superando métodos existentes em precisão e capacidade de criar novas funcionalidades.

Autores originais: Wei Zhou, Xuanhe Zhou, Qikang He, Guoliang Li, Bingsheng He, Quanqing Xu, Fan Wu

Publicado 2026-04-09
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Wei Zhou, Xuanhe Zhou, Qikang He, Guoliang Li, Bingsheng He, Quanqing Xu, Fan Wu

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que um banco de dados (como o SQLite, PostgreSQL ou DuckDB) é como uma cozinha gigante e super organizada. Nessa cozinha, existem milhares de receitas prontas (funções) que permitem aos cozinheiros (os desenvolvedores) fazer coisas como somar números, cortar datas ou formatar textos.

O problema é que, quando a cozinha cresce e precisa de uma nova receita (uma nova função) que não existe, ou precisa adaptar uma receita antiga de outra cozinha (migração de sistemas), o trabalho manual é enorme, chato e propenso a erros. É como tentar escrever um livro inteiro de receitas à mão, sabendo exatamente qual ingrediente usar, em qual pote guardar e como misturar, sem errar uma única medida.

Aqui entra o DBCooker, o "Cozinheiro Automático" criado pelos pesquisadores.

O Problema: Por que os robôs comuns falham?

Os robôs de programação atuais (como o Claude Code ou o Qwen Code) são como estagiários muito inteligentes, mas que nunca trabalharam em uma cozinha de verdade.

  • Eles sabem o que é "fazer um bolo", mas não sabem que, na cozinha do banco de dados, você precisa registrar o bolo em um livro específico, usar uma panela de um tamanho exato e seguir regras estritas de segurança.
  • Eles tentam adivinhar onde colocar o código, muitas vezes esquecendo de ingredientes essenciais (referências internas) ou usando utensílios errados, o que faz o bolo (o código) explodir ou não assinar.
  • Eles perdem muito tempo procurando em armários errados em vez de cozinhar.

A Solução: O DBCooker

O DBCooker não é apenas um robô que escreve código. É um sistema de cozinha inteligente projetado especificamente para bancos de dados. Ele funciona em três etapas principais:

1. O "Chefe de Cozinha" que Entende o Menu (Caracterização da Função)

Antes de começar a cozinhar, o DBCooker lê o pedido com atenção.

  • Analogia: Imagine que você pediu "bolo de chocolate". O DBCooker não apenas anota isso. Ele vai até a prateleira de receitas antigas e descobre que, para fazer esse bolo, você na verdade precisa de três receitas menores: a massa, o recheio e a cobertura.
  • Ele analisa a estrutura do banco de dados para saber exatamente quais "unidades de função" (as receitas menores) precisam ser criadas e quais ingredientes (códigos existentes) já estão na despensa e podem ser reutilizados. Ele evita reinventar a roda.

2. O "Cozinheiro" que Segue um Roteiro (Síntese de Código)

Em vez de tentar escrever o código do zero (o que gera erros), o DBCooker usa uma estratégia de "Preencher as Lacunas".

  • Analogia: Em vez de pedir ao robô para "escrever uma história do zero", o DBCooker entrega a ele um esqueleto de história com espaços em branco: "O herói entrou na [] e pegou a [].".
  • O robô só precisa preencher os espaços com as palavras certas. Se ele errar, o sistema percebe e pede para tentar de novo, ajustando a probabilidade de usar aquele modelo de preenchimento. Se o modelo falhar muito, o sistema muda de estratégia e pede para o robô tentar criar algo novo, mas com supervisão.

3. O "Inspector de Qualidade" de Três Níveis (Validação)

Ninguém come um bolo sem provar. O DBCooker tem um inspector rigoroso que verifica o código em três etapas:

  1. Gramática: O código está escrito corretamente? (Ex: falta um ponto e vírgula?)
  2. Regras da Cozinha: O código segue as normas do banco de dados? (Ex: O ingrediente foi colocado na panela certa?)
  3. Sabor Real: O código funciona de verdade? O sistema roda testes automáticos para ver se o resultado é o esperado. Se o bolo estiver cru, o robô é avisado para ajustar a receita.

O Grande Truque: O "Gerente de Cozinha" Adaptativo

O DBCooker tem um superpoder: ele aprende com o passado.

  • Analogia: Se o DBCooker já fez um "bolo de frutas" ontem, ele lembra: "Ah, para bolos de frutas, eu precisei de 3 passos. Para o bolo de chocolate de hoje, vou começar com 3 passos também".
  • Ele não segue um roteiro rígido. Se a tarefa é simples (como somar dois números), ele faz rápido. Se é complexa (como processar dados de JSON), ele chama mais ferramentas e verifica mais vezes. Ele se adapta ao tamanho e dificuldade do pedido.

Os Resultados: O que eles conseguiram?

Os pesquisadores testaram o DBCooker em três cozinhas famosas (SQLite, PostgreSQL e DuckDB) e os resultados foram impressionantes:

  • Precisão: O DBCooker acertou 34,55% mais do que os melhores robôs atuais.
  • Novidades: Ele conseguiu criar receitas que nem existiam na versão mais recente do SQLite, como funções para calcular "gamma" ou "lcm", coisas que os humanos teriam que programar manualmente por horas.
  • Eficiência: Ele economiza tempo e evita que os desenvolvedores fiquem presos em erros bobos de sintaxe.

Resumo Final

O DBCooker é como ter um chef de cozinha de elite que conhece a fundo a estrutura de cada restaurante (banco de dados). Ele não apenas escreve o código, ele entende onde cada peça se encaixa, usa ingredientes que já existem para não desperdiçar, segue regras estritas de segurança e testa o prato antes de servir.

Isso transforma a tarefa difícil e propensa a erros de criar novas funções para bancos de dados em algo automático, rápido e confiável, permitindo que os sistemas de dados evoluam muito mais rápido.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →