La domanda generale
Quali sono le differenze tra algoritmi che utilizzano strutture di dati e algoritmi che utilizzano database?
Un po 'di contesto
Questa è una domanda che mi ha infastidito da un po 'di tempo e non sono stato in grado di trovare una risposta convincente per questo.
Attualmente, sto lavorando per rafforzare la mia comprensione degli algoritmi che, ovviamente, coinvolgono pesantemente le strutture di dati. Queste sono strutture di base come Bag, Queue, Stack, Priority Queue e Heap.
Uso anche database su base giornaliera per archiviare i dati che sono stati elaborati e inviati dall'utente finale o elaborati dal programma. Recupero e invio i dati tramite un DAL, che ha strutture di dati proprie generate sulla base delle tabelle nel database.
Le mie domande arrivano quando ho la possibilità di ordinare i dati utilizzando il database per inviarmeli in ordine crescente / decrescente o recuperare e caricare i dati nella mia logica, elaborare questi dati in una coda prioritaria e ordinare l'heap tutto. Oppure un altro sarebbe cercare i record usando il database piuttosto che caricare un sottoinsieme dei record e usare qualcosa come la ricerca binaria per trovare il record o i record che mi interessano.
Nella mia mente, proverei a fare quante più operazioni avvengono sull'estremità del database prima di inviarlo perché la comunicazione è costosa. Questo mi fa anche chiedermi quando usi algoritmi e strutture di dati strettamente definiti nella tua logica piuttosto che elaborare i dati rispetto a quelli del database?
Quindi ecco le domande ...
Domande
- Quali sono le differenze tra strutture dati e database?
- Quando utilizziamo algoritmi che utilizzano strutture di dati definite esclusivamente all'interno della propria logica e non di quelle del database?
- @Harvey post: quando i metodi nel database diventano meno efficienti da usare rispetto ai metodi nella tua logica?
- @mirculixx post: cosa rende efficiente un metodo?
- @Harvey post: in che modo l'elaborazione dei dati con le strutture dati è più rapida rispetto a quella nel database?
chiarimenti
- @Grant post: i database con cui lavoro normalmente sono relazionali, e queste domande non ci riescono . Tuttavia, penso che queste domande siano applicabili a qualsiasi framework di persistenza (quando dico framework, intendo nel senso più generale).
So che le risposte senza un contesto specifico sono difficili. Spunti di riflessione, consigli o discussioni sono principalmente ciò che cerco e sarei molto apprezzato!