🗄 Этап 5: Базы данных (SQL и NoSQL)

🗄 Этап 5: Базы данных (SQL и NoSQL)


Любое приложение должно хранить данные. Если сервер перезагрузится, все переменные в оперативной памяти исчезнут. Нам нужно надежное хранилище. Глобально базы данных делятся на два лагеря: реляционные и нереляционные.

🏗 1. SQL (реляционные базы)

Это классика и абсолютный стандарт индустрии. Данные хранятся в строгих таблицах, которые связаны между собой.

  • как это работает: представьте набор Excel-таблиц. у вас есть таблица users и таблица orders. каждый заказ строго привязан к конкретному пользователю через уникальный идентификатор.
  • главное преимущество: транзакции. если во время сложной операции (например, перевода денег) что-то пошло не так, все изменения можно безопасно откатить назад. это критично для финансов и строгого учета.
  • когда использовать: для банковских систем, интернет-магазинов, ERP — везде, где нужна строгая структура и надежность.
  • что учить: postgresql (одна из самых популярных и мощных open-source баз на сегодня) или mysql.
  • базовые концепции: запросы select, insert, update, delete и самое важное — join (объединение данных из разных таблиц).

📄 2. NoSQL (нереляционные базы)

Здесь нет строгих таблиц. Данные хранятся в виде гибких документов (очень похоже на json-объекты из javascript).

  • как это работает: у пользователя может быть массив адресов, история покупок и настройки прямо внутри одной записи, без сложного разбиения по разным таблицам.
  • когда использовать: для каталогов с плавающими характеристиками товаров, систем логирования, онлайн-игр.
  • что учить: mongodb (главная документная база) и redis.
  • важное уточнение про redis: это не обычная база, а сверхбыстрое хранилище в оперативной памяти. его используют как кэш, для хранения сессий авторизации и ускорения тяжелых запросов.

🤝 3. SQL vs NoSQL — не враги

В реальных коммерческих проектах часто используют оба подхода одновременно, подбирая инструмент под конкретную задачу.

  • пример архитектуры: postgresql для основных данных (пользователи, платежи) + redis для быстрого кэша + mongodb для хранения огромных массивов неструктурированных логов.

🌉 4. Как код общается с базой: ORM

Писать чистые SQL-запросы прямо внутри кода на бэкенде — можно, но часто неудобно и медленно в разработке. Для этого используют ORM (object-relational mapping). Это библиотеки, которые превращают таблицы базы данных в удобные объекты внутри вашего кода.

  • для TypeScript: prisma или typeorm.
  • для Python: sqlalchemy.
  • для C#: entity framework.

P.S. но все равно, я бы уделил на самом старте время чистому SQL, чтобы понимать фундаментально, что там внутри происходит. Просто имеется опция положить что-то важное/большое когда столкнетесь с оным, в процессе внедрения новых фич, просто потому что не хватает базовых знаний и не знаете, как оно работает на самом деле. ИМХО такое.

📚 Где практиковаться (бесплатные ресурсы):

  • sqlbolt — шикарный интерактивный тренажер прямо в браузере (читаете теорию и сразу пишете запрос).
  • postgrespro tutorial — отличные материалы по PostgreSQL.
  • mongodb university — официальные курсы от создателей Mongo.


Report Page