Обработка транзакций: атомарность, согласованность и надежность операций с данными. Принципы обработки информации в компьютерных системах и базах данных.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Обработка информации, разделенная на неделимые операции.
Information processing broken up into indivisible operations
Принципы обработки транзакций.
the principles of transaction processing
В информатике обработка транзакций — это вид обработки информации.
In computer science, transaction processing is information processing
Атомность
Изменения, вносимые транзакцией в состояние системы, являются атомарными: либо все они происходят, либо ни одно из них не происходит. Эти изменения включают в себя изменения в базе данных, сообщения и действия, выполняемые над преобразователями.
A transaction's changes to the state are atomic: either all happen or none happen. These changes include database changes, messages, and actions on transducers.
Последовательность
Согласованность: Транзакция — это корректное изменение состояния. Операции, выполняемые как группа, не нарушают никаких ограничений целостности, связанных с этим состоянием.
Consistency: A transaction is a correct transformation of the state. The actions taken as a group do not violate any of the integrity constraints associated with the state.
Изоляция
Несмотря на то, что транзакции выполняются одновременно, каждой транзакции T кажется, что другие транзакции были выполнены либо до неё, либо после неё, но не одновременно и до, и после.
Even though transactions execute concurrently, it appears to each transaction T, that others executed either before T or after T, but not both.
Прочность
После успешного завершения транзакции (фиксации) ее изменения в базе данных сохраняются даже в случае сбоев и остаются неизменными.
Once a transaction completes successfully (commits), its changes to the database survive failures and retain its changes.
Реализация
Стандартное программное обеспечение для обработки транзакций, такое как система управления информацией IBM, впервые было разработано в 1960-х годах и часто тесно интегрировалось с конкретными системами управления базами данных. Клиент-серверные вычисления реализовали схожие принципы в 1980-х годах с переменным успехом. Однако в последние годы распределенная клиент-серверная модель стала значительно сложнее в поддержке. По мере роста числа транзакций в ответ на развитие различных онлайн-сервисов (особенно Интернета), единая распределенная база данных оказалась непрактичным решением. Кроме того, большинство онлайн-систем состоят из целого комплекса программ, работающих совместно, в отличие от строгой клиент-серверной модели, где один сервер мог обрабатывать транзакции. Сегодня доступно множество систем обработки транзакций, работающих на межпрограммном уровне и масштабируемых для крупных систем, включая мэйнфреймы. Одним из примеров является X/Open Distributed Transaction Processing (DTP) (см. также Java Transaction API (JTA)). Однако проприетарные среды обработки транзакций, такие как IBM CICS, остаются весьма популярными, хотя CICS также развился и теперь включает открытые отраслевые стандарты. Термин "экстремальная обработка транзакций" (XTP) использовался для описания систем обработки транзакций с исключительно сложными требованиями, в частности, требованиями к пропускной способности (транзакциям в секунду). Такие системы могут быть реализованы с использованием распределенных или кластерных архитектур. Этот термин использовался, по крайней мере, до 2011 года.
Standard transaction processing software, such as IBM's Information Management System, was first developed in the 1960s, and was often closely coupled to particular database management systems. Client–server computing implemented similar principles in the 1980s with mixed success. However, in more recent years, the distributed client–server model has become considerably more difficult to maintain. As the number of transactions grew in response to various online services (especially the Web), a single distributed database was not a practical solution. In addition, most online systems consist of a whole suite of programs operating together, as opposed to a strict client–server model where the single server could handle the transaction processing. Today a number of transaction processing systems are available that work at the inter program level and which scale to large systems, including mainframes. One effort is the X/Open Distributed Transaction Processing (DTP) (see also Java Transaction API (JTA). However, proprietary transaction processing environments such as IBM's CICS are still very popular, although CICS has evolved to include open industry standards as well. The term extreme transaction processing (XTP) was used to describe transaction processing systems with uncommonly challenging requirements, particularly throughput requirements (transactions per second). Such systems may be implemented via distributed or cluster style architectures. It was used at least by 2011.