Database transaction
This article needs more citations. (August 2010) |
A database transaction symbolizes a unit of work, performed within a database management system (or similar system) against a database, that is treated in a coherent and reliable way independent of other transactions[1]. A transaction generally represents any change in a database. Transactions in a database environment have two main purposes:
- To provide reliable units of work that allow correct recovery from failures and keep a database consistent even in cases of system failure. For example: when execution prematurely and unexpectedly stops (completely or partially) in which case many operations upon a database remain uncompleted, with unclear status.
- To provide isolation between programs accessing a database concurrently. If this isolation is not provided, the programs' outcomes are possibly erroneous.
In a database management system, a transaction is a single unit of logic or work, sometimes made up of multiple operations. Any logical calculation done in a consistent mode in a database is known as a transaction. One example is a transfer from one bank account to another: the complete transaction requires subtracting the amount to be transferred from one account and adding that same amount to the other.
A database transaction, by definition, must be atomic (it must either be complete in its entirety or have no effect whatsoever), consistent (it must conform to existing constraints in the database), isolated (it must not affect other transactions) and durable (it must get written to persistent storage).[2] Database practitioners often refer to these properties of database transactions using the acronym ACID.
Transactional databases
[edit]A transactional database is a DBMS that provides the ACID properties for a bracketed set of database operations (begin-commit). Transactions ensure that the database is always in a consistent state, even in the event of concurrent updates and failures.[3] All the write operations within a transaction have an all-or-nothing effect, that is, eitNested transactions, for example, are transactions which contain statements within them that start new transactions (i.e. sub-transactions). Multi-level transactions are a variant of nested transactions where the sub-transactions take place at different levels of a layered system architecture (e.g., with one operation at the database-engine level, one operation at the operating-system level).[4].
Distributed transactions
[edit]Database systems implement distributed transactions[5] as transactions accessing data over multiple nodes. A distributed transaction enforces the ACID properties over multiple nodes, and might include systems such as databases, storage managers, file systems, messaging systems, and other data managers. In a distributed transaction there is typically an entity coordinating all the process to ensure that all parts of the transaction are applied to all relevant systems. Moreover, the integration of Storage as a Service (StaaS) within these environments is crucial, as it offers a virtually infinite pool of storage resources, accommodating a range of cloud-based data store classes with varying availability, scalability, and ACID properties. This integration is essential for achieving higher availability, lower response time, and cost efficiency in data-intensive applications deployed across cloud-based data stores.[6]
Transactional filesystems
[edit]The Namesys Reiser4 filesystem for Linux[7] supports transactions, and as of Microsoft Windows Vista, the Microsoft NTFS filesystem[8] supports distributed transactions across networks. There is occurring research into more data coherent filesystems, such as the Warp Transactional Filesystem (WTF).[9]
See also
[edit]References
[edit]- ↑ "ACID vs BASE Databases - Difference Between Databases - AWS". Amazon Web Services, Inc. Retrieved 2025-11-28.
a transaction is any operation that the database considers a single unit of work. A transaction must complete fully for the database to remain consistent. For example, when you transfer money from one bank account to another, the money must leave your account and must be added to the third-party account. You cannot call the transaction complete without both steps occurring
- ↑ "What is a Transaction? (Windows)". msdn.microsoft.com. 7 January 2021.
- ↑ DINCĂ, Ana-Maria; AXINTE, Sabina-Daniela; BACIVAROV, Ioan (2022-12-29). "Performance Enhancements for Database Transactions". International Journal of Information Security and Cybercrime. 11 (2): 29–34. doi:10.19107/ijisc.2022.02.02. ISSN 2285-9225. S2CID 259653728.
- ↑ Beeri, C.; Bernstein, P. A.; Goodman, N. (1989). "A model for concurrency in nested transactions systems". Journal of the ACM. 36 (1): 230–269. doi:10.1145/62044.62046. S2CID 12956480.
- ↑ Özsu, M. Tamer; Valduriez, Patrick (2011). Principles of Distributed Database Systems, Third Edition. Springer. Bibcode:2011podd.book.....O. doi:10.1007/978-1-4419-8834-8. ISBN 978-1-4419-8833-1.
- ↑ Mansouri, Yaser; Toosi, Adel Nadjaran; Buyya, Rajkumar (2017-12-11). "Data Storage Management in Cloud Environments: Taxonomy, Survey, and Future Directions". ACM Computing Surveys. 50 (6): 91:1–91:51. doi:10.1145/3136623. ISSN 0360-0300.
- ↑ "Linux.org". Linux.org.
- ↑ "MSDN Library". 4 February 2013. Retrieved 16 October 2014.
- ↑ "The Design and Implementation of the Warp Transactional Filesystem" (PDF). usenix.org. March 18, 2016. Retrieved 16 Oct 2025.
Further reading
[edit]- Philip A. Bernstein, Eric Newcomer (2009): Principles of Transaction Processing, 2nd Edition, Morgan Kaufmann (Elsevier), ISBN 978-1-55860-623-4
- Gerhard Weikum, Gottfried Vossen (2001), Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery, Morgan Kaufmann, ISBN 1-55860-508-8