A database transaction is a series of operations performed as a single logical unit of work, either completely or Transaction. Transaction processing ensures that data-oriented resources are not permanently updated unless all operations within the transactional unit are completed successfully. By combining a set of related actions into a single unit that either succeeds or all fails, you can simplify error recovery and make your application more reliable.
To become a transaction, a logical unit of work must satisfy the so-called acid (atomicity, consistency, isolation, and persistence) attributes. The meanings of these four properties are:
- Atomic (atomicity): the operations contained in a transaction are considered to be a logical unit in which the operations of the logical unit either succeed or fail altogether . Typically, the operations associated with a transaction have a common purpose and are interdependent. If the system only performs a subset of these operations, it may break the overall goal of the transaction. Atomicity eliminates the possibility of a system processing a subset of operations.
- Consistency (consistency): only legitimate data can be written to the database, or the transaction should roll it back to its original state. when a transaction is complete, you must keep all data in a consistent state . In a related database, all rules must be applied to transaction modifications to maintain the integrity of all data. At the end of the transaction, all internal data structures, such as B-tree indexes or doubly linked lists, must be correct. Some of the responsibility for maintaining consistency is borne by application developers who must ensure that all known integrity constraints are enforced by the application. For example, when developing an application for transfer, avoid arbitrarily moving the decimal point during the transfer process.
- Isolation (Isolation): transactions allow multiple users to concurrently access the same data without destroying the correctness and integrity of the data. At the same time, the modification of parallel transactions must be independent of the modifications of other parallel transactions . The state in which the data is located when the transaction is viewing the data, either when another concurrent transaction modifies its state or after another transaction modifies it, and the transaction does not view the data in the middle state. This is also known as Serializable because it is able to reload the starting data and replay a series of transactions so that the state at the end of the data is the same state as the original transaction execution. The highest isolation level is obtained when the transaction is serializable. At this level, the results obtained from a set of transactions that can be executed in parallel are the same as those obtained by running each transaction continuously. Because high isolation limits the number of transactions that can be executed in parallel, some applications reduce the isolation level in exchange for greater throughput . ensuring that isolation is likely to have a greater negative impact on system performance, some applications may compromise on isolation.
- Durability (persistence): After the transaction ends, the result of the transaction must be cured, and its effect on the system is permanent . This modification will persist even if a fatal system failure occurs.
Summary:
Database transactions are primarily carried out around the acid feature, and their concurrent execution improves throughput and system utilization, but also raises a number of issues. The next article will deal with the concurrency of transactions in detail.
Database principles of the Business (i)