раздел 05
Базы данных
База данных - это следующая ступень после файла. Снаружи похоже: данные всё так же лежат где-то и переживают перезапуск. Но внутри это специальная программа, заточенная под одно - быстро хранить, искать и менять много данных, не ломаясь, когда к ним обращаются одновременно.
Когда файлов становится мало
Файл (CSV или JSON) перестаёт справляться, когда появляется хоть одно из:
- Поиск тормозит. Чтобы найти запись в файле, надо прочитать его весь. На десятках тысяч записей это заметно медленно. База находит нужное мгновенно по индексу.
- Нужно менять отдельные записи. В файле для правки одной строки приходится перечитывать и переписывать всё. База меняет одну запись напрямую.
- Пишут несколько пользователей сразу. Два процесса записали в один файл одновременно - и данные перемешались или потерялись. База разруливает одновременный доступ.
- Данные связаны. «У клиента много заказов, у заказа много товаров». В файлах это превращается в кашу. Базы созданы ровно для таких связей.
Что такое таблица, строка, столбец
В самых распространённых (реляционных) базах данные лежат в таблицах - как в CSV, только по-настоящему.
- Таблица - набор однотипных записей:
users,orders,tasks. - Строка (запись, row) - один объект: один пользователь, один заказ.
- Столбец (поле, column) - одно свойство:
name,email,created_at. - Ключ (id) - уникальный номер записи, по которому на неё ссылаются другие таблицы.
Связи между таблицами и есть главная суперсила: в таблице orders хранится user_id, который указывает на строку в users. Так данные не дублируются.
Два больших семейства баз
SQL (реляционные) - данные в таблицах со строгой структурой, запросы на языке SQL. Сюда входят SQLite, PostgreSQL, MySQL. Это выбор по умолчанию для большинства приложений.
NoSQL - данные хранятся гибче, часто прямо как JSON-документы, без жёсткой схемы. Сюда входят MongoDB, Firebase. Берут, когда структура данных заранее не фиксирована или нужна экстремальная масштабируемость.
Для старта почти всегда правильный ответ - SQL, а конкретно SQLite. С него и начнём.
Маршрут раздела
- SQLite - настоящая база, которая живёт в одном файле и не требует сервера. Идеальный первый шаг.
- Первые SQL-запросы - четыре команды, которые покрывают большинство задач.
- Серверные и облачные БД - когда и зачем уходить с файла на PostgreSQL, Supabase или Firebase.
Не бойтесь баз
У новичков база данных вызывает священный трепет: кажется, что это что-то тяжёлое и взрослое. На деле SQLite заводится одной строкой кода, а первые четыре SQL-команды осваиваются за вечер. AI-ассистент тоже отлично пишет SQL - вам важно понимать, что происходит, и проверять результат.