Какие основные виды (типы) баз данных существуют?

«Какие основные виды (типы) баз данных существуют?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Базы данных делятся на несколько основных типов, каждый из которых оптимизирован под определенные сценарии использования.

1. Реляционные (SQL) БД

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

  • Принцип: ACID-транзакции, строгая согласованность.
  • Примеры: PostgreSQL, MySQL, Oracle.
  • Пример запроса:
    SELECT name, email FROM users WHERE registration_date > '2024-01-01';

2. Нереляционные (NoSQL) БД

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

  • Документные: Хранят данные в виде документов (JSON, BSON).
    • Примеры: MongoDB, CouchDB.
    • Пример документа:
      {
      "_id": "507f1f77bcf86cd799439011",
      "username": "alex",
      "preferences": { "theme": "dark" }
      }
  • Ключ-значение (Key-Value): Простейшая модель для быстрого доступа по уникальному ключу.
    • Примеры: Redis, Amazon DynamoDB.
  • Колоночные (Wide-Column): Данные хранятся по столбцам, а не по строкам, что эффективно для аналитики.
    • Примеры: Apache Cassandra, ScyllaDB.
  • Графовые (Graph): Оптимизированы для хранения и запросов сложных связей между сущностями (узлы и ребра).
    • Примеры: Neo4j, Amazon Neptune.

3. In-memory БД

Хранят данные в оперативной памяти для максимальной скорости (часто используются как кэш).

  • Пример: Redis, Memcached.

4. NewSQL БД

Сочетают горизонтальную масштабируемость NoSQL с SQL-интерфейсом и гарантиями ACID.

  • Пример: Google Spanner, CockroachDB.