NoSQL — это СУБД, которая не использует реляционную модель

🟢 NoSQL. Введение

NoSQL — это семейство систем управления базами данных, которые не используют классическую реляционную модель. В отличие от SQL-баз, где данные хранятся в таблицах, NoSQL ориентирован на документы, ключи-значения, графы или колонки. NoSQL-базы данных стали популярны благодаря масштабируемости, гибкости и высокой скорости обработки данных.

История

  • 1960-е — первые key-value хранилища.
  • 1998 — термин NoSQL впервые используется Карло Строцци.
  • 2000-е — рост интернета, большие данные, появление MongoDB, Cassandra, Redis.
  • Сегодня — NoSQL используется в облаках, социальных сетях, IoT и аналитике.

Основные типы баз данных

  • Документо-ориентированные — MongoDB, CouchDB.
  • Колоночные — Apache Cassandra, HBase.
  • Графовые — Neo4j, ArangoDB.
  • Key-Value — Redis, Riak.

CAP-теорема

Согласно CAP-теореме, распределённая система может обеспечивать только два из трёх свойств:

  • Consistency — согласованность.
  • Availability — доступность.
  • Partition tolerance — устойчивость к разделению сети.

NoSQL-системы обычно выбирают разные компромиссы, например Cassandra оптимизирует AP, а MongoDB — CP.

Примеры работы

MongoDB (документы)

db.employees.insertOne({
  name: "Иван Иванов",
  position: "Менеджер",
  salary: 60000,
  hire_date: new Date("2022-05-01")
});

db.employees.find({ salary: { $gt: 50000 } }).sort({ salary: -1 });

Redis (key-value)

SET user:1 "Иван Иванов"
GET user:1

HSET employee:1 name "Петр Петров" position "Аналитик" salary 70000
HGETALL employee:1

Cassandra (колоночное хранилище)

CREATE KEYSPACE company WITH replication = {
  'class': 'SimpleStrategy',
  'replication_factor': 1
};

USE company;

CREATE TABLE employees (
  id UUID PRIMARY KEY,
  name TEXT,
  position TEXT,
  salary DECIMAL
);

INSERT INTO employees (id, name, position, salary)
VALUES (uuid(), 'Иван Иванов', 'Менеджер', 60000);

SELECT * FROM employees WHERE salary > 50000;

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

  • Гибкая структура данных (нет фиксированных схем).
  • Высокая масштабируемость (шардирование и распределение).
  • Быстрая работа с большими объёмами данных.
  • Поддержка современных форматов: JSON, XML, графы.

Недостатки

  • Нет строгого соответствия SQL-стандарту.
  • Ограниченные возможности сложных запросов.
  • Иногда меньше инструментов для аналитики.

Сравнение SQL и NoSQL

КритерийSQLNoSQL
СтруктураТаблицы, строкиДокументы, графы, key-value
МасштабируемостьВертикальнаяГоризонтальная
СогласованностьACIDЧасто BASE
ПрименениеКорпоративные системыBig Data, веб, IoT

Применение NoSQL

  • Социальные сети (Facebook, Twitter).
  • Онлайн-магазины и рекомендательные системы.
  • Big Data и real-time аналитика.
  • Мобильные и IoT-приложения.

Будущее NoSQL

NoSQL продолжает развиваться. Многие современные базы данных совмещают реляционные и нереляционные возможности (NewSQL). Но популярность классических NoSQL решений сохраняется, так как они идеально подходят для масштабируемых систем.

Заключение

NoSQL — это гибкий подход к хранению и обработке данных, который помогает решать задачи там, где классические SQL-базы сталкиваются с ограничениями. Выбор конкретного решения зависит от требований проекта: MongoDB для документов, Cassandra для больших данных, Redis для кэша, Neo4j для графов.

🔗 Документация MongoDB
🔗 Документация Apache Cassandra


 

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии