롤백 (데이터 관리)
롤백(영어: rollback)은 데이터베이스에서 업데이트에 오류가 발생할 때, 이전 상태로 되돌리는 것을 말한다. 후진 복귀라고도 한다. 데이터베이스는 업데이트 이전 저널 파일을 사용하여 원래의 정상적인 상태로 되돌린다. 이것은 오류 동작 이후에도 깨끗한 사본으로 복원시킬 수 있기 때문에, 무결성을 위해 중요하다. 데이터베이스 서버의 충돌로부터 복원하는데도 중요하다. 충돌이 일어날 때, 특정 트랜잭션을 롤백시킴으로써 데이터베이스는 일관적인 상태로 되돌려진다.
롤백은 보통 트랜잭션 로그를 통해 수행되지만, 다중버전 동시성 제어를 통해 구현되기도 한다.
순차적 롤백
편집순차적 롤백(cascading rollback)은 데이터베이스 시스템에서 임의의 트랜잭션(T1)이 오류를 발생시킬 때, 롤백이 수행되어야 한다. T1의 동작에 의존하는 다른 트랜잭션도 T1의 오류 때문에 또한 롤백되어야 하며, 그리하여 순차적인 효과를 발생시킨다. 즉, 하나의 트랙잭션이 실패하는 것은 많은 실패를 유발한다.
실질적인 데이터베이스 복구 기술은 비순차적인 롤백을 보장한다. 그러므로 순차적인 롤백은 바람직한 결과는 아니다.
SQL
편집SQL에서 ROLLBACK은 모든 데이터 변경을 유발하는 명령어이다. 마지막 BEGIN WORK 또는 START TRANSACTION이 관계 데이터베이스 관리 시스템에 의해 버려져야 하기 때문에 데이터의 상태는 변경이 적용되기 이전 상태로 롤백되어야 하는 것이다.
ROLLBACK 구문은 또한 사용되기 위해 현존하는 savepoint를 참조한다.
대부분의 SQL 구문에서 ROLLBACK은 특정한 것에 대한 연결이다. 이것은 동일한 데이터베이스에 2개의 접속이 이뤄지면, 하나에 연결된 ROLLBACK은 다른 접속에 영향을 주지 않을 것이다. 이것은 적절한 동시성을 유지하는데 있어 필수적이다.
같이 보기
편집참고 문헌
편집- Ramez Elmasri (2007). 《Fundamentals of Database Systems》. Pearson Addison Wesley. ISBN 0-321-36957-2.
- "ROLLBACK Transaction", Microsoft SQL Server.
- "Sql Commands", MySQL.