С какими СУБД (DBMS) вы работали?

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

Ответ

Работал с реляционными и NoSQL СУБД.

Реляционные (SQL):

  • PostgreSQL, MySQL — для большинства веб-приложений.
  • Oracle — в корпоративных проектах.

NoSQL:

  • MongoDB (документная) — для гибких схем данных и JSON-документов.
  • Cassandra (колоночная) — для работы с большими объемами данных и высокой записной нагрузкой.

Пример низкоуровневого подключения через JDBC (PostgreSQL):

String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "user";
String password = "pass";

// try-with-resources для автоматического закрытия ресурсов
try (Connection conn = DriverManager.getConnection(url, user, password);
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT id, name FROM users")) {

    while (rs.next()) {
        int id = rs.getInt("id");
        String name = rs.getString("name");
        System.out.printf("User: %d - %s%n", id, name);
    }
} catch (SQLException e) {
    e.printStackTrace(); // В реальном проекте — структурированное логирование
}

Для повышения продуктивности использовал:

  • ORM: Hibernate, JPA (Java Persistence API).
  • Библиотеки высокого уровня: Spring Data JPA, MyBatis.
  • Миграции схемы: Liquibase, Flyway.

Опыт включает проектирование схем, оптимизацию запросов, настройку индексов и работу с транзакциями.