맨위로가기

롤백 (데이터 관리)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

롤백(Rollback)은 데이터베이스 시스템에서 오류 발생 시 데이터 변경 사항을 이전 상태로 되돌리는 작업이다. 순차적 롤백은 한 트랜잭션의 실패가 다른 트랜잭션의 실패를 유발하는 현상으로, 바람직하지 않다. SQL에서 `ROLLBACK` 명령어는 마지막 `START TRANSACTION` 또는 `BEGIN WORK` 이후의 데이터 변경 사항을 취소하며, 연결별로 적용되어 동시 프로그래밍에 필수적이다. 데이터베이스 외에도 분산 시스템 등에서도 일관성을 위해 롤백을 활용한다.

더 읽어볼만한 페이지

  • 데이터베이스 이론 - 관계형 데이터베이스
    관계형 데이터베이스는 데이터를 테이블 형태로 구성하여 관리하며, 1970년 E.F. 코드에 의해 정의되었고, RDBMS를 통해 ACID 트랜잭션, 저장 프로시저, 정규화, 인덱스 등의 기술을 활용하여 다양한 분야에서 사용된다.
  • 데이터베이스 이론 - 데이터베이스 설계
    데이터베이스 설계는 데이터를 효율적으로 관리하기 위해 데이터 분류, 관계 식별, 논리 구조화 등을 포함하며, 개념적, 논리적, 물리적 설계를 거쳐 데이터 중복을 줄이고 데이터 무결성을 확보하는 과정이다.
  • SQL - 사용자 정의 함수
    사용자 정의 함수는 프로그래밍 언어와 데이터베이스 시스템에서 사용자가 직접 정의하여 재사용할 수 있는 코드 블록이다.
  • SQL - 임베디드 SQL
    임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
  • 트랜잭션 처리 - 2단계 커밋 프로토콜
    2단계 커밋 프로토콜은 분산 컴퓨팅 환경에서 트랜잭션의 원자성을 보장하는 분산 알고리즘으로, 조정자와 참가자로 구성되어 모든 참가자가 트랜잭션을 완료하거나 아무도 완료하지 못하도록 하며, 커밋 요청 및 커밋 단계를 거쳐 모든 참가자의 동의를 얻어야 커밋된다.
  • 트랜잭션 처리 - 온라인 트랜잭션 처리
    온라인 트랜잭션 처리(OLTP)는 실시간 데이터베이스 트랜잭션 처리 방식으로, 가용성, 속도, 동시성, 내구성을 목표로 은행, 항공사, 전자 상거래 등에서 활용된다.
롤백 (데이터 관리)
데이터 관리
유형작업
설명데이터베이스를 이전 상태로 되돌리는 작업
활용
목적오류 복구, 데이터 무결성 유지
관련 기술트랜잭션 처리, 저널링
기타
참고 자료데이터베이스 롤백 – 무엇이며 왜?

2. 롤백의 개념

데이터베이스 트랜잭션이 비정상적으로 종료되어 데이터베이스의 일관성이 깨질 가능성이 있을 때, 롤백은 트랜잭션이 수행했던 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산이다.

2. 1. 순차적 롤백 (Cascading Rollback)

순차적 롤백은 하나의 트랜잭션(T1)이 오류를 발생시켜 롤백될 때, T1에 의존하는 다른 트랜잭션들도 연쇄적으로 롤백되는 현상이다.[1] 즉, 하나의 트랜잭션 실패가 여러 트랜잭션의 실패를 유발한다.[1]

이는 시스템에 큰 부하를 줄 수 있기 때문에, 실제 데이터베이스 시스템에서는 순차적 롤백을 방지하는 기술을 사용한다.[1] 순차적 롤백은 데이터베이스 관리자(DBA)에 의해 예약될 수 있다.[1]

3. SQL에서의 롤백

SQL에서 `ROLLBACK`은 마지막 `START TRANSACTION` 또는 `BEGIN` 이후의 모든 데이터 변경 사항을 관계형 데이터베이스 관리 시스템(RDBMS)이 폐기하도록 하는 명령으로, 데이터 상태가 해당 변경 전에 있던 상태로 "롤백"된다.[2] `ROLLBACK` 문은 사용 중일 수 있는 기존의 모든 저장점도 해제한다.

대부분의 SQL 방언에서 `ROLLBACK`은 연결별로 적용된다. 즉, 동일한 데이터베이스에 두 개의 연결이 설정된 경우, 한 연결에서 실행된 `ROLLBACK`은 다른 연결에 영향을 미치지 않는다. 이는 적절한 동시 프로그래밍을 위해 필수적이다.

4. 데이터베이스 외부에서의 활용

롤백은 데이터베이스에만 국한되지 않는다. 모든 상태 분산 시스템은 일관성을 유지하기 위해 롤백 작업을 사용할 수 있다. 롤백을 지원할 수 있는 분산 시스템의 예로는 메시지 큐와 워크플로우 관리 시스템이 있다. 더 일반적으로는, 다른 작업이나 일련의 작업 전에 시스템을 이전 상태로 되돌리는 모든 작업을 롤백으로 간주할 수 있다.

참조

[1] 웹사이트 Database Rollback – What and Why https://soaringeagle[...] 2019-11-03
[2] 웹사이트 Rollback SQL: Rolling back transactions via the ROLLBACK SQL query https://www.sqlshack[...] 2019-12-26



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com