La question générale
Quelles sont les différences entre les algorithmes utilisant des structures de données et les algorithmes utilisant des bases de données?
Un certain contexte
C'est une question qui m'écoute depuis un certain temps et je n'ai pas pu trouver de réponse convaincante.
Actuellement, je travaille à renforcer ma compréhension des algorithmes qui, bien sûr, impliquent fortement les structures de données. Ce sont des structures de base telles que Bag, Queue, Stack, Priority Queue et Heap.
J'utilise également quotidiennement des bases de données pour stocker les données qui ont été traitées et soumises par l'utilisateur final ou traitées par le programme. Je récupère et soumets les données via un DAL, qui a ses propres structures de données qui sont générées en fonction des tables de la base de données.
Mes questions surviennent lorsque j'ai la possibilité de trier les données à l'aide de la base de données pour me les renvoyer ordonnées de manière ascendante / descendante ou de récupérer et de charger les données dans ma logique, de traiter ces données dans une file d'attente prioritaire et de trier par tas tout. Ou un autre serait de rechercher des enregistrements à l'aide de la base de données plutôt que de charger un sous-ensemble des enregistrements et d'utiliser quelque chose comme la recherche binaire pour trouver l'enregistrement ou les enregistrements qui m'intéressent.
Dans mon esprit, j'essaierais d'avoir autant d'opérations sur l'extrémité de la base de données avant de l'envoyer car la communication coûte cher. Cela me fait également me demander quand utilisez-vous des algorithmes et des structures de données strictement définis dans votre propre logique plutôt que pour traiter des données que celles de la base de données?
Voici donc les questions ...
Des questions
- Quelles sont les différences entre les structures de données et les bases de données?
- Quand utilisons-nous des algorithmes qui utilisent des structures de données définies uniquement dans votre propre logique et non celle de la base de données?
- @Harvey post: Quand les méthodes de la base de données deviennent-elles moins efficaces à utiliser que les méthodes de votre propre logique?
- @mirculixx post: Qu'est - ce qui rend une méthode efficace?
- @Harvey post: Comment le traitement des données avec des structures de données est-il plus rapide que de le faire dans la base de données?
Clarifications
- @Grant post: Les bases de données avec lesquelles je travaille normalement sont relationnelles et ces questions découlent de leur travail avec elles. Cependant, je pense que ces questions sont applicables à tout cadre de persistance (quand je dis cadre, je le pense dans le sens le plus général).
Je sais que les réponses sans contexte spécifique sont difficiles. Des éléments de réflexion, des conseils ou des points de discussion sont principalement ce que je recherche et seraient les plus appréciés!