A questão geral
Quais são as diferenças entre algoritmos usando estruturas de dados e algoritmos usando bancos de dados?
Algum contexto
Esta é uma pergunta que está me incomodando há algum tempo, e eu não consegui encontrar uma resposta convincente para isso.
Atualmente, estou trabalhando para fortalecer minha compreensão de algoritmos que, é claro, envolvem fortemente estruturas de dados. Essas são estruturas básicas, como Bag, Fila, Pilha, Fila de prioridade e Heap.
Também uso bancos de dados diariamente para armazenar os dados que foram processados e enviados pelo usuário final ou processados pelo programa. Recupero e envio os dados por meio de um DAL, que possui estruturas de dados próprias que são geradas com base nas tabelas no banco de dados.
Minhas perguntas surgem quando eu tenho a opção de classificar os dados usando o banco de dados para enviá-los de volta para mim ordenados de maneira crescente / decrescente ou recuperar e carregar os dados em minha lógica, processar esses dados em uma fila prioritária e classificar heap tudo isso. Ou outro seria procurar registros usando o banco de dados, em vez de carregar um subconjunto dos registros e usar algo como pesquisa binária para encontrar os registros nos quais estou interessado.
Em minha opinião, eu tentaria realizar tantas operações no final do banco de dados antes de enviá-lo, porque a comunicação é cara. Isso também me faz pensar quando você usa algoritmos e estruturas de dados estritamente definidas dentro de sua própria lógica, em vez de processar dados do que os do banco de dados?
Então, aqui estão as perguntas ...
Questões
- Quais são as diferenças entre estruturas de dados e bancos de dados?
- Quando usamos algoritmos que usam estruturas de dados definidas exclusivamente dentro da sua própria lógica e não da lógica do banco de dados?
- @ Harvey post: Quando os métodos no banco de dados se tornam menos eficientes do que os métodos em sua própria lógica?
- @mirculixx post: O que torna um método eficiente?
- @ Harvey post: Como o processamento de dados com estruturas de dados é mais rápido do que no banco de dados?
Esclarecimentos
- @ Post Granant: Os bancos de dados com os quais eu normalmente trabalho são relacionais, e essas questões estão saindo do trabalho com eles. No entanto, acho que essas perguntas são aplicáveis a qualquer estrutura de persistência (quando digo estrutura, quero dizer isso no sentido mais geral).
Eu sei que respostas sem um contexto específico são difíceis. Alimento para o pensamento, conselhos ou pontos de discussão são principalmente o que estou procurando e seria muito apreciado!