Что такое OLTP?

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

Ответ

OLTP (Online Transaction Processing) — это класс систем, предназначенных для обработки большого количества коротких оперативных транзакций в реальном времени.

Характеристики OLTP-систем:

  • Многочисленные короткие транзакции: Например, добавление товара в корзину, списание средств, регистрация пользователя.
  • ACID-гарантии: Обеспечивают целостность данных.
    • Atomicity (Атомарность)
    • Consistency (Согласованность)
    • Isolation (Изолированность)
    • Durability (Долговечность)
  • Оптимизация под запись: Частые операции INSERT, UPDATE, DELETE.
  • Нормализованная схема данных: Для минимизации избыточности и аномалий при изменении.

Пример транзакции на Java (JDBC):

Connection conn = dataSource.getConnection();
try {
    conn.setAutoCommit(false); // Начало транзакции

    PreparedStatement debit = conn.prepareStatement(
        "UPDATE accounts SET balance = balance - ? WHERE id = ?"
    );
    debit.setBigDecimal(1, transferAmount);
    debit.setInt(2, fromAccountId);
    debit.executeUpdate();

    PreparedStatement credit = conn.prepareStatement(
        "UPDATE accounts SET balance = balance + ? WHERE id = ?"
    );
    credit.setBigDecimal(1, transferAmount);
    credit.setInt(2, toAccountId);
    credit.executeUpdate();

    conn.commit(); // Фиксация транзакции
} catch (SQLException e) {
    conn.rollback(); // Откат при ошибке
    throw e;
}

Сравнение с OLAP: OLTP обслуживает операционную деятельность, а OLAP — аналитическую. Данные из OLTP-систем периодически загружаются в OLAP-хранилища для анализа.