COMMIT & ROLLBACK

치로·2024년 8월 2일

COMMIT

  • 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어
  • 트렌젝션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용울 모두 영구 저장
  • COMMIT을 수행하면, 하나의 트랜젝션 과정을 종료하게 됨
  • Transaction(Inset, Update, Delete)작업 내용을 실제 DB에 저장
  • 이전 데이터가 완전히 Update됨
  • 모든 사용자가 변경한 데이터의 결과를 볼 수 있음

ROLLBACK

  • 작업 중 문제가 발생했을 때, 트렌젝션의 처리 과정에서 발생한 변경사항을 취소하고, 트렌젹션 과정을 종료
  • 트렌젝션으로 인한 하나의 묶음 처리가 시작되가 이전의 상태로 되돌림
  • Transaction(Inset, Update, Delete)작업 내용을 취소
  • 이전 commit 한 곳까지만 복구
  • 트렌젝션 작업 중 하나라도 문제가 발생하면, 모든 작업을 취소해야 하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야함
  • 문제가 발생하면, 논리적인 작업의 단위를 모두 취소해 버리면 되기 때문

commit 명령어와 rollback 명령어의 장점

  • 데이터의 무결성이 보장
  • 논리적으로 연관된 작업을 그룹화할 수 있음

자동 rollback되는 경우

  • 비정상적인 종료

자동으로 commit되는 경우

  • DDL구문 (create, alter, drop, truncate)
  • DCL구문 (grant, revoke) 사용 권한
  • insert, update, delete 작업 후 commit을 하지 않고, 오라클을 정상 종료시에 commit 명령어를 입력하지 않아도 정상 commit 후 오라클 종료

데이터 제어어(Data Control Language)

  • 사용자에게 권한 생성 혹은 권한 삭제 같은 명령어
  • grant : 권한 생성
  • revoke : 권한 삭제

0개의 댓글