Общий вопрос
Каковы различия между алгоритмами, использующими структуры данных, и алгоритмами, использующими базы данных?
Некоторый контекст
Это вопрос, который беспокоил меня в течение некоторого времени, и я не смог найти убедительного ответа на него.
В настоящее время я работаю над улучшением моего понимания алгоритмов, которые, конечно, в значительной степени задействуют структуры данных. Это основные структуры, такие как Bag, Queue, Stack, Priority Queue и Heap.
Я также ежедневно использую базы данных для хранения данных, которые были обработаны и представлены конечным пользователем или обработаны программой. Я извлекаю и отправляю данные через DAL, который имеет собственные структуры данных, которые генерируются на основе таблиц в базе данных.
Мои вопросы возникают, когда у меня есть возможность отсортировать данные с использованием базы данных, чтобы отправить их мне по заказу в порядке возрастания / убывания или извлечь и загрузить данные в мою логику, обработать эти данные в очереди с приоритетами и выполнить сортировку кучи все это. Или другой - искать записи, используя базу данных, а не загружать подмножество записей и использовать что-то вроде бинарного поиска, чтобы найти интересующую меня запись или записи.
На мой взгляд, я бы постарался сделать так, чтобы на конце базы данных выполнялось как можно больше операций, прежде чем пересылать его, потому что связь дорогая. Это также заставляет меня задуматься, когда вы используете алгоритмы и структуры данных, строго определенные в вашей собственной логике, а не для обработки данных, а не логики базы данных?
Итак, вот вопросы ...
Вопросов
- Каковы различия между структурами данных и базами данных?
- Когда мы используем алгоритмы, которые используют структуры данных, определенные исключительно в вашей собственной логике, а не в логике базы данных?
- @Harvey post: Когда методы в базе данных становятся менее эффективными в использовании, чем методы в вашей собственной логике?
- @mirculixx post: Что делает метод эффективным?
- @ Харви пост: Как быстрее обрабатывать данные со структурами данных, чем делать это в базе данных?
Разъяснения
- @Grant post: базы данных, с которыми я обычно работаю, реляционные, и эти вопросы возникают из-за работы с ними. Тем не менее, я думаю, что эти вопросы применимы к любой персистентной структуре (когда я говорю «структура», я имею в виду это в самом общем смысле).
Я знаю, что ответы без определенного контекста сложны. Еда для размышлений, советы или дискуссионные вопросы - это, в основном, то, что я ищу, и мы будем очень признательны!