С какими системами управления базами данных (СУБД) вы работали?

«С какими системами управления базами данных (СУБД) вы работали?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Реляционные (SQL) СУБД:

  • PostgreSQL, MySQL: Основные СУБД для production-проектов. Работа с транзакциями, индексами, сложными запросами.
  • Oracle: Опыт поддержки и миграции legacy-систем.

Пример подключения к PostgreSQL через JDBC:

String url = "jdbc:postgresql://localhost:5432/mydb";
Properties props = new Properties();
props.setProperty("user", "user");
props.setProperty("password", "password");
Connection conn = DriverManager.getConnection(url, props);

NoSQL СУБД:

  • MongoDB: Для документоориентированных данных и гибких схем.
    MongoClient client = MongoClients.create("mongodb://localhost:27017");
    MongoDatabase database = client.getDatabase("test");
    MongoCollection<Document> collection = database.getCollection("users");
  • Redis: Использовал как кэш (Spring Cache) и брокер сообщений (Pub/Sub).

ORM и инструменты:

  • JPA/Hibernate: Для объектно-реляционного отображения.
  • Нативные запросы и оптимизация: Построение планов запросов (EXPLAIN), создание индексов.
  • Миграции схемы: Flyway, Liquibase.