롤백 (데이터 관리)
1. 개요
롤백(Rollback)은 데이터베이스 시스템에서 오류 발생 시 데이터 변경 사항을 이전 상태로 되돌리는 작업이다. 순차적 롤백은 한 트랜잭션의 실패가 다른 트랜잭션의 실패를 유발하는 현상으로, 바람직하지 않다. SQL에서 `ROLLBACK` 명령어는 마지막 `START TRANSACTION` 또는 `BEGIN WORK` 이후의 데이터 변경 사항을 취소하며, 연결별로 적용되어 동시 프로그래밍에 필수적이다. 데이터베이스 외에도 분산 시스템 등에서도 일관성을 위해 롤백을 활용한다.
| 유형 | 작업 |
|---|---|
| 설명 | 데이터베이스를 이전 상태로 되돌리는 작업 |
| 목적 | 오류 복구, 데이터 무결성 유지 |
|---|---|
| 관련 기술 | 트랜잭션 처리, 저널링 |
| 참고 자료 | 데이터베이스 롤백 – 무엇이며 왜? |
|---|
-
데이터베이스 이론 -
관계형 데이터베이스
관계형 데이터베이스는 데이터를 테이블 형태로 구성하여 관리하며, 1970년 E.F. 코드에 의해 정의되었고, RDBMS를 통해 ACID 트랜잭션, 저장 프로시저, 정규화, 인덱스 등의 기술을 활용하여 다양한 분야에서 사용된다. -
데이터베이스 이론 -
데이터베이스 설계
데이터베이스 설계는 데이터를 효율적으로 관리하기 위해 데이터 분류, 관계 식별, 논리 구조화 등을 포함하며, 개념적, 논리적, 물리적 설계를 거쳐 데이터 중복을 줄이고 데이터 무결성을 확보하는 과정이다. -
데이터 관리 -
데이터 센터
-
데이터 관리 -
정보 아키텍처
정보 아키텍처는 정보 시스템 및 정보 기술 분야에서 공유 정보 환경의 구조적 설계를 의미하며, 웹사이트, 소프트웨어 등의 구성과 레이블링을 포함하여 검색 용이성과 사용성을 지원하고, 도서관정보학에 기원을 두고 있다. -
SQL -
사용자 정의 함수
사용자 정의 함수는 프로그래밍 언어와 데이터베이스 시스템에서 사용자가 직접 정의하여 재사용할 수 있는 코드 블록이다. -
SQL -
임베디드 SQL
임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
2. 롤백의 개념
데이터베이스 트랜잭션이 비정상적으로 종료되어 데이터베이스의 일관성이 깨질 가능성이 있을 때, 롤백은 트랜잭션이 수행했던 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산이다.
2.1. 순차적 롤백 (Cascading Rollback)
순차적 롤백은 하나의 트랜잭션(T1)이 오류를 발생시켜 롤백될 때, T1에 의존하는 다른 트랜잭션들도 연쇄적으로 롤백되는 현상이다. 즉, 하나의 트랜잭션 실패가 여러 트랜잭션의 실패를 유발한다.
이는 시스템에 큰 부하를 줄 수 있기 때문에, 실제 데이터베이스 시스템에서는 순차적 롤백을 방지하는 기술을 사용한다. 순차적 롤백은 데이터베이스 관리자(DBA)에 의해 예약될 수 있다.
3. SQL에서의 롤백
SQL에서 `ROLLBACK`은 마지막 `START TRANSACTION` 또는 `BEGIN` 이후의 모든 데이터 변경 사항을 관계형 데이터베이스 관리 시스템(RDBMS)이 폐기하도록 하는 명령으로, 데이터 상태가 해당 변경 전에 있던 상태로 "롤백"된다. `ROLLBACK` 문은 사용 중일 수 있는 기존의 모든 저장점도 해제한다.
대부분의 SQL 방언에서 `ROLLBACK`은 연결별로 적용된다. 즉, 동일한 데이터베이스에 두 개의 연결이 설정된 경우, 한 연결에서 실행된 `ROLLBACK`은 다른 연결에 영향을 미치지 않는다. 이는 적절한 동시 프로그래밍을 위해 필수적이다.