COMMIT, ROLLBACK

이기현·2021년 3월 9일
0

Oracle

목록 보기
23/39

TRANSACTION의 시작

  • 실행 가능한 SQL문장이 제일 처음 실행될 때

TRANSACTION의 종료

  • COMMIT이나 ROLLBACK
  • DDL이나 DCL문장의 실행(자동 COMMIT)
  • 기계 장애 또는 시스템 충돌(crash)
  • deadlock 발생
  • 사용자가 정상 종료

자동 COMMIT은 다음의 경우 발생 한다.

  • DDL,DCL문장이 완료 될 때
  • 명시적인 COMMIT이나 ROLLBACK없이 SQL*Plus를 정상 종료 했을 경우

자동 ROLLBACK은 다음의 경우 발생 한다.

  • SQL*Plus를 비정상 종료 했을 경우
  • 비정상적인 종료, system failure

COMMIT과 ROLLBACK

  • COMMIT : 변경사항 저장
  • ROLLBACK : 변경사항 취소

COMMIT과 ROLLBACK의 장점

  • 데이터의 일관성을 제공 한다.
  • 데이터를 영구적으로 변경하기 전에 데이터 변경을 확인하게 한다.
  • 관련된 작업을 논리적으로 그룹화 할 수 있다.
  • COMMIT, SAVEPOINT, ROLLBACK 문장으로 TRANSACTION의 논리를 제어할 수 있다.

COMMIT이나 ROLLBACK 이전의 데이터 상태

  • 데이터 이전의 상태로 북구가 가능 하다.
  • 현재 사용자는 SELECT문장으로 DML작업의 결과를 확인할 수 있다.
  • 다른 사용자는 SELECT문장으로 현재 사용자 사용한 DML문장의 결과를 확인할 수 없다.
  • 변경된 행은 LOCK이 설정 되어서 다른 사용자가 변경 할 수 없다.

COMMIT 이후의 데이터 상태

  • 데이터베이스에 데이터를 영구적으로 변경
  • 데이터의 이전 상태는 완전히 상실
  • 모든 사용자가 결과를 볼 수 있다.
  • 변경된 행의 LOCK이 해제되고 다른 사용자가 변경할 수 있다.
  • 모든 SAVEPOINT는 제거 된다
profile
실력을 쌓아가는 하루하루

0개의 댓글