In
database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases s ...
technologies, a rollback is an operation which returns the database to some previous state. Rollbacks are important for database
integrity
Integrity is the practice of being honest and showing a consistent and uncompromising adherence to strong moral and ethical principles and values.
In ethics, integrity is regarded as the honesty and truthfulness or accuracy of one's actions. In ...
, because they mean that the database can be restored to a clean copy even after erroneous operations are performed. They are crucial for recovering from database server crashes; by rolling back any
transaction which was active at the time of the crash, the database is restored to a consistent state.
The rollback feature is usually implemented with a
transaction log
In the field of databases in computer science, a transaction log (also transaction journal, database log, binary log or audit trail) is a history of actions executed by a database management system used to guarantee ACID properties over crashes ...
, but can also be implemented via
multiversion concurrency control
Multiversion concurrency control (MCC or MVCC), is a concurrency control method commonly used by database management systems to provide concurrent access to the database and in programming languages to implement transactional memory.
Description ...
.
Cascading rollback
A cascading rollback occurs in database systems when a transaction (T1) causes a failure and a rollback must be performed. Other transactions dependent on T1's actions must also be rollbacked due to T1's failure, thus causing a cascading effect. That is, one transaction's failure causes many to fail.
Practical database recovery techniques guarantee cascadeless rollback, therefore a cascading rollback is not a desirable result. Cascading rollback is scheduled by dba.
SQL
SQL refers to Structured Query Language, a kind of language used to access, update and manipulate database.
In
SQL,
ROLLBACK
is a command that causes all data changes since the last
START TRANSACTION
or
BEGIN
to be discarded by the
relational database management systems
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
(RDBMS), so that the state of the data is "rolled back" to the way it was before those changes were made.
A
ROLLBACK
statement will also release any existing
savepoint
A savepoint is a way of implementing subtransactions (also known as nested transactions) within a relational database management system by indicating a point within a transaction that can be " rolled back to" without affecting any work done in ...
s that may be in use.
In most SQL dialects,
ROLLBACK
s are connection specific. This means that if two connections are made to the same database, a
ROLLBACK
made in one connection will not affect any other connections. This is vital for proper
concurrency.
See also
*
Savepoint
A savepoint is a way of implementing subtransactions (also known as nested transactions) within a relational database management system by indicating a point within a transaction that can be " rolled back to" without affecting any work done in ...
*
Commit
*
Undo
*
Schema migration
In software engineering, a schema migration (also database migration, database change management) refers to the management of version-controlled, incremental and reversible changes to relational database schemas. A schema migration is performed ...
Notes
References
*
"ROLLBACK Transaction" Microsoft SQL Server.
MySQL.
{{Authority control
Database theory
Transaction processing
Reversible computing