Какие типы данных хранятся в нереляционных (NoSQL) базах данных?

Ответ

Нереляционные (NoSQL) базы данных классифицируются по модели данных, и каждая хранит информацию в специфическом формате.

Основные типы NoSQL БД и хранимые данные:

Тип БД Примеры Модель данных (Что хранится) Ключевая особенность
Документные MongoDB, CouchDB Документы в формате JSON, BSON или XML. Документ — это самостоятельная структура с парами "ключ-значение", часто вложенными. Гибкая схема, удобство для иерархических данных.
Ключ-значение Redis, Amazon DynamoDB Пары "ключ-значение". Ключ — уникальный идентификатор (строка). Значение — данные любого типа: строка, число, JSON, бинарный объект, список. Высокая скорость, простота, идеально для кэширования и сессий.
Колоночные Cassandra, HBase Данные организованы в семейства колонок, а не строк. Каждая запись может иметь разный набор колонок. Оптимизированы для быстрой записи и аналитических запросов по колонкам, горизонтальное масштабирование.
Графовые Neo4j, Amazon Neptune Узлы (сущности), Связи (отношения) и их Свойства (атрибуты). Эффективный поиск сложных взаимосвязей и паттернов в данных (соц. сети, рекомендации).

Пример документа в MongoDB (JSON):

{
  "_id": "507f1f77bcf86cd799439011",
  "name": "Анна",
  "email": "anna@example.com",
  "orders": [
    {
      "order_id": "ORD123",
      "product": "Ноутбук",
      "price": 1500,
      "status": "доставлен"
    },
    {
      "order_id": "ORD456",
      "product": "Мышь",
      "price": 50,
      "status": "в обработке"
    }
  ]
}

Пример пары "ключ-значение" в Redis:

# Запись
SET user:session:abc123 '{"userId": 42, "lastActivity": 1678886400}'

# Чтение
GET user:session:abc123

Ответ 18+ 🔞

А, ну вот, блядь, классификация NoSQL баз! Это ж не просто так, а целая ёперная театральная постановка, где каждая база — актёр со своей ролью. Смотри, как они по типам разбежались, пизда с ушами!

Основные типы NoSQL БД и что они там в себе носят:

Тип БД Примеры Модель данных (Что хранится) Ключевая особенность
Документные MongoDB, CouchDB Документы в формате JSON, BSON или XML. Это как папка с бумажками, где каждая бумажка — самостоятельная хуйня с кучей вложенных полей. Гибкая схема, можно хоть завтра новое поле прилепить, и никто не охуеет. Идеально для иерархических данных.
Ключ-значение Redis, Amazon DynamoDB Пары "ключ-значение". Ключ — это типа номерок в гардеробе (строка). Значение — что угодно: строка, число, JSON, бинарный объект, хоть список покупок твоей бабки. Скорость, блядь, овердохуищная! Простота — взял по ключу и всё. Идеально для кэширования и сессий пользователей.
Колоночные Cassandra, HBase Данные организованы не по строкам, а по семействам колонок. Каждая запись может иметь свой уникальный набор колонок, как будто у всех разная анатомия. Заточены под быструю запись и аналитические запросы, когда тебе надо посчитать что-то по одной колонке у миллиарда записей. Горизонтально масштабируются — добавляй сервера, и похуй.
Графовые Neo4j, Amazon Neptune Узлы (сущности), Связи (отношения) и их Свойства (атрибуты). Представь соцсеть: люди — узлы, дружба — связи. Эффективный поиск сложных взаимосвязей. Хочешь найти всех, кто дружит с друзьями друзей твоего бывшего? Вот для этого.

Вот, смотри, как выглядит документ в MongoDB (JSON):

{
  "_id": "507f1f77bcf86cd799439011",
  "name": "Анна",
  "email": "anna@example.com",
  "orders": [
    {
      "order_id": "ORD123",
      "product": "Ноутбук",
      "price": 1500,
      "status": "доставлен"
    },
    {
      "order_id": "ORD456",
      "product": "Мышь",
      "price": 50,
      "status": "в обработке"
    }
  ]
}

Видишь? Всё аккуратненько в одном месте: и пользователь, и его заказы. Удобно, блядь.

А вот пример пары "ключ-значение" в Redis:

# Запись
SET user:session:abc123 '{"userId": 42, "lastActivity": 1678886400}'

# Чтение
GET user:session:abc123

Всё, сука! Положил по ключу user:session:abc123 целый JSON с сессией. Получил обратно за микросекунды. Волшебство, ёпта! Главное — не перепутать ключи, а то вместо сессии пользователя получишь рецепт борща.