Какие виды баз данных вы знаете?

«Какие виды баз данных вы знаете?» — вопрос из категории Базы данных и SQL, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В тестировании важно понимать типы баз данных, чтобы проектировать корректные тестовые данные и проверять интеграции. Основные виды:

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

  • Структура: Данные в таблицах (строки и столбцы) со строгой схемой и связями.
  • Примеры: PostgreSQL, MySQL, Oracle, Microsoft SQL Server.
  • Применение в тестировании: Проверка целостности данных (ACID), сложные запросы в отчетах, тестирование транзакций.
  • Пример SQL-запроса для проверки данных:
    -- Проверка наличия пользователей старше 25 лет
    SELECT COUNT(*) FROM users WHERE age > 25;

2. NoSQL БД

  • Документные (MongoDB, Couchbase): Хранение данных в JSON-подобных документах. Полезно для тестирования гибких схем и агрегаций.
  • Ключ-значение (Redis, Memcached): Используются для кэширования. В тестах проверяем инвалидацию кэша и TTL.
  • Колоночные (Cassandra, HBase): Для аналитики и больших данных. Тестируем производительность запросов по колонкам.
  • Графовые (Neo4j): Для данных со сложными связями (соц. графы). Тестируем обходы графов и рекомендательные алгоритмы.

3. In-memory БД

  • Примеры: Redis (также ключ-значение), H2, SQLite в памяти.
  • Применение в тестировании: Идеальны для юнит- и интеграционных тестов из-за скорости и изоляции. Не требуют развертывания внешней БД.

4. Базы данных временных рядов

  • Примеры: InfluxDB, TimescaleDB (расширение PostgreSQL).
  • Применение в тестировании: Тестирование систем мониторинга (например, Grafana), IoT-приложений. Проверяем запись и чтение метрик с временными метками.