Desafio do Advent of Code 2024 em SQL puro
(databasearchitects.blogspot.com)-
Desafio do Advent of Code 2024 em SQL puro
-
Visão geral
- O autor decidiu resolver o Advent of Code deste ano usando SQL puro.
- Essa experiência foi divertida, pois o obrigou a pensar nos problemas de um jeito diferente, e ele conseguiu resolver todos os desafios com SQL.
- O SQL acabou sendo, em muitos casos, uma forma bastante agradável de usar.
-
Exemplo do Dia 11
- Apresenta a solução completa com a entrada do problema incluída.
- O parsing da entrada em SQL é um pouco trabalhoso, mas não impossível.
- O algoritmo é relativamente curto e executa uma busca recursiva por campos.
- SQL é adequado para buscas em pequena escala.
-
Desafios de outros dias
- No Dia 16, é feita uma tarefa semelhante para calcular a menor distância de busca em um campo.
- Isso é fácil de expressar em SQL, mas a avaliação é ineficiente.
- Para entradas grandes, precisa-se manter muitos estados, exigindo mais de 200 GB de memória.
- Alguns SGBDs não oferecem os recursos para resolver isso.
-
Limitações da recursão em SQL
- No Dia 23, foi necessário encontrar a maior clique em um grafo esparso.
- O algoritmo de Bron-Kerbosch resolve o problema, mas fica complexo de expressar com recursão SQL.
- A recursão em SQL só consegue carregar um único conjunto, o que conflita com algoritmos que precisam manter vários conjuntos simultaneamente.
-
Conclusão
- É possível codificar algoritmos complexos em SQL, e o código SQL pode ser surpreendentemente agradável.
- Com um mecanismo que permita atualizar estados, a recursão em SQL seria mais eficiente e confortável de usar.
- Ao adicionar mecanismos complexos de manipulação de estado, SQL pode se tornar uma escolha poderosa para executar algoritmos complexos dentro do próprio banco de dados.
1 comentários
Comentário do Hacker News