La pregunta general
¿Cuáles son las diferencias entre los algoritmos que usan estructuras de datos y los algoritmos que usan bases de datos?
Algún contexto
Esta es una pregunta que me ha estado molestando durante algún tiempo, y no he podido encontrar una respuesta convincente.
Actualmente, estoy trabajando para fortalecer mi comprensión de los algoritmos que, por supuesto, involucran en gran medida las estructuras de datos. Estas son estructuras básicas como Bag, Queue, Stack, Priority Queue y Heap.
También utilizo bases de datos a diario para almacenar los datos que han sido procesados y enviados por el usuario final o procesados por el programa. Recupero y envío los datos a través de un DAL, que tiene estructuras de datos propias que se generan en función de las tablas de la base de datos.
Mis preguntas surgen cuando tengo la opción de ordenar los datos usando la base de datos para enviármelos ordenados de manera ascendente / descendente o recuperar y cargar los datos en mi lógica, procesar estos datos en una cola de prioridad y ordenar en montón todo ello. Otra sería buscar registros usando la base de datos en lugar de cargar un subconjunto de registros y usar algo como la búsqueda binaria para encontrar el registro o los registros que me interesan.
En mi opinión, trataría de tener tantas operaciones en el extremo de la base de datos antes de enviarlo porque la comunicación es costosa. Esto también me hace preguntarme cuándo utiliza algoritmos y estructuras de datos estrictamente definidos dentro de su propia lógica en lugar de procesar datos que los de la base de datos.
Así que aquí están las preguntas ...
Preguntas
- ¿Cuáles son las diferencias entre las estructuras de datos y las bases de datos?
- ¿Cuándo usamos algoritmos que usan estructuras de datos definidas únicamente dentro de su propia lógica y no la de la base de datos?
- Publicación de @Harvey: ¿ Cuándo los métodos en la base de datos se vuelven menos eficientes de usar que los métodos en su propia lógica?
- @mirculixx post: ¿Qué hace que un método sea eficiente?
- @Harvey post: ¿Cómo es el procesamiento de datos con estructuras de datos más rápido que hacerlo en la base de datos?
Aclaraciones
- Publicación de @Grant: las bases de datos con las que normalmente trabajo son relacionales, y estas preguntas están saliendo de trabajar con ellas. Sin embargo, creo que estas preguntas son aplicables a cualquier marco de persistencia (cuando digo marco, lo digo en el sentido más general).
Sé que las respuestas sin un contexto específico son difíciles. Los puntos de discusión, consejos o debate son principalmente lo que estoy buscando y sería muy apreciado.