Онлайн-обработка транзакций ( OLTP ) — это тип системы баз данных , используемый в транзакционно-ориентированных приложениях, таких как многие операционные системы. «Онлайн» относится к тому факту, что такие системы должны отвечать на запросы пользователей и обрабатывать их в режиме реального времени (обрабатывать транзакции). Этот термин противопоставляется онлайн-аналитической обработке (OLAP), которая вместо этого фокусируется на анализе данных (например, системы планирования и управления ).
Термин «транзакция» может иметь два различных значения, оба из которых могут применяться: в сфере компьютеров или транзакций баз данных он обозначает атомарное изменение состояния, тогда как в сфере бизнеса или финансов этот термин обычно обозначает обмен экономическими объектами (как это используется, например, Советом по производительности обработки транзакций или коммерческими транзакциями . [1] ) : 50 OLTP может использовать транзакции первого типа для записи транзакций второго типа.
OLTP обычно противопоставляется аналитической обработке в режиме онлайн (OLAP), которая обычно характеризуется гораздо более сложными запросами в меньшем объеме для целей бизнес-аналитики или отчетности, а не для обработки транзакций. В то время как системы OLTP обрабатывают все виды запросов (чтение, вставка, обновление и удаление), OLAP обычно оптимизирован только для чтения и может даже не поддерживать другие виды запросов. OLTP также работает иначе, чем пакетная обработка и сеточные вычисления . [1] : 15
Кроме того, OLTP часто противопоставляют онлайновой обработке событий (OLEP), которая основана на распределенных журналах событий для обеспечения высокой согласованности в крупномасштабных гетерогенных системах. [2] В то время как OLTP ассоциируется с короткими атомарными транзакциями, OLEP допускает более гибкие шаблоны распределения и более высокую масштабируемость, но с увеличенной задержкой и без гарантированной верхней границы времени обработки.
OLTP также используется для обозначения обработки, при которой система немедленно отвечает на запросы пользователей. Банкомат (ATM) для банка является примером коммерческого приложения для обработки транзакций. [3] Приложения для обработки онлайн-транзакций имеют высокую пропускную способность и интенсивно вставляют или обновляют данные в управлении базами данных. Эти приложения используются одновременно сотнями пользователей. Основными целями приложений OLTP являются доступность, скорость, параллелизм и восстанавливаемость ( долговечность ). [4] Сокращение бумажных следов и более быстрый, точный прогноз доходов и расходов являются примерами того, как OLTP упрощает работу предприятий. Однако, как и многие современные решения в области информационных технологий в Интернете, некоторые системы требуют автономного обслуживания, что дополнительно влияет на анализ затрат и выгод системы обработки онлайн-транзакций.
Система OLTP — это доступная система обработки данных на современных предприятиях. Некоторые примеры систем OLTP включают системы ввода заказов, розничных продаж и финансовых транзакций. [5] Системы обработки онлайн-транзакций все чаще требуют поддержки транзакций, которые охватывают сеть и могут включать более одной компании. По этой причине современное программное обеспечение для обработки онлайн-транзакций использует клиентское или серверное программное обеспечение для обработки и посредничества, которое позволяет транзакциям выполняться на разных компьютерных платформах в сети.
В крупных приложениях эффективность OLTP может зависеть от сложного программного обеспечения для управления транзакциями (например, IBM CICS ) и/или тактик оптимизации базы данных для облегчения обработки большого количества одновременных обновлений в базе данных, ориентированной на OLTP.
Для еще более требовательных децентрализованных систем баз данных программы-посредники OLTP могут распределять обработку транзакций между несколькими компьютерами в сети . OLTP часто интегрируется в сервисно-ориентированную архитектуру (SOA) и веб-сервисы .
Онлайн-обработка транзакций (OLTP) включает сбор входной информации, обработку данных и обновление существующих данных для отражения собранной и обработанной информации. На сегодняшний день большинство организаций используют систему управления базами данных для поддержки OLTP. OLTP осуществляется в системе клиент-сервер.
Онлайн-процесс транзакций касается параллелизма и атомарности. Управление параллелизмом гарантирует, что два пользователя, обращающиеся к одним и тем же данным в системе базы данных, не смогут изменить эти данные, или пользователю придется ждать, пока другой пользователь закончит обработку, прежде чем изменить этот фрагмент данных. Управление атомарностью гарантирует, что все шаги в транзакции будут успешно завершены как группа. То есть, если какие-либо шаги между транзакцией завершатся неудачей, все остальные шаги также должны завершиться неудачей. [6]
Чтобы построить OLTP-систему, проектировщик должен знать, что большое количество одновременных пользователей не влияет на производительность системы. Чтобы повысить производительность OLTP-системы, проектировщик должен избегать чрезмерного использования индексов и кластеров.
Следующие элементы имеют решающее значение для производительности систем OLTP: [4]