@bituke

Зачем требуются различные СУБД, если можно использовать структуры данных языка, например словари и списки в питоне?

С помощью словарей, списков, множеств, кортежей можно полностью заменить базу данных для каких-либо задач. Так зачем заморачиваться, изучать различные бд, субд, если прекрасно владеешь тем же питоном? Вопрос возможно покажется глупым для вас, но мне действительно интересно, зачем люди используют бд? Из-за скорости?
  • Вопрос задан
  • 331 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Если на структурах языка реализовать весь набор функций, предоставляемых СУБД, то получится новая СУБД. Зачем тратить время и силы на написание СУБД, если есть уже готовые?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@zexer
1. Ядро СУБД работает с данными в иной структуре, нежели вы работаете со списками и всякими кортежами.
СУБД может обрабатывать сильно больше данных и сильно быстрее, чем вы делаете это в питоне, как минимум благодаря индексам (почитайте про индексы).
2. Кроме того, ваши множества и кортежи надо где-то хранить, где? В виде .txt или .json файлика на компе? Не кажется ли вам, что это немного не надежно?
3. В БД можно выставить множество ограничений и проверок, например на уникальность данных (чтобы у каждого человека был свой id), на то, чтобы поступающие данные соответствовали нужным типам, проверки на NULL значения, как вы все это будете делать через файлики .txt?
4. В БД есть понятие транзакции, чего ваши файлики вам разумеется тоже не дадут.
5. Данные с помощью СУБД легко читать, так как они представлены в табличной форме, к ним удобно применять фильтрации, сортировки, различные соединения таблиц между собой.
6. И еще десяток различных преимуществ, о которых даже нет смысла рассказывать.
Ответ написан
Комментировать
Из-за ACID, ну плюс еще SQL :-)
Ответ написан
Комментировать
@ComodoHacker
Основные причины:
  1. Данных много и они не помещаются в оперативной памяти. А данные со временем накапливаются. Поэтому если проект не умрет в первый год, то со временем придет к этой ситуации.
  2. Данные используются несколькими приложениями одновременно. Или несколькими процессами одного приложения
  3. Данные в ОЗУ теряются при крахе процесса / ОС / отключении света. Для большинства приложений это неприемлемо.
Ответ написан
Комментировать
SoreMix
@SoreMix
yellow
Причин много, для мелких проектов можно хоть в .txt писать. Но на более крупных уже не обойтись без полноценной БД. Представьте, что все пользователи вконтакте, их посты, сообщения, фотографии, музыка и тонна других вещей хранятся в одном словаре users в питоне.
Ответ написан
Комментировать
bituke, внесу и я свои "пять копеек".
Есть классный доклад от Реймонда Хеттинджера про словари. Посмотрите его.
В своём выступлении Реймонд рассказывает про словари в Python и проводит аналогию с базами данных.
<<Ссылка на доклад>>
Состав доклада: 90% питона, 10% юмора и... не содержит ГМО)).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы