Что такое база данных и зачем она нужна
Почти любое приложение хранит что-то надолго: пользователей, заказы, сообщения. Первая мысль — держать их в знакомом Python-списке. Посмотрим, где эта идея ломается.
Почему не хранить данные в Python-списке
Python 3.13users = [ {"id": 1, "name": "Анна", "email": "anna@example.com"}, {"id": 2, "name": "Пётр", "email": "petr@example.com"}, # ... представьте здесь миллион пользователей ] def find_user_by_email(email): for user in users: # перебираем весь список if user["email"] == email: return user return None
Пока пользователей тысяча, всё работает. Дальше начинаются проблемы:
- Медленный поиск — запрос «найди по email» перебирает записи одну за другой, и на миллионе это уже ощутимая задержка.
- Всё в оперативной памяти — данные должны целиком в неё помещаться.
- Данные живут до перезапуска — программа завершилась, и список исчез.
- Одновременный доступ — двое меняют данные в один момент, и список к этому не готов.
Что такое база данных
Эти проблемы и решает база данных: быстрый поиск по нужному полю, хранение на диске между запусками и одновременный доступ без путаницы.
Простая аналогия: база данных — умный склад. У каждой «полки» свой адрес, а «складской робот» (СУБД) быстро находит и выдаёт нужное.
Основные типы баз данных
Видов баз данных много, но на практике постоянно встречаются три:
Самые распространённые СУБД
Реляционные БД — то, с чем вы столкнётесь чаще всего: PostgreSQL и MySQL на серверах, SQLite — внутри телефонов, браузеров и самого Python. Из остальных регулярно попадаются Redis (ключ-значение: кэш и сессии) и MongoDB (документы).
Следующие три главы — про реляционные БД, поэтому дальше говорим только о них.
Проверка понимания
Почему для хранения пользователей приложения выбирают базу данных, а не обычный список в памяти?
В следующей статье начнём практику с SQLite — идеальной для обучения базой данных, которая уже встроена в Python: создадим первую БД и поработаем с настоящими данными.
