раздел 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 - вам важно понимать, что происходит, и проверять результат.

Подразделы