JS Tower
Node.jsМодуль 5: Базы данных

Введение в базы данных

SQL vs NoSQL, выбор базы данных

Цель урока

В этом уроке ты научишься:

  • Различать SQL и NoSQL базы данных
  • Выбирать подходящую базу данных
  • Понимать основные концепции

SQL vs NoSQL

SQL (реляционные)

Данные хранятся в таблицах со строгой схемой.

-- Таблица users
+----+--------+------------------+
| id | name   | email            |
+----+--------+------------------+
| 1  | Иван   | ivan@example.com |
| 2  | Мария  | maria@example.com|
+----+--------+------------------+

Примеры: PostgreSQL, MySQL, SQLite

Преимущества:

  • Строгая схема данных
  • ACID транзакции
  • Сложные запросы (JOIN)
  • Целостность данных

NoSQL (нереляционные)

Данные хранятся в документах, ключ-значение или графах.

// Документ в MongoDB
{
  "_id": "507f1f77bcf86cd799439011",
  "name": "Иван",
  "email": "ivan@example.com",
  "posts": [
    { "title": "Первый пост", "likes": 10 }
  ]
}

Примеры: MongoDB, Redis, Cassandra

Преимущества:

  • Гибкая схема
  • Горизонтальное масштабирование
  • Высокая производительность
  • Простота разработки

Сравнение

КритерийSQLNoSQL
СхемаСтрогаяГибкая
МасштабированиеВертикальноеГоризонтальное
ТранзакцииACIDBASE (eventual consistency)
СвязиJOINВложенные документы
ЗапросыSQLСпецифичные для БД

Когда использовать

SQL (PostgreSQL, MySQL)

  • Финансовые приложения
  • Сложные связи между данными
  • Требуется целостность данных
  • Аналитика и отчёты

NoSQL (MongoDB)

  • Быстрый прототип
  • Гибкая структура данных
  • Большие объёмы данных
  • Real-time приложения

Redis (ключ-значение)

  • Кэширование
  • Сессии пользователей
  • Rate limiting
  • Очереди задач

Популярные ORM/ODM

Для SQL

БиблиотекаОписание
PrismaСовременный ORM с TypeScript
SequelizeПопулярный ORM
TypeORMORM для TypeScript
Knex.jsQuery builder

Для MongoDB

БиблиотекаОписание
MongooseПопулярный ODM
MongoDB DriverОфициальный драйвер

Практика

Задание: Выбор БД

Задача: Какую БД выбрать для:

  1. Интернет-магазин
  2. Социальная сеть
  3. Система кэширования

Ответ:

  1. PostgreSQL — товары, заказы, транзакции
  2. MongoDB — гибкие профили, посты
  3. Redis — быстрый доступ к данным

Проверь себя

  1. Что такое ACID?
  2. Когда лучше использовать MongoDB?
  3. Для чего используют Redis?