Изучение обработки данных о транзакциях
Система обработки данных о транзакциях — это то, что большинство людей считают основной функцией бизнес-вычислений. Транзакционная система регистрирует транзакции, инкапсулирующие определенные события, которые организация хочет отслеживать. Транзакция может быть финансовой, например перемещением денег между счетами в банковской системе, или частью розничной системы, отслеживающей платежи от клиентов за товары и услуги. Транзакцию можно представить как небольшую дискретную единицу работы.
Транзакционные системы часто характеризуются большим объемом операций, иногда обрабатывая по несколько миллионов транзакций за один день. Доступ к обрабатываемым данным должен осуществляться очень быстро. Работа, выполняемая транзакционными системами, часто называется обработкой транзакций в реальном времени (OLTP).
Решения OLTP основываются на системе базы данных, в которой хранилище данных оптимизировано как для операций чтения и записи, так и для поддержки транзакционных рабочих нагрузок, в которых записи данных создаются, извлекаются, обновляются и удаляются (часто это называется операциями CRUD). Эти операции применяются транзакционно, способом, который гарантирует целостность данных, хранящихся в базе данных. Для этого системы OLTP применяют транзакции, поддерживающие так называемую семантику ACID:
- Атомарность — каждая транзакция обрабатывается и завершается как единое целое, полностью успешно или полностью неудачно. Например, транзакция, которая включает в себя списание денежных средств с одного счета и начисление той же суммы на другой счет, должна выполнить оба действия. Если какое либо действие не удается завершить, другое действие тоже должно завершиться ошибкой.
- Целостность (Consistency) — транзакции могут лишь переводить данные в базе данных из одного допустимого состояния в другое. Если продолжить приведенный выше пример списания и начисления, завершенное состояние транзакции должно отражать перевод денежных средств с одного счета на другой.
- Изоляция (Isolation) — параллельные транзакции не могут мешать друг другу, и их результатом должно быть согласованное состояние базы данных. Например, пока транзакция для перевода денежных средств с одного счета на другой находится в процессе, другая транзакция, проверяющая баланс этих счетов, должна возвращать согласованные результаты — транзакция проверки баланса не может получить значение для одного счета, которое отражает баланс до перевода, и значение для другого счета, отражающее баланс после перевода.
- Устойчивость(Durability) — когда транзакция фиксируется, она остается зафиксированной. После завершения транзакции по переводу на счет измененные балансы счетов сохраняются, так что даже если система базы данных будет отключена, зафиксированная транзакция будет отражена при ее повторном включении.
Системы OLTP обычно используются для поддержки динамических приложений, обрабатывающих бизнес-данные. Такие приложения часто называютсябизнес-приложениями (LOB).